98aa95938f3af948c60e20044318595f10fee780 braney Thu May 13 15:22:00 2021 -0700 ongoing work on cart rewrite system diff --git src/hg/testRewrite/testRewrite.c src/hg/testRewrite/testRewrite.c index 1467751..9231041 100644 --- src/hg/testRewrite/testRewrite.c +++ src/hg/testRewrite/testRewrite.c @@ -1,39 +1,43 @@ /* testRewrite - Test harness for cart rewrite tool. */ #include "common.h" #include "linefile.h" #include "hash.h" #include "options.h" -#include <regex.h> +#include "cartRewrite.h" void usage() /* Explain usage and exit. */ { errAbort( "testRewrite - Test harness for cart rewrite tool\n" "usage:\n" - " testRewrite script input output\n" + " testRewrite input output\n" "options:\n" - " -xxx=XXX\n" + " -script=sed-like script\n" ); } /* Command line validation table. */ static struct optionSpec options[] = { + {"script", OPTION_STRING}, {NULL, 0}, }; +char *script; + +#ifdef NOTNOW struct snippet { struct snippet *next; int num; char *precursor; int precursorLen; }; struct edit { struct edit *next; regex_t *compiledExp; struct snippet *snippets; }; @@ -171,54 +175,67 @@ return cloneString(buffer); } void doEdits(struct edit *edits, char *input, char *outputFile) { FILE *f = mustOpen(outputFile, "w"); char *outString = input; for(; edits; edits = edits->next) outString = doOneEdit(edits, outString); fputs(outString, f); fclose(f); } +#endif -void testRewrite(char *script, char *inputFile, char *outputFile) +void testRewrite(char *inputFile, char *outputFile) /* testRewrite - Test harness for cart rewrite tool. */ { +/* +if (script) + { struct lineFile *lf = lineFileOpen(script, TRUE); char *start; int size; struct edit *edits = NULL; while (lineFileNext(lf, &start, &size)) { slAddHead(&edits, parseEdit(start, script, lf->lineIx)); } - slReverse(&edits); - lineFileClose(&lf); + } +else +*/ + int count = 0; -lf = lineFileOpen(inputFile, TRUE); + char *start; + int size; +FILE *f = mustOpen(outputFile, "w"); +struct lineFile * lf = lineFileOpen(inputFile, TRUE); while (lineFileNext(lf, &start, &size)) { if (count) errAbort("input should have only one line with name=value pairs separated by ampersands."); - doEdits(edits, start, outputFile); +// doEdits(edits, start, outputFile); + char *output = regexEdit(cartRewrites[0].editArray,cartRewrites[0].numEdits , start, FALSE); + fputs(output, f); + count++; } } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); -if (argc != 4) +if (argc != 3) usage(); -testRewrite(argv[1], argv[2], argv[3]); +script = optionVal("script", NULL); +testRewrite(argv[1], argv[2]); return 0; }