diff options
author | Dan Gudmundsson <dgud@erlang.org> | 2013-05-15 15:16:50 +0200 |
---|---|---|
committer | Dan Gudmundsson <dgud@erlang.org> | 2013-06-03 12:58:45 +0200 |
commit | 0057676c3ebfd603658631088c977219ba2b0cc6 (patch) | |
tree | 879f3125ed8b569e25eefc02c3b5c5a201d824a3 /lib/kernel/test/os_SUITE_data | |
parent | 892fb14882ef356c90eda8aa02ca43c3db8b53da (diff) | |
download | otp-0057676c3ebfd603658631088c977219ba2b0cc6.tar.gz otp-0057676c3ebfd603658631088c977219ba2b0cc6.tar.bz2 otp-0057676c3ebfd603658631088c977219ba2b0cc6.zip |
kernel: Handle unicode in os:cmd
Allow unicode strings in os:cmd and try to convert the
result bytes to unicode list.
Also test it.
Diffstat (limited to 'lib/kernel/test/os_SUITE_data')
-rw-r--r-- | lib/kernel/test/os_SUITE_data/my_echo.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/kernel/test/os_SUITE_data/my_echo.c b/lib/kernel/test/os_SUITE_data/my_echo.c index 2127511dd1..712c828bb5 100644 --- a/lib/kernel/test/os_SUITE_data/my_echo.c +++ b/lib/kernel/test/os_SUITE_data/my_echo.c @@ -1,3 +1,30 @@ +#ifdef __WIN32__ +#include <windows.h> + +int wmain(int argc, wchar_t **argv) +{ + char* sep = ""; + int len; + + /* + * Echo all arguments separated with '::', so that we can check that + * quotes are interpreted correctly. + */ + + while (argc-- > 1) { + char *utf8; + len = WideCharToMultiByte(CP_UTF8, 0, argv[1], -1, NULL, 0, NULL, NULL); + utf8 = malloc(len*sizeof(char)); + WideCharToMultiByte(CP_UTF8, 0, argv++[1], -1, utf8, len, NULL, NULL); + printf("%s%s", sep, utf8); + free(utf8); + sep = "::"; + } + putchar('\n'); + return 0; +} +#else + #include <stdio.h> int @@ -17,3 +44,4 @@ main(int argc, char** argv) putchar('\n'); return 0; } +#endif |