From: Ulrich Drepper Date: Tue, 28 Nov 2000 21:12:43 +0000 (+0000) Subject: Update. X-Git-Tag: cvs/glibc-2_2_1~261 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bffef76ec222e1330b8f2fb625a46726effbc9f7;p=thirdparty%2Fglibc.git Update. 2000-11-22 Paul Eggert * time/strftime.c (my_strftime): Do not invoke mbrlen with a size of (size_t) -1; it's not portable. --- diff --git a/ChangeLog b/ChangeLog index 88de3eb4306..e5c71d49657 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-11-22 Paul Eggert + + * time/strftime.c (my_strftime): Do not invoke mbrlen with a + size of (size_t) -1; it's not portable. + 2000-11-28 Ulrich Drepper * sysdeps/i386/fpu/libm-test-ulps: Adjust some values for the diff --git a/sysdeps/generic/bsd-_setjmp.c b/sysdeps/generic/bsd-_setjmp.c index eba899003ac..0e3f9a54a08 100644 --- a/sysdeps/generic/bsd-_setjmp.c +++ b/sysdeps/generic/bsd-_setjmp.c @@ -1,5 +1,5 @@ -/* BSD `setjmp' entry point to `sigsetjmp (..., 0)'. Stub version. - Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc. +/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. Stub version. + Copyright (C) 1994, 1997, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +20,7 @@ #include #include -#undef setjmp +#undef _setjmp /* This implementation in C will not usually work, because the call really needs to be a tail-call so __sigsetjmp saves the state of diff --git a/time/strftime.c b/time/strftime.c index f98fe21079b..2f99143771a 100644 --- a/time/strftime.c +++ b/time/strftime.c @@ -513,6 +513,9 @@ my_strftime (s, maxsize, format, tp ut_argument) size_t i = 0; CHAR_T *p = s; const CHAR_T *f; +#if DO_MULTIBYTE && !defined COMPILE_WIDE + const char *format_end = NULL; +#endif zone = NULL; #if HAVE_TM_ZONE @@ -605,10 +608,15 @@ my_strftime (s, maxsize, format, tp ut_argument) { mbstate_t mbstate = mbstate_zero; size_t len = 0; + size_t fsize; + + if (! format_end) + format_end = f + strlen (f) + 1; + fsize = format_end - f; do { - size_t bytes = mbrlen (f + len, (size_t) -1, &mbstate); + size_t bytes = mbrlen (f + len, fsize - len, &mbstate); if (bytes == 0) break;