annotate lib/regex.c @ 17363:5a51fb7777a9

sys_select, sys_time: port 2013-01-30 Solaris 2.6 fix to Cygwin Problem reported by Marco Atzeri in <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00000.html>. * lib/sys_select.in.h [HAVE_SYS_SELECT_H && _CYGWIN_SYS_TIME_H]: Simply delegate to the system <sys/select.h> in this case too. Also, pay attention to _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H only if OSF/1, since otherwise Cygwin breaks, and it doesn't seem to be needed on Solaris either. * lib/sys_time.in.h [_CYGWIN_SYS_TIME_H]: Simply delgate to the system <sys/time.h> in this case.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 19 Mar 2013 09:08:47 -0700
parents e27f620a8d36
children 344018b6e5d7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
1 /* Extended regular expression matching and search library.
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 17233
diff changeset
2 Copyright (C) 2002-2013 Free Software Foundation, Inc.
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
3 This file is part of the GNU C Library.
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
4 Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
1283
1630d40799c0 update from libc/copies
Jim Meyering <jim@meyering.net>
parents: 1152
diff changeset
5
17233
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
6 The GNU C Library is free software; you can redistribute it and/or
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
7 modify it under the terms of the GNU Lesser General Public
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
8 License as published by the Free Software Foundation; either
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
9 version 2.1 of the License, or (at your option) any later version.
4020
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 3966
diff changeset
10
17233
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
11 The GNU C Library is distributed in the hope that it will be useful,
1283
1630d40799c0 update from libc/copies
Jim Meyering <jim@meyering.net>
parents: 1152
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
17233
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
14 Lesser General Public License for more details.
4020
7158a1db8695 change license to gpl.
Karl Berry <karl@freefriends.org>
parents: 3966
diff changeset
15
17233
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
16 You should have received a copy of the GNU Lesser General Public
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
17 License along with the GNU C Library; if not, see
b6b08f30c630 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16771
diff changeset
18 <http://www.gnu.org/licenses/>. */
14
3eda3e12f7ba Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19
16361
ab59b5080051 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16358
diff changeset
20 #ifndef _LIBC
ab59b5080051 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16358
diff changeset
21 # include <config.h>
ab59b5080051 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16358
diff changeset
22
16771
31fd5d8301d0 regex: correct #pragma guard expression
Jim Meyering <meyering@redhat.com>
parents: 16366
diff changeset
23 # if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
31fd5d8301d0 regex: correct #pragma guard expression
Jim Meyering <meyering@redhat.com>
parents: 16366
diff changeset
24 # pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
31fd5d8301d0 regex: correct #pragma guard expression
Jim Meyering <meyering@redhat.com>
parents: 16366
diff changeset
25 # endif
16361
ab59b5080051 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16358
diff changeset
26 # if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
17336
e27f620a8d36 regex: ignore old-style-definition warnings
Paul Eggert <eggert@cs.ucla.edu>
parents: 17249
diff changeset
27 # pragma GCC diagnostic ignored "-Wold-style-definition"
16361
ab59b5080051 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16358
diff changeset
28 # pragma GCC diagnostic ignored "-Wtype-limits"
ab59b5080051 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16358
diff changeset
29 # endif
ab59b5080051 regex: merge glibc changes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16358
diff changeset
30 #endif
127
db319931184f merge with 1.8b
Jim Meyering <jim@meyering.net>
parents: 103
diff changeset
31
16358
a712776b11ce maint: spelling fixes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16201
diff changeset
32 /* Make sure no one compiles this code with a C++ compiler. */
6726
af9abbcedfbd Merge regex changes from libc, removing some of our
Paul Eggert <eggert@cs.ucla.edu>
parents: 6259
diff changeset
33 #if defined __cplusplus && defined _LIBC
af9abbcedfbd Merge regex changes from libc, removing some of our
Paul Eggert <eggert@cs.ucla.edu>
parents: 6259
diff changeset
34 # error "This is C code, use a C compiler"
af9abbcedfbd Merge regex changes from libc, removing some of our
Paul Eggert <eggert@cs.ucla.edu>
parents: 6259
diff changeset
35 #endif
af9abbcedfbd Merge regex changes from libc, removing some of our
Paul Eggert <eggert@cs.ucla.edu>
parents: 6259
diff changeset
36
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
37 #ifdef _LIBC
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
38 /* We have to keep the namespace clean. */
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
39 # define regfree(preg) __regfree (preg)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
40 # define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
41 # define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
42 # define regerror(errcode, preg, errbuf, errbuf_size) \
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
43 __regerror(errcode, preg, errbuf, errbuf_size)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
44 # define re_set_registers(bu, re, nu, st, en) \
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
45 __re_set_registers (bu, re, nu, st, en)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
46 # define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
47 __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
48 # define re_match(bufp, string, size, pos, regs) \
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
49 __re_match (bufp, string, size, pos, regs)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
50 # define re_search(bufp, string, size, startpos, range, regs) \
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
51 __re_search (bufp, string, size, startpos, range, regs)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
52 # define re_compile_pattern(pattern, length, bufp) \
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
53 __re_compile_pattern (pattern, length, bufp)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
54 # define re_set_syntax(syntax) __re_set_syntax (syntax)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
55 # define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
56 __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
57 # define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
3157
d61e5442f79e Update from libc.
Jim Meyering <jim@meyering.net>
parents: 2927
diff changeset
58
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
59 # include "../locale/localeinfo.h"
3157
d61e5442f79e Update from libc.
Jim Meyering <jim@meyering.net>
parents: 2927
diff changeset
60 #endif
14
3eda3e12f7ba Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
61
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
62 /* On some systems, limits.h sets RE_DUP_MAX to a lower value than
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
63 GNU regex allows. Include it before <regex.h>, which correctly
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
64 #undefs RE_DUP_MAX and sets it to the right value. */
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
65 #include <limits.h>
14
3eda3e12f7ba Initial revision
Jim Meyering <jim@meyering.net>
parents:
diff changeset
66
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
67 #include <regex.h>
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
68 #include "regex_internal.h"
3336
443925e82080 update from libc
Jim Meyering <jim@meyering.net>
parents: 3299
diff changeset
69
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
70 #include "regex_internal.c"
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
71 #include "regcomp.c"
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
72 #include "regexec.c"
3299
a733f1450c55 Update from glibc.
Jim Meyering <jim@meyering.net>
parents: 3278
diff changeset
73
5968
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
74 /* Binary backward compatibility. */
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
75 #if _LIBC
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
76 # include <shlib-compat.h>
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
77 # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
78 link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.")
541fed6ae301 * modules/regex (Files): Add lib/regex_internal.c,
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
79 int re_max_failures = 2000;
1283
1630d40799c0 update from libc/copies
Jim Meyering <jim@meyering.net>
parents: 1152
diff changeset
80 # endif
988
ba13cef00d11 replace with new version from libc
Jim Meyering <jim@meyering.net>
parents: 693
diff changeset
81 #endif