aboutsummaryrefslogtreecommitdiff
path: root/libiberty/regex.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2001-07-19 00:04:29 +0000
committerDJ Delorie <dj@redhat.com>2001-07-19 00:04:29 +0000
commit6ad8a379a0373bab68623cb568d2a07d96cf5df8 (patch)
treee18e2c1e322451657eedabbe23fccd4068e37780 /libiberty/regex.c
parentad87b05891580e152c110328a2c5a15b135ed246 (diff)
downloadgdb-6ad8a379a0373bab68623cb568d2a07d96cf5df8.zip
gdb-6ad8a379a0373bab68623cb568d2a07d96cf5df8.tar.gz
gdb-6ad8a379a0373bab68623cb568d2a07d96cf5df8.tar.bz2
merge from gcc
Diffstat (limited to 'libiberty/regex.c')
-rw-r--r--libiberty/regex.c34
1 files changed, 24 insertions, 10 deletions
diff --git a/libiberty/regex.c b/libiberty/regex.c
index 642dc05..f067752 100644
--- a/libiberty/regex.c
+++ b/libiberty/regex.c
@@ -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 \