From cb919be233d7c85a02b8cfffd2b80cdd14b391b0 Mon Sep 17 00:00:00 2001 From: Nicolai Ruckel Date: Mon, 7 Sep 2020 13:21:47 +0200 Subject: [PATCH] Accept whole answers in interactice questions (#511) Fixes #509 --- src/alire/alire-utils-user_input.adb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/alire/alire-utils-user_input.adb b/src/alire/alire-utils-user_input.adb index 935fa9a7..a6b121fb 100644 --- a/src/alire/alire-utils-user_input.adb +++ b/src/alire/alire-utils-user_input.adb @@ -15,6 +15,16 @@ package body Alire.Utils.User_Input is No => 'N', Always => 'A'); + ----------------- + -- Answer_Kind -- + ----------------- + + function Answer_String (Kind : Answer_Kind) return String + is (case Kind is + when Yes => "yes", + when No => "no", + when Always => "always"); + ------------ -- Is_TTY -- ------------ @@ -115,6 +125,16 @@ package body Alire.Utils.User_Input is end loop; end if; + --- Check if the user input the whole answer + for Kind in Answer_Kind loop + if Valid (Kind) + and then + Char.To_Lower (Input) = Answer_String (Kind) + then + return Kind; + end if; + end loop; + TIO.Put_Line ("Invalid answer."); end; end loop; -- 2.39.5