diff options
author | toni <matzeton@googlemail.com> | 2014-12-07 21:37:40 +0100 |
---|---|---|
committer | toni <matzeton@googlemail.com> | 2014-12-07 23:27:03 +0100 |
commit | a6dafdecaafdc676ee5dcad8418aabcfb5a4c5c3 (patch) | |
tree | 9ddefe3beb0db15536be04067f76d3e7ad2ee3b8 /ui_input.c | |
parent | 100504b25d93d669cd85ce1f5a0326018f1c9811 (diff) | |
parent | 1d67aaeb003b6d811d6dc589b1e40aa5cff70278 (diff) |
Merge branch 'master' of github.com:lnslbrty/naskpass
Diffstat (limited to 'ui_input.c')
-rw-r--r-- | ui_input.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -97,7 +97,8 @@ add_input(WINDOW *win, struct input *a, int key) ++a->input_len; a->cur_pos = (a->cur_pos+1 < a->width ? a->cur_pos+1 : a->cur_pos); print_input(win, a); - //mvwprintw(win, 10, 1, "w:%d,cp:%d,im:%lu,il:%lu,ip:%lu,s:%s", a->width, a->cur_pos, a->input_max, a->input_len, a->input_pos, a->input); + + mvwprintw(win, 10, 1, "w:%d,cp:%d,im:%lu,il:%lu,ip:%lu,s:%s", a->width, a->cur_pos, a->input_max, a->input_len, a->input_pos, a->input); return (UICB_OK); } @@ -105,14 +106,17 @@ int del_input(WINDOW *win, struct input *a) { if (a == NULL) return (UICB_ERR_UNDEF); + if (a->input_len == 0) return (UICB_ERR_BUF); memmove((a->input + a->input_pos - 1), (a->input + a->input_pos), a->input_max - a->input_pos); --a->input_len; - if (a->input_pos == a->input_len) { + if (a->input_pos-1 == a->input_len) { --a->input_pos; } + a->cur_pos = (a->cur_pos+1 < a->width && a->cur_pos > 0 ? a->cur_pos-1 : a->cur_pos); + mvwprintw(win, a->y, a->x + a->cur_pos + strlen(a->prompt), "_"); print_input(win, a); + mvwprintw(win, 10, 1, "w:%d,cp:%d,im:%lu,il:%lu,ip:%lu,s:%s", a->width, a->cur_pos, a->input_max, a->input_len, a->input_pos, a->input); - return (UICB_OK); } @@ -122,9 +126,7 @@ input_cb(WINDOW *win, void *data, bool timed_out) struct input *a = (struct input *) data; if (a == NULL) return (UICB_ERR_UNDEF); - if (timed_out == true) { - print_input(win, a); - } + print_input(win, a); return (UICB_OK); } |