| Index: fusl/src/time/__asctime.c
|
| diff --git a/fusl/src/time/__asctime.c b/fusl/src/time/__asctime.c
|
| index e7e7f07e2e8ec488b8718edc4853d2ced9da7dc2..3651a2e941db10da0e4fd8e963c5b5cffd83e44c 100644
|
| --- a/fusl/src/time/__asctime.c
|
| +++ b/fusl/src/time/__asctime.c
|
| @@ -3,27 +3,23 @@
|
| #include <langinfo.h>
|
| #include "atomic.h"
|
|
|
| -const char *__nl_langinfo(nl_item);
|
| +const char* __nl_langinfo(nl_item);
|
|
|
| -char *__asctime(const struct tm *restrict tm, char *restrict buf)
|
| -{
|
| - /* FIXME: change __nl_langinfo to __nl_langinfo_l with explicit C
|
| - * locale once we have locales */
|
| - if (snprintf(buf, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
|
| - __nl_langinfo(ABDAY_1+tm->tm_wday),
|
| - __nl_langinfo(ABMON_1+tm->tm_mon),
|
| - tm->tm_mday, tm->tm_hour,
|
| - tm->tm_min, tm->tm_sec,
|
| - 1900 + tm->tm_year) >= 26)
|
| - {
|
| - /* ISO C requires us to use the above format string,
|
| - * even if it will not fit in the buffer. Thus asctime_r
|
| - * is _supposed_ to crash if the fields in tm are too large.
|
| - * We follow this behavior and crash "gracefully" to warn
|
| - * application developers that they may not be so lucky
|
| - * on other implementations (e.g. stack smashing..).
|
| - */
|
| - a_crash();
|
| - }
|
| - return buf;
|
| +char* __asctime(const struct tm* restrict tm, char* restrict buf) {
|
| + /* FIXME: change __nl_langinfo to __nl_langinfo_l with explicit C
|
| + * locale once we have locales */
|
| + if (snprintf(buf, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
|
| + __nl_langinfo(ABDAY_1 + tm->tm_wday),
|
| + __nl_langinfo(ABMON_1 + tm->tm_mon), tm->tm_mday, tm->tm_hour,
|
| + tm->tm_min, tm->tm_sec, 1900 + tm->tm_year) >= 26) {
|
| + /* ISO C requires us to use the above format string,
|
| + * even if it will not fit in the buffer. Thus asctime_r
|
| + * is _supposed_ to crash if the fields in tm are too large.
|
| + * We follow this behavior and crash "gracefully" to warn
|
| + * application developers that they may not be so lucky
|
| + * on other implementations (e.g. stack smashing..).
|
| + */
|
| + a_crash();
|
| + }
|
| + return buf;
|
| }
|
|
|