# HG changeset patch # User Olaf Wintermann # Date 1575289776 -3600 # Node ID 9922a349a61a7c09d8ecf90a8f5cf76c9082ff5e # Parent ab159748055c1eb77099e5ee54de5d7e716d983f add support for unicode args on windows diff -r ab159748055c -r 9922a349a61a dav/main.c --- a/dav/main.c Sun Nov 24 12:40:28 2019 +0100 +++ b/dav/main.c Mon Dec 02 13:29:36 2019 +0100 @@ -73,7 +73,48 @@ } +int dav_main(int argc, char **argv); + +#ifdef _WIN32 +static char* wchar2utf8(const wchar_t *wstr, size_t wlen) { + size_t maxlen = wlen * 4; + char *ret = malloc(maxlen + 1); + int ret_len = WideCharToMultiByte( + CP_UTF8, + 0, + wstr, + wlen, + ret, + maxlen, + NULL, + NULL); + ret[ret_len] = 0; + return ret; +} + +int wmain(int argc, wchar_t **argv) { + char **argv_utf8 = calloc(argc, sizeof(char*)); + for(int i=0;i #include +#ifdef _WIN32 +#include +#endif + #include "libxattr.h" int attrtool_list(int argc, char **argv, int values); @@ -51,7 +55,47 @@ fprintf(stderr, " remove \n"); } +int xattr_tool_main(int argc, char **argv); + +#ifdef _WIN32 +static char* wchar2utf8(const wchar_t *wstr, size_t wlen) { + size_t maxlen = wlen * 4; + char *ret = malloc(maxlen + 1); + int ret_len = WideCharToMultiByte( + CP_UTF8, + 0, + wstr, + wlen, + ret, + maxlen, + NULL, + NULL); + ret[ret_len] = 0; + return ret; +} + +int wmain(int argc, wchar_t **argv) { + char **argv_utf8 = calloc(argc, sizeof(char*)); + for(int i=0;i