dav/main.c

changeset 687
9922a349a61a
parent 684
a4b4257c1a5f
child 703
2e3a24b9896a
equal deleted inserted replaced
686:ab159748055c 687:9922a349a61a
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 }

mercurial