From e9dbd8fd2abc4ae340f5d708689a6dcc9a6aeb4b Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Thu, 11 May 2017 20:56:20 +0200 Subject: [PATCH] rc: rework yes/no answer for default value --- src/etc/rc.initial.setlanip | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/etc/rc.initial.setlanip b/src/etc/rc.initial.setlanip index 821e781cf..a08d66d46 100755 --- a/src/etc/rc.initial.setlanip +++ b/src/etc/rc.initial.setlanip @@ -36,26 +36,26 @@ require_once("util.inc"); require_once("services.inc"); require_once("system.inc"); -function console_prompt_for_yn($prompt_text) +function console_prompt_for_yn($prompt_text, $default = '') { global $fp; - $good_answer = false; + $prompt_yn = sprintf('[%s/%s] ', $default == 'y' ? 'Y' : 'y', $default == 'n' ? 'N' : 'n'); - do { - echo "\n" . $prompt_text . " (y/n) "; - $yn = strtolower(chop(fgets($fp))); - if (($yn == "y") || ($yn == "yes")) { - $boolean_answer = true; - $good_answer = true; + while (true) { + echo "\n{$prompt_text} {$prompt_yn}"; + switch (strtolower(chop(fgets($fp)))) { + case 'y': + return true; + case 'n': + return false; + default: + if ($default != '' ) { + return $default == 'y'; + } + break; } - if (($yn == "n") || ($yn == "no")) { - $boolean_answer = false; - $good_answer = true; - } - } while (!$good_answer); - - return $boolean_answer; + } } function console_get_interface_from_ppp($realif)