]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 27 Nov 2001 02:20:12 +0000 (02:20 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 27 Nov 2001 02:20:12 +0000 (02:20 +0000)
2001-11-26  Ulrich Drepper  <drepper@redhat.com>

* stdio-common/vfscanf.c: If incomplete nan of inf(inity) strings
are found call conv_error and not input_error [PR libc/2669].

* math/bits/mathcalls.h: Mark ceil and floor as const.
Reported by David Mosberger.

2001-11-21  Jim Meyering  <meyering@lucent.com>

* posix/regex.c (iswctype, mbrtowc, wcslen, wcscoll, wcrtomb) [_LIBC]:
Define to be __-prefixed.
Remove unnecessary duplication in `#ifdef _LIBC' blocks.

ChangeLog
manual/stdio.texi
math/bits/mathcalls.h
posix/regex.c
stdio-common/vfscanf.c

index 2b356755ca1a7faf90b49b123f35692697d15b75..cd59685b15af0e22231ed71e32beee7fe5c3e78b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2001-11-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * stdio-common/vfscanf.c: If incomplete nan of inf(inity) strings
+       are found call conv_error and not input_error [PR libc/2669].
+
+       * math/bits/mathcalls.h: Mark ceil and floor as const.
+       Reported by David Mosberger.
+
+2001-11-21  Jim Meyering  <meyering@lucent.com>
+
+       * posix/regex.c (iswctype, mbrtowc, wcslen, wcscoll, wcrtomb) [_LIBC]:
+       Define to be __-prefixed.
+       Remove unnecessary duplication in `#ifdef _LIBC' blocks.
+
 2001-11-26  Andreas Jaeger  <aj@suse.de>
 
        * sysdeps/unix/sysv/linux/hppa/brk.c: Remove __brk_addr alias,
index ce27805557b26c7e8c14d5ecffef657173a87304..da29f4386781b74a0bfc7f018390acca8d9d3635 100644 (file)
@@ -1383,9 +1383,10 @@ If @var{c} is @code{EOF}, @code{ungetc} does nothing and just returns
 The character that you push back doesn't have to be the same as the last
 character that was actually read from the stream.  In fact, it isn't
 necessary to actually read any characters from the stream before
-unreading them with @code{ungetc}!  But that is a strange way to write
-a program; usually @code{ungetc} is used only to unread a character
-that was just read from the same stream.
+unreading them with @code{ungetc}!  But that is a strange way to write a
+program; usually @code{ungetc} is used only to unread a character that
+was just read from the same stream.  The GNU C library supports this
+even on files opened in binary mode, but other systems might not.
 
 The GNU C library only supports one character of pushback---in other
 words, it does not work to call @code{ungetc} twice without doing input
index c1181f737c238fe481f67ea206770abeaec9699c..12fcfce0222d816e353a3ac5fb3ee998416277d2 100644 (file)
@@ -159,13 +159,13 @@ __MATHCALL (cbrt,, (_Mdouble_ __x));
 /* Nearest integer, absolute value, and remainder functions.  */
 
 /* Smallest integral value not less than X.  */
-__MATHCALL (ceil,, (_Mdouble_ __x));
+__MATHCALLX (ceil,, (_Mdouble_ __x), (__const__));
 
 /* Absolute value of X.  */
 __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__));
 
 /* Largest integer not greater than X.  */
-__MATHCALL (floor,, (_Mdouble_ __x));
+__MATHCALLX (floor,, (_Mdouble_ __x), (__const__));
 
 /* Floating-point modulo remainder of X/Y.  */
 __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y));
index 57939500834794ad7cff2aa0946fa60949bbe124..567c7d0b9734f2d24e9fc69143c23f5a4a4b6df3 100644 (file)
 #  define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
 
 #  define btowc __btowc
+#  define iswctype __iswctype
+#  define mbrtowc __mbrtowc
+#  define wcslen __wcslen
+#  define wcscoll __wcscoll
+#  define wcrtomb __wcrtomb
 
 /* We are also using some library internals.  */
 #  include <locale/localeinfo.h>
@@ -1284,11 +1289,7 @@ convert_mbs_to_wcs (dest, src, len, offset_buffer, is_binary)
   for( ; mb_remain > 0 ; ++wc_count, ++pdest, mb_remain -= consumed,
         psrc += consumed)
     {
-#ifdef _LIBC
-      consumed = __mbrtowc (pdest, psrc, mb_remain, &mbs);
-#else
       consumed = mbrtowc (pdest, psrc, mb_remain, &mbs);
-#endif
 
       if (consumed <= 0)
        /* failed to convert. maybe src contains binary data.
@@ -3309,13 +3310,8 @@ PREFIX(regex_compile) (ARG_PREFIX(pattern), ARG_PREFIX(size), syntax, bufp)
 
                         for (ch = 0; ch < 1 << BYTEWIDTH; ++ch)
                          {
-#  ifdef _LIBC
-                           if (__iswctype (__btowc (ch), wt))
-                             SET_LIST_BIT (ch);
-#  else
                            if (iswctype (btowc (ch), wt))
                              SET_LIST_BIT (ch);
-#  endif
 
                            if (translate && (is_upper || is_lower)
                                && (ISUPPER (ch) || ISLOWER (ch)))
@@ -4631,11 +4627,7 @@ truncate_wchar (c)
   mbstate_t state;
   int retval;
   memset (&state, '\0', sizeof (state));
-# ifdef _LIBC
-  retval = __wcrtomb (buf, c, &state);
-# else
   retval = wcrtomb (buf, c, &state);
-# endif
   return retval > 0 ? buf[0] : (unsigned char) c;
 }
 #endif /* WCHAR */
@@ -6435,13 +6427,8 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
                                      & ~(uintptr_t)(__alignof__(wctype_t) - 1);
                wctype = *((wctype_t*)alignedp);
                workp += CHAR_CLASS_SIZE;
-# ifdef _LIBC
-               if (__iswctype((wint_t)c, wctype))
-                 goto char_set_matched;
-# else
                if (iswctype((wint_t)c, wctype))
                  goto char_set_matched;
-# endif
              }
 
             /* match with collating_symbol?  */
@@ -6477,20 +6464,12 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
                for (workp2 = workp + coll_symbol_length ; workp < workp2 ;)
                  {
                    const CHAR_T *backup_d = d, *backup_dend = dend;
-# ifdef _LIBC
-                   length = __wcslen (workp);
-# else
                    length = wcslen (workp);
-# endif
 
                    /* If wcscoll(the collating symbol, whole string) > 0,
                       any substring of the string never match with the
                       collating symbol.  */
-# ifdef _LIBC
-                   if (__wcscoll (workp, d) > 0)
-# else
                    if (wcscoll (workp, d) > 0)
-# endif
                      {
                        workp += length + 1;
                        continue;
@@ -6515,11 +6494,7 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
                        str_buf[i] = TRANSLATE(*d);
                        str_buf[i+1] = '\0';
 
-# ifdef _LIBC
-                       match = __wcscoll (workp, str_buf);
-# else
                        match = wcscoll (workp, str_buf);
-# endif
                        if (match == 0)
                          goto char_set_matched;
 
@@ -6630,20 +6605,12 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
                for (workp2 = workp + equiv_class_length ; workp < workp2 ;)
                  {
                    const CHAR_T *backup_d = d, *backup_dend = dend;
-# ifdef _LIBC
-                   length = __wcslen (workp);
-# else
                    length = wcslen (workp);
-# endif
 
                    /* If wcscoll(the collating symbol, whole string) > 0,
                       any substring of the string never match with the
                       collating symbol.  */
-# ifdef _LIBC
-                   if (__wcscoll (workp, d) > 0)
-# else
                    if (wcscoll (workp, d) > 0)
-# endif
                      {
                        workp += length + 1;
                        break;
@@ -6668,11 +6635,7 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
                        str_buf[i] = TRANSLATE(*d);
                        str_buf[i+1] = '\0';
 
-# ifdef _LIBC
-                       match = __wcscoll (workp, str_buf);
-# else
                        match = wcscoll (workp, str_buf);
-# endif
 
                        if (match == 0)
                          goto char_set_matched;
@@ -6754,13 +6717,8 @@ byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos,
                        range_end_char = str_buf + 4;
                      }
 
-# ifdef _LIBC
-                   if (__wcscoll (range_start_char, str_buf+2) <= 0
-                       && __wcscoll (str_buf+2, range_end_char) <= 0)
-# else
                    if (wcscoll (range_start_char, str_buf+2) <= 0
                        && wcscoll (str_buf+2, range_end_char) <= 0)
-# endif
                      goto char_set_matched;
                  }
              }
index 0b53d7e0b66831886dddea83154012c79fa7b3bf..b4b7d4dff1f90875ac5831fbdd1fb30ea41e0772 100644 (file)
@@ -1596,7 +1596,8 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
              if (width == 0 || inchar () == EOF)
                /* EOF is only an input error before we read any chars.  */
                conv_error ();
-             if (! ISDIGIT (c) && TOLOWER (c) != L_('i'))
+             if (! ISDIGIT (c) && TOLOWER (c) != L_('i')
+                 && TOLOWER (c) != L_('n'))
                {
 #ifdef COMPILE_WSCANF
                  if (c != decimal)
@@ -1654,12 +1655,12 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
              /* Maybe "nan".  */
              ADDW (c);
              if (width == 0 || inchar () == EOF || TOLOWER (c) != L_('a'))
-               input_error ();
+               conv_error ();
              if (width > 0)
                --width;
              ADDW (c);
              if (width == 0 || inchar () == EOF || TOLOWER (c) != L_('n'))
-               input_error ();
+               conv_error ();
              if (width > 0)
                --width;
              ADDW (c);
@@ -1671,12 +1672,12 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
              /* Maybe "inf" or "infinity".  */
              ADDW (c);
              if (width == 0 || inchar () == EOF || TOLOWER (c) != L_('n'))
-               input_error ();
+               conv_error ();
              if (width > 0)
                --width;
              ADDW (c);
              if (width == 0 || inchar () == EOF || TOLOWER (c) != L_('f'))
-               input_error ();
+               conv_error ();
              if (width > 0)
                --width;
              ADDW (c);
@@ -1691,25 +1692,25 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
                      ADDW (c);
                      if (width == 0 || inchar () == EOF
                          || TOLOWER (c) != L_('n'))
-                       input_error ();
+                       conv_error ();
                      if (width > 0)
                        --width;
                      ADDW (c);
                      if (width == 0 || inchar () == EOF
                          || TOLOWER (c) != L_('i'))
-                       input_error ();
+                       conv_error ();
                      if (width > 0)
                        --width;
                      ADDW (c);
                      if (width == 0 || inchar () == EOF
                          || TOLOWER (c) != L_('t'))
-                       input_error ();
+                       conv_error ();
                      if (width > 0)
                        --width;
                      ADDW (c);
                      if (width == 0 || inchar () == EOF
                          || TOLOWER (c) != L_('y'))
-                       input_error ();
+                       conv_error ();
                      if (width > 0)
                        --width;
                      ADDW (c);