}
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;
getyx(bottom, y, x);
- ret = abook_readline(bottom, y, x, s, limit, use_completion);
+ ret = abook_readline(bottom, y, x, s, use_completion);
- if(ret)
+ if(ret) {
strtrim(ret);
+ if(strlen(ret) > limit && limit > 0)
+ ret[limit] = '\0';
+ }
return ret;
}
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();
case 'p': ui_print_database(); break;
- case 'u': launch_wwwbrowser(list_current_item());
+ case 'v': launch_wwwbrowser(list_current_item());
refresh_screen();
break;
}
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);