OP_MAIN_CHANGE_GROUP_READONLY "open a different newsgroup in read only mode"
OP_MAIN_CLEAR_FLAG "clear a status flag from a message"
OP_MAIN_DELETE_PATTERN "delete messages matching a pattern"
+OP_REBUILD_CACHE "rebuild header caching databases"
OP_RECONSTRUCT_THREAD "reconstruct thread containing current message"
OP_MAIN_IMAP_FETCH "force retrieval of mail from IMAP server"
OP_MAIN_FETCH_MAIL "retrieve mail from POP server"
the necessary keywords to look them up in the manual, ChangeLog or other
sources of information.
+2005-10-14:
+
+ The generic <rebuild-cache> function has been added.
+
2005-10-13:
The $list_reply variable has been removed and replaced by
mutt_what_key ();
break;
+ case OP_REBUILD_CACHE:
+ mx_rebuild_cache ();
+ break;
+
case OP_SIDEBAR_SCROLL_UP:
case OP_SIDEBAR_SCROLL_DOWN:
case OP_SIDEBAR_NEXT:
{"current-middle", OP_CURRENT_MIDDLE, NULL},
{"current-bottom", OP_CURRENT_BOTTOM, NULL},
{"what-key", OP_WHAT_KEY, NULL},
+ {"rebuild-cache", OP_REBUILD_CACHE, NULL},
{NULL, 0, NULL}
};
mutt_what_key ();
break;
+ case OP_REBUILD_CACHE:
+ mx_rebuild_cache ();
+ break;
+
case OP_REDRAW:
clearok (stdscr, TRUE);
menu->redraw = REDRAW_FULL;
#endif
#include "mutt.h"
+#include "buffy.h"
#include "ascii.h"
#include "mx.h"
#include "mbox.h"
#include "nntp/mx_nntp.h"
#endif
-#ifdef BUFFY_SIZE
-#include "buffy.h"
-#endif
-
#ifdef USE_DOTLOCK
#include "dotlock.h"
#endif
#undef EXITWITHERR
#endif /* DEBUG */
}
+
+int mx_rebuild_cache (void) {
+#ifndef USE_HCACHE
+ mutt_error (_("Support for header caching was not build in."));
+ return (1);
+#else
+ int i = 0, magic = 0, imap = 0;
+ CONTEXT* ctx = NULL;
+ char* buf = NULL;
+ BUFFY* b = NULL;
+
+ if (list_empty(Incoming)) {
+ mutt_error (_("No mailboxes defined."));
+ return (1);
+ }
+
+ ReadInc = 0;
+
+ for (i = 0; i < Incoming->length; i++) {
+ b = (BUFFY*) Incoming->data[i];
+ magic = mx_get_magic (b->path);
+ if (magic != M_MAILDIR && magic != M_MH && magic != M_IMAP)
+ continue;
+ if (magic == M_IMAP)
+ imap = 1;
+ buf = str_dup (b->path);
+ mutt_pretty_mailbox (buf);
+ mutt_message (_("Rebuilding cache for %s..."), buf);
+ if ((ctx = mx_open_mailbox (b->path,
+ M_READONLY | M_QUIET | M_NOSORT | M_COUNT,
+ NULL)) != NULL)
+ mx_close_mailbox (ctx, 0);
+ mem_free (&buf);
+ }
+
+ if (imap)
+ imap_logout_all ();
+
+ mutt_clear_error ();
+
+ return (0);
+#endif
+}
int mx_lock_file (const char *, int, int, int, int);
int mx_unlock_file (const char *path, int fd, int dot);
+int mx_rebuild_cache (void);
+
#endif /* !_MX_H */