ソースを参照

improve searchkeys in dselect

Wichert Akkerman 27 年 前
コミット
994f85b2ff
共有3 個のファイルを変更した14 個の追加2 個の削除を含む
  1. 5 0
      ChangeLog
  2. 8 2
      dselect/basecmds.cc
  3. 1 0
      dselect/methkeys.cc

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+Fri Nov 19 15:04:10 CET 1999 Wichert Akkerman <wakkerma@debian.org>
+
+  * `n' is also searchagain in dselect now
+  * Do searchagain if an empty searchstring is entered
+
 Thu Nov 18 10:27:35 EST 1999 Ben Collins <bcollins@debian.org>
 Thu Nov 18 10:27:35 EST 1999 Ben Collins <bcollins@debian.org>
 
 
   * utils/start-stop-daemon.c: Added ability for user.group arg to
   * utils/start-stop-daemon.c: Added ability for user.group arg to

+ 8 - 2
dselect/basecmds.cc

@@ -95,11 +95,13 @@ void baselist::kd_searchagain() {
 }
 }
 
 
 void baselist::kd_search() {
 void baselist::kd_search() {
+  char newsearchstring[50]
+  strcpy(newsearchstring,searchstring);
   werase(querywin);
   werase(querywin);
   mvwaddstr(querywin,0,0, _("Search for ? "));
   mvwaddstr(querywin,0,0, _("Search for ? "));
   echo(); /* fixme: ncurses documentation or implementation */
   echo(); /* fixme: ncurses documentation or implementation */
   /* fixme: make / RET do `search again' and / DEL to abort */
   /* fixme: make / RET do `search again' and / DEL to abort */
-  if (wgetnstr(querywin,searchstring,sizeof(searchstring)-1) == ERR)
+  if (wgetnstr(querywin,newsearchstring,sizeof(newsearchstring)-1) == ERR)
     searchstring[0]= 0;
     searchstring[0]= 0;
   raise(SIGWINCH); /* fixme: ncurses and xterm arrow keys */
   raise(SIGWINCH); /* fixme: ncurses and xterm arrow keys */
   noecho(); /* fixme: ncurses */
   noecho(); /* fixme: ncurses */
@@ -107,7 +109,11 @@ void baselist::kd_search() {
   else if (info_height) { touchwin(infopad); refreshinfo(); }
   else if (info_height) { touchwin(infopad); refreshinfo(); }
   else if (thisstate_height) redrawthisstate();
   else if (thisstate_height) redrawthisstate();
   else { touchwin(listpad); refreshlist(); }
   else { touchwin(listpad); refreshlist(); }
-  if (searchstring[0]) dosearch();
+  if (newsearchstring[0]) {
+    strcpy(searchstring,newsearchstring);
+	dosearch()
+  } else
+    kd_searchagain();
 }
 }
 
 
 void baselist::displayhelp(const struct helpmenuentry *helpmenu, int key) {
 void baselist::displayhelp(const struct helpmenuentry *helpmenu, int key) {

+ 1 - 0
dselect/methkeys.cc

@@ -104,6 +104,7 @@ const keybindings::orgbinding methodlist_korgbindings[]= {
   { KEY_HELP,       "help"             },
   { KEY_HELP,       "help"             },
   { KEY_F(1),       "help"             },
   { KEY_F(1),       "help"             },
   { '/',            "search"           },
   { '/',            "search"           },
+  { 'n',            "searchagain"      },
   { '\\',           "searchagain"      },
   { '\\',           "searchagain"      },
   { C('l'),         "redraw"           },
   { C('l'),         "redraw"           },