]> mj.ucw.cz Git - libucw.git/blobdiff - lib/regex.c
Branched off v3.12.1.
[libucw.git] / lib / regex.c
index f952333e7e061aabd30dd5013394d32b86017cd1..270fb590b5e7fc8873afefc2d5c898c97a1d1287 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- *     Sherlock Library -- Interface to Regular Expression Libraries
+ *     UCW Library -- Interface to Regular Expression Libraries
  *
  *     (c) 1997--2004 Martin Mares <mj@ucw.cz>
  *     (c) 2001 Robert Spalek <robert@ucw.cz>
  *
  *     (c) 1997--2004 Martin Mares <mj@ucw.cz>
  *     (c) 2001 Robert Spalek <robert@ucw.cz>
@@ -14,7 +14,6 @@
 
 #include <stdio.h>
 #include <string.h>
 
 #include <stdio.h>
 #include <string.h>
-#include <stdlib.h>
 
 #if defined(CONFIG_OWN_REGEX) || defined(CONFIG_POSIX_REGEX)
 
 
 #if defined(CONFIG_OWN_REGEX) || defined(CONFIG_POSIX_REGEX)
 
@@ -32,14 +31,14 @@ struct regex {
 };
 
 regex *
 };
 
 regex *
-rx_compile(byte *p, int icase)
+rx_compile(const char *p, int icase)
 {
   regex *r = xmalloc_zero(sizeof(regex));
 
   int err = regcomp(&r->rx, p, REG_EXTENDED | (icase ? REG_ICASE : 0));
   if (err)
     {
 {
   regex *r = xmalloc_zero(sizeof(regex));
 
   int err = regcomp(&r->rx, p, REG_EXTENDED | (icase ? REG_ICASE : 0));
   if (err)
     {
-      byte msg[256];
+      char msg[256];
       regerror(err, &r->rx, msg, sizeof(msg)-1);
       /* regfree(&r->rx) not needed */
       die("Error parsing regular expression `%s': %s", p, msg);
       regerror(err, &r->rx, msg, sizeof(msg)-1);
       /* regfree(&r->rx) not needed */
       die("Error parsing regular expression `%s': %s", p, msg);
@@ -55,7 +54,7 @@ rx_free(regex *r)
 }
 
 int
 }
 
 int
-rx_match(regex *r, byte *s)
+rx_match(regex *r, const char *s)
 {
   int err = regexec(&r->rx, s, 10, r->matches, 0);
   if (!err)
 {
   int err = regexec(&r->rx, s, 10, r->matches, 0);
   if (!err)
@@ -72,9 +71,9 @@ rx_match(regex *r, byte *s)
 }
 
 int
 }
 
 int
-rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen)
+rx_subst(regex *r, const char *by, const char *src, char *dest, uns destlen)
 {
 {
-  byte *end = dest + destlen - 1;
+  char *end = dest + destlen - 1;
 
   if (!rx_match(r, src))
     return 0;
 
   if (!rx_match(r, src))
     return 0;
@@ -89,7 +88,7 @@ rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen)
              uns j = *by++ - '0';
              if (j <= r->rx.re_nsub && r->matches[j].rm_so >= 0)
                {
              uns j = *by++ - '0';
              if (j <= r->rx.re_nsub && r->matches[j].rm_so >= 0)
                {
-                 byte *s = src + r->matches[j].rm_so;
+                 const char *s = src + r->matches[j].rm_so;
                  uns i = r->matches[j].rm_eo - r->matches[j].rm_so;
                  if (dest + i >= end)
                    return -1;
                  uns i = r->matches[j].rm_eo - r->matches[j].rm_so;
                  if (dest + i >= end)
                    return -1;
@@ -123,7 +122,7 @@ struct regex {
 };
 
 regex *
 };
 
 regex *
-rx_compile(byte *p, int icase)
+rx_compile(const char *p, int icase)
 {
   const char *err;
   int errpos, match_array_size, eno;
 {
   const char *err;
   int errpos, match_array_size, eno;
@@ -153,7 +152,7 @@ rx_free(regex *r)
 }
 
 int
 }
 
 int
-rx_match(regex *r, byte *s)
+rx_match(regex *r, const char *s)
 {
   int len = str_len(s);
   int err = pcre_exec(r->rx, r->extra, s, len, 0, 0, r->matches, r->match_array_size);
 {
   int len = str_len(s);
   int err = pcre_exec(r->rx, r->extra, s, len, 0, 0, r->matches, r->match_array_size);
@@ -172,9 +171,9 @@ rx_match(regex *r, byte *s)
 }
 
 int
 }
 
 int
-rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen)
+rx_subst(regex *r, const char *by, const char *src, char *dest, uns destlen)
 {
 {
-  byte *end = dest + destlen - 1;
+  char *end = dest + destlen - 1;
 
   if (!rx_match(r, src))
     return 0;
 
   if (!rx_match(r, src))
     return 0;
@@ -189,7 +188,7 @@ rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen)
              uns j = *by++ - '0';
              if (j < r->real_matches && r->matches[2*j] >= 0)
                {
              uns j = *by++ - '0';
              if (j < r->real_matches && r->matches[2*j] >= 0)
                {
-                 byte *s = src + r->matches[2*j];
+                 char *s = src + r->matches[2*j];
                  uns i = r->matches[2*j+1] - r->matches[2*j];
                  if (dest + i >= end)
                    return -1;
                  uns i = r->matches[2*j+1] - r->matches[2*j];
                  if (dest + i >= end)
                    return -1;
@@ -228,7 +227,7 @@ struct regex {
 };
 
 regex *
 };
 
 regex *
-rx_compile(byte *p, int icase)
+rx_compile(const char *p, int icase)
 {
   regex *r = xmalloc_zero(sizeof(regex));
   const char *msg;
 {
   regex *r = xmalloc_zero(sizeof(regex));
   const char *msg;
@@ -262,7 +261,7 @@ rx_free(regex *r)
 }
 
 int
 }
 
 int
-rx_match(regex *r, byte *s)
+rx_match(regex *r, const char *s)
 {
   int len = strlen(s);
 
 {
   int len = strlen(s);
 
@@ -275,9 +274,9 @@ rx_match(regex *r, byte *s)
 }
 
 int
 }
 
 int
-rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen)
+rx_subst(regex *r, const char *by, const char *src, char *dest, uns destlen)
 {
 {
-  byte *end = dest + destlen - 1;
+  char *end = dest + destlen - 1;
 
   if (!rx_match(r, src))
     return 0;
 
   if (!rx_match(r, src))
     return 0;
@@ -292,7 +291,7 @@ rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen)
              uns j = *by++ - '0';
              if (j < r->regs.num_regs)
                {
              uns j = *by++ - '0';
              if (j < r->regs.num_regs)
                {
-                 byte *s = src + r->regs.start[j];
+                 const char *s = src + r->regs.start[j];
                  uns i = r->regs.end[j] - r->regs.start[j];
                  if (r->regs.start[j] > r->len_cache || r->regs.end[j] > r->len_cache)
                    return -1;
                  uns i = r->regs.end[j] - r->regs.start[j];
                  if (r->regs.start[j] > r->len_cache || r->regs.end[j] > r->len_cache)
                    return -1;
@@ -320,7 +319,7 @@ rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen)
 int main(int argc, char **argv)
 {
   regex *r;
 int main(int argc, char **argv)
 {
   regex *r;
-  byte buf1[4096], buf2[4096];
+  char buf1[4096], buf2[4096];
   int opt_i = 0;
 
   if (!strcmp(argv[1], "-i"))
   int opt_i = 0;
 
   if (!strcmp(argv[1], "-i"))