This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
> 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] != '_')))