Ravenports generated: 27 Aug 2021 01:57
[ravenports.git] / bucket_8F / mutt
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               mutt
4 VERSION=                2.1.2
5 KEYWORDS=               mail
6 VARIANTS=               standard
7 SDESC[standard]=        Powerful mail client
8 HOMEPAGE=               http://www.mutt.org/
9 CONTACT=                Leonid_Bobrov[goleo@disroot.org]
10
11 DOWNLOAD_GROUPS=        main
12 SITES[main]=            ftp://ftp.mutt.org/pub/mutt/
13 DISTFILE[1]=            mutt-2.1.2.tar.gz:main
14 DF_INDEX=               1
15 SPKGS[standard]=        complete
16                         primary
17                         docs
18                         nls
19
20 OPTIONS_AVAILABLE=      none
21 OPTIONS_STANDARD=       none
22
23 BUILD_DEPENDS=          docbook-xsl:primary:standard
24                         lynx:primary:standard
25                         gdbm:primary:static
26 BUILDRUN_DEPENDS=       cyrus-sasl:primary:standard
27                         gettext:runtime:standard
28                         libidn2:primary:standard
29 RUN_DEPENDS=            media-types:single:standard
30
31 USES=                   cpe ncurses perl shebangfix ssl zlib iconv:translit
32
33 LICENSE=                GPLv2+:primary
34 LICENSE_TERMS=          primary:{{WRKSRC}}/COPYRIGHT
35 LICENSE_FILE=           GPLv2+:stock
36 LICENSE_SCHEME=         solo
37
38 FPC_EQUIVALENT=         mail/mutt
39 SHEBANG_FILES=          contrib/smime_keys_test.pl
40                         doc/gen-map-doc
41                         smime_keys.pl
42
43 MUST_CONFIGURE=         gnu
44 CONFIGURE_ARGS=         --disable-debug
45                         --disable-flock
46                         --enable-compressed
47                         --enable-external_dotlock
48                         --enable-fcntl
49                         --disable-gpgme
50                         --enable-hcache
51                         --enable-imap
52                         --enable-nls
53                         --enable-pop
54                         --enable-sidebar
55                         --enable-smtp
56                         --mandir={{MANPREFIX}}/man
57                         --prefix={{PREFIX}}
58                         --sysconfdir={{PREFIX}}/etc
59                         --with-docdir={{PREFIX}}/share/doc/mutt
60                         --with-curses
61                         --with-gdbm
62                         --with-idn2
63                         --with-sasl={{LOCALBASE}}
64                         --with-ssl
65                         --with-libiconv-prefix={{LOCALBASE}}
66                         --without-kyotocabinet
67                         --without-tokyocabinet
68                         --without-qdbm
69
70 CFLAGS=                 -I{{NCURSESINC}}
71
72 post-install:
73         ${RM} ${STAGEDIR}${PREFIX}/etc/mime.types
74
75 [FILE:414:descriptions/desc.primary]
76 Mutt is a small but very powerful text-based mail client for Unix-like
77 operating systems. Features include support for multiple mailbox formats
78 (including IMAP, POP3, mbox, MMDF, MH, Maildir), MIME/RFC2047, message
79 threading, encryption and signing with PGP/GPG and S/MIME, and many
80 operations can use regular expressions. It's highly customizable with
81 many options for colours, key bindings, display formats etc.
82
83
84 [FILE:96:distinfo]
85 692ab7dafa8ed1574c8e60a0b223584b11fcf55e2daaf643dbb09f269f9f3c69      5404858 mutt-2.1.2.tar.gz
86
87
88 [FILE:288:manifests/plist.primary]
89 @sample etc/Muttrc.sample
90 bin/
91  flea
92  mutt
93 @(,mail,2755) bin/mutt_dotlock
94  mutt_pgpring
95  muttbug
96  pgpewrap
97  smime_keys
98 share/info/mutt.info
99 share/man/man1/
100  mutt.1.gz
101  mutt_dotlock.1.gz
102  mutt_pgpring.1.gz
103  pgpewrap.1.gz
104  smime_keys.1.gz
105 share/man/man5/
106  mbox.5.gz
107  mmdf.5.gz
108  muttrc.5.gz
109
110
111 [FILE:1089:manifests/plist.nls]
112 share/locale/bg/LC_MESSAGES/mutt.mo
113 share/locale/ca/LC_MESSAGES/mutt.mo
114 share/locale/cs/LC_MESSAGES/mutt.mo
115 share/locale/da/LC_MESSAGES/mutt.mo
116 share/locale/de/LC_MESSAGES/mutt.mo
117 share/locale/el/LC_MESSAGES/mutt.mo
118 share/locale/eo/LC_MESSAGES/mutt.mo
119 share/locale/es/LC_MESSAGES/mutt.mo
120 share/locale/et/LC_MESSAGES/mutt.mo
121 share/locale/eu/LC_MESSAGES/mutt.mo
122 share/locale/fi/LC_MESSAGES/mutt.mo
123 share/locale/fr/LC_MESSAGES/mutt.mo
124 share/locale/ga/LC_MESSAGES/mutt.mo
125 share/locale/gl/LC_MESSAGES/mutt.mo
126 share/locale/hu/LC_MESSAGES/mutt.mo
127 share/locale/id/LC_MESSAGES/mutt.mo
128 share/locale/it/LC_MESSAGES/mutt.mo
129 share/locale/ja/LC_MESSAGES/mutt.mo
130 share/locale/ko/LC_MESSAGES/mutt.mo
131 share/locale/lt/LC_MESSAGES/mutt.mo
132 share/locale/nl/LC_MESSAGES/mutt.mo
133 share/locale/pl/LC_MESSAGES/mutt.mo
134 share/locale/pt_BR/LC_MESSAGES/mutt.mo
135 share/locale/ru/LC_MESSAGES/mutt.mo
136 share/locale/sk/LC_MESSAGES/mutt.mo
137 share/locale/sv/LC_MESSAGES/mutt.mo
138 share/locale/tr/LC_MESSAGES/mutt.mo
139 share/locale/uk/LC_MESSAGES/mutt.mo
140 share/locale/zh_CN/LC_MESSAGES/mutt.mo
141 share/locale/zh_TW/LC_MESSAGES/mutt.mo
142
143
144 [FILE:1301:patches/patch-Makefile.in]
145 --- Makefile.in.orig    2021-08-24 19:58:54 UTC
146 +++ Makefile.in
147 @@ -322,7 +322,7 @@ am__define_uniq_tagged_files = \
148  ETAGS = etags
149  CTAGS = ctags
150  CSCOPE = cscope
151 -DIST_SUBDIRS = m4 po doc contrib imap autocrypt
152 +DIST_SUBDIRS = m4 po contrib imap autocrypt doc
153  am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
154         $(top_srcdir)/flymake.am ABOUT-NLS ChangeLog INSTALL NEWS \
155         README TODO compile config.guess config.rpath config.sub \
156 @@ -1677,18 +1677,9 @@ install-exec-hook:
157                 rm -f $(DESTDIR)$(bindir)/mutt.dotlock ;                \
158                 ln -sf $(DESTDIR)$(bindir)/mutt_dotlock $(DESTDIR)$(bindir)/mutt.dotlock ; \
159         fi
160 -       if test -f $(DESTDIR)$(bindir)/mutt_dotlock && test x$(DOTLOCK_GROUP) != x ; then \
161 -               chgrp $(DOTLOCK_GROUP) $(DESTDIR)$(bindir)/mutt_dotlock && \
162 -               chmod $(DOTLOCK_PERMISSION) $(DESTDIR)$(bindir)/mutt_dotlock || \
163 -               { echo "Can't fix mutt_dotlock's permissions!  This is required to lock mailboxes in the mail spool directory." >&2 ; exit 1 ; } \
164 -       fi
165  
166  install-data-local:
167         $(MKDIR_P) $(DESTDIR)$(sysconfdir)
168 -       $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir)/mime.types.dist
169 -       -if [ ! -f $(DESTDIR)$(sysconfdir)/mime.types ]; then \
170 -               $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir); \
171 -       fi
172  
173  uninstall-local:
174         for i in mime.types ; do \
175
176
177 [FILE:2188:patches/patch-browser.c]
178 --- browser.c.orig      2021-08-24 19:54:24 UTC
179 +++ browser.c
180 @@ -99,6 +99,12 @@ static int browser_compare_subject (cons
181    struct folder_file *pa = (struct folder_file *) a;
182    struct folder_file *pb = (struct folder_file *) b;
183  
184 +  /* Always keep '..' in first menu position */
185 +  if (!strncmp(pa->display_name, "..", 2))
186 +         return(-1);
187 +  if (!strncmp(pb->display_name, "..", 2))
188 +         return(1);
189 +
190    int r = mutt_strcoll (pa->display_name, pb->display_name);
191  
192    return (sort_reverse_flag ? -r : r);
193 @@ -109,6 +115,12 @@ static int browser_compare_date (const v
194    struct folder_file *pa = (struct folder_file *) a;
195    struct folder_file *pb = (struct folder_file *) b;
196  
197 +  /* Always keep '..' in first menu position */
198 +  if (!strncmp(pa->display_name, "..", 2))
199 +         return(-1);
200 +  if (!strncmp(pb->display_name, "..", 2))
201 +         return(1);
202 +
203    int r = pa->mtime - pb->mtime;
204  
205    return (sort_reverse_flag ? -r : r);
206 @@ -119,6 +131,12 @@ static int browser_compare_size (const v
207    struct folder_file *pa = (struct folder_file *) a;
208    struct folder_file *pb = (struct folder_file *) b;
209  
210 +  /* Always keep '..' in first menu position */
211 +  if (!strncmp(pa->display_name, "..", 2))
212 +         return(-1);
213 +  if (!strncmp(pb->display_name, "..", 2))
214 +         return(1);
215 +
216    int r = pa->size - pb->size;
217  
218    return (sort_reverse_flag ? -r : r);
219 @@ -129,6 +147,12 @@ static int browser_compare_count (const
220    struct folder_file *pa = (struct folder_file *) a;
221    struct folder_file *pb = (struct folder_file *) b;
222  
223 +  /* Always keep '..' in first menu position */
224 +  if (!strncmp(pa->display_name, "..", 2))
225 +         return(-1);
226 +  if (!strncmp(pb->display_name, "..", 2))
227 +         return(1);
228 +
229    int r = pa->msg_count - pb->msg_count;
230  
231    return (sort_reverse_flag ? -r : r);
232 @@ -139,6 +163,12 @@ static int browser_compare_unread (const
233    struct folder_file *pa = (struct folder_file *) a;
234    struct folder_file *pb = (struct folder_file *) b;
235  
236 +  /* Always keep '..' in first menu position */
237 +  if (!strncmp(pa->display_name, "..", 2))
238 +         return(-1);
239 +  if (!strncmp(pb->display_name, "..", 2))
240 +         return(1);
241 +
242    int r = pa->msg_unread - pb->msg_unread;
243  
244    return (sort_reverse_flag ? -r : r);
245
246
247 [FILE:422:patches/patch-commands.c]
248 --- commands.c.orig     2021-08-24 01:01:54 UTC
249 +++ commands.c
250 @@ -302,7 +302,7 @@ int mutt_display_message (HEADER *cur)
251      {
252        if (cur->security & GOODSIGN)
253        {
254 -       if (!crypt_smime_verify_sender(cur))
255 +       if (option(OPTSMIMENOSENDER) || !crypt_smime_verify_sender(cur))
256           mutt_message ( _("S/MIME signature successfully verified."));
257         else
258           mutt_error ( _("S/MIME certificate owner does not match sender."));
259
260
261 [FILE:521:patches/patch-contrib_Makefile.in]
262 --- contrib/Makefile.in.orig    2021-08-24 19:58:54 UTC
263 +++ contrib/Makefile.in
264 @@ -277,7 +277,7 @@ top_build_prefix = @top_build_prefix@
265  top_builddir = @top_builddir@
266  top_srcdir = @top_srcdir@
267  subdir = contrib
268 -SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \
269 +SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp6.rc Tin.rc \
270         sample.mailcap sample.muttrc sample.muttrc-sidebar sample.muttrc-tlr \
271         sample.muttrc-compress sample.muttrc-starter \
272         sample.vimrc-sidebar colors.default colors.linux smime.rc \
273
274
275 [FILE:1341:patches/patch-doc_Makefile.in]
276 --- doc/Makefile.in.orig        2021-08-24 19:58:54 UTC
277 +++ doc/Makefile.in
278 @@ -579,14 +579,7 @@ install-data-local: makedoc-all instdoc
279             $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \
280           fi \
281         done
282 -       $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist
283 -       -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \
284 -               mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \
285 -       elif [ -f $(DESTDIR)$(pkgdatadir)/../Muttrc ] ; then \
286 -               mv $(DESTDIR)$(pkgdatadir)/../Muttrc* $(DESTDIR)$(sysconfdir) ; \
287 -       elif [ ! -f $(DESTDIR)$(sysconfdir)/Muttrc ] ; then \
288 -               $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir) ; \
289 -       fi
290 +       $(INSTALL) -m 644 $(srcdir)/Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.sample
291         -if [ -f mutt.info ] ; then \
292           $(MKDIR_P) $(DESTDIR)$(infodir) ; \
293           $(INSTALL) -m 644 mutt.info $(DESTDIR)$(infodir) ; \
294 @@ -628,9 +621,7 @@ uninstall-local:
295  
296  check:
297  manual.txt: manual.html
298 -       -LC_ALL=C lynx -localhost -dump -nolist -nonumbers -with_backspaces -display_charset=us-ascii manual.html > $@ || \
299 -       LC_ALL=C w3m -T text/html -I utf-8 -O utf-8 -dump < manual.html > $@ || \
300 -       LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@
301 +       LC_ALL=C lynx -localhost -dump -nolist -nonumbers -with_backspaces -display_charset=us-ascii manual.html > $@
302  
303  Muttrc: stamp-doc-rc
304  
305
306
307 [FILE:4313:patches/patch-hdrline.c]
308 --- hdrline.c.orig      2021-08-24 19:54:24 UTC
309 +++ hdrline.c
310 @@ -248,6 +248,89 @@ static char *apply_subject_mods (ENVELOP
311   * %Y = `x-label:' field (if present, tree unfolded, and != parent's x-label)
312   * %Z = status flags   */
313  
314 +static void
315 +format_smartdate( char *buf, size_t max, struct tm *tm, smartdate_type type )
316 +{
317 +    char *strftime_fmt = NULL;
318 +
319 +    switch( type ) {
320 +        case FUTURE:        /* Date in the future */
321 +            strftime_fmt = "%d%h%y!";
322 +            break;
323 +        case SMARTTIME:     /* Today */
324 +            strftime_fmt = "%I:%M %p";
325 +            break;
326 +        case YESTERDAY:     /* Yesterday */
327 +            strncpy( buf, "Yesterday", max );
328 +            break;
329 +        case WEEKDAY:       /* Within the last 7 days */
330 +            strftime_fmt = "%A";
331 +            break;
332 +        case STANDARD:      /* Within the last six months */
333 +            strftime_fmt = "%h %d";
334 +            break;
335 +        case ANCIENT:       /* Older than 6 months */
336 +            strftime_fmt = "%h %Y";
337 +            break;
338 +    }
339 +
340 +    if( strftime_fmt != NULL ) {
341 +        strftime( buf, max, strftime_fmt, tm );
342 +    }
343 +}
344 +
345 +static void
346 +smartdate( char *buf, size_t max, struct tm *tm )
347 +{
348 +    smartdate_type type = 0;
349 +
350 +    struct tm now;
351 +
352 +    time_t sse = mktime( tm );   /* Seconds since epoch */
353 +    time_t sse_now = time(NULL); /* Seconds since epoch until now */
354 +
355 +    int dse = 0;            /* Days since epoch */
356 +    int dse_now = 0;        /* Days since epoch until today */
357 +
358 +    /* Calculate the number of days since epoch */
359 +    dse = sse / (60*60*24);
360 +    dse_now = sse_now / (60*60*24);
361 +
362 +    /* Default display type */
363 +    type = STANDARD;
364 +
365 +    /* Check if the date is in the future */
366 +    if( dse > dse_now ) {
367 +        type = FUTURE;
368 +    }
369 +    else {
370 +        int diff = dse_now - dse;
371 +        if( diff == 0 ) type = SMARTTIME;
372 +        else if( diff == 1 ) type = YESTERDAY;
373 +        else if( diff < 7 ) type = WEEKDAY;
374 +        else if( diff > 215 ) type = ANCIENT;  /* Surely older than six
375 +                                                  months */
376 +        else if( diff > 180 ) {
377 +            /*
378 +             * Slightly heavy calculation to check if the date is more
379 +             * than six months in the past.  This calculation uses
380 +             * calendar months and not the exact number of days.  So,
381 +             * January 31, 2003 would be considered more than six months
382 +             * old whether today's date is August 1 or August 31, 2003
383 +             */
384 +            int monthdiff;
385 +            localtime_r( &sse_now, &now );
386 +            monthdiff = ( now.tm_mon - tm->tm_mon )
387 +                + ( ( now.tm_year - tm->tm_year ) * 12 );
388 +            if( monthdiff > 6 ) {
389 +                type = ANCIENT;
390 +            }
391 +        }
392 +    }
393 +
394 +    format_smartdate( buf, max, tm, type );
395 +}
396 +
397  static const char *
398  hdr_format_str (char *dest,
399                 size_t destlen,
400 @@ -344,6 +427,53 @@ hdr_format_str (char *dest,
401        const char *cp;
402        struct tm *tm;
403        time_t T;
404 +       int i = 0, invert = 0;
405 +
406 +       if (optional && (op == '[' || op == '(')) {
407 +         char *is;
408 +         T = time(NULL);
409 +         T -= (op == '(') ? hdr->received : hdr->date_sent;
410 +
411 +         is = (char *)prefix;
412 +         if( *is == '>' ) {
413 +           invert = 1;
414 +           ++is;
415 +         }
416 +
417 +         while( *is && *is != '?' ) {
418 +           int t = strtol (is, &is, 10);
419 +           switch (*(is++)) {
420 +             case '?':
421 +               break;
422 +             case 'y':
423 +               t *= 365 * 24 * 60 * 60;
424 +               break;
425 +             case 'M':
426 +               t *= 30 * 24 * 60 * 60;
427 +               break;
428 +             case 'w':
429 +               t *= 7 * 24 * 60 * 60;
430 +               break;
431 +             case 'd':
432 +               t *= 24 * 60 * 60;
433 +               break;
434 +             case 'h':
435 +               t *= 60 * 60;
436 +               break;
437 +             case 'm':
438 +               t *= 60;
439 +               break;
440 +           }
441 +           i += t;
442 +         }
443 +
444 +         if (i < 0)
445 +           i *= -1;
446 +
447 +         if( (T > i || T < -1*i) ^ invert )
448 +           optional = 0;
449 +         break;
450 +       }
451  
452        p = dest;
453  
454 @@ -421,7 +551,13 @@ hdr_format_str (char *dest,
455  
456        if (!do_locales)
457          setlocale (LC_TIME, "C");
458 -      strftime (buf2, sizeof (buf2), dest, tm);
459 +               /* Identify the non-strftime smartdate pattern (%@) */
460 +               if( strncmp( dest, "%@", 2 ) == 0 ) {
461 +                       smartdate( buf2, sizeof( buf2 ), tm );
462 +               }
463 +               else {
464 +                       strftime (buf2, sizeof (buf2), dest, tm);
465 +               }
466        if (!do_locales)
467          setlocale (LC_TIME, "");
468  
469
470
471 [FILE:1222:patches/patch-init.h]
472 --- init.h.orig 2021-08-24 19:54:24 UTC
473 +++ init.h
474 @@ -1261,6 +1261,11 @@ struct option_t MuttVars[] = {
475    ** sent to both the list and your address, resulting in two copies
476    ** of the same email for you.
477    */
478 +  { "force_base64",   DT_BOOL, R_NONE, {.l=OPTFORCEBASE64}, {.l=0} },
479 +  /*
480 +  ** .pp
481 +  ** If you need to encode all text parts to base64, set this option.
482 +  */
483    { "force_name",      DT_BOOL, R_NONE, {.l=OPTFORCENAME}, {.l=0} },
484    /*
485    ** .pp
486 @@ -3799,6 +3804,15 @@ struct option_t MuttVars[] = {
487    ** to determine the key to use. It will ask you to supply a key, if it can't find one.
488    ** (S/MIME only)
489    */
490 +  { "smime_dont_check_sender", DT_BOOL, R_NONE, {.l=OPTSMIMENOSENDER}, {.l=0} },
491 +  /*
492 +  ** .pp
493 +  ** This flag controls wether you want the skip the check for the sender's
494 +  ** email address against the email address stored in the certificate. 
495 +  ** This can be useful if most of your email senders use SMIMEv3 which no
496 +  ** longer needs email-addresses as part of the certificates.
497 +  ** It is not set by default.
498 +  */
499    { "smime_self_encrypt_as",   DT_SYN,  R_NONE, {.p="smime_default_key"}, {.p=0} },
500    { "smime_default_key",               DT_STR,  R_NONE, {.p=&SmimeDefaultKey}, {.p=0} },
501    /*
502
503
504 [FILE:926:patches/patch-mutt.h]
505 --- mutt.h.orig 2021-08-24 19:54:24 UTC
506 +++ mutt.h
507 @@ -168,6 +168,16 @@ typedef enum
508    MUTT_WRITE_HEADER_MIME
509  } mutt_write_header_mode;
510  
511 +/* flags for SmartDate */
512 +typedef enum {
513 +    FUTURE      = 1,
514 +    SMARTTIME   = 2,
515 +    YESTERDAY   = 3,
516 +    WEEKDAY     = 4,
517 +    STANDARD    = 5,
518 +    ANCIENT     = 6
519 +} smartdate_type;
520 +
521  /* types for mutt_add_hook() */
522  #define MUTT_FOLDERHOOK  1
523  #define MUTT_MBOXHOOK    (1<<1)
524 @@ -236,6 +246,7 @@ enum
525    MUTT_EXPIRED,
526    MUTT_SUPERSEDED,
527    MUTT_TRASH,
528 +  MUTT_THREADCOMPLETE,
529  
530    /* actions for mutt_pattern_comp/mutt_pattern_exec */
531    MUTT_AND,
532 @@ -423,6 +434,7 @@ enum
533    OPTFCCCLEAR,
534    OPTFLAGSAFE,
535    OPTFOLLOWUPTO,
536 +  OPTFORCEBASE64,
537    OPTFORCENAME,
538    OPTFORWDECODE,
539    OPTFORWQUOTE,
540 @@ -596,6 +608,7 @@ enum
541    OPTSMIMEISDEFAULT,
542    OPTSMIMESELFENCRYPT,
543    OPTASKCERTLABEL,
544 +  OPTSMIMENOSENDER,
545    OPTSDEFAULTDECRYPTKEY,
546    OPTPGPIGNORESUB,
547    OPTPGPCHECKEXIT,
548
549
550 [FILE:721:patches/patch-sendlib.c]
551 --- sendlib.c.orig      2021-08-24 19:54:24 UTC
552 +++ sendlib.c
553 @@ -1214,7 +1214,9 @@ static void mutt_set_encoding (BODY *b,
554    if (b->type == TYPETEXT)
555    {
556      char *chsname = mutt_get_body_charset (send_charset, sizeof (send_charset), b);
557 -    if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
558 +    if (option (OPTFORCEBASE64))
559 +      b->encoding = ENCBASE64;
560 +    else if ((info->lobin && ascii_strncasecmp (chsname, "iso-2022", 8)) || info->linemax > 990 || (info->from && option (OPTENCODEFROM)))
561        b->encoding = ENCQUOTEDPRINTABLE;
562      else if (info->hibin)
563        b->encoding = option (OPTALLOW8BIT) ? ENC8BIT : ENCQUOTEDPRINTABLE;
564