version 1.1.2.4, 2013/03/07 15:49:27
|
version 1.2, 2013/03/07 16:24:32
|
Line 83 stridx_compare(struct stridx * __restrict a, struct st
|
Line 83 stridx_compare(struct stridx * __restrict a, struct st
|
} |
} |
|
|
static int |
static int |
search4month(char * __restrict psMonth, int * __restrict id) | search4month(char * psMonth, int * __restrict id) |
{ |
{ |
static int sorted = 0; |
static int sorted = 0; |
struct stridx *el; | struct stridx *el, item = { psMonth, 0 }; |
|
|
if (!psMonth) |
if (!psMonth) |
return -1; |
return -1; |
Line 98 search4month(char * __restrict psMonth, int * __restri
|
Line 98 search4month(char * __restrict psMonth, int * __restri
|
} |
} |
|
|
str_Lower(psMonth); |
str_Lower(psMonth); |
el = bsearch(psMonth, months, sizeof(months) / sizeof(struct stridx), sizeof(struct stridx), | el = bsearch(&item, months, sizeof(months) / sizeof(struct stridx), sizeof(struct stridx), |
(int (*)(const void*, const void*)) stridx_compare); |
(int (*)(const void*, const void*)) stridx_compare); |
if (el && id) |
if (el && id) |
*id = el->id; |
*id = el->id; |
Line 110 static int
|
Line 110 static int
|
search4wday(char * __restrict psWDay, int * __restrict id) |
search4wday(char * __restrict psWDay, int * __restrict id) |
{ |
{ |
static int sorted = 0; |
static int sorted = 0; |
struct stridx *el; | struct stridx *el, item = { psWDay, 0 }; |
|
|
if (!psWDay) |
if (!psWDay) |
return -1; |
return -1; |
Line 122 search4wday(char * __restrict psWDay, int * __restrict
|
Line 122 search4wday(char * __restrict psWDay, int * __restrict
|
} |
} |
|
|
str_Lower(psWDay); |
str_Lower(psWDay); |
el = bsearch(psWDay, wdays, sizeof(wdays) / sizeof(struct stridx), sizeof(struct stridx), | el = bsearch(&item, wdays, sizeof(wdays) / sizeof(struct stridx), sizeof(struct stridx), |
(int (*)(const void*, const void*)) stridx_compare); |
(int (*)(const void*, const void*)) stridx_compare); |
if (el && id) |
if (el && id) |
*id = el->id; |
*id = el->id; |
Line 247 time_Parse(const char *csTime)
|
Line 247 time_Parse(const char *csTime)
|
tm.tm_min = tm_min; |
tm.tm_min = tm_min; |
tm.tm_sec = tm_sec; |
tm.tm_sec = tm_sec; |
tm.tm_year = tm_year; |
tm.tm_year = tm_year; |
} else | } else { |
| elwix_SetErr(EINVAL, "Invalid date/time format"); |
return (time_t) -1; |
return (time_t) -1; |
|
} |
|
|
if (tm.tm_year > 1900) |
if (tm.tm_year > 1900) |
tm.tm_year -= 1900; |
tm.tm_year -= 1900; |
else if (tm.tm_year < 70) |
else if (tm.tm_year < 70) |
tm.tm_year += 100; |
tm.tm_year += 100; |
|
|
return timegm(&tm); | if ((tim = timegm(&tm)) == (time_t) -1) |
| elwix_SetErr(EINVAL, "Invalid date/time format"); |
| return tim; |
} |
} |