Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derekschrock/85ea0f2d107080c95c328598b17e73d8 to your computer and use it in GitHub Desktop.
Save derekschrock/85ea0f2d107080c95c328598b17e73d8 to your computer and use it in GitHub Desktop.
--- PATCHES.orig 2017-12-03 03:10:17 UTC
+++ PATCHES
@@ -0,0 +1 @@
+vvv.quote
--- handler.c.orig 2019-04-28 20:41:58 UTC
+++ handler.c
@@ -1593,7 +1593,31 @@ static int text_plain_handler (BODY *b, STATE *s)
buf[--l] = 0;
}
if (s->prefix)
- state_puts (s->prefix, s);
+ {
+ int i;
+ char qbuf[2 * LONG_STRING];
+ int j = 0, offset = 0;
+ regmatch_t pmatch[1];
+
+ while (regexec ((regex_t *) QuoteRegexp.rx, &buf[offset], 1, pmatch, 0) == 0)
+ offset += pmatch->rm_eo;
+
+ if (!option (OPTQUOTEEMPTY) && !*buf)
+ strcpy (qbuf, buf);
+ else if (option (OPTQUOTEQUOTED) && offset)
+ {
+ for (i = 0; i < offset; i++)
+ if (buf[i] != ' ')
+ j = i;
+ strncpy (qbuf, buf, j + 1);
+ strcpy (qbuf + j + 1, buf + j);
+ }
+ else
+ snprintf (qbuf, sizeof (qbuf), "%s%s", NONULL(s->prefix), buf);
+
+ state_puts (qbuf, s);
+ }
+ else
state_puts (buf, s);
state_putc ('\n', s);
}
@@ -1779,7 +1803,7 @@ int mutt_body_handler (BODY *b, STATE *s)
*/
if ((WithCrypto & APPLICATION_PGP) && mutt_is_application_pgp (b))
encrypted_handler = handler = crypt_pgp_application_pgp_handler;
- else if (option(OPTREFLOWTEXT) && ascii_strcasecmp ("flowed", mutt_get_parameter ("format", b->parameter)) == 0)
+ else if (option(OPTREFLOWTEXT) && ascii_strcasecmp ("flowed", mutt_get_parameter ("format", b->parameter)) == 0 && !s->prefix)
handler = rfc3676_handler;
else
handler = text_plain_handler;
--- init.h.orig 2019-05-09 20:47:17 UTC
+++ init.h
@@ -2731,6 +2731,19 @@ struct option_t MuttVars[] = {
** have no effect, and if it is set to \fIask-yes\fP or \fIask-no\fP, you are
** prompted for confirmation when you try to quit.
*/
+ { "quote_empty", DT_BOOL, R_NONE, OPTQUOTEEMPTY, 1 },
+ /*
+ ** .pp
+ ** Controls whether or not empty lines will be quoted using
+ ** ``$indent_string''.
+ */
+ { "quote_quoted", DT_BOOL, R_NONE, OPTQUOTEQUOTED, 0 },
+ /*
+ ** .pp
+ ** Controls how quoted lines will be quoted. If set, one quote
+ ** character will be added to the end of existing prefix. Otherwise,
+ ** quoted lines will be prepended by ``$indent_string''.
+ */
{ "quote_regexp", DT_RX, R_PAGER, UL &QuoteRegexp, UL "^([ \t]*[|>:}#])+" },
/*
** .pp
--- mutt.h.orig 2019-04-28 20:41:58 UTC
+++ mutt.h
@@ -478,6 +478,8 @@ enum
OPTPRINTDECODE,
OPTPRINTSPLIT,
OPTPROMPTAFTER,
+ OPTQUOTEEMPTY,
+ OPTQUOTEQUOTED,
OPTREADONLY,
OPTREFLOWSPACEQUOTES,
OPTREFLOWTEXT,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment