X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=handler.c;h=d407495c15224593b35e82a8edba02034d873a63;hp=e53ca37ed6b7c27a66db1d86def85457c1d5c096;hb=fdf0986350bf8b49a817aaf53526904f8ed5b8de;hpb=2c311482c97a1b222ef240dae3383ce2e11a0c23 diff --git a/handler.c b/handler.c index e53ca37..d407495 100644 --- a/handler.c +++ b/handler.c @@ -16,6 +16,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ +#if HAVE_CONFIG_H +# include "config.h" +#endif + #include #include #include @@ -31,6 +35,7 @@ #include "copy.h" #include "charset.h" #include "mutt_crypt.h" +#include "lib.h" #define BUFI_SIZE 1000 @@ -898,6 +903,12 @@ void text_enriched_handler (BODY *a, STATE *s) #define FLOWED_MAX 77 +#if 0 +static int flowed_maybe_quoted (char *cont) +{ + return regexec ((regex_t *) QuoteRegexp.rx, cont, 0, NULL, 0) == 0; +} + static void flowed_quote (STATE *s, int level) { int i; @@ -914,11 +925,6 @@ static void flowed_quote (STATE *s, int level) state_putc ('>', s); } -static int flowed_maybe_quoted (char *cont) -{ - return regexec ((regex_t *) QuoteRegexp.rx, cont, 0, NULL, 0) == 0; -} - static void flowed_stuff (STATE *s, char *cont, int level) { if (!option (OPTTEXTFLOWED) && !(s->flags & M_DISPLAY)) @@ -961,7 +967,6 @@ static int flowed_visual_strlen (char *l, int i) return j; } -#if 0 static void text_plain_flowed_handler (BODY *a, STATE *s) { char line[LONG_STRING]; @@ -1203,27 +1208,43 @@ static int get_quote_level(char * line) { static void print_flowed_line(char * line, STATE *s,int ql) { int width; char * pos, * oldpos; - char * t; int len = strlen(line); int i; - width = COLS - WrapMargin - ql - 1; - if (option(OPTSTUFFQUOTED)) - --width; - if (width < 0) - width = COLS; + if (MaxLineLength > 0) { + width = MaxLineLength - WrapMargin - ql - 1; + if (option(OPTSTUFFQUOTED)) + --width; + if (width < 0) + width = MaxLineLength; + } + else { + if (option(OPTMBOXPANE)) + width = COLS - SidebarWidth - WrapMargin - ql - 1; + else + width = COLS - WrapMargin - ql - 1; + + if (option(OPTSTUFFQUOTED)) + --width; + if (width < 0) + width = COLS; + } /* fprintf(stderr,"print_flowed_line will print `%s' with ql = %d\n",line,ql); */ if (strlen(line)==0) { + if (s->prefix) + state_puts(s->prefix,s); for (i=0;i',s); + if (option(OPTSTUFFQUOTED)) + state_putc(' ',s); state_putc('\n',s); return; } pos=line+ql+width; oldpos=line+ql; - if (ql>0 && isblank(*oldpos)) ++oldpos; + if (ql>0 && ISBLANK(*oldpos)) ++oldpos; /* fprintf(stderr,"oldpos = %p line+len = %p\n",oldpos,line+len); */ @@ -1257,11 +1278,15 @@ static void print_flowed_line(char * line, STATE *s,int ql) { } else { /* fprintf(stderr,"if 1 else\n"); */ } + if (s->prefix) + state_puts(s->prefix,s); for (i=0;i',s); - if (option(OPTSTUFFQUOTED) && ql>0) state_putc(' ',s); + if (option(OPTSTUFFQUOTED) && (ql>0 || s->prefix)) state_putc(' ',s); state_puts(oldpos,s); /* fprintf(stderr,"print_flowed_line: `%s'\n",oldpos); */ + if (posflags & M_CHARCONV) + if (istext) { - char *charset = mutt_get_parameter ("charset", b->parameter); - if (charset && Charset) - cd = mutt_iconv_open (Charset, charset, M_ICONV_HOOK_FROM); + if(s->flags & M_CHARCONV) + { + char *charset = mutt_get_parameter ("charset", b->parameter); + if (!option (OPTSTRICTMIME) && !charset) + charset = mutt_get_first_charset (AssumedCharset); + if (charset && Charset) + cd = mutt_iconv_open (Charset, charset, M_ICONV_HOOK_FROM); + } + else + { + if (b->file_charset) + cd = mutt_iconv_open (Charset, b->file_charset, M_ICONV_HOOK_FROM); + } } fseek (s->fpin, b->offset, 0);