diff --git a/runScript.c b/runScript.c index b9f164f66c037b2096dba4d1d5d27d37de5de2df..dc1077b2629ecb3787be8bdd0559a4e3f30970e9 100644 --- a/runScript.c +++ b/runScript.c @@ -194,7 +194,7 @@ int runScript(const char* filename, const char* args) if ((line_raw = realloc(line_raw, line_raw_size *= 2)) == NULL) goto error; if (fgets(line_raw + len, line_raw_size - len, file) == NULL) break; } - line_raw[--len] = 0; /* get rid of '\n' */ + if (line_raw[len-1] == '\n') line_raw[--len] = 0; /* get rid of '\n' */ if (runScriptDebug) printf("runScript raw line (%ld chars): '%s'\n", len, line_raw); /* expand and check the buffer size (different epics versions write different may number of bytes)*/ @@ -221,7 +221,7 @@ int runScript(const char* filename, const char* args) /* find local variable assignments */ { unsigned int vlen = 0; - while (isalnum(p[vlen]) || p[vlen] == '_') vlen++; + while (isalnum((unsigned char)p[vlen]) || p[vlen] == '_') vlen++; if (p[vlen] == '=') { const char* r;