diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | posix/regex.h | 4 | ||||
-rw-r--r-- | stdlib/strfmon.c | 11 |
3 files changed, 16 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 30136f55ff..f11c9c5a6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2000-01-19 Ulrich Drepper <drepper@cygnus.com> + * stdlib/strfmon.c: Don't report an error if final NUL is at the + end of the buffer. Set errno correctly if floating-point number + would overflow buffer. + + * posix/regex.h: Update comment of + RE_SYNTAX_POSIX_MINIMAL_EXTENDED. + * locale/weight.h (findidx): Little optimization. Correctly return offset in indirect table. * locale/programs/ld-collate.c (struct element_t): Add mblast diff --git a/posix/regex.h b/posix/regex.h index f8a123054b..5edeff3551 100644 --- a/posix/regex.h +++ b/posix/regex.h @@ -226,8 +226,8 @@ extern reg_syntax_t re_syntax_options; | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) -/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS - replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */ +/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is + removed and RE_NO_BK_REFS is added. */ #define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ diff --git a/stdlib/strfmon.c b/stdlib/strfmon.c index 7041994eca..ac6b8b6c93 100644 --- a/stdlib/strfmon.c +++ b/stdlib/strfmon.c @@ -1,5 +1,5 @@ /* Formatting a monetary value according to the current locale. - Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com> and Jochen Hein <Jochen.Hein@informatik.TU-Clausthal.de>, 1996. @@ -465,7 +465,10 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...) } if (s[maxsize - 1] != '\0') - return -1; + { + __set_errno (E2BIG); + return -1; + } dest += done; @@ -521,9 +524,9 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...) } /* Terminate the string. */ - out_char ('\0'); + *dest = '\0'; va_end (ap); - return dest - s - 1; + return dest - s; } |