From 0e179ea6dddaf0cf65f1d08f68cbfecc05f37a19 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 20 Jan 2000 02:01:32 +0000 Subject: Update. * 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. --- ChangeLog | 7 +++++++ posix/regex.h | 4 ++-- stdlib/strfmon.c | 11 +++++++---- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 30136f5..f11c9c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2000-01-19 Ulrich Drepper + * 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 f8a1230..5edeff3 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 7041994..ac6b8b6 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 and Jochen Hein , 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; } -- cgit v1.1