summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonas Fonseca <jonas.fonseca@gmail.com>2017-07-03 21:35:59 -0400
committerJonas Fonseca <jonas.fonseca@gmail.com>2017-07-03 21:35:59 -0400
commit9c9a217d410a878df9f1d040a7220930097be1f8 (patch)
tree2dc0abd8fdcaa7e4ccdb4eb5c6e25a74c054af96
parent23c2fde05ce4b162b78bbe6ea14157e81adcb1c6 (diff)
parent1b627686b01712b0e99516ebbfe717bb0a0387c2 (diff)
Merge branch 'hide-cursor' of https://github.com/rolandwalker/tig
-rw-r--r--src/display.c1
-rw-r--r--src/prompt.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/src/display.c b/src/display.c
index 25aad83e..f2e42f4e 100644
--- a/src/display.c
+++ b/src/display.c
@@ -462,6 +462,7 @@ init_display(void)
nonl(); /* Disable conversion and detect newlines from input. */
raw(); /* Take input chars one at a time, no wait for \n */
noecho(); /* Don't echo input */
+ curs_set(0);
leaveok(stdscr, false);
init_colors();
diff --git a/src/prompt.c b/src/prompt.c
index 239f1ec7..ca98b085 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -39,6 +39,9 @@ prompt_input(const char *prompt, struct input *input)
input->buf[0] = 0;
+ if (strlen(prompt) > 0)
+ curs_set(1);
+
while (status == INPUT_OK || status == INPUT_SKIP) {
int buf_length = strlen(input->buf) + promptlen;
int offset = pos || buf_length != last_buf_length ? pos + promptlen : -1;
@@ -52,6 +55,7 @@ prompt_input(const char *prompt, struct input *input)
if (pos + len >= sizeof(input->buf)) {
report("Input string too long");
+ curs_set(0);
return NULL;
}
@@ -89,6 +93,7 @@ prompt_input(const char *prompt, struct input *input)
input->buf[pos] = 0;
}
+ curs_set(0);
report_clear();
if (status == INPUT_CANCEL)
@@ -462,7 +467,9 @@ read_prompt(const char *prompt)
if (signal(SIGINT, sigint_absorb_handler) == SIG_ERR)
die("Failed to setup sigint handler");
+ curs_set(1);
line = readline(prompt);
+ curs_set(0);
if (signal(SIGINT, SIG_DFL) == SIG_ERR)
die("Failed to remove sigint handler");
@@ -542,6 +549,7 @@ prompt_menu(const char *prompt, const struct menu_item *items, int *selected)
assert(size > 0);
+ curs_set(1);
while (status == INPUT_OK) {
const struct menu_item *item = &items[*selected];
char hotkey[] = { '[', (char) item->hotkey, ']', ' ', 0 };
@@ -587,6 +595,7 @@ prompt_menu(const char *prompt, const struct menu_item *items, int *selected)
}
}
}
+ curs_set(0);
report_clear();