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; |