aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--posix/regex.h4
-rw-r--r--stdlib/strfmon.c11
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 <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 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 <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;
}