+++ /dev/null
-commit 763056828abe9716c4dfce754a47d8ecdefb3029
-Author: Ismaël Bouya <ismael.bouya@normalesup.org>
-Date: Mon Feb 10 16:13:33 2020 +0100
-
- Fix commands that don’t need to have a non-empty mailbox to be valid
-
- Some commands act on the whole mailbox (tag-pattern, delete-pattern,
- search), and even though they don’t do anything when the mailbox is
- empty, there is no reason to fail when it happens. This commit removes
- the check that the mailbox is non-empty before doing said actions.
-
-diff --git a/index.c b/index.c
-index 0f4b9f99f..0adfc19f1 100644
---- a/index.c
-+++ b/index.c
-@@ -1642,7 +1642,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
- case OP_JUMP:
- {
- int msg_num = 0;
-- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
-+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
- break;
- if (isdigit(LastKey))
- mutt_unget_event(LastKey, 0);
-@@ -1687,7 +1687,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
-
- case OP_MAIN_DELETE_PATTERN:
- if (!prereq(Context, menu,
-- CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE | CHECK_READONLY | CHECK_ATTACH))
-+ CHECK_IN_MAILBOX | CHECK_READONLY | CHECK_ATTACH))
- {
- break;
- }
-@@ -1852,12 +1852,17 @@ int mutt_index_menu(struct MuttWindow *dlg)
- menu->redraw = REDRAW_FULL;
- break;
-
-- case OP_SEARCH:
-+ // Initiating a search can happen on an empty mailbox, but
-+ // searching for next/previous/... needs to be on a message and
-+ // thus a non-empty mailbox
- case OP_SEARCH_REVERSE:
- case OP_SEARCH_NEXT:
- case OP_SEARCH_OPPOSITE:
- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
- break;
-+ case OP_SEARCH:
-+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
-+ break;
- menu->current = mutt_search_command(menu->current, op);
- if (menu->current == -1)
- menu->current = menu->oldcurrent;
-@@ -1926,14 +1931,14 @@ int mutt_index_menu(struct MuttWindow *dlg)
- }
-
- case OP_MAIN_TAG_PATTERN:
-- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
-+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
- break;
- mutt_pattern_func(MUTT_TAG, _("Tag messages matching: "));
- menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
- break;
-
- case OP_MAIN_UNDELETE_PATTERN:
-- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE | CHECK_READONLY))
-+ if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_READONLY))
- break;
- /* L10N: CHECK_ACL */
- /* L10N: Due to the implementation details we do not know whether we
-@@ -1950,7 +1955,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
- break;
-
- case OP_MAIN_UNTAG_PATTERN:
-- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
-+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
- break;
- if (mutt_pattern_func(MUTT_UNTAG, _("Untag messages matching: ")) == 0)
- menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
-@@ -3189,7 +3194,7 @@ int mutt_index_menu(struct MuttWindow *dlg)
- }
-
- case OP_MAIN_COLLAPSE_ALL:
-- if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
-+ if (!prereq(Context, menu, CHECK_IN_MAILBOX))
- break;
-
- if ((C_Sort & SORT_MASK) != SORT_THREADS)