From a720dfa30a2dd7d06c2eb8fae462c79b8dce4f2f Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Thu, 16 Dec 1999 18:02:14 +0000 Subject: [PATCH] Treat EOF at whatnow prompt like 'x' instead of looping. --- visudo.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/visudo.c b/visudo.c index f4bf564ad..8d51b7c15 100644 --- a/visudo.c +++ b/visudo.c @@ -428,17 +428,21 @@ whatnow() for (c = choice; c != '\n' && c != EOF;) c = getchar(); - if (choice == 'e' || choice == 'x' || choice == 'Q') - break; - else { - (void) puts("Options are:"); - (void) puts(" (e)dit sudoers file again"); - (void) puts(" e(x)it without saving changes to sudoers file"); - (void) puts(" (Q)uit and save changes to sudoers file (DANGER!)\n"); + switch (choice) { + case EOF: + choice = 'x'; + /* FALLTHROUGH */ + case 'e': + case 'x': + case 'Q': + return(choice); + default: + (void) puts("Options are:"); + (void) puts(" (e)dit sudoers file again"); + (void) puts(" e(x)it without saving changes to sudoers file"); + (void) puts(" (Q)uit and save changes to sudoers file (DANGER!)\n"); } } - - return(choice); } /*