launch_editor: waiting message on error

When advice.waitingForEditor configuration is not set to false, we show a hint telling that we are waiting for user's editor to close the file when we launch an editor and wait for it to return control back to us. We give the message on an incomplete line, expecting that we can go back to the beginning of the line and clear the message when the editor returns. However, it is possible that the editor exits with an error status, in which case we show an error message and then return to our caller. In such a case, the error message is given where the terminal cursor happens to be, which is most likely after the "we are waiting for your editor" message on the same line. Clear the line before showing the error. While we're here, make the error message follow our CodingGuideLines. Signed-off-by: Rubén Justo <rjusto@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Rubén Justo committed Apr 14, 2024 at 09:39 UTC 48e1ca27b1fed9d71779bf93d524b4aed9d66da3
1 file changed +3 -4
editor.c
+3 -4
@@ -104,16 +104,15 @@ static int launch_specified_editor(const char *editor, const char *path,
104 sigchain_pop(SIGQUIT);
105 if (sig == SIGINT || sig == SIGQUIT)
106 raise(sig);
107 - if (ret)
108 - return error("There was a problem with the editor '%s'.",
109 - editor);
110 -
107 if (print_waiting_for_editor && !is_terminal_dumb())
108 /*
109 * Erase the entire line to avoid wasting the
110 * vertical space.
111 */
112 term_clear_line();
113 + if (ret)
114 + return error("there was a problem with the editor '%s'",
115 + editor);
116 }
117
118 if (!buffer)