[lvm-devel] master - prompt: display 'n' for EOF

Zdenek Kabelac zkabelac at fedoraproject.org
Fri Jul 11 11:34:09 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=baf825331cb37fd29007e7ed7596fb3683c8b37d
Commit:        baf825331cb37fd29007e7ed7596fb3683c8b37d
Parent:        39cb8aa3abd4e3eea7bbbdcc24225e8475c3aff3
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Mon Jul 7 21:03:15 2014 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Jul 11 12:47:41 2014 +0200

prompt: display 'n' for EOF

When EOF is detect - it could be either 'Ctrl+C'
or empty stdin.

For Ctrl+C there is visual ^C sign.
For EOF print 'n' so decision is clear in debug print.
---
 lib/display/display.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/lib/display/display.c b/lib/display/display.c
index cd204a0..cfd83c9 100644
--- a/lib/display/display.c
+++ b/lib/display/display.c
@@ -883,7 +883,7 @@ void display_name_error(name_error_t name_error)
  */
 char yes_no_prompt(const char *prompt, ...)
 {
-	int c = 0, ret = 0;
+	int c = 0, ret = 0, cb = 0;
 	va_list ap;
 
 	sigint_allow();
@@ -903,6 +903,7 @@ char yes_no_prompt(const char *prompt, ...)
 
 		if ((c = getchar()) == EOF) {
 			ret = 'n'; /* SIGINT */
+			cb = 1;
 			break;
 		}
 
@@ -918,6 +919,9 @@ char yes_no_prompt(const char *prompt, ...)
 
 	sigint_restore();
 
+	if (cb && !sigint_caught())
+		fputc(ret, stderr);
+
 	if (c != '\n')
 		fputc('\n', stderr);
 




More information about the lvm-devel mailing list