Don't exit on EOF from get_input().
authorJason S. Ninneman <jsn@mbar.us>
Tue, 20 Jun 2017 16:02:34 +0000 (09:02 -0700)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 20 Jun 2017 17:43:46 +0000 (13:43 -0400)
misc.c

diff --git a/misc.c b/misc.c
index 6042f764d53b51adfd62253565dcc102a70ae048..09244625cfe0c536bb866fcf17eccf21356d5e48 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -257,8 +257,8 @@ char* get_input()
             IGNORE(getline(&input, &n, stdin));
         }
 
-        if (input == NULL) // Got EOF; quit.
-            exit(EXIT_SUCCESS);
+        if (input == NULL) // Got EOF; return with it.
+           return(input);
         else if (input[0] == '#') // Ignore comments.
             continue;
         else // We have a 'normal' line; leave the loop.
@@ -290,6 +290,10 @@ bool YES(const char* question, const char* yes_response, const char* no_response
         speak(question);
 
         reply = get_input();
+       if (reply == NULL) {
+         linenoiseFree(reply);
+         exit(EXIT_SUCCESS);
+       }
 
         char* firstword = (char*) xmalloc(strlen(reply)+1);
         sscanf(reply, "%s", firstword);