--- mutt-1.5.6/PATCHES~ never +++ mutt-1.5.6/PATCHES Mon Feb 9 22:48:37 CST 2004 @@ -1,0 +1 @@ +patch-1.5.6.dgc.flagsafe.1 diff -Pur mutt-1.5.6-base/flags.c mutt-1.5.6-dgc.flagsafe.1/flags.c --- mutt-1.5.6-base/flags.c Thu Jan 30 17:48:07 2003 +++ mutt-1.5.6-dgc.flagsafe.1/flags.c Mon Feb 9 22:48:37 2004 @@ -47,7 +47,8 @@ if (bf) { - if (!h->deleted && !ctx->readonly) + if (!h->deleted && !ctx->readonly + && (!h->flagged || !option(OPTFLAGSAFE))) { h->deleted = 1; if (upd_ctx) ctx->deleted++; diff -Pur mutt-1.5.6-base/init.h mutt-1.5.6-dgc.flagsafe.1/init.h --- mutt-1.5.6-base/init.h Sun Feb 1 11:15:17 2004 +++ mutt-1.5.6-dgc.flagsafe.1/init.h Mon Feb 9 22:48:37 2004 @@ -532,6 +532,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 -Pur mutt-1.5.6-base/mh.c mutt-1.5.6-dgc.flagsafe.1/mh.c --- mutt-1.5.6-base/mh.c Sun Feb 1 11:10:57 2004 +++ mutt-1.5.6-dgc.flagsafe.1/mh.c Mon Feb 9 22:48:37 2004 @@ -525,8 +525,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 -Pur mutt-1.5.6-base/mutt.h mutt-1.5.6-dgc.flagsafe.1/mutt.h --- mutt-1.5.6-base/mutt.h Sun Feb 1 11:15:17 2004 +++ mutt-1.5.6-dgc.flagsafe.1/mutt.h Mon Feb 9 22:48:37 2004 @@ -341,6 +341,7 @@ OPTFASTREPLY, OPTFCCATTACH, OPTFCCCLEAR, + OPTFLAGSAFE, OPTFOLLOWUPTO, OPTFORCENAME, OPTFORWDECODE,