mutt stable branch with some hacks
0
fork

Configure Feed

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

iconv-hook.

+301 -20
+11 -5
charset.c
··· 195 195 { "PCK", "Shift_JIS" }, 196 196 { "ko_KR-euc", "euc-kr" }, 197 197 { "zh_TW-big5", "big5" }, 198 - 199 - 200 - 201 - 198 + 199 + /* seems to be common on some systems */ 200 + 201 + { "sjis", "Shift_JIS" }, 202 + 202 203 203 204 /* End of aliases. Please keep this line last. */ 204 205 ··· 306 307 char fromcode1[SHORT_STRING]; 307 308 char *tmp; 308 309 310 + iconv_t cd; 311 + 309 312 mutt_canonical_charset (tocode1, sizeof (tocode1), tocode); 310 313 if ((flags & M_ICONV_HOOK_TO) && (tmp = mutt_charset_hook (tocode1))) 311 314 mutt_canonical_charset (tocode1, sizeof (tocode1), tmp); ··· 314 317 if ((flags & M_ICONV_HOOK_FROM) && (tmp = mutt_charset_hook (fromcode1))) 315 318 mutt_canonical_charset (fromcode1, sizeof (fromcode1), tmp); 316 319 317 - return iconv_open (tocode1, fromcode1); 320 + if ((cd = iconv_open (tocode1, fromcode1)) != (iconv_t) -1) 321 + return cd; 322 + /* else */ 323 + return iconv_open (mutt_iconv_hook (tocode1), mutt_iconv_hook (fromcode1)); 318 324 } 319 325 320 326
+2 -1
configure.in
··· 905 905 po/Makefile.in doc/Makefile contrib/Makefile dnl 906 906 muttbug.sh dnl 907 907 imap/Makefile dnl 908 - Muttrc.head) 908 + Muttrc.head dnl 909 + doc/instdoc.sh)
+15 -2
contrib/Makefile.in
··· 28 28 patch.slang-1.2.2.keypad.1 \ 29 29 $(SAMPLES) 30 30 31 + ICONV_DISTFILES=README make.sh 32 + 31 33 all clean: 32 34 33 35 distclean: ··· 36 38 check: 37 39 38 40 install: 39 - $(top_srcdir)/mkinstalldirs $(DESTDIR)$(docdir)/samples 41 + $(top_srcdir)/mkinstalldirs $(DESTDIR)$(docdir)/samples $(DESTDIR)$(docdir)/samples/iconv 40 42 for f in $(SAMPLES) ; do \ 41 43 $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir)/samples ; \ 44 + done 45 + for f in $(srcdir)/iconv/*.rc ; do \ 46 + $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir)/samples/iconv ; \ 42 47 done 43 48 44 49 # Nothing needs to be done - uninstall in doc removes samples as well. ··· 57 62 ln $(srcdir)/$$file $(distdir) 2> /dev/null \ 58 63 || cp -p $(srcdir)/$$file $(distdir); \ 59 64 done 60 - 65 + mkdir -p $(distdir)/iconv 66 + for file in $(ICONV_DISTFILES) ; do 67 + ln $(srcdir)/iconv/$$file $(distdir)/iconv 2> /dev/null \ 68 + || cp -p $(srcdir)/iconv/$$file $(distdir)/iconv; \ 69 + done 70 + for file in $(srcdir)/iconv/*.rc ; do 71 + ln $$file $(distdir)/iconv 2> /dev/null \ 72 + || cp -p $$file $(distdir)/iconv ; \ 73 + done
+15
contrib/iconv/README
··· 1 + This directory contains sample collections of iconv-hooks for 2 + various platforms. The files have been auto-generated from the 3 + source code of Bruno Haible's libiconv implementation, version 1.5.1. 4 + 5 + libiconv is available from <http://clisp.cons.org/~haible/packages-libiconv.html>. 6 + 7 + If you want to re-generate the files from a newer version of 8 + libiconv, just type: 9 + 10 + rm -f *.rc 11 + ./make.sh <top-level iconv directory> 12 + 13 + Note, however, that make.sh isn't guaranteed to run on any system 14 + but the one used for generating these files. 15 +
+2
contrib/iconv/iconv.aix-3.2.5.rc
··· 1 + iconv-hook CP850 IBM-850 2 + iconv-hook ISO-8859-1 ISO8859-1
+13
contrib/iconv/iconv.aix-4.1.5.rc
··· 1 + iconv-hook CP1046 IBM-1046 2 + iconv-hook CP850 IBM-850 3 + iconv-hook CP856 IBM-856 4 + iconv-hook CP932 IBM-932 5 + iconv-hook EUC-CN IBM-eucCN 6 + iconv-hook EUC-JP IBM-eucJP 7 + iconv-hook EUC-KR IBM-eucKR 8 + iconv-hook EUC-TW IBM-eucTW 9 + iconv-hook ISO-8859-1 ISO8859-1 10 + iconv-hook ISO-8859-2 ISO8859-2 11 + iconv-hook ISO-8859-5 ISO8859-5 12 + iconv-hook ISO-8859-6 ISO8859-6 13 + iconv-hook ISO-8859-8 ISO8859-8
+18
contrib/iconv/iconv.aix-4.2.0.rc
··· 1 + iconv-hook BIG5 big5 2 + iconv-hook CP1046 IBM-1046 3 + iconv-hook CP850 IBM-850 4 + iconv-hook CP856 IBM-856 5 + iconv-hook CP922 IBM-922 6 + iconv-hook CP932 IBM-932 7 + iconv-hook EUC-CN IBM-eucCN 8 + iconv-hook EUC-JP IBM-eucJP 9 + iconv-hook EUC-KR IBM-eucKR 10 + iconv-hook EUC-TW IBM-eucTW 11 + iconv-hook ISO-8859-13 IBM-921 12 + iconv-hook ISO-8859-1 ISO8859-1 13 + iconv-hook ISO-8859-2 ISO8859-2 14 + iconv-hook ISO-8859-5 ISO8859-5 15 + iconv-hook ISO-8859-6 ISO8859-6 16 + iconv-hook ISO-8859-7 ISO8859-7 17 + iconv-hook ISO-8859-8 ISO8859-8 18 + iconv-hook ISO-8859-9 ISO8859-9
+23
contrib/iconv/iconv.aix-4.3.2.rc
··· 1 + iconv-hook BIG5 big5 2 + iconv-hook CP1046 IBM-1046 3 + iconv-hook CP1124 IBM-1124 4 + iconv-hook CP1129 IBM-1129 5 + iconv-hook CP1252 IBM-1252 6 + iconv-hook CP850 IBM-850 7 + iconv-hook CP856 IBM-856 8 + iconv-hook CP922 IBM-922 9 + iconv-hook CP932 IBM-932 10 + iconv-hook CP943 IBM-943 11 + iconv-hook EUC-CN IBM-eucCN 12 + iconv-hook EUC-JP IBM-eucJP 13 + iconv-hook EUC-KR IBM-eucKR 14 + iconv-hook EUC-TW IBM-eucTW 15 + iconv-hook ISO-8859-13 IBM-921 16 + iconv-hook ISO-8859-15 ISO8859-15 17 + iconv-hook ISO-8859-1 ISO8859-1 18 + iconv-hook ISO-8859-2 ISO8859-2 19 + iconv-hook ISO-8859-5 ISO8859-5 20 + iconv-hook ISO-8859-6 ISO8859-6 21 + iconv-hook ISO-8859-7 ISO8859-7 22 + iconv-hook ISO-8859-8 ISO8859-8 23 + iconv-hook ISO-8859-9 ISO8859-9
+6
contrib/iconv/iconv.freebsd-3.3.rc
··· 1 + iconv-hook ASCII <error> 2 + iconv-hook CP866 <error> 3 + iconv-hook ISO-8859-15 <error> 4 + iconv-hook ISO-8859-1 <error> 5 + iconv-hook ISO-8859-2 <error> 6 + iconv-hook KOI8-R <error>
+1
contrib/iconv/iconv.glibc-2.1.3.rc
··· 1 + iconv-hook ISO-8859-1 ANSI_X3.4-1968
+1
contrib/iconv/iconv.glibc-2.1.90.rc
··· 1 + iconv-hook ASCII ANSI_X3.4-1968
+15
contrib/iconv/iconv.hpux-10.01.rc
··· 1 + iconv-hook EUC-CN hp15CN 2 + iconv-hook EUC-TW eucTW 3 + iconv-hook HP-ARABIC8 arabic8 4 + iconv-hook HP-GREEK8 greek8 5 + iconv-hook HP-HEBREW8 hebrew8 6 + iconv-hook HP-ROMAN8 roman8 7 + iconv-hook HP-TURKISH8 turkish8 8 + iconv-hook ISO-8859-1 iso88591 9 + iconv-hook ISO-8859-2 iso88592 10 + iconv-hook ISO-8859-5 iso88595 11 + iconv-hook ISO-8859-6 iso88596 12 + iconv-hook ISO-8859-7 iso88597 13 + iconv-hook ISO-8859-8 iso88598 14 + iconv-hook ISO-8859-9 iso88599 15 + iconv-hook TIS-620 tis620
+15
contrib/iconv/iconv.hpux-10.20.rc
··· 1 + iconv-hook HP-ARABIC8 arabic8 2 + iconv-hook HP-GREEK8 greek8 3 + iconv-hook HP-HEBREW8 hebrew8 4 + iconv-hook HP-ROMAN8 roman8 5 + iconv-hook HP-TURKISH8 turkish8 6 + iconv-hook ISO-8859-15 iso885915 7 + iconv-hook ISO-8859-1 iso88591 8 + iconv-hook ISO-8859-2 iso88592 9 + iconv-hook ISO-8859-5 iso88595 10 + iconv-hook ISO-8859-6 iso88596 11 + iconv-hook ISO-8859-7 iso88597 12 + iconv-hook ISO-8859-8 iso88598 13 + iconv-hook ISO-8859-9 iso88599 14 + iconv-hook TIS-620 tis620 15 + iconv-hook UTF-8 utf8
+21
contrib/iconv/iconv.hpux-11.00.rc
··· 1 + iconv-hook BIG5 big5 2 + iconv-hook EUC-CN hp15CN 3 + iconv-hook EUC-JP eucJP 4 + iconv-hook EUC-KR eucKR 5 + iconv-hook EUC-TW eucTW 6 + iconv-hook HP-ARABIC8 arabic8 7 + iconv-hook HP-GREEK8 greek8 8 + iconv-hook HP-HEBREW8 hebrew8 9 + iconv-hook HP-KANA8 kana8 10 + iconv-hook HP-ROMAN8 roman8 11 + iconv-hook HP-TURKISH8 turkish8 12 + iconv-hook ISO-8859-15 iso885915 13 + iconv-hook ISO-8859-1 iso88591 14 + iconv-hook ISO-8859-2 iso88592 15 + iconv-hook ISO-8859-5 iso88595 16 + iconv-hook ISO-8859-6 iso88596 17 + iconv-hook ISO-8859-7 iso88597 18 + iconv-hook ISO-8859-8 iso88598 19 + iconv-hook ISO-8859-9 iso88599 20 + iconv-hook TIS-620 tis620 21 + iconv-hook UTF-8 utf8
+9
contrib/iconv/iconv.irix-6.5.rc
··· 1 + iconv-hook EUC-CN eucCN 2 + iconv-hook EUC-JP eucJP 3 + iconv-hook EUC-KR eucKR 4 + iconv-hook EUC-TW eucTW 5 + iconv-hook ISO-8859-1 ISO8859-1 6 + iconv-hook ISO-8859-2 ISO8859-2 7 + iconv-hook ISO-8859-5 ISO8859-5 8 + iconv-hook ISO-8859-7 ISO8859-7 9 + iconv-hook ISO-8859-9 ISO8859-9
+3
contrib/iconv/iconv.osf1-4.0a.rc
··· 1 + iconv-hook ISO-8859-1 ISO8859-1 2 + iconv-hook ISO-8859-7 ISO8859-7 3 + iconv-hook ISO-8859-9 ISO8859-9
+4
contrib/iconv/iconv.osf1-4.0d.rc
··· 1 + iconv-hook CP850 cp850 2 + iconv-hook ISO-8859-1 ISO8859-1 3 + iconv-hook ISO-8859-7 ISO8859-7 4 + iconv-hook ISO-8859-9 ISO8859-9
+1
contrib/iconv/iconv.solaris-2.4.rc
··· 1 + iconv-hook bug
+1
contrib/iconv/iconv.solaris-2.5.1.rc
··· 1 + iconv-hook ISO-8859-1 ISO8859-1
+11
contrib/iconv/iconv.solaris-2.6-cjk.rc
··· 1 + iconv-hook EUC-CN gb2312 2 + iconv-hook EUC-JP eucJP 3 + iconv-hook EUC-KR 5601 4 + iconv-hook EUC-TW cns11643 5 + iconv-hook ISO-8859-1 ISO8859-1 6 + iconv-hook ISO-8859-2 ISO8859-2 7 + iconv-hook ISO-8859-4 ISO8859-4 8 + iconv-hook ISO-8859-5 ISO8859-5 9 + iconv-hook ISO-8859-7 ISO8859-7 10 + iconv-hook ISO-8859-9 ISO8859-9 11 + iconv-hook Shift_JIS PCK
+6
contrib/iconv/iconv.solaris-2.6.rc
··· 1 + iconv-hook ISO-8859-1 ISO8859-1 2 + iconv-hook ISO-8859-2 ISO8859-2 3 + iconv-hook ISO-8859-4 ISO8859-4 4 + iconv-hook ISO-8859-5 ISO8859-5 5 + iconv-hook ISO-8859-7 ISO8859-7 6 + iconv-hook ISO-8859-9 ISO8859-9
+12
contrib/iconv/iconv.solaris-2.7.rc
··· 1 + iconv-hook ASCII 646 2 + iconv-hook ISO-8859-15 ISO8859-15 3 + iconv-hook ISO-8859-1 ISO8859-1 4 + iconv-hook ISO-8859-2 ISO8859-2 5 + iconv-hook ISO-8859-4 ISO8859-4 6 + iconv-hook ISO-8859-5 ISO8859-5 7 + iconv-hook ISO-8859-6 ISO8859-6 8 + iconv-hook ISO-8859-7 ISO8859-7 9 + iconv-hook ISO-8859-8 ISO8859-8 10 + iconv-hook ISO-8859-9 ISO8859-9 11 + iconv-hook KOI8-R koi8-r 12 + iconv-hook TIS-620 TIS620.2533
+25
contrib/iconv/make.sh
··· 1 + #!/bin/sh -- 2 + 3 + # 4 + # Create sample configuration files from the tables contained with libiconv. 5 + # Copyright (C) 2001 Thomas Roessler <roessler@does-not-exist.org> 6 + # 7 + # This ugly shell script is free software; you can distribute and/or modify 8 + # it under the terms of the GNU General Public License version 2 or later. 9 + # 10 + 11 + LIBICONV="$1" 12 + test -d $LIBICONV/libcharset/tools || { 13 + echo "Sorry, I can't find libiconv's source!" >&2 ; 14 + exit 1 ; 15 + } 16 + 17 + for f in $LIBICONV/libcharset/tools/* ; do 18 + rm -f tmp.rc. 19 + ( head -3 $f | grep -q 'locale name.*locale charmap.*locale_charset' ) && ( 20 + sed '1,/^$/d' $f | awk '($4 != $3) { printf ("iconv-hook %s %s\n", $4, $3); }' | \ 21 + sed -e 's/^iconv-hook SJIS /iconv-hook Shift_JIS /gi' | 22 + sort -u > tmp.rc ) 23 + test -s tmp.rc && mv tmp.rc iconv.`basename $f`.rc 24 + rm -f tmp.rc 25 + done
+10 -6
doc/Makefile.in
··· 68 68 try-txt: ../makedoc 69 69 test -f manual.txt || $(MAKE) manual.txt || cp $(srcdir)/manual.txt ./ 70 70 71 - install: all 71 + install: all instdoc 72 72 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man1 73 73 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(mandir)/man5 74 - $(INSTALL) -m 644 $(srcdir)/mutt.man $(DESTDIR)$(mandir)/man1/mutt.1 75 - $(INSTALL) -m 644 $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/flea.1 74 + ./instdoc $(srcdir)/mutt.man $(DESTDIR)$(mandir)/man1/mutt.1 75 + ./instdoc $(srcdir)/muttbug.man $(DESTDIR)$(mandir)/man1/flea.1 76 76 echo ".so $(mandir)/man1/flea.1" > $(DESTDIR)$(mandir)/man1/muttbug.1 77 - $(INSTALL) -m 644 $(srcdir)/dotlock.man \ 77 + ./instdoc $(srcdir)/dotlock.man \ 78 78 $(DESTDIR)$(mandir)/man1/mutt_dotlock.1 79 - $(INSTALL) -m 644 muttrc.man $(DESTDIR)$(mandir)/man5/muttrc.5 80 - $(INSTALL) -m 644 $(srcdir)/mbox.man $(DESTDIR)$(mandir)/man5/mbox.5 79 + ./instdoc muttrc.man $(DESTDIR)$(mandir)/man5/muttrc.5 80 + ./instdoc $(srcdir)/mbox.man $(DESTDIR)$(mandir)/man5/mbox.5 81 81 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(docdir) 82 82 for f in $(srcdir_DOCFILES) ; do \ 83 83 $(INSTALL) -m 644 $(srcdir)/$$f $(DESTDIR)$(docdir) ; \ ··· 123 123 rm -f Makefile 124 124 125 125 Makefile: Makefile.in ../config.status 126 + cd .. \ 127 + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status 128 + 129 + instdoc.sh: instdoc.sh.in ../config.status 126 130 cd .. \ 127 131 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status 128 132
+25
doc/instdoc.sh.in
··· 1 + #!/bin/sh -- 2 + 3 + prefix=@prefix@ 4 + exec_prefix=@exec_prefix@ 5 + bindir=@bindir@ 6 + libdir=@libdir@ 7 + mandir=@mandir@ 8 + sharedir=@sharedir@ 9 + srcdir=@srcdir@ 10 + docdir=@docdir@ 11 + includedir=@includedir@ 12 + top_srcdir=@top_srcdir@ 13 + top_builddir=.. 14 + 15 + SOURCE="$1" 16 + TARGET="$2" 17 + 18 + 19 + rm -f "$TARGET" 20 + 21 + sed -e "s;/usr/local/bin/;$bindir/;g" \ 22 + -e "s;/usr/local/doc/mutt/;$docdir/;g" \ 23 + "$SOURCE" > $TARGET 24 + 25 + chmod 644 "$TARGET"
+10 -3
doc/manual.sgml.head
··· 918 918 <sect1>Defining aliases for character sets <label id="charset-hook"> 919 919 <p> 920 920 Usage: <tt/charset-hook/ <em/alias/ <em/charset/ 921 + Usage: <tt/iconv-hook/ <em/charset/ <em/local-charset/ 921 922 922 - This command defines an alias for a character set. This is useful 923 - to properly display messages which are tagged with a character set 924 - name not known to mutt. 923 + The <tt/charset-hook/ command defines an alias for a character set. 924 + This is useful to properly display messages which are tagged with a 925 + character set name not known to mutt. 926 + 927 + The <tt/iconv-hook/ command defines a system-specific name for a 928 + character set. This is helpful when your systems character 929 + conversion library insists on using strange, system-specific names 930 + for character sets. 931 + 925 932 926 933 <sect1>Setting variables based upon mailbox<label id="folder-hook"> 927 934 <p>
+13
doc/muttrc.man.head
··· 111 111 to properly display messages which are tagged with a character set 112 112 name not known to mutt. 113 113 .TP 114 + \fBiconv-hook\fP \fIcharset\fP \fIlocal-charset\fP 115 + This command defines a system-specific name for a character set. 116 + This is useful when your system's 117 + .BR iconv (3) 118 + implementation does not understand MIME character set names (such as 119 + .BR iso-8859-1 ), 120 + but instead insists on being fed with implementation-specific 121 + character set names (such as 122 + .BR 8859-1 ). 123 + In this specific case, you'd put this into your configuration file: 124 + .IP 125 + .B "iconv-hook iso-8859-1 8859-1" 126 + .TP 114 127 \fBmessage-hook\fP [\fB!\fP]\fIpattern\fP \fIcommand\fP 115 128 Before mutt displays (or formats for replying or forwarding) a 116 129 message which matches the given \fIpattern\fP (or, when it is
+2
doc/muttrc.man.tail
··· 1 1 .\" -*-nroff-*- 2 2 .SH SEE ALSO 3 3 .PP 4 + .BR iconv (1), 5 + .BR iconv (3), 4 6 .BR mailcap (5), 5 7 .BR maildir (5), 6 8 .BR mbox (5),
+6 -1
hook.c
··· 157 157 #ifdef M_PGPHOOK 158 158 if ((rc = REGCOMP (rx, NONULL(pattern.data), ((data & (M_PGPHOOK|M_CHARSETHOOK)) ? REG_ICASE : 0))) != 0) 159 159 #else 160 - if ((rc = REGCOMP (rx, NONULL(pattern.data), (data & M_CHARSETHOOK) ? REG_ICASE : 0)) != 0) 160 + if ((rc = REGCOMP (rx, NONULL(pattern.data), (data & (M_CHARSETHOOK|M_ICONVHOOK)) ? REG_ICASE : 0)) != 0) 161 161 #endif /* HAVE_PGP */ 162 162 { 163 163 regerror (rc, rx, err->data, err->dsize); ··· 410 410 char *mutt_charset_hook (const char *chs) 411 411 { 412 412 return _mutt_string_hook (chs, M_CHARSETHOOK); 413 + } 414 + 415 + char *mutt_iconv_hook (const char *chs) 416 + { 417 + return _mutt_string_hook (chs, M_ICONVHOOK); 413 418 } 414 419 415 420 #ifdef HAVE_PGP
+1
init.h
··· 2285 2285 { "fcc-save-hook", mutt_parse_hook, M_FCCHOOK | M_SAVEHOOK }, 2286 2286 { "folder-hook", mutt_parse_hook, M_FOLDERHOOK }, 2287 2287 { "hdr_order", parse_list, UL &HeaderOrderList }, 2288 + { "iconv-hook", mutt_parse_hook, M_ICONVHOOK }, 2288 2289 { "ignore", parse_ignore, 0 }, 2289 2290 { "lists", parse_list, UL &MailLists }, 2290 2291 { "macro", mutt_parse_macro, 0 },
+3 -2
mutt.h
··· 137 137 #define M_FCCHOOK (1<<3) 138 138 #define M_SAVEHOOK (1<<4) 139 139 #define M_CHARSETHOOK (1<<5) 140 - #define M_MESSAGEHOOK (1<<6) 140 + #define M_ICONVHOOK (1<<6) 141 + #define M_MESSAGEHOOK (1<<7) 141 142 #ifdef HAVE_PGP 142 - #define M_PGPHOOK (1<<7) 143 + #define M_PGPHOOK (1<<8) 143 144 #endif 144 145 145 146 /* tree characters for linearize_tree and print_enriched_string */
+1
protos.h
··· 121 121 122 122 123 123 char *mutt_charset_hook (const char *); 124 + char *mutt_iconv_hook (const char *); 124 125 char *mutt_expand_path (char *, size_t); 125 126 char *_mutt_expand_path (char *, size_t, int); 126 127 char *mutt_find_hook (int, const char *);