mutt stable branch with some hacks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix IDNA functions for systems without iconv.

The IDNA changes for SMTPUTF8 support introduced a bug for systems
without iconv. For those systems, the local<->intl functions would
return an error due to the charset conversion failing.

Change mutt_idna.c back to being conditionally compiled, but this time
based on HAVE_ICONV. If there is no iconv, stub out the functions in
mutt_idna.h.

+36 -2
+2 -2
Makefile.am
··· 33 33 rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \ 34 34 score.c send.c sendlib.c signal.c sort.c \ 35 35 status.c system.c thread.c charset.c history.c lib.c \ 36 - muttlib.c editmsg.c mbyte.c mutt_idna.c \ 36 + muttlib.c editmsg.c mbyte.c \ 37 37 url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c 38 38 39 39 nodist_mutt_SOURCES = $(BUILT_SOURCES) ··· 53 53 EXTRA_mutt_SOURCES = account.c bcache.c crypt-gpgme.c crypt-mod-pgp-classic.c \ 54 54 crypt-mod-pgp-gpgme.c crypt-mod-smime-classic.c \ 55 55 crypt-mod-smime-gpgme.c dotlock.c gnupgparse.c hcache.c md5.c \ 56 - mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \ 56 + mutt_idna.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \ 57 57 mutt_tunnel.c pgp.c pgpinvoke.c pgpkey.c pgplib.c pgpmicalg.c \ 58 58 pgppacket.c pop.c pop_auth.c pop_lib.c remailer.c resize.c sha1.c \ 59 59 smime.c smtp.c utf8.c wcwidth.c \
+7
configure.ac
··· 1164 1164 1165 1165 dnl -- IDN depends on iconv 1166 1166 1167 + dnl mutt_idna.c will perform charset transformations (for smtputf8 1168 + dnl support) as long as at least iconv is installed. If there is no 1169 + dnl iconv, then it doesn't need to be included in the build. 1170 + if test "$am_cv_func_iconv" = yes; then 1171 + MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS mutt_idna.o" 1172 + fi 1173 + 1167 1174 AC_ARG_WITH(idn, AS_HELP_STRING([--with-idn=@<:@PFX@:>@],[Use GNU libidn for internationalized domain names]), 1168 1175 [ 1169 1176 if test "$with_idn" != "no" ; then
+27
mutt_idna.h
··· 45 45 #endif /* HAVE_LIBIDN */ 46 46 47 47 48 + #ifdef HAVE_ICONV 48 49 int mutt_addrlist_to_intl (ADDRESS *, char **); 49 50 int mutt_addrlist_to_local (ADDRESS *); 50 51 ··· 52 53 int mutt_env_to_intl (ENVELOPE *, char **, char **); 53 54 54 55 const char *mutt_addr_for_display (ADDRESS *a); 56 + #else 57 + static inline int mutt_addrlist_to_intl (ADDRESS *addr, char **err) 58 + { 59 + return 0; 60 + } 61 + 62 + static inline int mutt_addrlist_to_local (ADDRESS *addr) 63 + { 64 + return 0; 65 + } 66 + 67 + static inline void mutt_env_to_local (ENVELOPE *env) 68 + { 69 + return; 70 + } 71 + 72 + static inline int mutt_env_to_intl (ENVELOPE *env, char **tag, char **err) 73 + { 74 + return 0; 75 + } 76 + 77 + static inline const char *mutt_addr_for_display (ADDRESS *a) 78 + { 79 + return a->mailbox; 80 + } 81 + #endif /* HAVE_LIBICONV */ 55 82 56 83 57 84 #endif