[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ldm-5.0.8 pqact regular expression substitution problem
- Subject: ldm-5.0.8 pqact regular expression substitution problem
- Date: Fri, 30 Apr 1999 16:58:18 -0600
> Here is another odd thing that I noticed.
> The follwing line in my pqact.conf produced the file names below:
>
> FSL3 ^FILTER.*.(19..)(...)(......).* FILE
/home/ldm/data/acars/\1\2/\3.acars
>
>
> 1999120FILTER.ACARS.UATurbulence.1999120211437.*
> 1999120FILTER.ACARS.UATurbulence.1999120211459.*
> 1999120FILTER.ACARS.UATurbulence.1999120211500.*
> 1999120FILTER.ACARS.UATurbulence.1999120211510.*
That is a new problem since we started using the system <regex.h>
interface instead of libregexp. Attached find a patch to src/pqact/palt.c
which fixes the problem. Thank you for reporting this.
-glenn
Index: palt.c
===================================================================
RCS file: /upc/share/CVS/ldm5/pqact/palt.c,v
retrieving revision 1.107
retrieving revision 1.108
diff -c -r1.107 -r1.108
*** palt.c 1999/04/16 20:23:28 1.107
--- palt.c 1999/04/30 22:51:51 1.108
***************
*** 2,8 ****
* Copyright 1993, University Corporation for Atmospheric Research
* See ../COPYRIGHT file for copying and redistribution conditions.
*/
! /* $Id: palt.c,v 1.107 1999/04/16 20:23:28 davis Exp $ */
/*
*/
--- 2,8 ----
* Copyright 1993, University Corporation for Atmospheric Research
* See ../COPYRIGHT file for copying and redistribution conditions.
*/
! /* $Id: palt.c,v 1.108 1999/04/30 22:51:51 davis Exp $ */
/*
*/
***************
*** 328,334 ****
uerror("regcomp error at line %d: \"%s\"", linenumber,
tabtoks[1]);
goto err;
}
! pal->pmatchp = Alloc(pal->prog.re_nsub, regmatch_t);
if(pal->pmatchp == NULL)
{
regfree(&pal->prog);
--- 328,334 ----
uerror("regcomp error at line %d: \"%s\"", linenumber,
tabtoks[1]);
goto err;
}
! pal->pmatchp = Alloc(pal->prog.re_nsub + 1, regmatch_t);
if(pal->pmatchp == NULL)
{
regfree(&pal->prog);
***************
*** 779,786 ****
*/
if((infop->feedtype & pal->feedtype)
&& ((regexec(&pal->prog, infop->ident,
! pal->prog.re_nsub, pal->pmatchp,
! 0) != REG_NOMATCH)
|| (strcmp(pal->pattern, "^_ELSE_$") == 0
&& did_something == 0
&& infop->ident[0] != '_')))
--- 779,786 ----
*/
if((infop->feedtype & pal->feedtype)
&& ((regexec(&pal->prog, infop->ident,
! pal->prog.re_nsub +1, pal->pmatchp,
! 0) == 0)
|| (strcmp(pal->pattern, "^_ELSE_$") == 0
&& did_something == 0
&& infop->ident[0] != '_')))