[PATCH v5 0/2] launch_editor(): indicate that Git waits for user input

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Lars Schneider <larsxschneider@xxxxxxxxx>

Hi,

Patch 1/2: No change. The patch got "looks good to me" from Peff [1]

Patch 2/2: I changed the waiting message to our bikeshedding result [2] and
           I enabled the waiting message on dumb terminals for consistency.

I also tested the patch on OS X and Windows with smart and dumb terminals.

Thanks for the reviews,
Lars


[1] https://public-inbox.org/git/20171130203042.GB3313@xxxxxxxxxxxxxxxxxxxxx/
[2] https://public-inbox.org/git/20171204220908.GA8184@xxxxxxxxxxxxxxxxxxxxx/

RFC: https://public-inbox.org/git/274B4850-2EB7-4BFA-A42C-25A573254969@xxxxxxxxx/
 v1: https://public-inbox.org/git/xmqqr2syvjxb.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxx/
 v2: https://public-inbox.org/git/20171117135109.18071-1-lars.schneider@xxxxxxxxxxxx/
 v3: https://public-inbox.org/git/20171127134716.69471-1-lars.schneider@xxxxxxxxxxxx/
 v4: https://public-inbox.org/git/20171129143752.60553-1-lars.schneider@xxxxxxxxxxxx/


Base Ref: master
Web-Diff: https://github.com/larsxschneider/git/commit/c00d4de8cf
Checkout: git fetch https://github.com/larsxschneider/git editor-v5 && git checkout c00d4de8cf


### Interdiff (v4..v5):

diff --git a/editor.c b/editor.c
index cdad4f74ec..d52017363c 100644
--- a/editor.c
+++ b/editor.c
@@ -45,11 +45,17 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en
 		const char *args[] = { editor, real_path(path), NULL };
 		struct child_process p = CHILD_PROCESS_INIT;
 		int ret, sig;
-		int print_waiting_for_editor = advice_waiting_for_editor &&
-			isatty(2) && !is_terminal_dumb();
+		int print_waiting_for_editor = advice_waiting_for_editor && isatty(2);

 		if (print_waiting_for_editor) {
-			fprintf(stderr, _("hint: Waiting for your editor input..."));
+			fprintf(stderr,
+				_("hint: Waiting for your editor to close the file... "));
+			if (is_terminal_dumb())
+				/*
+				 * A dumb terminal cannot erase the line later on. Add a
+				 * newline to separate the hint from subsequent output.
+				 */
+				fprintf(stderr, "\n");
 			fflush(stderr);
 		}

@@ -71,11 +77,10 @@ int launch_editor(const char *path, struct strbuf *buffer, const char *const *en
 			return error("There was a problem with the editor '%s'.",
 					editor);

-		if (print_waiting_for_editor)
+		if (print_waiting_for_editor && !is_terminal_dumb())
 			/*
-			 * go back to the beginning and erase the
-			 * entire line to avoid wasting the vertical
-			 * space.
+			 * Go back to the beginning and erase the entire line to
+			 * avoid wasting the vertical space.
 			 */
 			fputs("\r\033[K", stderr);
 	}


### Patches

Lars Schneider (2):
  refactor "dumb" terminal determination
  launch_editor(): indicate that Git waits for user input

 Documentation/config.txt |  3 +++
 advice.c                 |  2 ++
 advice.h                 |  1 +
 cache.h                  |  1 +
 color.c                  |  3 +--
 editor.c                 | 29 +++++++++++++++++++++++++++--
 sideband.c               |  5 ++---
 7 files changed, 37 insertions(+), 7 deletions(-)


base-commit: 89ea799ffcc5c8a0547d3c9075eb979256ee95b8
--
2.15.1




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux