]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-setup.c
TODO: Note that '=' should sometimes count from the end of the buffer.
[notmuch] / notmuch-setup.c
index d06fbf80e6aac2e41e80f13abcbf7606f92a9440..622bbaa68343c7633ade295d794e86e66c64d137 100644 (file)
@@ -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);
@@ -156,10 +159,11 @@ notmuch_setup_command (unused (void *ctx),
        notmuch_config_set_database_path (config, absolute_path);
     }
 
-    notmuch_config_save (config);
-
-    if (is_new)
-       welcome_message_post_setup ();
-
-    return 0;
+    if (! notmuch_config_save (config)) {
+       if (is_new)
+         welcome_message_post_setup ();
+       return 0;
+    } else {
+       return 1;
+    }
 }