Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/regex sync with FreeBSD:



details:   https://anonhg.NetBSD.org/src/rev/925f6e22db03
branches:  trunk
changeset: 959771:925f6e22db03
user:      christos <christos%NetBSD.org@localhost>
date:      Tue Feb 23 22:14:59 2021 +0000

description:
sync with FreeBSD:
    - NLS support
    - GNU extensions
    - bug fixes

diffstat:

 lib/libc/regex/cclass.h    |   104 --
 lib/libc/regex/cname.h     |   237 ++--
 lib/libc/regex/engine.c    |   811 ++++++++-------
 lib/libc/regex/re_format.7 |   451 ++++++--
 lib/libc/regex/regcomp.c   |  2196 +++++++++++++++++++++++++------------------
 lib/libc/regex/regerror.c  |   142 +-
 lib/libc/regex/regex.3     |   520 ++++++---
 lib/libc/regex/regex2.h    |   195 +-
 lib/libc/regex/regexec.c   |   170 +-
 lib/libc/regex/regfree.c   |    77 +-
 lib/libc/regex/utils.h     |    47 +-
 11 files changed, 2751 insertions(+), 2199 deletions(-)

diffs (truncated from 7109 to 300 lines):

diff -r 2701fbdbabd6 -r 925f6e22db03 lib/libc/regex/cclass.h
--- a/lib/libc/regex/cclass.h   Tue Feb 23 21:59:31 2021 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*     $NetBSD: cclass.h,v 1.7 2003/08/07 16:43:19 agc Exp $   */
-
-/*-
- * Copyright (c) 1992, 1993, 1994
- *     The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Henry Spencer.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)cclass.h    8.3 (Berkeley) 3/20/94
- */
-
-/*-
- * Copyright (c) 1992, 1993, 1994 Henry Spencer.
- *
- * This code is derived from software contributed to Berkeley by
- * Henry Spencer.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)cclass.h    8.3 (Berkeley) 3/20/94
- */
-
-/* character-class table */
-static const struct cclass {
-       const char *name;
-       const char *chars;
-       const char *multis;
-} cclasses[] = {
-       { "alnum",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
-0123456789",                           "" },
-       { "alpha",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
-                                       "" },
-       { "blank",      " \t",          "" },
-       { "cntrl",      "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\
-\25\26\27\30\31\32\33\34\35\36\37\177",        "" },
-       { "digit",      "0123456789",   "" },
-       { "graph",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
-0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
-                                       "" },
-       { "lower",      "abcdefghijklmnopqrstuvwxyz",
-                                       "" },
-       { "print",      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\
-0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ",
-                                       "" },
-       { "punct",      "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
-                                       "" },
-       { "space",      "\t\n\v\f\r ",  "" },
-       { "upper",      "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
-                                       "" },
-       { "xdigit",     "0123456789ABCDEFabcdef",
-                                       "" },
-       { NULL,         0,              "" }
-};
diff -r 2701fbdbabd6 -r 925f6e22db03 lib/libc/regex/cname.h
--- a/lib/libc/regex/cname.h    Tue Feb 23 21:59:31 2021 +0000
+++ b/lib/libc/regex/cname.h    Tue Feb 23 22:14:59 2021 +0000
@@ -1,6 +1,9 @@
-/*     $NetBSD: cname.h,v 1.7 2003/08/07 16:43:19 agc Exp $    */
+/*     $NetBSD: cname.h,v 1.8 2021/02/23 22:14:59 christos Exp $       */
 
 /*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1992, 1993, 1994 Henry Spencer.
  * Copyright (c) 1992, 1993, 1994
  *     The Regents of the University of California.  All rights reserved.
  *
@@ -32,144 +35,108 @@
  * SUCH DAMAGE.
  *
  *     @(#)cname.h     8.3 (Berkeley) 3/20/94
- */
-
-/*-
- * Copyright (c) 1992, 1993, 1994 Henry Spencer.
- *
- * This code is derived from software contributed to Berkeley by
- * Henry Spencer.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)cname.h     8.3 (Berkeley) 3/20/94
+ * $FreeBSD: head/lib/libc/regex/cname.h 326025 2017-11-20 19:49:47Z pfg $
  */
 
 /* character-name table */
-static const struct cname {
+static struct cname {
        const char *name;
        char code;
 } cnames[] = {
-       { "NUL",                        '\0' },
-       { "SOH",                        '\001' },
-       { "STX",                        '\002' },
-       { "ETX",                        '\003' },
-       { "EOT",                        '\004' },
-       { "ENQ",                        '\005' },
-       { "ACK",                        '\006' },
-       { "BEL",                        '\007' },
-       { "alert",                      '\007' },
-       { "BS",                         '\010' },
-       { "backspace",                  '\b' },
-       { "HT",                         '\011' },
-       { "tab",                        '\t' },
-       { "LF",                         '\012' },
-       { "newline",                    '\n' },
-       { "VT",                         '\013' },
-       { "vertical-tab",               '\v' },
-       { "FF",                         '\014' },
-       { "form-feed",                  '\f' },
-       { "CR",                         '\015' },
-       { "carriage-return",            '\r' },
-       { "SO",                         '\016' },
-       { "SI",                         '\017' },
-       { "DLE",                        '\020' },
-       { "DC1",                        '\021' },
-       { "DC2",                        '\022' },
-       { "DC3",                        '\023' },
-       { "DC4",                        '\024' },
-       { "NAK",                        '\025' },
-       { "SYN",                        '\026' },
-       { "ETB",                        '\027' },
-       { "CAN",                        '\030' },
-       { "EM",                         '\031' },
-       { "SUB",                        '\032' },
-       { "ESC",                        '\033' },
-       { "IS4",                        '\034' },
-       { "FS",                         '\034' },
-       { "IS3",                        '\035' },
-       { "GS",                         '\035' },
-       { "IS2",                        '\036' },
-       { "RS",                         '\036' },
-       { "IS1",                        '\037' },
-       { "US",                         '\037' },
-       { "space",                      ' ' },
-       { "exclamation-mark",           '!' },
-       { "quotation-mark",             '"' },
-       { "number-sign",                '#' },
-       { "dollar-sign",                '$' },
-       { "percent-sign",               '%' },
-       { "ampersand",                  '&' },
-       { "apostrophe",                 '\'' },
-       { "left-parenthesis",           '(' },
-       { "right-parenthesis",          ')' },
-       { "asterisk",                   '*' },
-       { "plus-sign",                  '+' },
-       { "comma",                      ',' },
-       { "hyphen",                     '-' },
-       { "hyphen-minus",               '-' },
-       { "period",                     '.' },
-       { "full-stop",                  '.' },
-       { "slash",                      '/' },
-       { "solidus",                    '/' },
-       { "zero",                       '0' },
-       { "one",                        '1' },
-       { "two",                        '2' },
-       { "three",                      '3' },
-       { "four",                       '4' },
-       { "five",                       '5' },
-       { "six",                        '6' },
-       { "seven",                      '7' },
-       { "eight",                      '8' },
-       { "nine",                       '9' },
-       { "colon",                      ':' },
-       { "semicolon",                  ';' },
-       { "less-than-sign",             '<' },
-       { "equals-sign",                '=' },
-       { "greater-than-sign",          '>' },
-       { "question-mark",              '?' },
-       { "commercial-at",              '@' },
-       { "left-square-bracket",        '[' },
-       { "backslash",                  '\\' },
-       { "reverse-solidus",            '\\' },
-       { "right-square-bracket",       ']' },
-       { "circumflex",                 '^' },
-       { "circumflex-accent",          '^' },
-       { "underscore",                 '_' },
-       { "low-line",                   '_' },
-       { "grave-accent",               '`' },
-       { "left-brace",                 '{' },
-       { "left-curly-bracket",         '{' },
-       { "vertical-line",              '|' },
-       { "right-brace",                '}' },
-       { "right-curly-bracket",        '}' },
-       { "tilde",                      '~' },
-       { "DEL",                        '\177' },
-       { NULL,                         0 },
+       {"NUL",                 '\0'},
+       {"SOH",                 '\001'},
+       {"STX",                 '\002'},
+       {"ETX",                 '\003'},
+       {"EOT",                 '\004'},
+       {"ENQ",                 '\005'},
+       {"ACK",                 '\006'},
+       {"BEL",                 '\007'},
+       {"alert",               '\007'},
+       {"BS",                  '\010'},
+       {"backspace",           '\b'},
+       {"HT",                  '\011'},
+       {"tab",                 '\t'},
+       {"LF",                  '\012'},
+       {"newline",             '\n'},
+       {"VT",                  '\013'},
+       {"vertical-tab",        '\v'},
+       {"FF",                  '\014'},
+       {"form-feed",           '\f'},
+       {"CR",                  '\015'},
+       {"carriage-return",     '\r'},
+       {"SO",                  '\016'},
+       {"SI",                  '\017'},
+       {"DLE",                 '\020'},
+       {"DC1",                 '\021'},
+       {"DC2",                 '\022'},
+       {"DC3",                 '\023'},
+       {"DC4",                 '\024'},
+       {"NAK",                 '\025'},
+       {"SYN",                 '\026'},
+       {"ETB",                 '\027'},
+       {"CAN",                 '\030'},



Home | Main Index | Thread Index | Old Index