summaryrefslogtreecommitdiff
path: root/src/tty_interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tty_interface.c')
-rw-r--r--src/tty_interface.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/tty_interface.c b/src/tty_interface.c
index aa67f1f..918c0c6 100644
--- a/src/tty_interface.c
+++ b/src/tty_interface.c
@@ -20,7 +20,7 @@ static void clear(tty_interface_t *state) {
tty_setcol(tty, 0);
size_t line = 0;
- while (line++ < state->options->num_lines) {
+ while (line++ < state->options->num_lines + (state->options->show_info ? 1 : 0)) {
tty_newline(tty);
}
tty_clearline(tty);
@@ -90,9 +90,16 @@ static void draw(tty_interface_t *state) {
start = available - num_lines;
}
}
+
tty_setcol(tty, 0);
tty_printf(tty, "%s%s", options->prompt, state->search);
tty_clearline(tty);
+
+ if (options->show_info) {
+ tty_printf(tty, "\n[%lu/%lu]", choices->available, choices->size);
+ tty_clearline(tty);
+ }
+
for (size_t i = start; i < start + num_lines; i++) {
tty_printf(tty, "\n");
tty_clearline(tty);
@@ -101,14 +108,9 @@ static void draw(tty_interface_t *state) {
draw_match(state, choice, i == choices->selection);
}
}
- if (num_lines > 0) {
- tty_moveup(tty, num_lines);
- }
- tty_setcol(tty, 0);
- fputs(options->prompt, tty->fout);
- for (size_t i = 0; i < state->cursor; i++)
- fputc(state->search[i], tty->fout);
+ tty_moveup(tty, num_lines + (options->show_info ? 1 : 0));
+ tty_setcol(tty, strlen(options->prompt) + state->cursor);
tty_flush(tty);
}