]> git.saurik.com Git - apple/libc.git/blobdiff - regex/FreeBSD/regerror.c
Libc-1439.100.3.tar.gz
[apple/libc.git] / regex / FreeBSD / regerror.c
index f2a21163d59e6c6e2bc9ff57deaa97680aece0db..a22066c6e4c4102f129e6a165a561dc5663f9370 100644 (file)
  * 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.
@@ -41,7 +37,7 @@
 static char sccsid[] = "@(#)regerror.c 8.4 (Berkeley) 3/20/94";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/regex/regerror.c,v 1.8 2002/10/02 07:49:35 mike Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/regex/regerror.c,v 1.11 2007/06/11 03:05:54 delphij Exp $");
 
 #include <sys/types.h>
 #include <stdio.h>
@@ -81,13 +77,14 @@ static char *regatoi(const regex_t *preg, char *localbuf);
  = #define     REG_EMPTY       14
  = #define     REG_ASSERT      15
  = #define     REG_INVARG      16
+ = #define     REG_ILLSEQ      17
  = #define     REG_ATOI        255     // convert name to number (!)
  = #define     REG_ITOA        0400    // convert number to name (!)
  */
-static struct rerr {
+static const struct rerr {
        int code;
-       char *name;
-       char *explain;
+       const char *name;
+       const char *explain;
 } rerrs[] = {
        {REG_NOMATCH,   "REG_NOMATCH",  "regexec() failed to match"},
        {REG_BADPAT,    "REG_BADPAT",   "invalid regular expression"},
@@ -105,6 +102,7 @@ static struct rerr {
        {REG_EMPTY,     "REG_EMPTY",    "empty (sub)expression"},
        {REG_ASSERT,    "REG_ASSERT",   "\"can't happen\" -- you found a bug"},
        {REG_INVARG,    "REG_INVARG",   "invalid argument to regex routine"},
+       {REG_ILLSEQ,    "REG_ILLSEQ",   "illegal byte sequence"},
        {0,             "",             "*** unknown regexp error code ***"}
 };
 
@@ -114,16 +112,15 @@ static struct rerr {
  */
 /* ARGSUSED */
 size_t
-regerror(errcode, preg, errbuf, errbuf_size)
-int errcode;
-const regex_t * __restrict preg;
-char * __restrict errbuf;
-size_t errbuf_size;
+regerror(int errcode,
+        const regex_t * __restrict preg,
+        char * __restrict errbuf,
+        size_t errbuf_size)
 {
-       struct rerr *r;
+       const struct rerr *r;
        size_t len;
        int target = errcode &~ REG_ITOA;
-       char *s;
+       const char *s;
        char convbuf[50];
 
        if (errcode == REG_ATOI)
@@ -162,11 +159,9 @@ size_t errbuf_size;
  == static char *regatoi(const regex_t *preg, char *localbuf);
  */
 static char *
-regatoi(preg, localbuf)
-const regex_t *preg;
-char *localbuf;
+regatoi(const regex_t *preg, char *localbuf)
 {
-       struct rerr *r;
+       const struct rerr *r;
 
        for (r = rerrs; r->code != 0; r++)
                if (strcmp(r->name, preg->re_endp) == 0)