40b7eafacdb27705e6f92636f8066a86c2be1c02 kent Sat Aug 17 10:55:43 2019 -0700 Adding warnHandler and abortHandler arguments to strexEvalAsString in preparation for implementing warn() and error() constructs. diff --git src/utils/strexCalc/strexCalc.c src/utils/strexCalc/strexCalc.c index d5547ad..29e71b0 100644 --- src/utils/strexCalc/strexCalc.c +++ src/utils/strexCalc/strexCalc.c @@ -12,34 +12,46 @@ errAbort( "strexCalc - String expression calculator, mostly to test strex expression evaluator.\n" "usage:\n" " strexCalc [variable assignments] expression\n" "command options in strexCalc are used to seed variables so for instance the command\n" " strexCalc a=12 b=13 c=xyz 'a + b + c'\n" "ends up returning 1213xyz\n" ); } char *symLookup(void *symbols, char *key) { return optionVal(key, NULL); } +void warnHandler(char *warning) +/* Print warning message */ +{ +fprintf(stderr, "%s\n", warning); +} + +void abortHandler() +/* Abort */ +{ +errAbort("Aborting"); +} + void strexCalc(char *expression) /* strexCalc - String expression calculator, mostly to test strex expression evaluator.. */ { struct strexParse *parsed = strexParseString(expression, expression, 0, "options", symLookup); if (verboseLevel() > 1) strexParseDump(parsed, 0, stderr); -char *result = strexEvalAsString(parsed, "options", symLookup); +char *result = strexEvalAsString(parsed, "options", symLookup, warnHandler, abortHandler); printf("%s\n", result); } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, NULL); if (argc != 2) usage(); strexCalc(argv[1]); return 0; }