static int prompt_keymap(void) { _cleanup_strv_free_ char **kmaps = NULL; int r; if (arg_keymap) return 0; if (!arg_prompt_keymap) return 0; r = get_keymaps(&kmaps); if (r == -ENOENT) /* no keymaps installed */ return r; if (r < 0) return log_error_errno(r, "Failed to read keymaps: %m"); print_welcome(); printf("\nAvailable keymaps:\n\n"); r = show_menu(kmaps, 3, 22, 60); if (r < 0) return r; putchar('\n'); return prompt_loop("Please enter system keymap name or number", kmaps, keymap_is_valid, &arg_keymap); }
static int prompt_timezone(void) { _cleanup_strv_free_ char **zones = NULL; int r; if (arg_timezone) return 0; if (!arg_prompt_timezone) return 0; r = get_timezones(&zones); if (r < 0) return log_error_errno(r, "Cannot query timezone list: %m"); print_welcome(); printf("\nAvailable Time Zones:\n\n"); r = show_menu(zones, 3, 22, 30); if (r < 0) return r; putchar('\n'); r = prompt_loop("Please enter timezone name or number", zones, timezone_is_valid, &arg_timezone); if (r < 0) return r; return 0; }
int main(int argc, char *argv[]) { int c; prog = basename(argv[0]); while ((c = GETOPT(argc, argv, OPTIONS, longopts)) != -1) { switch (c) { case 'p': if (strcmp(optarg, "ssh") == 0) personality = SSH; else if (strcmp(optarg, "serial") == 0) personality = SER; else if (strcmp(optarg, "serial_loggedin") == 0) personality = SER_LOGIN; else usage(); break; default: usage(); } } if (optind < argc) usage(); if (personality == NONE) usage(); prompt_loop(); exit(0); }
/// beep. maybe? //void beep (void); /// A simple line edit (raw mode) int lineedit(const std::string& prompt, std::string& output, mutex * lock, CommandHistory & ch) { output.clear(); this->prompt = prompt; if (!supported_terminal) { print(prompt.c_str()); fflush(dfout_C); // FIXME: what do we do here??? //SDL_mutexV(lock); std::getline(std::cin, output); //SDL_mutexP(lock); return output.size(); } else { int count; if (enable_raw() == -1) return 0; if(state == con_lineedit) return -1; state = con_lineedit; count = prompt_loop(lock,ch); state = con_unclaimed; disable_raw(); print("\n"); if(count != -1) { output = raw_buffer; } return count; } }
int main(int ac, char **av, char **ae) { char **env; int x; env = copy_env(ae, env); x = 0; while (x == 0) env = prompt_loop(env); return (0); }
int main(int argc, char **argv) { struct settings settings; read_settings(&settings); parse_argv(&argc, &argv, &settings); if (argc == 1) { return prompt_loop(&settings); } else { char str[1024]; str[0] = '\0'; for (int i = 1; i < argc; i++) { strcat(str, argv[i]); strcat(str, " "); } int result = 0; char *errp; enum retcode ret; switch (settings.notation) { case PREFIX: ret = pn_eval_str(&result, &errp, str, 0, NULL); break; case POSTFIX: ret = pn_eval_str(&result, &errp, str, PCALC_REVERSED, NULL); break; case INFIX: ret = inf_eval_str(&result, &errp, str, NULL); break; default: assert(0); } if (ret == PCALC_OK) { print_number(&settings, result); return EXIT_SUCCESS; } else { print_error(str, errp, ret); return EXIT_FAILURE; } } }
static int prompt_locale(void) { _cleanup_strv_free_ char **locales = NULL; int r; if (arg_locale || arg_locale_messages) return 0; if (!arg_prompt_locale) return 0; r = get_locales(&locales); if (r < 0) { log_error("Cannot query locales list: %s", strerror(-r)); return r; } print_welcome(); printf("\nAvailable Locales:\n\n"); r = show_menu(locales, 3, 22, 60); if (r < 0) return r; putchar('\n'); r = prompt_loop("Please enter system locale name or number", locales, locale_is_valid, &arg_locale); if (r < 0) return r; if (isempty(arg_locale)) return 0; r = prompt_loop("Please enter system message locale name or number", locales, locale_is_valid, &arg_locale_messages); if (r < 0) return r; return 0; }
int main(int argc, char *argv[]) { prompt_loop(); exit (0); }