summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/misc/time/time.c126
1 files changed, 37 insertions, 89 deletions
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index 168655b00..05971389f 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -146,7 +146,6 @@
#include <bits/uClibc_uintmaxtostr.h>
#include <bits/uClibc_mutex.h>
-
#ifdef __UCLIBC_HAS_WCHAR__
#include <wchar.h>
#endif
@@ -154,39 +153,6 @@
#include <xlocale.h>
#endif
-/* libc_hidden_proto(asctime) */
-/* libc_hidden_proto(asctime_r) */
-/* libc_hidden_proto(ctime) */
-/* libc_hidden_proto(localtime) */
-/* libc_hidden_proto(localtime_r) */
-
-/* Experimentally off - libc_hidden_proto(memset) */
-/* Experimentally off - libc_hidden_proto(memcpy) */
-/* Experimentally off - libc_hidden_proto(strcmp) */
-/* Experimentally off - libc_hidden_proto(strcpy) */
-/* Experimentally off - libc_hidden_proto(strlen) */
-/* Experimentally off - libc_hidden_proto(strncpy) */
-/* libc_hidden_proto(sprintf) */
-/* libc_hidden_proto(open) */
-/* libc_hidden_proto(read) */
-/* libc_hidden_proto(close) */
-/* libc_hidden_proto(getenv) */
-/* libc_hidden_proto(tzset) */
-/* libc_hidden_proto(gettimeofday) */
-/* Experimentally off - libc_hidden_proto(strncasecmp) */
-/* libc_hidden_proto(strtol) */
-/* libc_hidden_proto(strtoul) */
-/* libc_hidden_proto(nl_langinfo) */
-
-#ifdef __UCLIBC_HAS_XLOCALE__
-/* Experimentally off - libc_hidden_proto(strncasecmp_l) */
-/* libc_hidden_proto(strtol_l) */
-/* libc_hidden_proto(strtoul_l) */
-/* libc_hidden_proto(nl_langinfo_l) */
-/* libc_hidden_proto(__ctype_b_loc) */
-#elif defined __UCLIBC_HAS_CTYPE_TABLES__
-/* libc_hidden_proto(__ctype_b) */
-#endif
#ifndef __isleap
#define __isleap(y) ( !((y) % 4) && ( ((y) % 100) || !((y) % 400) ) )
@@ -406,16 +372,16 @@ char *asctime_r(register const struct tm *__restrict ptm,
if (((unsigned int) tmp) >= 100) { /* Just check 2 digit non-neg. */
buffer[-1] = *buffer = '?';
} else
-#else /* SAFE_ASCTIME_R */
+#else
assert(((unsigned int) tmp) < 100); /* Just check 2 digit non-neg. */
-#endif /* SAFE_ASCTIME_R */
+#endif
{
*buffer = '0' + (tmp % 10);
#ifdef __BCC__
buffer[-1] = '0' + (tmp/10);
-#else /* __BCC__ */
+#else
buffer[-1] += (tmp/10);
-#endif /* __BCC__ */
+#endif
}
} while ((buffer -= 2)[-2] == '0');
@@ -433,8 +399,6 @@ libc_hidden_def(asctime_r)
#include <sys/times.h>
-/* libc_hidden_proto(times) */
-
#ifndef __BCC__
#if CLOCKS_PER_SEC != 1000000L
#error unexpected value for CLOCKS_PER_SEC!
@@ -814,10 +778,6 @@ time_t timegm(struct tm *timeptr)
#if defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE)
-/* libc_hidden_proto(strftime) */
-
-/* libc_hidden_proto(strftime_l) */
-
size_t strftime(char *__restrict s, size_t maxsize,
const char *__restrict format,
const struct tm *__restrict timeptr)
@@ -1100,18 +1060,18 @@ LOOP:
#ifdef ENABLE_ERA_CODE
if ((mod & NO_E_MOD) /* Actually, this means E modifier present. */
&& (*(o = __XL_NPP(nl_langinfo)(_NL_ITEM(LC_TIME,
- (int)(((unsigned char *)p)[4]))
- __LOCALE_ARG
- )))
+ (int)(((unsigned char *)p)[4]))
+ __LOCALE_ARG
+ )))
) {
p = o;
goto LOOP;
}
#endif
p = __XL_NPP(nl_langinfo)(_NL_ITEM(LC_TIME,
- (int)(*((unsigned char *)p)))
- __LOCALE_ARG
- );
+ (int)(*((unsigned char *)p)))
+ __LOCALE_ARG
+ );
goto LOOP;
}
@@ -1185,7 +1145,7 @@ LOOP:
* tm_gmtoff value. What we'll do instead is treat the
* timezone name as unknown/invalid and return "???". */
if (!o) {
- o = "???";
+ o = "???";
}
#endif
assert(o != NULL);
@@ -1239,7 +1199,7 @@ LOOP:
--field_val;
}
} else { /* ((*p == 'g') || (*p == 'G') || (*p == 'V')) */
- ISO_LOOP:
+ISO_LOOP:
isofm = (((x[1] - x[0]) + 11) % 7) - 3; /* [-3,3] */
if (x[1] < isofm) { /* belongs to previous year */
@@ -1250,7 +1210,7 @@ LOOP:
field_val = ((x[1] - isofm) / 7) + 1; /* week # */
days = 365 + __isleap(x[2]);
- isofm = ((isofm + 7*53 + 3 - days)) %7 + days - 3; /* next year */
+ isofm = ((isofm + 7*53 + 3 - days)) % 7 + days - 3; /* next year */
if (x[1] >= isofm) { /* next year */
x[1] -= days;
++x[2];
@@ -1269,7 +1229,7 @@ LOOP:
}
} else {
i = TP_OFFSETS + (code & 0x1f);
- if ((field_val = load_field(spec[i],timeptr)) < 0) {
+ if ((field_val = load_field(spec[i], timeptr)) < 0) {
goto OUTPUT;
}
@@ -1281,7 +1241,7 @@ LOOP:
}
if (i & 32) {
field_val %= j;
- if (((i&128) + field_val) == 0) { /* mod 12? == 0 */
+ if (((i & 128) + field_val) == 0) { /* mod 12? == 0 */
field_val = j; /* set to 12 */
}
}
@@ -1294,7 +1254,7 @@ LOOP:
if ((code & MASK_SPEC) == STRING_SPEC) {
o_count = SIZE_MAX;
field_val += spec[STRINGS_NL_ITEM_START + (code & 0xf)];
- o = __XL_NPP(nl_langinfo)(_NL_ITEM(LC_TIME, field_val) __LOCALE_ARG );
+ o = __XL_NPP(nl_langinfo)(_NL_ITEM(LC_TIME, field_val) __LOCALE_ARG);
} else {
o_count = ((i >> 1) & 3) + 1;
o = buf + o_count;
@@ -1335,10 +1295,6 @@ libc_hidden_def(__XL_NPP(strftime))
#if defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE)
-/* libc_hidden_proto(strptime) */
-
-/* libc_hidden_proto(strptime_l) */
-
char *strptime(const char *__restrict buf, const char *__restrict format,
struct tm *__restrict tm)
{
@@ -1560,17 +1516,18 @@ LOOP:
#ifdef ENABLE_ERA_CODE
if ((mod & NO_E_MOD) /* Actually, this means E modifier present. */
&& (*(o = __XL_NPP(nl_langinfo)(_NL_ITEM(LC_TIME,
- (int)(((unsigned char *)p)[4]))
- __LOCALE_ARG
- )))
+ (int)(((unsigned char *)p)[4]))
+ __LOCALE_ARG
+ )))
) {
p = o;
goto LOOP;
}
#endif
p = __XL_NPP(nl_langinfo)(_NL_ITEM(LC_TIME,
- (int)(*((unsigned char *)p)))
- __LOCALE_ARG );
+ (int)(*((unsigned char *)p)))
+ __LOCALE_ARG
+ );
goto LOOP;
}
@@ -1584,7 +1541,7 @@ LOOP:
do {
--j;
o = __XL_NPP(nl_langinfo)(i+j __LOCALE_ARG);
- if (!__XL_NPP(strncasecmp)(buf,o,strlen(o) __LOCALE_ARG) && *o) {
+ if (!__XL_NPP(strncasecmp)(buf, o, strlen(o) __LOCALE_ARG) && *o) {
do { /* Found a match. */
++buf;
} while (*++o);
@@ -1674,7 +1631,7 @@ LOOP:
fields[(*x) >> 3] = i;
- if (((unsigned char)(*x - (10<< 3) + 0 + 0)) <= 8) { /* %C or %y */
+ if (((unsigned char)(*x - (10 << 3) + 0 + 0)) <= 8) { /* %C or %y */
if ((j = fields[10]) < 0) { /* No %C, so i must be %y data. */
if (i <= 68) { /* Map [0-68] to 2000+i */
i += 100;
@@ -1830,7 +1787,7 @@ static const char *getnumber(register const char *e, int *pn)
#ifndef __UCLIBC_HAS_TZ_FILE_READ_MANY__
static smallint TZ_file_read; /* Let BSS initialization set this to 0. */
-#endif /* __UCLIBC_HAS_TZ_FILE_READ_MANY__ */
+#endif
static char *read_TZ_file(char *buf)
{
@@ -1883,13 +1840,9 @@ ERROR:
#endif /* __UCLIBC_HAS_TZ_FILE__ */
-#ifndef __UCLIBC_HAS_CTYPE_TABLES__
-/* libc_hidden_proto(isascii) */
-#endif
-
void tzset(void)
{
- _time_tzset((time(NULL)) < new_rule_starts);
+ _time_tzset((time(NULL)) < new_rule_starts);
}
void _time_tzset(int use_old_rules)
@@ -1903,10 +1856,10 @@ void _time_tzset(int use_old_rules)
char c;
#ifdef __UCLIBC_HAS_TZ_FILE__
char buf[TZ_BUFLEN];
-#endif /* __UCLIBC_HAS_TZ_FILE__ */
+#endif
#ifdef __UCLIBC_HAS_TZ_CACHING__
static char oldval[TZ_BUFLEN]; /* BSS-zero'd. */
-#endif /* __UCLIBC_HAS_TZ_CACHING__ */
+#endif
__UCLIBC_MUTEX_LOCK(_time_tzlock);
@@ -1931,12 +1884,12 @@ void _time_tzset(int use_old_rules)
if ((!e /* TZ env var not set... */
#ifdef __UCLIBC_HAS_TZ_FILE__
&& !(e = read_TZ_file(buf)) /* and no file or invalid file */
-#endif /* __UCLIBC_HAS_TZ_FILE__ */
+#endif
) || !*e) { /* or set to empty string. */
ILLEGAL: /* TODO: Clean up the following... */
#ifdef __UCLIBC_HAS_TZ_CACHING__
*oldval = 0; /* Set oldval to an empty string. */
-#endif /* __UCLIBC_HAS_TZ_CACHING__ */
+#endif
memset(_time_tzinfo, 0, 2*sizeof(rule_struct));
strcpy(_time_tzinfo[0].tzname, UTC);
goto DONE;
@@ -1954,7 +1907,7 @@ ILLEGAL: /* TODO: Clean up the following... */
* it is too long, but it that case it will be illegal and will be reset
* to the empty string anyway. */
strncpy(oldval, e, TZ_BUFLEN);
-#endif /* __UCLIBC_HAS_TZ_CACHING__ */
+#endif
count = 0;
new_rules[1].tzname[0] = 0;
@@ -2016,15 +1969,15 @@ SKIP_OFFSET:
} else { /* OK, we have dst, so get some rules. */
count = 0;
if (!*e) { /* No rules so default to US rules. */
- e = use_old_rules ? DEFAULT_RULES : DEFAULT_2007_RULES;
+ e = use_old_rules ? DEFAULT_RULES : DEFAULT_2007_RULES;
#ifdef DEBUG_TZSET
if (e == DEFAULT_RULES)
- printf("tzset: Using old rules.\n");
+ printf("tzset: Using old rules.\n");
else if (e == DEFAULT_2007_RULES)
- printf("tzset: Using new rules\n");
+ printf("tzset: Using new rules\n");
else
- printf("tzset: Using undefined rules\n");
-#endif /* DEBUG_TZSET */
+ printf("tzset: Using undefined rules\n");
+#endif
}
do {
@@ -2228,7 +2181,6 @@ struct tm attribute_hidden *_time_t2tm(const time_t *__restrict timer,
t = 365;
}
-
*p += ((int) t); /* result[7] .. tm_yday */
p -= 2; /* at result[5] */
@@ -2404,7 +2356,7 @@ DST_CORRECT:
__time_localtime_tzi(&t, (struct tm *)p, tzi);
if (t == ((time_t)(-1))) { /* Remember, time_t can be unsigned. */
- goto DONE;
+ goto DONE;
}
if ((d < 0) && (((struct tm *)p)->tm_isdst != default_dst)) {
@@ -2432,10 +2384,6 @@ DONE:
#if defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE)
-/* libc_hidden_proto(wcsftime) */
-
-/* libc_hidden_proto(wcsftime_l) */
-
size_t wcsftime(wchar_t *__restrict s, size_t maxsize,
const wchar_t *__restrict format,
const struct tm *__restrict timeptr)