/*
- * 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"
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;
}
/* 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 {
}
/* $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;
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];
}
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 ;
}
}
/* 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;
}
/* 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)
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,