changeset: 6856:03aa03293c1d
user:      David Champion <[email protected]>
date:      Wed Nov 16 15:43:50 2016 -0800
link:      http://dev.mutt.org/hg/mutt/rev/03aa03293c1d

When $flag_safe is set, flagged messages cannot be deleted.

This saves them from bulk operations on threads and tagged messages.  To
remove a flagged message, first unflag it.

diffs (56 lines):

diff -r 5382e1e4cee1 -r 03aa03293c1d flags.c
--- a/flags.c   Tue Nov 15 12:04:16 2016 -0800
+++ b/flags.c   Wed Nov 16 15:43:50 2016 -0800
@@ -45,7 +45,8 @@
 
       if (bf)
       {
-       if (!h->deleted && !ctx->readonly)
+       if (!h->deleted && !ctx->readonly
+           && (!h->flagged || !option(OPTFLAGSAFE)))
        {
          h->deleted = 1;
           update = 1;
diff -r 5382e1e4cee1 -r 03aa03293c1d init.h
--- a/init.h    Tue Nov 15 12:04:16 2016 -0800
+++ b/init.h    Wed Nov 16 15:43:50 2016 -0800
@@ -799,6 +799,11 @@
   ** signed.
   ** (PGP only)
   */
+  { "flag_safe", DT_BOOL, R_NONE, OPTFLAGSAFE, 0 },
+  /*
+  ** .pp
+  ** If set, flagged messages cannot be deleted.
+  */
   { "folder",          DT_PATH, R_NONE, UL &Maildir, UL "~/Mail" },
   /*
   ** .pp
diff -r 5382e1e4cee1 -r 03aa03293c1d mh.c
--- a/mh.c      Tue Nov 15 12:04:16 2016 -0800
+++ b/mh.c      Wed Nov 16 15:43:50 2016 -0800
@@ -696,8 +696,11 @@
        break;
 
       case 'T':                /* trashed */
-       h->trash = 1;
-       h->deleted = 1;
+       if (!h->flagged || !option(OPTFLAGSAFE))
+       {
+         h->trash = 1;
+         h->deleted = 1;
+       }
        break;
       
       default:
diff -r 5382e1e4cee1 -r 03aa03293c1d mutt.h
--- a/mutt.h    Tue Nov 15 12:04:16 2016 -0800
+++ b/mutt.h    Wed Nov 16 15:43:50 2016 -0800
@@ -352,6 +352,7 @@
   OPTENVFROM,
   OPTFASTREPLY,
   OPTFCCCLEAR,
+  OPTFLAGSAFE,
   OPTFOLLOWUPTO,
   OPTFORCENAME,
   OPTFORWDECODE,

Reply via email to