From 2abedd3118b6fdb514516bde8a67cb400888faa5 Mon Sep 17 00:00:00 2001
From: Dirk Zimoch <dirk.zimoch@psi.ch>
Date: Tue, 5 Jan 2016 14:52:35 +0100
Subject: [PATCH] remove last char in line only if it is '\n'

---
 runScript.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/runScript.c b/runScript.c
index b9f164f6..dc1077b2 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;
-- 
GitLab