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;
 }