libidav/utils.c

changeset 789
378b5ab86f77
parent 775
e5909dff0dbf
child 793
3ed93d188375
equal deleted inserted replaced
788:9b9420041d8e 789:378b5ab86f77
144 if(tzinfo.length == 0) { 144 if(tzinfo.length == 0) {
145 // local time 145 // local time
146 tparts.tm_isdst = -1; 146 tparts.tm_isdst = -1;
147 return mktime(&tparts); 147 return mktime(&tparts);
148 } else if(!cx_strcmp(tzinfo, cx_str("Z"))) { 148 } else if(!cx_strcmp(tzinfo, cx_str("Z"))) {
149 #ifdef __FreeBSD__ 149 #if defined(__FreeBSD__)
150 return timegm(&tparts); 150 return timegm(&tparts);
151 #elif defined(_WIN32)
152 return mktime(&tparts);
151 #else 153 #else
152 return mktime(&tparts) - timezone; 154 return mktime(&tparts) - timezone;
153 #endif 155 #endif
154 } else if(tzinfo.ptr[0] == '+' || tzinfo.ptr[0] == '-') { 156 } else if(tzinfo.ptr[0] == '+' || tzinfo.ptr[0] == '-') {
155 int sign = (tzinfo.ptr[0] == '+') ? -1 : 1; 157 int sign = (tzinfo.ptr[0] == '+') ? -1 : 1;
159 } else { 161 } else {
160 tzinfo.ptr++; tzinfo.length--; 162 tzinfo.ptr++; tzinfo.length--;
161 extractval(tzinfo, conv, ':'); 163 extractval(tzinfo, conv, ':');
162 val = atol(conv); 164 val = atol(conv);
163 val = 60 * (val / 100) + (val % 100); 165 val = 60 * (val / 100) + (val % 100);
164 #ifdef __FreeBSD__ 166 #if defined(__FreeBSD__)
165 return timegm(&tparts) + (time_t) (60 * val * sign); 167 return timegm(&tparts) + (time_t) (60 * val * sign);
168 #elif defined(_WIN32)
169 return mktime(&tparts) + (time_t)(60 * val * sign);
166 #else 170 #else
167 return mktime(&tparts) - timezone + (time_t) (60 * val * sign); 171 return mktime(&tparts) - timezone + (time_t) (60 * val * sign);
168 #endif 172 #endif
169 } 173 }
170 } else { 174 } else {
304 } 308 }
305 309
306 char* util_url_base(char *url) { 310 char* util_url_base(char *url) {
307 return util_url_base_s(cx_str(url)); 311 return util_url_base_s(cx_str(url));
308 } 312 }
313
314 #ifdef _WIN32
315 #define strncasecmp _strnicmp
316 #endif
309 317
310 const char* util_url_path(const char *url) { 318 const char* util_url_path(const char *url) {
311 const char *path = NULL; 319 const char *path = NULL;
312 size_t len = strlen(url); 320 size_t len = strlen(url);
313 int slashcount = 0; 321 int slashcount = 0;

mercurial