From: TAKAHASHI Tamotsu Date: Wed, 14 Jul 2004 04:36:27 +0000 (+0000) Subject: $include_onlyfirst, again. X-Git-Tag: mutt-1-5-15-rel~155 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=97c3aa682fc416bce5be0d73339cab6e56688940;p=mutt $include_onlyfirst, again. --- diff --git a/copy.c b/copy.c index ff889cde..9e77ba2f 100644 --- a/copy.c +++ b/copy.c @@ -586,6 +586,8 @@ _mutt_copy_message (FILE *fpout, FILE *fpin, HEADER *hdr, BODY *body, s.flags |= M_WEED; if (flags & M_CM_CHARCONV) s.flags |= M_CHARCONV; + if (flags & M_CM_REPLYING) + s.flags |= M_REPLYING; if (WithCrypto && flags & M_CM_VERIFY) s.flags |= M_VERIFY; diff --git a/copy.h b/copy.h index c03d5f85..67568380 100644 --- a/copy.h +++ b/copy.h @@ -25,6 +25,7 @@ #define M_CM_WEED (1<<5) /* weed message/rfc822 attachment headers */ #define M_CM_CHARCONV (1<<6) /* perform character set conversions */ #define M_CM_PRINTING (1<<7) /* printing the message - display light */ +#define M_CM_REPLYING (1<<8) /* replying the message */ #define M_CM_DECODE_PGP (1<<8) /* used for decoding PGP messages */ diff --git a/handler.c b/handler.c index 85040595..d425c222 100644 --- a/handler.c +++ b/handler.c @@ -1485,6 +1485,9 @@ void multipart_handler (BODY *a, STATE *s) } mutt_body_handler (p, s); state_putc ('\n', s); + if ((s->flags & M_REPLYING) + && (option (OPTINCLUDEONLYFIRST)) && (s->flags & M_FIRSTDONE)) + break; } if (a->encoding == ENCBASE64 || a->encoding == ENCQUOTEDPRINTABLE || @@ -1918,6 +1921,7 @@ void mutt_body_handler (BODY *b, STATE *s) s->fpin = fp; } } + s->flags |= M_FIRSTDONE; } else if (s->flags & M_DISPLAY) { @@ -1935,5 +1939,5 @@ void mutt_body_handler (BODY *b, STATE *s) } bail: - s->flags = oflags; + s->flags = oflags | (s->flags & M_FIRSTDONE); } diff --git a/init.h b/init.h index f9d63104..301e7c50 100644 --- a/init.h +++ b/init.h @@ -884,6 +884,12 @@ struct option_t MuttVars[] = { ** Controls whether or not a copy of the message(s) you are replying to ** is included in your reply. */ + { "include_onlyfirst", DT_BOOL, R_NONE, OPTINCLUDEONLYFIRST, 0}, + /* + ** .pp + ** Controls whether or not Mutt includes only the first attachment + ** of the message you are replying. + */ { "indent_string", DT_STR, R_NONE, UL &Prefix, UL "> " }, /* ** .pp diff --git a/mutt.h b/mutt.h index 829e6b08..85afda8f 100644 --- a/mutt.h +++ b/mutt.h @@ -374,6 +374,7 @@ enum OPTSSLSYSTEMCERTS, #endif OPTIMPLICITAUTOVIEW, + OPTINCLUDEONLYFIRST, OPTKEEPFLAGGED, OPTMAILCAPSANITIZE, OPTMAILDIRTRASH, @@ -858,6 +859,8 @@ typedef struct #define M_WEED (1<<3) /* weed headers even when not in display mode */ #define M_CHARCONV (1<<4) /* Do character set conversions */ #define M_PRINTING (1<<5) /* are we printing? - M_DISPLAY "light" */ +#define M_REPLYING (1<<6) /* are we replying? */ +#define M_FIRSTDONE (1<<7) /* the first attachment has been done */ #define state_set_prefix(s) ((s)->flags |= M_PENDINGPREFIX) #define state_reset_prefix(s) ((s)->flags &= ~M_PENDINGPREFIX) diff --git a/send.c b/send.c index cc171e76..1d791934 100644 --- a/send.c +++ b/send.c @@ -403,7 +403,7 @@ void mutt_make_post_indent (CONTEXT *ctx, HEADER *cur, FILE *out) static int include_reply (CONTEXT *ctx, HEADER *cur, FILE *out) { - int cmflags = M_CM_PREFIX | M_CM_DECODE | M_CM_CHARCONV; + int cmflags = M_CM_PREFIX | M_CM_DECODE | M_CM_CHARCONV | M_CM_REPLYING; int chflags = CH_DECODE; if (WithCrypto && (cur->security & ENCRYPT))