return 0;
}
+bool any_key_to_proceed(void) {
+ char key = 0;
+ bool need_nl = true;
+
+ /*
+ * Insert a new line here as well as to when the user inputs, as this is also used during the
+ * boot up sequence when status messages may be interleaved with the current program output.
+ * This ensures that the status messages aren't appended on the same line as this message.
+ */
+ puts("-- Press any key to proceed --");
+
+ (void) read_one_char(stdin, &key, USEC_INFINITY, &need_nl);
+
+ if (need_nl)
+ putchar('\n');
+
+ return key != 'q';
+}
+
int open_terminal(const char *name, int mode) {
_cleanup_close_ int fd = -EBADF;
unsigned c = 0;
int read_one_char(FILE *f, char *ret, usec_t timeout, bool *need_nl);
int ask_char(char *ret, const char *replies, const char *text, ...) _printf_(3, 4);
int ask_string(char **ret, const char *text, ...) _printf_(2, 3);
+bool any_key_to_proceed(void);
int vt_disallocate(const char *name);
STATIC_DESTRUCTOR_REGISTER(arg_kernel_cmdline, freep);
STATIC_DESTRUCTOR_REGISTER(arg_image_policy, image_policy_freep);
-static bool press_any_key(void) {
- char k = 0;
- bool need_nl = true;
-
- puts("-- Press any key to proceed --");
-
- (void) read_one_char(stdin, &k, USEC_INFINITY, &need_nl);
-
- if (need_nl)
- putchar('\n');
-
- return k != 'q';
-}
-
static void print_welcome(int rfd) {
_cleanup_free_ char *pretty_name = NULL, *os_name = NULL, *ansi_color = NULL;
static bool done = false;
printf("\nPlease configure your system!\n\n");
- press_any_key();
+ any_key_to_proceed();
done = true;
}
/* on the first screen we reserve 2 extra lines for the title */
if (i % break_lines == break_modulo) {
- if (!press_any_key())
+ if (!any_key_to_proceed())
return 0;
}
}
return 0;
}
+ any_key_to_proceed();
+
r = acquire_bus(&bus);
if (r < 0)
return r;