X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=ui.c;h=808ead07e15dcdc211fe35964d611222de018ab9;hb=2c5d21ffb7ca5a922817b6eeef4381d386829fc9;hp=daf1ae6b606bb80c40814dafa9f453eac352732f;hpb=3cee188f29e8fdf5c89ae34e90100d14fac9ca9e;p=pkg%2Fabook.git diff --git a/ui.c b/ui.c index daf1ae6..808ead0 100644 --- a/ui.c +++ b/ui.c @@ -232,7 +232,7 @@ statusline_addstr(const char *str) } char * -ui_readline(char *prompt, char *s, int limit, bool use_completion) +ui_readline(char *prompt, char *s, size_t limit, bool use_completion) { int y, x; char *ret; @@ -243,6 +243,8 @@ ui_readline(char *prompt, char *s, int limit, bool use_completion) ret = abook_readline(bottom, y, x, s, use_completion); + /* XXX: check that string doesn't exceed limit */ + if(ret) strtrim(ret); @@ -253,23 +255,21 @@ int statusline_ask_boolean(char *msg, int def) { int ret; - char *msg2 = strconcat(msg, def ? " (Y/n)?" : " (y/N)?", NULL); + char *msg2 = strconcat(msg, def ? _(" (Y/n)?") : _(" (y/N)?"), NULL); + char ch; statusline_addstr(msg2); free(msg2); - switch(tolower(getch())) { - case 'n': - ret = FALSE; - break; - case 'y': - ret = TRUE; - break; - default: - ret = def; - break; - } + ch = tolower(getch()); + + if(ch == *(S_("keybinding for no|n"))) + ret = FALSE; + else if(ch == *(S_("keybinding for yes|y"))) + ret = TRUE; + else + ret = def; clear_statusline(); @@ -595,7 +595,7 @@ ui_open_datafile() load_database(filename); if(items == 0) { - statusline_msg(_("Sorry, that specified file appears not to be a valid abook addressbook")); + statusline_msg(_("Sorry, the specified file appears not to be a valid abook addressbook")); load_database(datafile); } else { free(datafile);