X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=ui.c;h=d99397d4085a33747bc8ccd39e3a1f82c921a786;hb=fe6b3612a0ddda13d974f7d71e3ab240466ddab5;hp=9d59cc796d62b2a5f404f59646326af8bcfa6071;hpb=28b7c8bdd6dc85f7412233d99e5526e148f81d81;p=pkg%2Fabook.git diff --git a/ui.c b/ui.c index 9d59cc7..d99397d 100644 --- a/ui.c +++ b/ui.c @@ -383,7 +383,8 @@ get_commands() can_resize = FALSE; /* it's not safe to resize anymore */ switch( ch ) { case 'q': return; - case 'Q': print_stderr(selected_items() ? + case 'Q': quit_abook(QUIT_DONTSAVE); break; + case 'P': print_stderr(selected_items() ? -1 : list_current_item()); return; case '?': @@ -488,27 +489,30 @@ ui_clear_database() void ui_find(int next) { - int item; + int item = -1; static char findstr[MAX_FIELD_LEN]; int search_fields[] = {NAME, EMAIL, NICK, -1}; + clear_statusline(); + if(next) { if( !*findstr ) return; } else { char *s; - clear_statusline(); s = ui_readline("/", findstr, MAX_FIELD_LEN - 1, 0); strncpy(findstr, s, MAX_FIELD_LEN); refresh_screen(); } - if( (item = find_item(findstr, curitem + !!next, - search_fields )) >= 0 ) { + if( (item = find_item(findstr, curitem + !!next, search_fields)) < 0 && + (item = find_item(findstr, 0, search_fields)) >= 0) + statusline_addstr("Search hit bottom, continuing at top"); + + if(item >= 0) { curitem = item; refresh_list(); } - }