]> git.deb.at Git - pkg/abook.git/blobdiff - ui.c
minor ui_find updates
[pkg/abook.git] / ui.c
diff --git a/ui.c b/ui.c
index 9d59cc796d62b2a5f404f59646326af8bcfa6071..d99397d4085a33747bc8ccd39e3a1f82c921a786 100644 (file)
--- 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();
        }
-
 }