]> git.deb.at Git - pkg/abook.git/blobdiff - ui.c
wrap searches
[pkg/abook.git] / ui.c
diff --git a/ui.c b/ui.c
index 023f20667b730f5a25dbae7f3640d71ccf013440..aa49d48d5e23b6f92d002a91dc7ee267315dd09e 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 '?':
@@ -395,6 +396,7 @@ get_commands()
                        case KEY_DC:
                        case 'd':
                        case 'r': ui_remove_items();    break;
+                       case 'D': duplicate_item();     break;
                        case 12: refresh_screen();      break;
 
                        case 'k':
@@ -487,10 +489,12 @@ 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;
@@ -502,12 +506,15 @@ ui_find(int next)
                refresh_screen();
        }
 
-       if( (item = find_item(findstr, curitem + !!next,
-                                       search_fields )) >= 0 ) {
+       if( (item = find_item(findstr, curitem + !!next, search_fields)) < 0)
+               if((item = find_item(findstr, 0, search_fields)) >= 0)
+                       statusline_addstr(
+                               "Search hit bottom, continuing at top");
+
+       if(item >= 0) {
                curitem = item;
                refresh_list();
        }
-
 }