This is a reroll of cm/save-restore-terminal that removes the unnecessary forward declaration in compat/terminal that was patiently reported[1] by Junio. Also changed the wording used in the first paragraph of the commit message for the first patch, which hopefully has better grammar. The series implements a way for git to save and restore the terminal settings around EDITOR calls to avoid having to deal with botched output if the editor misbehaves. Carlo Marcelo Arenas Belón (2): terminal: teach git how to save/restore its terminal settings editor: save and reset terminal after calling EDITOR compat/terminal.c | 75 +++++++++++++++++++++++++++++++++++++---------- compat/terminal.h | 3 ++ editor.c | 8 +++++ 3 files changed, 71 insertions(+), 15 deletions(-) [1] https://lore.kernel.org/git/CAPUEspiQrGDyYrBUmeMh0C1uPDjUE5d--5zT4vZZUdNr+xtAxA@xxxxxxxxxxxxxx/T/#u Range-diff against v1: 1: 63cfeda4b7 ! 1: cf8306816d terminal: teach git how to save/restore its terminal settings @@ compat/terminal.c #if defined(HAVE_DEV_TTY) || defined(GIT_WINDOWS_NATIVE) -static void restore_term(void); -+void restore_term(void); - +- static void restore_term_on_signal(int sig) { + restore_term(); @@ compat/terminal.c: static void restore_term_on_signal(int sig) static int term_fd = -1; static struct termios old_term; 2: 0f409b6d00 = 2: d83cd3f712 editor: save and reset terminal after calling EDITOR -- 2.33.0.955.gee03ddbf0e