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;
#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 */
}
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 ||
s->fpin = fp;
}
}
+ s->flags |= M_FIRSTDONE;
}
else if (s->flags & M_DISPLAY)
{
}
bail:
- s->flags = oflags;
+ s->flags = oflags | (s->flags & M_FIRSTDONE);
}
** 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
OPTSSLSYSTEMCERTS,
#endif
OPTIMPLICITAUTOVIEW,
+ OPTINCLUDEONLYFIRST,
OPTKEEPFLAGGED,
OPTMAILCAPSANITIZE,
OPTMAILDIRTRASH,
#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)
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))