--- mutt-1.5.8/PATCHES~ never +++ mutt-1.5.8/PATCHES Tue Feb 22 15:42:04 CST 2005 @@ -1,0 +1 @@ +patch-1.5.8.dgc.flagsafe.1 diff -Pur mutt-1.5.8-base/flags.c mutt-1.5.8/flags.c --- mutt-1.5.8-base/flags.c Thu Feb 3 12:47:52 2005 +++ mutt-1.5.8/flags.c Tue Feb 22 15:42:04 2005 @@ -51,7 +51,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.8-base/init.h mutt-1.5.8/init.h --- mutt-1.5.8-base/init.h Sat Feb 12 14:01:10 2005 +++ mutt-1.5.8/init.h Tue Feb 22 15:42:04 2005 @@ -550,6 +550,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.8-base/mh.c mutt-1.5.8/mh.c --- mutt-1.5.8-base/mh.c Thu Feb 3 12:47:53 2005 +++ mutt-1.5.8/mh.c Tue Feb 22 15:42:04 2005 @@ -533,8 +533,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.8-base/mutt.h mutt-1.5.8/mutt.h --- mutt-1.5.8-base/mutt.h Sat Feb 12 14:01:20 2005 +++ mutt-1.5.8/mutt.h Tue Feb 22 15:42:04 2005 @@ -347,6 +347,7 @@ OPTFASTREPLY, OPTFCCATTACH, OPTFCCCLEAR, + OPTFLAGSAFE, OPTFOLLOWUPTO, OPTFORCENAME, OPTFORWDECODE,