merge from glibc
authorDJ Delorie <dj@gcc.gnu.org>
Wed, 18 Jul 2001 23:40:00 +0000 (19:40 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Wed, 18 Jul 2001 23:40:00 +0000 (19:40 -0400)
From-SVN: r44138

include/ChangeLog
include/xregex2.h
libiberty/ChangeLog
libiberty/regex.c

index 096599e7827b71dc7fef9c330f20267a47b6ed11..54e7051021f33e1ac64f4c9964fde8d5ae48581f 100644 (file)
@@ -1,3 +1,7 @@
+2001-07-18  Andreas Jaeger  <aj@suse.de>
+
+       * xregex2.h: Place under LGPL version 2.1.
+
 2001-07-10  Jeff Johnston  <jjohnstn@redhat.com>
 
        * xregex.h: New file to support libiberty regex.
index 63c2fef6967b2c87a68eeefd79e7abd444d05382..b9c2d97cce1b6e59ee43ed64d374cddfed466f81 100644 (file)
@@ -1,24 +1,23 @@
 /* Definitions for data structures and routines for the regular
    expression library, version 0.12.
    Copyright (C) 1985,1989-1993,1995-1998, 2000 Free Software Foundation, Inc.
-
    This file is part of the GNU C Library.  Its master source is NOT part of
    the C library, however.  The master source lives in /gd/gnu/lib.
 
    The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _REGEX_H
 #define _REGEX_H 1
index 9df787b63eb90ec9140de76f87a18e661cee27cb..1b3ce6a55ed38641b9bb39030f7b682d48f366dc 100644 (file)
@@ -1,3 +1,17 @@
+2001-07-18  Andreas Schwab  <schwab@suse.de>
+
+       * regex.c (WORDCHAR_P) [WCHAR]: Also return true for the
+       underscore character.
+
+2001-07-18  Ulrich Drepper  <drepper@redhat.com>
+
+       * regex.c: Limit string length printed in debug messages to 100
+       chars.
+
+2001-07-18  Andreas Jaeger  <aj@suse.de>
+
+       * regex.c: Place under LGPL version 2.1.
+
 2001-07-10  Jeff Johnston  <jjohnstn@redhat.com>
 
        * Makefile.in: Add support for regex code.
index 642dc05f1f53ad848f249c168c4fe896f2110e96..f06775237913328cb8afea7d0e37b0e97d61d53b 100644 (file)
@@ -3,26 +3,28 @@
    (Implements POSIX draft P1003.2/D11.2, except for some of the
    internationalization features.)
    Copyright (C) 1993-1999, 2000, 2001 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
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* This file has been modified for usage in libiberty.  It includes "xregex.h"
    instead of <regex.h>.  The "xregex.h" header file renames all external
    routines with an "x" prefix so they do not collide with the native regex
    routines or with other components regex routines. */
+/* AIX requires this to be the first thing in the file. */
 #if defined _AIX && !defined REGEX_MALLOC
   #pragma alloca
 #endif
@@ -1184,6 +1186,8 @@ PREFIX(print_double_string) (where, string1, size1, string2, size2)
     printf ("(null)");
   else
     {
+      int cnt;
+
       if (FIRST_STRING_P (where))
         {
           for (this_char = where - string1; this_char < size1; this_char++)
@@ -1192,8 +1196,16 @@ PREFIX(print_double_string) (where, string1, size1, string2, size2)
           where = string2;
         }
 
+      cnt = 0;
       for (this_char = where - string2; this_char < size2; this_char++)
-        PUT_CHAR (string2[this_char]);
+       {
+         PUT_CHAR (string2[this_char]);
+         if (++cnt > 100)
+           {
+             fputs ("...", stdout);
+             break;
+           }
+       }
     }
 }
 
@@ -5339,7 +5351,9 @@ PREFIX(re_search_2) (bufp, string1, size1, string2, size2, startpos, range,
 /* Use internationalized API instead of SYNTAX.  */
 # define WORDCHAR_P(d)                                                 \
   (iswalnum ((wint_t)((d) == end1 ? *string2                           \
-           : (d) == string2 - 1 ? *(end1 - 1) : *(d))) != 0)
+           : (d) == string2 - 1 ? *(end1 - 1) : *(d))) != 0            \
+   || ((d) == end1 ? *string2                                          \
+       : (d) == string2 - 1 ? *(end1 - 1) : *(d)) == L'_')
 #else /* BYTE */
 # define WORDCHAR_P(d)                                                 \
   (SYNTAX ((d) == end1 ? *string2                                      \