]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
firstboot: actually accept empty input to mean skip 13080/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 16 Jul 2019 16:48:15 +0000 (18:48 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 17 Jul 2019 10:07:19 +0000 (12:07 +0200)
We'd loop if the input was empty. We need to return to the caller.

src/basic/terminal-util.c

index 76d6d1a20c9e011ae5c1c14a2e1ac3549c2319d8..bd4944c9684bad08c3531c565614daa2104b4e58 100644 (file)
@@ -200,38 +200,33 @@ int ask_char(char *ret, const char *replies, const char *fmt, ...) {
 }
 
 int ask_string(char **ret, const char *text, ...) {
+        _cleanup_free_ char *line = NULL;
+        va_list ap;
         int r;
 
         assert(ret);
         assert(text);
 
-        for (;;) {
-                _cleanup_free_ char *line = NULL;
-                va_list ap;
+        if (colors_enabled())
+                fputs(ANSI_HIGHLIGHT, stdout);
 
-                if (colors_enabled())
-                        fputs(ANSI_HIGHLIGHT, stdout);
+        va_start(ap, text);
+        vprintf(text, ap);
+        va_end(ap);
 
-                va_start(ap, text);
-                vprintf(text, ap);
-                va_end(ap);
+        if (colors_enabled())
+                fputs(ANSI_NORMAL, stdout);
 
-                if (colors_enabled())
-                        fputs(ANSI_NORMAL, stdout);
+        fflush(stdout);
 
-                fflush(stdout);
-
-                r = read_line(stdin, LONG_LINE_MAX, &line);
-                if (r < 0)
-                        return r;
-                if (r == 0)
-                        return -EIO;
+        r = read_line(stdin, LONG_LINE_MAX, &line);
+        if (r < 0)
+                return r;
+        if (r == 0)
+                return -EIO;
 
-                if (!isempty(line)) {
-                        *ret = TAKE_PTR(line);
-                        return 0;
-                }
-        }
+        *ret = TAKE_PTR(line);
+        return 0;
 }
 
 int reset_terminal_fd(int fd, bool switch_to_text) {