71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
---
|
|
handler.c | 14 ++++++++------
|
|
1 file changed, 8 insertions(+), 6 deletions(-)
|
|
|
|
--- handler.c
|
|
+++ handler.c 2015-09-11 14:52:40.778018507 +0000
|
|
@@ -780,7 +780,7 @@ static void enriched_set_flags (const wc
|
|
static int text_enriched_handler (BODY *a, STATE *s)
|
|
{
|
|
enum {
|
|
- TEXT, LANGLE, TAG, BOGUS_TAG, NEWLINE, ST_EOF, DONE
|
|
+ TEXT, TEXT_GOTWC, LANGLE, TAG, BOGUS_TAG, NEWLINE, ST_EOF, DONE
|
|
} state = TEXT;
|
|
|
|
long bytes = a->length;
|
|
@@ -809,7 +809,7 @@ static int text_enriched_handler (BODY *
|
|
{
|
|
if (state != ST_EOF)
|
|
{
|
|
- if (!bytes || (wc = fgetwc (s->fpin)) == WEOF)
|
|
+ if (state != TEXT_GOTWC && (!bytes || (fscanf (s->fpin, "%lc", &wc)) == EOF))
|
|
state = ST_EOF;
|
|
else
|
|
bytes--;
|
|
@@ -817,6 +817,8 @@ static int text_enriched_handler (BODY *
|
|
|
|
switch (state)
|
|
{
|
|
+ case TEXT_GOTWC:
|
|
+ state = TEXT;
|
|
case TEXT :
|
|
switch (wc)
|
|
{
|
|
@@ -877,9 +879,8 @@ static int text_enriched_handler (BODY *
|
|
enriched_flush (&stte, 1);
|
|
else
|
|
{
|
|
- ungetwc (wc, s->fpin);
|
|
bytes++;
|
|
- state = TEXT;
|
|
+ state = TEXT_GOTWC;
|
|
}
|
|
break;
|
|
|
|
@@ -1567,7 +1568,7 @@ void mutt_decode_attachment (BODY *b, ST
|
|
* strip all trailing spaces to improve interoperability;
|
|
* if $text_flowed is unset, simply verbatim copy input
|
|
*/
|
|
-static int text_plain_handler (BODY *b, STATE *s)
|
|
+static int text_plain_handler (BODY *b __attribute__((unused)), STATE *s)
|
|
{
|
|
char *buf = NULL;
|
|
size_t l = 0, sz = 0;
|
|
@@ -1595,7 +1596,6 @@ static int run_decode_and_handler (BODY
|
|
int origType;
|
|
char *savePrefix = NULL;
|
|
FILE *fp = NULL;
|
|
- char tempfile[_POSIX_PATH_MAX];
|
|
size_t tmplength = 0;
|
|
LOFF_T tmpoffset = 0;
|
|
int decode = 0;
|
|
@@ -1604,6 +1604,8 @@ static int run_decode_and_handler (BODY
|
|
#ifdef HAVE_FMEMOPEN
|
|
char *temp;
|
|
size_t tempsize;
|
|
+#else
|
|
+ char tempfile[_POSIX_PATH_MAX];
|
|
#endif
|
|
|
|
fseeko (s->fpin, b->offset, 0);
|