I've updated the patch so it write changes upon mailbox close. It will not update if dontwrite is 1, but ignore now readonly.
Cheers, -- Julien Danjou .''`. Debian Developer : :' : http://julien.danjou.info `. `' http://people.debian.org/~acid `- 9A0D 5FD9 EB42 22F6 8974 C95C A462 B51E C2FE E5CD
Index: mutt-1.5.20/curs_main.c
===================================================================
--- mutt-1.5.20.orig/curs_main.c 2009-10-02 12:15:46.000000000 +0200
+++ mutt-1.5.20/curs_main.c 2009-10-02 12:15:47.000000000 +0200
@@ -819,7 +819,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("delete message(s)"));
CHECK_ATTACH;
@@ -987,7 +986,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("undelete message(s)"));
if (mutt_pattern_func (M_UNDELETE, _("Undelete messages matching: "))
== 0)
@@ -1020,7 +1018,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
{
int oldvcount = Context->vcount;
int oldcount = Context->msgcount;
@@ -1273,7 +1270,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("link threads"));
if ((Sort & SORT_MASK) != SORT_THREADS)
@@ -1541,7 +1537,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_WRITE, _("flag message"));
if (tag)
@@ -1578,7 +1573,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_SEEN, _("toggle new"));
if (tag)
@@ -1833,7 +1827,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("delete message"));
if (tag)
@@ -1877,7 +1870,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("delete message(s)"));
rc = mutt_thread_set_flag (CURHDR, M_DELETE, 1,
@@ -1917,7 +1909,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ATTACH;
CHECK_ACL(M_ACL_INSERT, _("edit message"));
@@ -2049,7 +2040,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_SEEN, _("mark message(s) as read"));
rc = mutt_thread_set_flag (CURHDR, M_READ, 1,
@@ -2139,7 +2129,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("undelete message"));
if (tag)
@@ -2168,7 +2157,6 @@
CHECK_MSGCOUNT;
CHECK_VISIBLE;
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("undelete message(s)"));
rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0,
Index: mutt-1.5.20/flags.c
===================================================================
--- mutt-1.5.20.orig/flags.c 2009-10-02 12:15:47.000000000 +0200
+++ mutt-1.5.20/flags.c 2009-10-02 12:15:47.000000000 +0200
@@ -33,9 +33,6 @@
int flagged = ctx->flagged;
int update = 0;
- if (ctx->readonly && flag != M_TAG)
- return; /* don't modify anything if we are read-only */
-
switch (flag)
{
case M_DELETE:
Index: mutt-1.5.20/pager.c
===================================================================
--- mutt-1.5.20.orig/pager.c 2009-10-02 12:15:46.000000000 +0200
+++ mutt-1.5.20/pager.c 2009-10-02 12:15:47.000000000 +0200
@@ -2319,7 +2319,6 @@
case OP_PURGE_MESSAGE:
case OP_DELETE:
CHECK_MODE(IsHeader (extra));
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("delete message"));
mutt_set_flag (Context, extra->hdr, M_DELETE, 1);
@@ -2352,7 +2351,6 @@
case OP_DELETE_THREAD:
case OP_DELETE_SUBTHREAD:
CHECK_MODE(IsHeader (extra));
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("delete message(s)"));
r = mutt_thread_set_flag (extra->hdr, M_DELETE, 1,
@@ -2472,7 +2470,6 @@
case OP_FLAG_MESSAGE:
CHECK_MODE(IsHeader (extra));
- CHECK_READONLY;
CHECK_ACL(M_ACL_WRITE, "flag message");
mutt_set_flag (Context, extra->hdr, M_FLAG, !extra->hdr->flagged);
@@ -2628,7 +2625,6 @@
case OP_TOGGLE_NEW:
CHECK_MODE(IsHeader (extra));
- CHECK_READONLY;
CHECK_ACL(M_ACL_SEEN, _("toggle new"));
if (extra->hdr->read || extra->hdr->old)
@@ -2647,7 +2643,6 @@
case OP_UNDELETE:
CHECK_MODE(IsHeader (extra));
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("undelete message"));
mutt_set_flag (Context, extra->hdr, M_DELETE, 0);
@@ -2663,7 +2658,6 @@
case OP_UNDELETE_THREAD:
case OP_UNDELETE_SUBTHREAD:
CHECK_MODE(IsHeader (extra));
- CHECK_READONLY;
CHECK_ACL(M_ACL_DELETE, _("undelete message(s)"));
r = mutt_thread_set_flag (extra->hdr, M_DELETE, 0,
Index: mutt-1.5.20/mx.c
===================================================================
--- mutt-1.5.20.orig/mx.c 2009-10-02 12:15:49.000000000 +0200
+++ mutt-1.5.20/mx.c 2009-10-02 12:15:52.000000000 +0200
@@ -864,7 +864,7 @@
ctx->closing = 1;
- if (ctx->readonly || ctx->dontwrite)
+ if (ctx->dontwrite)
{
/* mailbox is readonly or we don't want to write */
mx_fastclose_mailbox (ctx);
signature.asc
Description: Digital signature

