]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/breg.c
update version
[bacula/bacula] / bacula / src / lib / breg.c
index 8afe83472ff6459c61dbe3b0312753a6e71aa1a8..ac48765a1eac455e7f6a8b2e69475052bb247bb9 100644 (file)
@@ -1,38 +1,36 @@
 /*
- * Manipulation routines for BREGEXP list
- *
- *  Eric Bollengier, March 2007
- *
- *  Version $Id$
- *
- */
-/*
-   Bacula\81Â\81® - The Network Backup Solution
+   Bacula® - The Network Backup Solution
 
-   Copyright (C) 2006-2006 Free Software Foundation Europe e.V.
+   Copyright (C) 2006-2011 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
    This program is Free Software; you can redistribute it and/or
-   modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation plus additions
-   that are listed in the file LICENSE.
+   modify it under the terms of version three of the GNU Affero General Public
+   License as published by the Free Software Foundation and included
+   in the file LICENSE.
 
    This program 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
    General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
+   You should have received a copy of the GNU Affero General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Bacula\81Â\81® is a registered trademark of John Walker.
+   Bacula® is a registered trademark of Kern Sibbald.
    The licensor of Bacula is the Free Software Foundation Europe
-   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Z\81Ã\81¼rich,
+   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zuerich,
    Switzerland, email:ftf@fsfeurope.org.
 */
+/*
+ * Manipulation routines for BREGEXP list
+ *
+ *  Eric Bollengier, March 2007
+ *
+ */
 
 
 #include "bacula.h"
@@ -256,19 +254,19 @@ char *BREGEXP::return_fname(const char *fname, int len)
    return result;
 }
 
-int BREGEXP::compute_dest_len(const char *fname, regmatch_t regs[])
+int BREGEXP::compute_dest_len(const char *fname, regmatch_t pmatch[])
 {
    int len=0;
    char *p;
    char *psubst = subst;
    int no;
 
-   if (!fname || !regs) {
+   if (!fname || !pmatch) {
       return 0;
    }
 
    /* match failed ? */
-   if (regs[0].rm_so < 0) {
+   if (pmatch[0].rm_so < 0) {
       return 0;
    }
 
@@ -280,8 +278,8 @@ int BREGEXP::compute_dest_len(const char *fname, regmatch_t regs[])
          /* we check if the back reference exists */
          /* references can not match if we are using (..)? */
 
-         if (regs[no].rm_so >= 0 && regs[no].rm_eo >= 0) { 
-            len += regs[no].rm_eo - regs[no].rm_so;
+         if (pmatch[no].rm_so >= 0 && pmatch[no].rm_eo >= 0) { 
+            len += pmatch[no].rm_eo - pmatch[no].rm_so;
          }
          
       } else {
@@ -290,13 +288,13 @@ int BREGEXP::compute_dest_len(const char *fname, regmatch_t regs[])
    }
 
    /* $0 is replaced by subst */
-   len -= regs[0].rm_eo - regs[0].rm_so;
+   len -= pmatch[0].rm_eo - pmatch[0].rm_so;
    len += strlen(fname) + 1;
 
    return len;
 }
 
-char *BREGEXP::edit_subst(const char *fname, regmatch_t regs[])
+char *BREGEXP::edit_subst(const char *fname, regmatch_t pmatch[])
 {
    int i;
    char *p;
@@ -305,10 +303,10 @@ char *BREGEXP::edit_subst(const char *fname, regmatch_t regs[])
    int len;
 
    /* il faut recopier fname dans dest
-    *  on recopie le debut fname -> regs->start[0]
+    *  on recopie le debut fname -> pmatch->start[0]
     */
    
-   for (i = 0; i < regs[0].rm_so ; i++) {
+   for (i = 0; i < pmatch[0].rm_so ; i++) {
       result[i] = fname[i];
    }
 
@@ -320,9 +318,9 @@ char *BREGEXP::edit_subst(const char *fname, regmatch_t regs[])
          no = *psubst++ - '0';
 
          /* have a back reference ? */
-         if (regs[no].rm_so >= 0 && regs[no].rm_eo >= 0) {
-            len = regs[no].rm_eo - regs[no].rm_so;
-            bstrncpy(result + i, fname + regs[no].rm_so, len + 1);
+         if (pmatch[no].rm_so >= 0 && pmatch[no].rm_eo >= 0) {
+            len = pmatch[no].rm_eo - pmatch[no].rm_so;
+            bstrncpy(result + i, fname + pmatch[no].rm_so, len + 1);
             i += len ;
          }
 
@@ -332,7 +330,7 @@ char *BREGEXP::edit_subst(const char *fname, regmatch_t regs[])
    }
 
    /* we copy what is out of the match */
-   strcpy(result + i, fname + regs[0].rm_eo);
+   strcpy(result + i, fname + pmatch[0].rm_eo);
 
    return result;
 }
@@ -340,7 +338,7 @@ char *BREGEXP::edit_subst(const char *fname, regmatch_t regs[])
 /* escape sep char and \
  * dest must be long enough (src*2+1)
  * return end of the string */
-char *bregexp_escape_string(char *dest, char *src, char sep)
+char *bregexp_escape_string(char *dest, const char *src, const char sep)
 {
    char *ret = dest;
    while (*src)
@@ -357,10 +355,10 @@ char *bregexp_escape_string(char *dest, char *src, char sep)
    return ret; 
 }
 
-static char regexp_sep = '!';
-static char *str_strip_prefix = "!%s!!i";
-static char *str_add_prefix   = "!^!%s!";
-static char *str_add_suffix   = "!([^/])$!$1%s!";
+static const char regexp_sep = '!';
+static const char *str_strip_prefix = "!%s!!i";
+static const char *str_add_prefix   = "!^!%s!";
+static const char *str_add_suffix   = "!([^/])$!$1%s!";
 
 int bregexp_get_build_where_size(char *strip_prefix, 
                                  char *add_prefix,