71 |
71 |
72 void test() { |
72 void test() { |
73 |
73 |
74 } |
74 } |
75 |
75 |
|
76 int dav_main(int argc, char **argv); |
|
77 |
|
78 #ifdef _WIN32 |
|
79 static char* wchar2utf8(const wchar_t *wstr, size_t wlen) { |
|
80 size_t maxlen = wlen * 4; |
|
81 char *ret = malloc(maxlen + 1); |
|
82 int ret_len = WideCharToMultiByte( |
|
83 CP_UTF8, |
|
84 0, |
|
85 wstr, |
|
86 wlen, |
|
87 ret, |
|
88 maxlen, |
|
89 NULL, |
|
90 NULL); |
|
91 ret[ret_len] = 0; |
|
92 return ret; |
|
93 } |
|
94 |
|
95 int wmain(int argc, wchar_t **argv) { |
|
96 char **argv_utf8 = calloc(argc, sizeof(char*)); |
|
97 for(int i=0;i<argc;i++) { |
|
98 argv_utf8[i] = wchar2utf8(argv[i], wcslen(argv[i])); |
|
99 } |
|
100 |
|
101 int ret = dav_main(argc, argv_utf8); |
|
102 |
|
103 for(int i=0;i<argc;i++) { |
|
104 free(argv_utf8[i]); |
|
105 } |
|
106 free(argv_utf8); |
|
107 |
|
108 return ret; |
|
109 } |
|
110 #else |
76 int main(int argc, char **argv) { |
111 int main(int argc, char **argv) { |
|
112 return dav_main(argc, argv); |
|
113 } |
|
114 #endif |
|
115 |
|
116 |
|
117 int dav_main(int argc, char **argv) { |
77 if(argc < 2) { |
118 if(argc < 2) { |
78 fprintf(stderr, "Missing command\n"); |
119 fprintf(stderr, "Missing command\n"); |
79 print_usage(argv[0]); |
120 print_usage(argv[0]); |
80 return -1; |
121 return -1; |
81 } |
122 } |