Skip to content

Commit

Permalink
terminal: make the code of disable_echo() reusable
Browse files Browse the repository at this point in the history
We are about to introduce the function `enable_non_canonical()`, which
shares almost the complete code with `disable_echo()`.

Let's prepare for that, by refactoring out that shared code.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
dscho authored and gitster committed Dec 24, 2019
1 parent 859f411 commit aaafd60
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions compat/terminal.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ static void restore_term(void)
term_fd = -1;
}

static int disable_echo(void)
static int disable_bits(tcflag_t bits)
{
struct termios t;

Expand All @@ -43,7 +43,7 @@ static int disable_echo(void)
old_term = t;
sigchain_push_common(restore_term_on_signal);

t.c_lflag &= ~ECHO;
t.c_lflag &= ~bits;
if (!tcsetattr(term_fd, TCSAFLUSH, &t))
return 0;

Expand All @@ -53,6 +53,11 @@ static int disable_echo(void)
return -1;
}

static int disable_echo(void)
{
return disable_bits(ECHO);
}

#elif defined(GIT_WINDOWS_NATIVE)

#define INPUT_PATH "CONIN$"
Expand All @@ -72,7 +77,7 @@ static void restore_term(void)
hconin = INVALID_HANDLE_VALUE;
}

static int disable_echo(void)
static int disable_bits(DWORD bits)
{
hconin = CreateFile("CONIN$", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ, NULL, OPEN_EXISTING,
Expand All @@ -82,7 +87,7 @@ static int disable_echo(void)

GetConsoleMode(hconin, &cmode);
sigchain_push_common(restore_term_on_signal);
if (!SetConsoleMode(hconin, cmode & (~ENABLE_ECHO_INPUT))) {
if (!SetConsoleMode(hconin, cmode & ~bits)) {
CloseHandle(hconin);
hconin = INVALID_HANDLE_VALUE;
return -1;
Expand All @@ -91,6 +96,12 @@ static int disable_echo(void)
return 0;
}

static int disable_echo(void)
{
return disable_bits(ENABLE_ECHO_INPUT);
}


#endif

#ifndef FORCE_TEXT
Expand Down

0 comments on commit aaafd60

Please sign in to comment.