Make resistant to empty lines
authorH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 27 Apr 2016 19:41:45 +0000 (21:41 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 27 Apr 2016 19:41:45 +0000 (21:41 +0200)
An empty line (emitted by XBoard due to a bug) made HaChu repeat
the previous command. Now the GetLine routine keeps reading until
it gets a non-empty line.

hachu.c

diff --git a/hachu.c b/hachu.c
index 7c672d4..bb26721 100644 (file)
--- a/hachu.c
+++ b/hachu.c
@@ -2792,8 +2792,10 @@ printf("# setup done");fflush(stdout);
       int i, c;\r
       while(1) {\r
         // wait for input, and read it until we have collected a complete line\r
-        for(i = 0; (inBuf[i] = c = getchar()) != '\n'; i++) if(c == EOF || i>7997) exit(0);\r
-        inBuf[i+1] = 0;\r
+        do {\r
+          for(i = 0; (inBuf[i] = c = getchar()) != '\n'; i++) if(c == EOF || i>7997) exit(0);\r
+          inBuf[i+1] = 0;\r
+        } while(!i); // ignore empty lines\r
 \r
         // extract the first word\r
         sscanf(inBuf, "%s", command);\r