515414f4cb5b0f71fc8f3c853c686fa5f10cd9b6 kent Tue Aug 20 10:04:53 2019 -0700 Making symbol built in return empty result on empty input. diff --git src/lib/strex.c src/lib/strex.c index e77ee86..dcc0584 100644 --- src/lib/strex.c +++ src/lib/strex.c @@ -1457,30 +1457,32 @@ } static char *stripAll(char *in, char *toRemove, struct lm *lm) /* Remove every occurrence of any of the chars in toRemove from in. */ { char *result = lmCloneString(lm, in); // Move to local memory char c, *s = toRemove; while ((c = *s++) != 0) stripChar(result, c); return result; } static char *symbolify(char *prefix, char *original, struct lm *lm) /* Convert original to something could use as a C language symbol with dots maybe. */ { +if (isEmpty(original)) + return original; int prefixSize = strlen(prefix); int originalSize = strlen(original); int allocSize = prefixSize + 2*originalSize + 1; // worse case all hexed char *result = lmAlloc(lm, allocSize); // Move to local memory strcpy(result, prefix); char *in = skipLeadingSpaces(original); char *out = result + prefixSize; unsigned char c; while ((c = *in++) != 0) { if (isspace(c) || c == '-' || c == '.') *out++ = '_'; else if (isalnum(c) || c == '_') *out++ = c; else