1 diff -udprP mutt-1.5.9.orig/PATCHES mutt-1.5.9/PATCHES
2 --- mutt-1.5.9.orig/PATCHES 2005-03-13 18:33:06.000000000 +0200
3 +++ mutt-1.5.9/PATCHES 2005-03-13 19:42:58.018681272 +0200
6 diff -udprP mutt-1.5.9.orig/globals.h mutt-1.5.9/globals.h
7 --- mutt-1.5.9.orig/globals.h 2005-02-12 22:01:02.000000000 +0200
8 +++ mutt-1.5.9/globals.h 2005-03-13 19:42:58.019681120 +0200
9 @@ -24,6 +24,8 @@ WHERE CONTEXT *Context;
10 WHERE char Errorbuf[STRING];
11 WHERE char AttachmentMarker[STRING];
13 +WHERE char Quotebuf[SHORT_STRING];
15 #if defined(DL_STANDALONE) && defined(USE_DOTLOCK)
16 WHERE char *MuttDotlock;
18 diff -udprP mutt-1.5.9.orig/handler.c mutt-1.5.9/handler.c
19 --- mutt-1.5.9.orig/handler.c 2005-02-03 20:47:52.000000000 +0200
20 +++ mutt-1.5.9/handler.c 2005-03-13 19:42:58.020680968 +0200
21 @@ -91,6 +91,8 @@ void mutt_convert_to_state(iconv_t cd, c
23 state_prefix_put (bufo, ob - bufo, s);
25 + if (Quotebuf[0] != '\0')
26 + state_prefix_putc ('\n', s);
30 @@ -1725,6 +1727,8 @@ void mutt_decode_attachment (BODY *b, ST
31 int istext = mutt_is_text_part (b);
32 iconv_t cd = (iconv_t)(-1);
36 if (istext && s->flags & M_CHARCONV)
38 char *charset = mutt_get_parameter ("charset", b->parameter);
39 diff -udprP mutt-1.5.9.orig/init.h mutt-1.5.9/init.h
40 --- mutt-1.5.9.orig/init.h 2005-03-01 17:56:02.000000000 +0200
41 +++ mutt-1.5.9/init.h 2005-03-13 19:42:58.023680512 +0200
42 @@ -2124,6 +2124,19 @@ struct option_t MuttVars[] = {
43 ** have no effect, and if it is set to ask-yes or ask-no, you are
44 ** prompted for confirmation when you try to quit.
46 + { "quote_empty", DT_BOOL, R_NONE, OPTQUOTEEMPTY, 1 },
49 + ** Controls whether or not empty lines will be quoted using
50 + ** ``$indent_string''.
52 + { "quote_quoted", DT_BOOL, R_NONE, OPTQUOTEQUOTED, 0 },
55 + ** Controls how quoted lines will be quoted. If set, one quote
56 + ** character will be added to the end of existing prefix. Otherwise,
57 + ** quoted lines will be prepended by ``$indent_string''.
59 { "quote_regexp", DT_RX, R_PAGER, UL &QuoteRegexp, UL "^([ \t]*[|>:}#])+" },
62 diff -udprP mutt-1.5.9.orig/mutt.h mutt-1.5.9/mutt.h
63 --- mutt-1.5.9.orig/mutt.h 2005-02-28 17:13:57.000000000 +0200
64 +++ mutt-1.5.9/mutt.h 2005-03-13 19:42:58.024680360 +0200
65 @@ -404,6 +404,8 @@ enum
74 diff -udprP mutt-1.5.9.orig/muttlib.c mutt-1.5.9/muttlib.c
75 --- mutt-1.5.9.orig/muttlib.c 2005-02-12 21:30:16.000000000 +0200
76 +++ mutt-1.5.9/muttlib.c 2005-03-13 19:42:58.026680056 +0200
77 @@ -1254,15 +1254,45 @@ void state_prefix_putc (char c, STATE *s
79 if (s->flags & M_PENDINGPREFIX)
81 - state_reset_prefix (s);
83 - state_puts (s->prefix, s);
88 + i = strlen (Quotebuf);
91 + if (i == sizeof (Quotebuf) - 1 || c == '\n')
93 + char buf[2 * SHORT_STRING];
94 + int j = 0, offset = 0;
95 + regmatch_t pmatch[1];
97 + state_reset_prefix (s);
98 + while (regexec ((regex_t *) QuoteRegexp.rx, &Quotebuf[offset], 1, pmatch, 0) == 0)
99 + offset += pmatch->rm_eo;
101 + if (!option (OPTQUOTEEMPTY) && Quotebuf[0] == '\n')
102 + strcpy (buf, Quotebuf);
103 + else if (option (OPTQUOTEQUOTED) && offset)
105 + for (i = 0; i < offset; i++)
106 + if (Quotebuf[i] != ' ')
108 + strncpy (buf, Quotebuf, j + 1);
109 + strcpy (buf + j + 1, Quotebuf + j);
112 + snprintf (buf, sizeof (buf), "%s%s", NONULL(s->prefix), Quotebuf);
114 + state_puts (buf, s);
122 state_set_prefix (s);
123 + Quotebuf[0] = '\0';
127 int state_printf (STATE *s, const char *fmt, ...)