mirror of
https://github.com/fluencelabs/musl
synced 2025-04-24 14:52:13 +00:00
fix strftime field widths with %F format and zero year
the code to strip initial sign and leading zeros inadvertently stripped all the zeros and the subsequent '-' separating the month. instead, only strip sign characters from the very first position, and only strip zeros when they are followed by another digit. based on testing by Dennis Wölfing.
This commit is contained in:
parent
cc7c300d1a
commit
596207aa38
@ -251,7 +251,8 @@ size_t __strftime_l(char *restrict s, size_t n, const char *restrict f, const st
|
||||
t = __strftime_fmt_1(&buf, &k, *f, tm, loc, pad);
|
||||
if (!t) break;
|
||||
if (width) {
|
||||
for (; *t=='+' || *t=='-' || (*t=='0'&&t[1]); t++, k--);
|
||||
if (*t=='+' || *t=='-') t++, k--;
|
||||
for (; *t=='0' && t[1]-'0'<10U; t++, k--);
|
||||
width--;
|
||||
if (plus && tm->tm_year >= 10000-1900)
|
||||
s[l++] = '+';
|
||||
|
Loading…
x
Reference in New Issue
Block a user