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;
}
char *eor; /* end of regexp in expr */
char *return_fname(const char *fname, int len); /* return fname as result */
- char *edit_subst(const char *fname, regmatch_t regs[]);
- int compute_dest_len(const char *fname, regmatch_t regs[]);
+ char *edit_subst(const char *fname, regmatch_t pmatch[]);
+ int compute_dest_len(const char *fname, regmatch_t pmatch[]);
bool extract_regexp(const char *motif);
};