diff options
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | time/strftime.c | 4 |
2 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 7e6e390063..fb356736bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +1998-09-24 Paul Eggert <eggert@twinsun.com> + + * strftime.c (underlying_strftime): + Set the buffer to a nonzero value before calling + strftime, and check to see whether strftime has set the buffer to zero. + This lets us distinguish between an empty buffer and an error. + +1998-09-24 Paul Eggert <eggert@shade.twinsun.com> + + * strftime.c (INT_STRLEN_BOUND): Fix typo by changing 100 to 1000. + This fix is propagated from tzcode1998g.tar.gz. + 1998-09-24 Mark Kettenis <kettenis@phys.uva.nl> * sysdeps/unix/siglist.c: Make sys_siglist a weak alias for diff --git a/time/strftime.c b/time/strftime.c index 0a830b0588..61f688e1b2 100644 --- a/time/strftime.c +++ b/time/strftime.c @@ -134,7 +134,7 @@ extern char *tzname[]; add one for integer division truncation; add one more for a minus sign if t is signed. */ #define INT_STRLEN_BOUND(t) \ - ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 100 + 1 + TYPE_SIGNED (t)) + ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 + 1 + TYPE_SIGNED (t)) #define TM_YEAR_BASE 1900 @@ -748,7 +748,7 @@ my_strftime (s, maxsize, format, tp) *u++ = format_char; *u = '\0'; len = strftime (ubuf, sizeof ubuf, ufmt, tp); - if (len == 0) + if (len == 0 && ubuf[0] != '\0') return 0; cpy (len, ubuf); } |