aboutsummaryrefslogtreecommitdiff
path: root/ui_input.c
diff options
context:
space:
mode:
authortoni <matzeton@googlemail.com>2014-12-07 21:37:40 +0100
committertoni <matzeton@googlemail.com>2014-12-07 23:27:03 +0100
commita6dafdecaafdc676ee5dcad8418aabcfb5a4c5c3 (patch)
tree9ddefe3beb0db15536be04067f76d3e7ad2ee3b8 /ui_input.c
parent100504b25d93d669cd85ce1f5a0326018f1c9811 (diff)
parent1d67aaeb003b6d811d6dc589b1e40aa5cff70278 (diff)
Merge branch 'master' of github.com:lnslbrty/naskpass
Diffstat (limited to 'ui_input.c')
-rw-r--r--ui_input.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/ui_input.c b/ui_input.c
index 13a33b0..4f9d39e 100644
--- a/ui_input.c
+++ b/ui_input.c
@@ -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);
}