summaryrefslogtreecommitdiffstats
path: root/menu.c
diff options
context:
space:
mode:
authorRocco Rutte <pdmef@gmx.net>2009-05-29 16:40:40 +0200
committerRocco Rutte <pdmef@gmx.net>2009-05-29 16:40:40 +0200
commitb26409ee6458dc5710c45c3150500a7cc5348bb3 (patch)
tree4a61b6dce867d2f2af16d1f8391a2fd037a7d586 /menu.c
parent87bd48ef5e2fb442e19c0db0f5464fd9f8139501 (diff)
Fall back to search if no query exists for search-(next|opposite)
The pager had the fall-through to search, so for consistency do that in other menues as well.
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/menu.c b/menu.c
index 7fe75388..b562891e 100644
--- a/menu.c
+++ b/menu.c
@@ -725,27 +725,21 @@ static int menu_search (MUTTMENU *menu, int op)
char* searchBuf = menu->menu >= 0 && menu->menu < MENU_MAX ?
SearchBuffers[menu->menu] : NULL;
- if (op != OP_SEARCH_NEXT && op != OP_SEARCH_OPPOSITE)
+ if (!(searchBuf && *searchBuf) ||
+ (op != OP_SEARCH_NEXT && op != OP_SEARCH_OPPOSITE))
{
- strfcpy (buf, searchBuf ? searchBuf : "", sizeof (buf));
- if (mutt_get_field ((op == OP_SEARCH) ? _("Search for: ") :
- _("Reverse search for: "),
- buf, sizeof (buf), M_CLEAR) != 0 || !buf[0])
+ strfcpy (buf, searchBuf && *searchBuf ? searchBuf : "", sizeof (buf));
+ if (mutt_get_field ((op == OP_SEARCH || op == OP_SEARCH_NEXT)
+ ? _("Search for: ") : _("Reverse search for: "),
+ buf, sizeof (buf), M_CLEAR) != 0 || !buf[0])
return (-1);
if (menu->menu >= 0 && menu->menu < MENU_MAX)
{
mutt_str_replace (&SearchBuffers[menu->menu], buf);
searchBuf = SearchBuffers[menu->menu];
}
- menu->searchDir = (op == OP_SEARCH) ? M_SEARCH_DOWN : M_SEARCH_UP;
- }
- else
- {
- if (!searchBuf || !*searchBuf)
- {
- mutt_error _("No search pattern.");
- return (-1);
- }
+ menu->searchDir = (op == OP_SEARCH || op == OP_SEARCH_NEXT) ?
+ M_SEARCH_DOWN : M_SEARCH_UP;
}
searchDir = (menu->searchDir == M_SEARCH_UP) ? -1 : 1;