From: Carl Worth Date: Tue, 1 Dec 2009 16:06:09 +0000 (-0800) Subject: notmuch setup: Exit if EOF is encountered at any prompt. X-Git-Tag: 0.1~274 X-Git-Url: https://git.cworth.org/git?p=notmuch;a=commitdiff_plain;h=eb0cf86c7a9d5cda464d4d36a9cac66f26b5529d notmuch setup: Exit if EOF is encountered at any prompt. If the user is explicitly providing EOF, then terminating the program is the most likely desired thing to do. This also avoids undefined behavior from continuing with an uninitialized response after ignoring the return value of getline(). --- diff --git a/notmuch-setup.c b/notmuch-setup.c index 5ec176d3..622bbaa6 100644 --- a/notmuch-setup.c +++ b/notmuch-setup.c @@ -100,12 +100,15 @@ notmuch_setup_command (unused (void *ctx), unsigned int i; int is_new; -#define prompt(format, ...) \ - do { \ - printf (format, ##__VA_ARGS__); \ - fflush (stdout); \ - getline (&response, &response_size, stdin); \ - chomp_newline (response); \ +#define prompt(format, ...) \ + do { \ + printf (format, ##__VA_ARGS__); \ + fflush (stdout); \ + if (getline (&response, &response_size, stdin) < 0) { \ + printf ("Exiting.\n"); \ + exit (1); \ + } \ + chomp_newline (response); \ } while (0) config = notmuch_config_open (ctx, NULL, &is_new);