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] != '_')))