summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /www-client/w3m
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'www-client/w3m')
-rw-r--r--www-client/w3m/Manifest1
-rw-r--r--www-client/w3m/files/w3m-0.5.2-ambwidth.patch425
-rw-r--r--www-client/w3m/files/w3m-0.5.2-form.patch11
-rw-r--r--www-client/w3m/files/w3m-0.5.2-gc72.patch27
-rw-r--r--www-client/w3m/files/w3m-0.5.3-button.patch439
-rw-r--r--www-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch46
-rw-r--r--www-client/w3m/files/w3m-0.5.3-gettext.patch12
-rw-r--r--www-client/w3m/files/w3m-0.5.3-glibc214.patch58
-rw-r--r--www-client/w3m/files/w3m-0.5.3-input-type-default.patch13
-rw-r--r--www-client/w3m/files/w3m-0.5.3-parallel-make.patch22
-rw-r--r--www-client/w3m/files/w3m-0.5.3-tinfo.patch15
-rw-r--r--www-client/w3m/files/w3m-0.5.3-underlinking.patch15
-rw-r--r--www-client/w3m/files/w3m-0.5.3-url-schema.patch91
-rw-r--r--www-client/w3m/files/w3m-CVE-2010-2074.patch55
-rw-r--r--www-client/w3m/files/w3m.mailcap1
-rw-r--r--www-client/w3m/metadata.xml11
-rw-r--r--www-client/w3m/w3m-0.5.3-r5.ebuild130
17 files changed, 1372 insertions, 0 deletions
diff --git a/www-client/w3m/Manifest b/www-client/w3m/Manifest
new file mode 100644
index 000000000000..e4b958edf68c
--- /dev/null
+++ b/www-client/w3m/Manifest
@@ -0,0 +1 @@
+DIST w3m-0.5.3.tar.gz 2202328 SHA256 e994d263f2fd2c22febfbe45103526e00145a7674a0fda79c822b97c2770a9e3 SHA512 43508c76d07b4d8f19c19f975c0b870aeb94abf0744b6128ee01c759d4e409a8b57bc866baeaf990f309ff73e9a7b02ca455d272b1dd0a93fafb8c72b1fe6d14 WHIRLPOOL 8f7dcaca362091227e29d7a6583ed796711904681a60e01d5838e45de003d60a9d88361d39b4d04056b67a14e51fe09e9d5b39fc8da18e83086484c974010cfe
diff --git a/www-client/w3m/files/w3m-0.5.2-ambwidth.patch b/www-client/w3m/files/w3m-0.5.2-ambwidth.patch
new file mode 100644
index 000000000000..4039982310e0
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.2-ambwidth.patch
@@ -0,0 +1,425 @@
+diff -Naur w3m-0.5.2.orig/libwc/Makefile.in w3m-0.5.2/libwc/Makefile.in
+--- w3m-0.5.2.orig/libwc/Makefile.in 2004-05-03 01:44:08.000000000 +0900
++++ w3m-0.5.2/libwc/Makefile.in 2007-09-27 17:34:58.000000000 +0900
+@@ -154,7 +154,7 @@
+ map/hkscs_ucs_p2.map map/gb12345_ucs.map map/johab_ucs.map \
+ map/sjis_ext_ucs.map map/gbk_ucs.map map/uhc_ucs.map map/ucs_wide.map \
+ map/ucs_combining.map map/ucs_precompose.map map/ucs_hangul.map \
+- map/ucs_fullwidth.map
++ map/ucs_fullwidth.map map/ucs_ambwidth.map
+ uhc.o: wc.h wc_types.h ces.h ccs.h iso2022.h priv.h uhc.h wtf.h ucs.h
+ utf7.o: wc.h wc_types.h ces.h ccs.h iso2022.h priv.h ucs.h utf7.h wtf.h
+ utf8.o: wc.h wc_types.h ces.h ccs.h iso2022.h priv.h ucs.h utf8.h wtf.h
+diff -Naur w3m-0.5.2.orig/libwc/map/ucs_ambwidth.map w3m-0.5.2/libwc/map/ucs_ambwidth.map
+--- w3m-0.5.2.orig/libwc/map/ucs_ambwidth.map 1970-01-01 09:00:00.000000000 +0900
++++ w3m-0.5.2/libwc/map/ucs_ambwidth.map 2007-09-27 17:34:58.000000000 +0900
+@@ -0,0 +1,167 @@
++/*
++ * Based on Markus Kuhn's wcwidth.c: 2003-05-20 (Unicode 4.0)
++ * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
++ *
++ * { 0xF0000, 0xFFFFD } and { 0x100000, 0x10FFFD } is not contained in this
++ * map because wc_map_range_search takes wc_uint16 argument.
++ */
++
++#define N_ucs_ambwidth_map 154
++
++static wc_map ucs_ambwidth_map[ N_ucs_ambwidth_map ] = {
++ { 0x00A1, 0x00A1 },
++ { 0x00A4, 0x00A4 },
++ { 0x00A7, 0x00A8 },
++ { 0x00AA, 0x00AA },
++ { 0x00AE, 0x00AE },
++ { 0x00B0, 0x00B4 },
++ { 0x00B6, 0x00BA },
++ { 0x00BC, 0x00BF },
++ { 0x00C6, 0x00C6 },
++ { 0x00D0, 0x00D0 },
++ { 0x00D7, 0x00D8 },
++ { 0x00DE, 0x00E1 },
++ { 0x00E6, 0x00E6 },
++ { 0x00E8, 0x00EA },
++ { 0x00EC, 0x00ED },
++ { 0x00F0, 0x00F0 },
++ { 0x00F2, 0x00F3 },
++ { 0x00F7, 0x00FA },
++ { 0x00FC, 0x00FC },
++ { 0x00FE, 0x00FE },
++ { 0x0101, 0x0101 },
++ { 0x0111, 0x0111 },
++ { 0x0113, 0x0113 },
++ { 0x011B, 0x011B },
++ { 0x0126, 0x0127 },
++ { 0x012B, 0x012B },
++ { 0x0131, 0x0133 },
++ { 0x0138, 0x0138 },
++ { 0x013F, 0x0142 },
++ { 0x0144, 0x0144 },
++ { 0x0148, 0x014B },
++ { 0x014D, 0x014D },
++ { 0x0152, 0x0153 },
++ { 0x0166, 0x0167 },
++ { 0x016B, 0x016B },
++ { 0x01CE, 0x01CE },
++ { 0x01D0, 0x01D0 },
++ { 0x01D2, 0x01D2 },
++ { 0x01D4, 0x01D4 },
++ { 0x01D6, 0x01D6 },
++ { 0x01D8, 0x01D8 },
++ { 0x01DA, 0x01DA },
++ { 0x01DC, 0x01DC },
++ { 0x0251, 0x0251 },
++ { 0x0261, 0x0261 },
++ { 0x02C4, 0x02C4 },
++ { 0x02C7, 0x02C7 },
++ { 0x02C9, 0x02CB },
++ { 0x02CD, 0x02CD },
++ { 0x02D0, 0x02D0 },
++ { 0x02D8, 0x02DB },
++ { 0x02DD, 0x02DD },
++ { 0x02DF, 0x02DF },
++ { 0x0391, 0x03A1 },
++ { 0x03A3, 0x03A9 },
++ { 0x03B1, 0x03C1 },
++ { 0x03C3, 0x03C9 },
++ { 0x0401, 0x0401 },
++ { 0x0410, 0x044F },
++ { 0x0451, 0x0451 },
++ { 0x2010, 0x2010 },
++ { 0x2013, 0x2016 },
++ { 0x2018, 0x2019 },
++ { 0x201C, 0x201D },
++ { 0x2020, 0x2022 },
++ { 0x2024, 0x2027 },
++ { 0x2030, 0x2030 },
++ { 0x2032, 0x2033 },
++ { 0x2035, 0x2035 },
++ { 0x203B, 0x203B },
++ { 0x203E, 0x203E },
++ { 0x2074, 0x2074 },
++ { 0x207F, 0x207F },
++ { 0x2081, 0x2084 },
++ { 0x20AC, 0x20AC },
++ { 0x2103, 0x2103 },
++ { 0x2105, 0x2105 },
++ { 0x2109, 0x2109 },
++ { 0x2113, 0x2113 },
++ { 0x2116, 0x2116 },
++ { 0x2121, 0x2122 },
++ { 0x2126, 0x2126 },
++ { 0x212B, 0x212B },
++ { 0x2153, 0x2154 },
++ { 0x215B, 0x215E },
++ { 0x2160, 0x216B },
++ { 0x2170, 0x2179 },
++ { 0x2190, 0x2199 },
++ { 0x21B8, 0x21B9 },
++ { 0x21D2, 0x21D2 },
++ { 0x21D4, 0x21D4 },
++ { 0x21E7, 0x21E7 },
++ { 0x2200, 0x2200 },
++ { 0x2202, 0x2203 },
++ { 0x2207, 0x2208 },
++ { 0x220B, 0x220B },
++ { 0x220F, 0x220F },
++ { 0x2211, 0x2211 },
++ { 0x2215, 0x2215 },
++ { 0x221A, 0x221A },
++ { 0x221D, 0x2220 },
++ { 0x2223, 0x2223 },
++ { 0x2225, 0x2225 },
++ { 0x2227, 0x222C },
++ { 0x222E, 0x222E },
++ { 0x2234, 0x2237 },
++ { 0x223C, 0x223D },
++ { 0x2248, 0x2248 },
++ { 0x224C, 0x224C },
++ { 0x2252, 0x2252 },
++ { 0x2260, 0x2261 },
++ { 0x2264, 0x2267 },
++ { 0x226A, 0x226B },
++ { 0x226E, 0x226F },
++ { 0x2282, 0x2283 },
++ { 0x2286, 0x2287 },
++ { 0x2295, 0x2295 },
++ { 0x2299, 0x2299 },
++ { 0x22A5, 0x22A5 },
++ { 0x22BF, 0x22BF },
++ { 0x2312, 0x2312 },
++ { 0x2460, 0x24E9 },
++ { 0x24EB, 0x254B },
++ { 0x2550, 0x2573 },
++ { 0x2580, 0x258F },
++ { 0x2592, 0x2595 },
++ { 0x25A0, 0x25A1 },
++ { 0x25A3, 0x25A9 },
++ { 0x25B2, 0x25B3 },
++ { 0x25B6, 0x25B7 },
++ { 0x25BC, 0x25BD },
++ { 0x25C0, 0x25C1 },
++ { 0x25C6, 0x25C8 },
++ { 0x25CB, 0x25CB },
++ { 0x25CE, 0x25D1 },
++ { 0x25E2, 0x25E5 },
++ { 0x25EF, 0x25EF },
++ { 0x2605, 0x2606 },
++ { 0x2609, 0x2609 },
++ { 0x260E, 0x260F },
++ { 0x2614, 0x2615 },
++ { 0x261C, 0x261C },
++ { 0x261E, 0x261E },
++ { 0x2640, 0x2640 },
++ { 0x2642, 0x2642 },
++ { 0x2660, 0x2661 },
++ { 0x2663, 0x2665 },
++ { 0x2667, 0x266A },
++ { 0x266C, 0x266D },
++ { 0x266F, 0x266F },
++ { 0x273D, 0x273D },
++ { 0x2776, 0x277F },
++ { 0xE000, 0xF8FF },
++ { 0xFFFD, 0xFFFD },
++};
++
+diff -Naur w3m-0.5.2.orig/libwc/status.c w3m-0.5.2/libwc/status.c
+--- w3m-0.5.2.orig/libwc/status.c 2003-09-23 06:02:23.000000000 +0900
++++ w3m-0.5.2/libwc/status.c 2007-09-27 17:34:58.000000000 +0900
+@@ -25,6 +25,7 @@
+ WC_FALSE, /* gb18030_as_ucs */
+ WC_FALSE, /* no_replace */
+ WC_TRUE, /* use_wide */
++ WC_FALSE, /* east_asian_width */
+ };
+
+ static wc_status output_st;
+diff -Naur w3m-0.5.2.orig/libwc/ucs.c w3m-0.5.2/libwc/ucs.c
+--- w3m-0.5.2.orig/libwc/ucs.c 2007-05-23 20:34:09.000000000 +0900
++++ w3m-0.5.2/libwc/ucs.c 2007-09-27 17:34:58.000000000 +0900
+@@ -17,6 +17,7 @@
+
+ #include "ucs.map"
+
++#include "map/ucs_ambwidth.map"
+ #include "map/ucs_wide.map"
+ #include "map/ucs_combining.map"
+ #include "map/ucs_precompose.map"
+@@ -511,11 +512,26 @@
+ if (0x80 <= ucs && ucs <= 0x9F)
+ return WC_CCS_C1;
+ return ((ucs <= WC_C_UCS2_END) ? WC_CCS_UCS2 : WC_CCS_UCS4)
++ | ((WcOption.east_asian_width && wc_is_ucs_ambiguous_width(ucs))
++ ? WC_CCS_A_WIDE : 0)
+ | (wc_is_ucs_wide(ucs) ? WC_CCS_A_WIDE : 0)
+ | (wc_is_ucs_combining(ucs) ? WC_CCS_A_COMB : 0);
+ }
+
+ wc_bool
++wc_is_ucs_ambiguous_width(wc_uint32 ucs)
++{
++ if (0xa1 <= ucs && ucs <= 0xfe && WcOption.use_jisx0213)
++ return 1;
++ else if (ucs <= WC_C_UCS2_END)
++ return (wc_map_range_search((wc_uint16)ucs,
++ ucs_ambwidth_map, N_ucs_ambwidth_map) != NULL);
++ else
++ return ((0xF0000 <= ucs && ucs <= 0xFFFFD)
++ || (0x100000 <= ucs && ucs <= 0x10FFFD));
++}
++
++wc_bool
+ wc_is_ucs_wide(wc_uint32 ucs)
+ {
+ if (ucs <= WC_C_UCS2_END)
+diff -Naur w3m-0.5.2.orig/libwc/ucs.h w3m-0.5.2/libwc/ucs.h
+--- w3m-0.5.2.orig/libwc/ucs.h 2007-05-23 20:34:09.000000000 +0900
++++ w3m-0.5.2/libwc/ucs.h 2007-09-27 17:34:58.000000000 +0900
+@@ -44,6 +44,7 @@
+ extern wc_wchar_t wc_ucs_to_iso2022(wc_uint32 ucs);
+ extern wc_wchar_t wc_ucs_to_iso2022w(wc_uint32 ucs);
+ extern wc_ccs wc_ucs_to_ccs(wc_uint32 ucs);
++extern wc_bool wc_is_ucs_ambiguous_width(wc_uint32 ucs);
+ extern wc_bool wc_is_ucs_wide(wc_uint32 ucs);
+ extern wc_bool wc_is_ucs_combining(wc_uint32 ucs);
+ extern wc_bool wc_is_ucs_hangul(wc_uint32 ucs);
+diff -Naur w3m-0.5.2.orig/libwc/wc_types.h w3m-0.5.2/libwc/wc_types.h
+--- w3m-0.5.2.orig/libwc/wc_types.h 2004-04-05 01:47:20.000000000 +0900
++++ w3m-0.5.2/libwc/wc_types.h 2007-09-27 17:34:58.000000000 +0900
+@@ -91,6 +91,7 @@
+ wc_bool gb18030_as_ucs; /* treat 4 bytes char. of GB18030 as Unicode */
+ wc_bool no_replace; /* don't output replace character */
+ wc_bool use_wide; /* use wide characters */
++ wc_bool east_asian_width; /* East Asian Ambiguous characters are wide */
+ } wc_option;
+
+ typedef struct {
+diff -Naur w3m-0.5.2.orig/po/ja.po w3m-0.5.2/po/ja.po
+--- w3m-0.5.2.orig/po/ja.po 2007-05-31 21:17:05.000000000 +0900
++++ w3m-0.5.2/po/ja.po 2007-09-27 17:36:36.000000000 +0900
+@@ -614,6 +614,10 @@
+ msgstr "·ë¹çʸ»ú¤ò»È¤¦"
+
+ #: rc.c:219
++msgid "Use double width for some Unicode characters"
++msgstr "¤¢¤ë¼ï¤ÎUnicodeʸ»ú¤òÁ´³Ñ¤Ë¤¹¤ë"
++
++#: rc.c:219
+ msgid "Use Unicode language tags"
+ msgstr "Unicode ¤Î¸À¸ì¥¿¥°¤ò»È¤¦"
+
+diff -Naur w3m-0.5.2.orig/po/w3m.pot w3m-0.5.2/po/w3m.pot
+--- w3m-0.5.2.orig/po/w3m.pot 2007-05-31 21:17:05.000000000 +0900
++++ w3m-0.5.2/po/w3m.pot 2007-09-27 17:37:12.000000000 +0900
+@@ -613,6 +613,10 @@
+ msgstr ""
+
+ #: rc.c:219
++msgid "Use double width for some Unicode characters"
++msgstr ""
++
++#: rc.c:219
+ msgid "Use Unicode language tags"
+ msgstr ""
+
+diff -Naur w3m-0.5.2.orig/proto.h w3m-0.5.2/proto.h
+--- w3m-0.5.2.orig/proto.h 2006-04-07 22:21:12.000000000 +0900
++++ w3m-0.5.2/proto.h 2007-09-27 17:34:58.000000000 +0900
+@@ -176,6 +176,9 @@
+ #define convertLine(uf,line,mode,charset,dcharset) convertLine0(uf,line,mode)
+ #endif
+ extern void push_symbol(Str str, char symbol, int width, int n);
++#ifdef USE_UNICODE
++extern void update_utf8_symbol(void);
++#endif
+ extern Buffer *loadFile(char *path);
+ extern Buffer *loadGeneralFile(char *path, ParsedURL *current, char *referer,
+ int flag, FormList *request);
+diff -Naur w3m-0.5.2.orig/rc.c w3m-0.5.2/rc.c
+--- w3m-0.5.2.orig/rc.c 2007-05-24 00:06:06.000000000 +0900
++++ w3m-0.5.2/rc.c 2007-09-27 17:34:58.000000000 +0900
+@@ -216,6 +216,7 @@
+ #define CMT_EXT_HALFDUMP N_("Output halfdump with display charset")
+ #define CMT_USE_WIDE N_("Use multi column characters")
+ #define CMT_USE_COMBINING N_("Use combining characters")
++#define CMT_EAST_ASIAN_WIDTH N_("Use double width for some Unicode characters")
+ #define CMT_USE_LANGUAGE_TAG N_("Use Unicode language tags")
+ #define CMT_UCS_CONV N_("Charset conversion using Unicode map")
+ #define CMT_PRE_CONV N_("Charset conversion when loading")
+@@ -640,6 +641,8 @@
+ {"use_combining", P_CHARINT, PI_ONOFF, (void *)&WcOption.use_combining,
+ CMT_USE_COMBINING, NULL},
+ #ifdef USE_UNICODE
++ {"east_asian_width", P_CHARINT, PI_ONOFF,
++ (void *)&WcOption.east_asian_width, CMT_EAST_ASIAN_WIDTH, NULL},
+ {"use_language_tag", P_CHARINT, PI_ONOFF,
+ (void *)&WcOption.use_language_tag, CMT_USE_LANGUAGE_TAG, NULL},
+ {"ucs_conv", P_CHARINT, PI_ONOFF, (void *)&WcOption.ucs_conv, CMT_UCS_CONV,
+@@ -1172,6 +1175,9 @@
+ AcceptEncoding = acceptableEncoding();
+ if (AcceptMedia == NULL || *AcceptMedia == '\0')
+ AcceptMedia = acceptableMimeTypes();
++#ifdef USE_UNICODE
++ update_utf8_symbol();
++#endif
+ if (fmInitialized) {
+ initKeymap(FALSE);
+ #ifdef USE_MOUSE
+diff -Naur w3m-0.5.2.orig/symbol.c w3m-0.5.2/symbol.c
+--- w3m-0.5.2.orig/symbol.c 2003-09-23 06:02:21.000000000 +0900
++++ w3m-0.5.2/symbol.c 2007-09-27 17:34:58.000000000 +0900
+@@ -18,7 +18,7 @@
+ wc_ces ces;
+ char width;
+ char **item;
+- char encode;
++ char **conved_item;
+ } symbol_set;
+
+ typedef struct {
+@@ -27,17 +27,17 @@
+ } charset_symbol_set;
+
+ /* *INDENT-OFF* */
+-static symbol_set alt_symbol_set = { WC_CES_US_ASCII, 1, alt_symbol, 1 };
+-static symbol_set alt2_symbol_set = { WC_CES_US_ASCII, 2, alt2_symbol, 1 };
+-static symbol_set eucjp_symbol_set = { WC_CES_EUC_JP, 2, eucjp_symbol, 0 };
+-static symbol_set euckr_symbol_set = { WC_CES_EUC_KR, 2, euckr_symbol, 0 };
+-static symbol_set euccn_symbol_set = { WC_CES_EUC_CN, 2, euccn_symbol, 0 };
+-static symbol_set euctw_symbol_set = { WC_CES_EUC_TW, 2, euctw_symbol, 0 };
+-static symbol_set big5_symbol_set = { WC_CES_BIG5, 2, big5_symbol, 0 };
++static symbol_set alt_symbol_set = { WC_CES_US_ASCII, 1, alt_symbol, alt_symbol };
++static symbol_set alt2_symbol_set = { WC_CES_US_ASCII, 2, alt2_symbol, alt2_symbol };
++static symbol_set eucjp_symbol_set = { WC_CES_EUC_JP, 2, eucjp_symbol, NULL };
++static symbol_set euckr_symbol_set = { WC_CES_EUC_KR, 2, euckr_symbol, NULL };
++static symbol_set euccn_symbol_set = { WC_CES_EUC_CN, 2, euccn_symbol, NULL };
++static symbol_set euctw_symbol_set = { WC_CES_EUC_TW, 2, euctw_symbol, NULL };
++static symbol_set big5_symbol_set = { WC_CES_BIG5, 2, big5_symbol, NULL };
+ #ifdef USE_UNICODE
+-static symbol_set utf8_symbol_set = { WC_CES_UTF_8, 1, utf8_symbol, 0 };
++static symbol_set utf8_symbol_set = { WC_CES_UTF_8, 1, utf8_symbol, NULL };
+ #endif
+-static symbol_set cp850_symbol_set = { WC_CES_CP850, 1, cp850_symbol, 0 };
++static symbol_set cp850_symbol_set = { WC_CES_CP850, 1, cp850_symbol, NULL };
+
+ static charset_symbol_set charset_symbol_list[] = {
+ { WC_CES_EUC_JP, &eucjp_symbol_set },
+@@ -73,11 +73,12 @@
+ {
+ int i;
+
++ for (i = 0; s->item[i]; i++) ;
++ s->conved_item = New_N(char *, i);
+ for (i = 0; s->item[i]; i++) {
+ if (*(s->item[i]))
+- s->item[i] = wc_conv(s->item[i], s->ces, InnerCharset)->ptr;
++ s->conved_item[i] = wc_conv(s->item[i], s->ces, InnerCharset)->ptr;
+ }
+- s->encode = 1;
+ }
+
+ char **
+@@ -89,7 +90,7 @@
+ if (charset == save_charset && save_symbol != NULL &&
+ *width == save_symbol->width) {
+ *width = save_symbol->width;
+- return save_symbol->item;
++ return save_symbol->conved_item;
+ }
+ save_charset = charset;
+ for (p = charset_symbol_list; p->charset; p++) {
+@@ -102,12 +103,12 @@
+ if (s == NULL)
+ s = (*width == 2) ? &alt2_symbol_set : &alt_symbol_set;
+ if (s != save_symbol) {
+- if (!s->encode)
++ if (!s->conved_item)
+ encode_symbol(s);
+ save_symbol = s;
+ }
+ *width = s->width;
+- return s->item;
++ return s->conved_item;
+ }
+
+ char **
+@@ -137,6 +138,21 @@
+ return symbol_buf;
+ }
+
++#ifdef USE_UNICODE
++void
++update_utf8_symbol(void)
++{
++ charset_symbol_set *p;
++ utf8_symbol_set.width = WcOption.east_asian_width ? 2 : 1;
++ for (p = charset_symbol_list; p->charset; p++) {
++ if (p->charset == WC_CES_UTF_8) {
++ encode_symbol(p->symbol);
++ break;
++ }
++ }
++}
++#endif
++
+ #else
+
+ char **
diff --git a/www-client/w3m/files/w3m-0.5.2-form.patch b/www-client/w3m/files/w3m-0.5.2-form.patch
new file mode 100644
index 000000000000..6616319c7b28
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.2-form.patch
@@ -0,0 +1,11 @@
+diff -Naur w3m-0.5.2.orig/form.c w3m-0.5.2/form.c
+--- w3m-0.5.2.orig/form.c 2004-02-06 02:23:07.000000000 +0900
++++ w3m-0.5.2/form.c 2008-05-16 08:34:48.000000000 +0900
+@@ -403,6 +403,7 @@
+ line->lineBuf = buf;
+ line->propBuf = prop;
+ line->len = len;
++ line->size = len;
+
+ return pos;
+ }
diff --git a/www-client/w3m/files/w3m-0.5.2-gc72.patch b/www-client/w3m/files/w3m-0.5.2-gc72.patch
new file mode 100644
index 000000000000..f2df44f06b30
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.2-gc72.patch
@@ -0,0 +1,27 @@
+diff -Naurb w3m-0.5.2.orig/main.c w3m-0.5.2/main.c
+--- w3m-0.5.2.orig/main.c 2007-05-31 10:19:50.000000000 +0900
++++ w3m-0.5.2/main.c 2009-11-09 08:20:02.184953443 +0900
+@@ -312,7 +312,11 @@
+ lock = 0;
+ }
+ }
++#if GC_VERSION_MAJOR >= 7 && GC_VERSION_MINOR >= 2
++ else if (orig_GC_warn_proc = GC_get_warn_proc())
++#else
+ else if (orig_GC_warn_proc)
++#endif
+ orig_GC_warn_proc(msg, arg);
+ else
+ fprintf(stderr, msg, (unsigned long)arg);
+@@ -842,7 +846,11 @@
+ mySignal(SIGPIPE, SigPipe);
+ #endif
+
++#if GC_VERSION_MAJOR >= 7 && GC_VERSION_MINOR >= 2
++ GC_set_warn_proc(wrap_GC_warn_proc);
++#else
+ orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
++#endif
+ err_msg = Strnew();
+ if (load_argc == 0) {
+ /* no URL specified */
diff --git a/www-client/w3m/files/w3m-0.5.3-button.patch b/www-client/w3m/files/w3m-0.5.3-button.patch
new file mode 100644
index 000000000000..a645e2563776
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-button.patch
@@ -0,0 +1,439 @@
+Description: Support the button element as defined in HTML 4.01
+Origin: upstream, http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/201009.month/4411.html
+Bug-Debian: http://bugs.debian.org/136810
+
+Index: file.c
+===================================================================
+RCS file: /cvsroot/w3m/w3m/file.c,v
+retrieving revision 1.264
+diff -u -r1.264 file.c
+--- w3m.orig/file.c 3 Aug 2010 10:02:16 -0000 1.264
++++ w3m/file.c 17 Sep 2010 12:18:55 -0000
+@@ -2467,6 +2467,7 @@
+ bcopy((void *)&obuf->anchor, (void *)&obuf->bp.anchor,
+ sizeof(obuf->anchor));
+ obuf->bp.img_alt = obuf->img_alt;
++ obuf->bp.input_alt = obuf->input_alt;
+ obuf->bp.in_bold = obuf->in_bold;
+ obuf->bp.in_italic = obuf->in_italic;
+ obuf->bp.in_under = obuf->in_under;
+@@ -2484,6 +2485,7 @@
+ bcopy((void *)&obuf->bp.anchor, (void *)&obuf->anchor,
+ sizeof(obuf->anchor));
+ obuf->img_alt = obuf->bp.img_alt;
++ obuf->input_alt = obuf->bp.input_alt;
+ obuf->in_bold = obuf->bp.in_bold;
+ obuf->in_italic = obuf->bp.in_italic;
+ obuf->in_under = obuf->bp.in_under;
+@@ -2727,7 +2729,7 @@
+ Str line = obuf->line, pass = NULL;
+ char *hidden_anchor = NULL, *hidden_img = NULL, *hidden_bold = NULL,
+ *hidden_under = NULL, *hidden_italic = NULL, *hidden_strike = NULL,
+- *hidden_ins = NULL, *hidden = NULL;
++ *hidden_ins = NULL, *hidden_input, *hidden = NULL;
+
+ #ifdef DEBUG
+ if (w3m_debug) {
+@@ -2759,6 +2761,12 @@
+ hidden = hidden_img;
+ }
+ }
++ if (obuf->input_alt.in) {
++ if ((hidden_input = has_hidden_link(obuf, HTML_INPUT_ALT)) != NULL) {
++ if (!hidden || hidden_input < hidden)
++ hidden = hidden_input;
++ }
++ }
+ if (obuf->in_bold) {
+ if ((hidden_bold = has_hidden_link(obuf, HTML_B)) != NULL) {
+ if (!hidden || hidden_bold < hidden)
+@@ -2810,6 +2818,8 @@
+ Strcat_charp(line, "</a>");
+ if (obuf->img_alt && !hidden_img)
+ Strcat_charp(line, "</img_alt>");
++ if (obuf->input_alt.in && !hidden_input)
++ Strcat_charp(line, "</input_alt>");
+ if (obuf->in_bold && !hidden_bold)
+ Strcat_charp(line, "</b>");
+ if (obuf->in_italic && !hidden_italic)
+@@ -3020,6 +3030,18 @@
+ Strcat_charp(tmp, "\">");
+ push_tag(obuf, tmp->ptr, HTML_IMG_ALT);
+ }
++ if (!hidden_input && obuf->input_alt.in) {
++ Str tmp;
++ if (obuf->input_alt.hseq > 0)
++ obuf->input_alt.hseq = - obuf->input_alt.hseq;
++ tmp = Sprintf("<INPUT_ALT hseq=\"%d\" fid=\"%d\" name=\"%s\" type=\"%s\" value=\"%s\">",
++ obuf->input_alt.hseq,
++ obuf->input_alt.fid,
++ obuf->input_alt.name->ptr,
++ obuf->input_alt.type->ptr,
++ obuf->input_alt.value->ptr);
++ push_tag(obuf, tmp->ptr, HTML_INPUT_ALT);
++ }
+ if (!hidden_bold && obuf->in_bold)
+ push_tag(obuf, "<B>", HTML_B);
+ if (!hidden_italic && obuf->in_italic)
+@@ -3730,6 +3752,63 @@
+ }
+
+ Str
++process_button(struct parsed_tag *tag)
++{
++ Str tmp = NULL;
++ char *p, *q, *r, *qq = NULL;
++ int qlen, v;
++
++ if (cur_form_id < 0) {
++ char *s = "<form_int method=internal action=none>";
++ tmp = process_form(parse_tag(&s, TRUE));
++ }
++ if (tmp == NULL)
++ tmp = Strnew();
++
++ p = "submit";
++ parsedtag_get_value(tag, ATTR_TYPE, &p);
++ q = NULL;
++ parsedtag_get_value(tag, ATTR_VALUE, &q);
++ r = "";
++ parsedtag_get_value(tag, ATTR_NAME, &r);
++
++ v = formtype(p);
++ if (v == FORM_UNKNOWN)
++ return NULL;
++
++ if (!q) {
++ switch (v) {
++ case FORM_INPUT_SUBMIT:
++ case FORM_INPUT_BUTTON:
++ q = "SUBMIT";
++ break;
++ case FORM_INPUT_RESET:
++ q = "RESET";
++ break;
++ }
++ }
++ if (q) {
++ qq = html_quote(q);
++ qlen = strlen(q);
++ }
++
++ // Strcat_charp(tmp, "<pre_int>");
++ Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s "
++ "name=\"%s\" value=\"%s\">",
++ cur_hseq++, cur_form_id, p, html_quote(r), qq));
++ return tmp;
++}
++
++Str
++process_n_button(void)
++{
++ Str tmp = Strnew();
++ Strcat_charp(tmp, "</input_alt>");
++ // Strcat_charp(tmp, "</pre_int>");
++ return tmp;
++}
++
++Str
+ process_select(struct parsed_tag *tag)
+ {
+ Str tmp = NULL;
+@@ -4859,7 +4938,35 @@
+ if (i > obuf->bottom_margin)
+ obuf->bottom_margin = i;
+ }
++ if (parsedtag_get_value(tag, ATTR_HSEQ, &hseq)) {
++ obuf->input_alt.hseq = hseq;
++ }
++ if (parsedtag_get_value(tag, ATTR_FID, &i)) {
++ obuf->input_alt.fid = i;
++ }
++ if (parsedtag_get_value(tag, ATTR_TYPE, &p)) {
++ obuf->input_alt.type = Strnew_charp(p);
++ }
++ if (parsedtag_get_value(tag, ATTR_VALUE, &p)) {
++ obuf->input_alt.value = Strnew_charp(p);
++ }
++ if (parsedtag_get_value(tag, ATTR_NAME, &p)) {
++ obuf->input_alt.name = Strnew_charp(p);
++ }
++ obuf->input_alt.in = 1;
+ return 0;
++ case HTML_N_INPUT_ALT:
++ if (obuf->input_alt.in) {
++ if (!close_effect0(obuf, HTML_INPUT_ALT))
++ push_tag(obuf, "</input_alt>", HTML_N_INPUT_ALT);
++ obuf->input_alt.hseq = 0;
++ obuf->input_alt.fid = -1;
++ obuf->input_alt.in = 0;
++ obuf->input_alt.type = NULL;
++ obuf->input_alt.name = NULL;
++ obuf->input_alt.value = NULL;
++ }
++ return 1;
+ case HTML_TABLE:
+ close_anchor(h_env, obuf);
+ obuf->table_level++;
+@@ -4968,6 +5075,16 @@
+ case HTML_INPUT:
+ close_anchor(h_env, obuf);
+ tmp = process_input(tag);
++ if (tmp)
++ HTMLlineproc1(tmp->ptr, h_env);
++ return 1;
++ case HTML_BUTTON:
++ tmp = process_button(tag);
++ if (tmp)
++ HTMLlineproc1(tmp->ptr, h_env);
++ return 1;
++ case HTML_N_BUTTON:
++ tmp = process_n_button();
+ if (tmp)
+ HTMLlineproc1(tmp->ptr, h_env);
+ return 1;
+@@ -5680,6 +5797,21 @@
+ putHmarker(buf->hmarklist, currentLn(buf),
+ hpos, hseq - 1);
+ }
++ else if (hseq < 0) {
++ int h = -hseq - 1;
++ int hpos = pos;
++ if (*str == '[')
++ hpos++;
++ if (buf->hmarklist &&
++ h < buf->hmarklist->nmark &&
++ buf->hmarklist->marks[h].invalid) {
++ buf->hmarklist->marks[h].pos = hpos;
++ buf->hmarklist->marks[h].line = currentLn(buf);
++ buf->hmarklist->marks[h].invalid = 0;
++ hseq = -hseq;
++ }
++ }
++
+ if (!form->target)
+ form->target = buf->baseTarget;
+ if (a_textarea &&
+@@ -6747,6 +6879,12 @@
+ obuf->nobr_level = 0;
+ bzero((void *)&obuf->anchor, sizeof(obuf->anchor));
+ obuf->img_alt = 0;
++ obuf->input_alt.hseq = 0;
++ obuf->input_alt.fid = -1;
++ obuf->input_alt.in = 0;
++ obuf->input_alt.type = NULL;
++ obuf->input_alt.name = NULL;
++ obuf->input_alt.value = NULL;
+ obuf->in_bold = 0;
+ obuf->in_italic = 0;
+ obuf->in_under = 0;
+@@ -6782,6 +6920,15 @@
+ push_tag(obuf, "</img_alt>", HTML_N_IMG_ALT);
+ obuf->img_alt = NULL;
+ }
++ if (obuf->input_alt.in) {
++ push_tag(obuf, "</input_alt>", HTML_N_INPUT_ALT);
++ obuf->input_alt.hseq = 0;
++ obuf->input_alt.fid = -1;
++ obuf->input_alt.in = 0;
++ obuf->input_alt.type = NULL;
++ obuf->input_alt.name = NULL;
++ obuf->input_alt.value = NULL;
++ }
+ if (obuf->in_bold) {
+ push_tag(obuf, "</b>", HTML_N_B);
+ obuf->in_bold = 0;
+Index: fm.h
+===================================================================
+RCS file: /cvsroot/w3m/w3m/fm.h,v
+retrieving revision 1.149
+diff -u -r1.149 fm.h
+--- w3m.orig/fm.h 20 Aug 2010 09:47:09 -0000 1.149
++++ w3m/fm.h 17 Sep 2010 12:18:55 -0000
+@@ -562,6 +562,13 @@
+ #define INIT_BUFFER_WIDTH ((_INIT_BUFFER_WIDTH > 0) ? _INIT_BUFFER_WIDTH : 0)
+ #define FOLD_BUFFER_WIDTH (FoldLine ? (INIT_BUFFER_WIDTH + 1) : -1)
+
++struct input_alt_attr {
++ int hseq;
++ int fid;
++ int in;
++ Str type, name, value;
++};
++
+ typedef struct {
+ int pos;
+ int len;
+@@ -569,6 +576,7 @@
+ long flag;
+ Anchor anchor;
+ Str img_alt;
++ struct input_alt_attr input_alt;
+ char fontstat[FONTSTAT_SIZE];
+ short nobr_level;
+ Lineprop prev_ctype;
+@@ -591,6 +599,7 @@
+ short nobr_level;
+ Anchor anchor;
+ Str img_alt;
++ struct input_alt_attr input_alt;
+ char fontstat[FONTSTAT_SIZE];
+ char fontstat_stack[FONT_STACK_SIZE][FONTSTAT_SIZE];
+ int fontstat_sp;
+Index: html.c
+===================================================================
+RCS file: /cvsroot/w3m/w3m/html.c,v
+retrieving revision 1.32
+diff -u -r1.32 html.c
+--- w3m.orig/html.c 14 Aug 2010 01:29:40 -0000 1.32
++++ w3m/html.c 17 Sep 2010 12:18:55 -0000
+@@ -56,6 +56,9 @@
+ ATTR_CORE
+ };
+ #define MAXA_INPUT MAXA_CORE + 12
++unsigned char ALST_BUTTON[] =
++ { ATTR_TYPE, ATTR_VALUE, ATTR_NAME, ATTR_CORE };
++#define MAXA_BUTTON MAXA_CORE + 3
+ unsigned char ALST_TEXTAREA[] =
+ { ATTR_COLS, ATTR_ROWS, ATTR_NAME, ATTR_READONLY, ATTR_CORE };
+ #define MAXA_TEXTAREA MAXA_CORE + 4
+@@ -247,24 +250,24 @@
+ {"/bdo", NULL, 0, TFLG_END}, /* 121 HTML_N_BDO */
+ {"big", ALST_NOP, MAXA_NOP, 0}, /* 122 HTML_BIG */
+ {"/big", NULL, 0, TFLG_END}, /* 123 HTML_N_BIG */
+- {"button", ALST_NOP, MAXA_NOP, 0}, /* 124 HTML_BUTTON */
+- {"fieldset", ALST_NOP, MAXA_NOP, 0}, /* 125 HTML_FIELDSET */
+- {"/fieldset", NULL, 0, TFLG_END}, /* 126 HTML_N_FIELDSET */
+- {"iframe", ALST_NOP, MAXA_NOP, 0}, /* 127 HTML_IFRAME */
+- {"label", ALST_NOP, MAXA_NOP, 0}, /* 128 HTML_LABEL */
+- {"/label", NULL, 0, TFLG_END}, /* 129 HTML_N_LABEL */
+- {"legend", ALST_NOP, MAXA_NOP, 0}, /* 130 HTML_LEGEND */
+- {"/legend", NULL, 0, TFLG_END}, /* 131 HTML_N_LEGEND */
+- {"noscript", ALST_NOP, MAXA_NOP, 0}, /* 132 HTML_NOSCRIPT */
+- {"/noscript", NULL, 0, TFLG_END}, /* 133 HTML_N_NOSCRIPT */
+- {"object", ALST_NOP, MAXA_NOP, 0}, /* 134 HTML_OBJECT */
+- {"optgroup", ALST_NOP, MAXA_NOP, 0}, /* 135 HTML_OPTGROUP */
+- {"/optgroup", NULL, 0, TFLG_END}, /* 136 HTML_N_OPTGROUP */
+- {"param", ALST_NOP, MAXA_NOP, 0}, /* 137 HTML_PARAM */
+- {"small", ALST_NOP, MAXA_NOP, 0}, /* 138 HTML_SMALL */
+- {"/small", NULL, 0, TFLG_END}, /* 139 HTML_N_SMALL */
++ {"button", ALST_BUTTON, MAXA_BUTTON, 0}, /* 124 HTML_BUTTON */
++ {"/button", NULL, 0, TFLG_END}, /* 125 HTML_N_BUTTON */
++ {"fieldset", ALST_NOP, MAXA_NOP, 0}, /* 126 HTML_FIELDSET */
++ {"/fieldset", NULL, 0, TFLG_END}, /* 127 HTML_N_FIELDSET */
++ {"iframe", ALST_NOP, MAXA_NOP, 0}, /* 128 HTML_IFRAME */
++ {"label", ALST_NOP, MAXA_NOP, 0}, /* 129 HTML_LABEL */
++ {"/label", NULL, 0, TFLG_END}, /* 130 HTML_N_LABEL */
++ {"legend", ALST_NOP, MAXA_NOP, 0}, /* 131 HTML_LEGEND */
++ {"/legend", NULL, 0, TFLG_END}, /* 132 HTML_N_LEGEND */
++ {"noscript", ALST_NOP, MAXA_NOP, 0}, /* 133 HTML_NOSCRIPT */
++ {"/noscript", NULL, 0, TFLG_END}, /* 134 HTML_N_NOSCRIPT */
++ {"object", ALST_NOP, MAXA_NOP, 0}, /* 135 HTML_OBJECT */
++ {"optgroup", ALST_NOP, MAXA_NOP, 0}, /* 136 HTML_OPTGROUP */
++ {"/optgroup", NULL, 0, TFLG_END}, /* 137 HTML_N_OPTGROUP */
++ {"param", ALST_NOP, MAXA_NOP, 0}, /* 138 HTML_PARAM */
++ {"small", ALST_NOP, MAXA_NOP, 0}, /* 139 HTML_SMALL */
++ {"/small", NULL, 0, TFLG_END}, /* 140 HTML_N_SMALL */
+
+- {NULL, NULL, 0, 0}, /* 140 Undefined */
+ {NULL, NULL, 0, 0}, /* 141 Undefined */
+ {NULL, NULL, 0, 0}, /* 142 Undefined */
+ {NULL, NULL, 0, 0}, /* 143 Undefined */
+Index: html.h
+===================================================================
+RCS file: /cvsroot/w3m/w3m/html.h,v
+retrieving revision 1.31
+diff -u -r1.31 html.h
+--- w3m.orig/html.h 14 Aug 2010 01:29:40 -0000 1.31
++++ w3m/html.h 17 Sep 2010 12:18:55 -0000
+@@ -214,21 +214,22 @@
+ #define HTML_BIG 122
+ #define HTML_N_BIG 123
+ #define HTML_BUTTON 124
+-#define HTML_FIELDSET 125
+-#define HTML_N_FIELDSET 126
+-#define HTML_IFRAME 127
+-#define HTML_LABEL 128
+-#define HTML_N_LABEL 129
+-#define HTML_LEGEND 130
+-#define HTML_N_LEGEND 131
+-#define HTML_NOSCRIPT 132
+-#define HTML_N_NOSCRIPT 133
+-#define HTML_OBJECT 134
+-#define HTML_OPTGROUP 135
+-#define HTML_N_OPTGROUP 136
+-#define HTML_PARAM 137
+-#define HTML_SMALL 138
+-#define HTML_N_SMALL 139
++#define HTML_N_BUTTON 125
++#define HTML_FIELDSET 126
++#define HTML_N_FIELDSET 127
++#define HTML_IFRAME 128
++#define HTML_LABEL 129
++#define HTML_N_LABEL 130
++#define HTML_LEGEND 131
++#define HTML_N_LEGEND 132
++#define HTML_NOSCRIPT 133
++#define HTML_N_NOSCRIPT 134
++#define HTML_OBJECT 135
++#define HTML_OPTGROUP 136
++#define HTML_N_OPTGROUP 137
++#define HTML_PARAM 138
++#define HTML_SMALL 139
++#define HTML_N_SMALL 140
+
+ /* pseudo tag */
+ #define HTML_SELECT_INT 160
+Index: proto.h
+===================================================================
+RCS file: /cvsroot/w3m/w3m/proto.h,v
+retrieving revision 1.104
+diff -u -r1.104 proto.h
+--- w3m.orig/proto.h 25 Jul 2010 09:55:05 -0000 1.104
++++ w3m/proto.h 17 Sep 2010 12:18:55 -0000
+@@ -207,6 +207,8 @@
+ extern Str process_img(struct parsed_tag *tag, int width);
+ extern Str process_anchor(struct parsed_tag *tag, char *tagbuf);
+ extern Str process_input(struct parsed_tag *tag);
++extern Str process_button(struct parsed_tag *tag);
++extern Str process_n_button(void);
+ extern Str process_select(struct parsed_tag *tag);
+ extern Str process_n_select(void);
+ extern void feed_select(char *str);
+Index: table.c
+===================================================================
+RCS file: /cvsroot/w3m/w3m/table.c,v
+retrieving revision 1.58
+diff -u -r1.58 table.c
+--- w3m.orig/table.c 9 Aug 2010 11:59:19 -0000 1.58
++++ w3m/table.c 17 Sep 2010 12:18:55 -0000
+@@ -2878,6 +2878,14 @@
+ tmp = process_input(tag);
+ feed_table1(tbl, tmp, mode, width);
+ break;
++ case HTML_BUTTON:
++ tmp = process_button(tag);
++ feed_table1(tbl, tmp, mode, width);
++ break;
++ case HTML_N_BUTTON:
++ tmp = process_n_button();
++ feed_table1(tbl, tmp, mode, width);
++ break;
+ case HTML_SELECT:
+ tmp = process_select(tag);
+ if (tmp)
+Index: tagtable.tab
+===================================================================
+RCS file: /cvsroot/w3m/w3m/tagtable.tab,v
+retrieving revision 1.14
+diff -u -r1.14 tagtable.tab
+--- w3m.orig/tagtable.tab 14 Aug 2010 01:29:40 -0000 1.14
++++ w3m/tagtable.tab 17 Sep 2010 12:18:55 -0000
+@@ -176,6 +176,7 @@
+ big HTML_BIG
+ /big HTML_N_BIG
+ button HTML_BUTTON
++/button HTML_N_BUTTON
+ fieldset HTML_FIELDSET
+ /fieldset HTML_N_FIELDSET
+ iframe HTML_IFRAME
diff --git a/www-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch b/www-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch
new file mode 100644
index 000000000000..acb10001d314
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch
@@ -0,0 +1,46 @@
+--- w3mimg/x11/x11_w3mimg.c 2004-11-08 18:14:06.000000000 +0100
++++ w3mimg/x11/x11_w3mimg.c 2012-05-19 06:31:08.908783927 +0200
+@@ -14,7 +14,7 @@
+ #elif defined(USE_GDKPIXBUF)
+ #if defined(USE_GTK2)
+ #include <glib-object.h>
+-#include <gdk/gdk.h>
++#include <gdk-pixbuf/gdk-pixbuf.h>
+ #include <gdk-pixbuf-xlib/gdk-pixbuf-xlib.h>
+ #else
+ #include <gdk-pixbuf/gdk-pixbuf-xlib.h>
+--- w3mimg/fb/fb_gdkpixbuf.c 2004-11-08 18:14:06.000000000 +0100
++++ w3mimg/fb/fb_gdkpixbuf.c 2012-05-20 05:06:07.744816661 +0200
+@@ -6,7 +6,7 @@
+ #include "config.h"
+ #if defined(USE_GTK2)
+ #include <glib-object.h>
+-#include <gdk/gdk.h>
++#include <gdk-pixbuf/gdk-pixbuf.h>
+ #endif
+ #include <gdk-pixbuf/gdk-pixbuf.h>
+ #include "fb.h"
+--- acinclude.m4 2011-01-04 10:22:18.000000000 +0100
++++ acinclude.m4 2012-05-20 05:15:36.158981506 +0200
+@@ -705,8 +705,8 @@ AC_DEFUN([AC_W3M_IMAGE],
+ IMGTARGETS="x11"
+ AC_DEFINE(USE_GDKPIXBUF)
+ AC_DEFINE(USE_GTK2)
+- IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"
+- IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"
++ IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`"
++ IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`"
+ elif test x"$have_gdkpixbuf" = xyes; then
+ AC_DEFINE(USE_W3MIMG_X11)
+ IMGOBJS="$IMGOBJS x11/x11_w3mimg.o"
+@@ -740,8 +740,8 @@ AC_DEFUN([AC_W3M_IMAGE],
+ IMGTARGETS="${IMGTARGETS} fb"
+ AC_DEFINE(USE_GDKPIXBUF)
+ AC_DEFINE(USE_GTK2)
+- IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`"
+- IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`"
++ IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`"
++ IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0`"
+ elif test x"$have_gdkpixbuf" = xyes; then
+ AC_DEFINE(USE_W3MIMG_FB)
+ IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o"
diff --git a/www-client/w3m/files/w3m-0.5.3-gettext.patch b/www-client/w3m/files/w3m-0.5.3-gettext.patch
new file mode 100644
index 000000000000..3f330ccd4dce
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-gettext.patch
@@ -0,0 +1,12 @@
+diff -ur w3m-0.5.3.orig/po/ja.po w3m-0.5.3/po/ja.po
+--- w3m-0.5.3.orig/po/ja.po 2014-06-08 11:17:13.791260502 +0200
++++ w3m-0.5.3/po/ja.po 2014-06-08 11:24:27.887365926 +0200
+@@ -12,7 +12,7 @@
+ "PO-Revision-Date: 2010-08-20 18:45+0900\n"
+ "Last-Translator: Fumitoshi UKAI <ukai@debian.or.jp>\n"
+ "Language-Team: Japanese\n"
+-"Language: \n"
++"Language: ja\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
diff --git a/www-client/w3m/files/w3m-0.5.3-glibc214.patch b/www-client/w3m/files/w3m-0.5.3-glibc214.patch
new file mode 100644
index 000000000000..2b18a8d112db
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-glibc214.patch
@@ -0,0 +1,58 @@
+--- istream.c.~1.27.~ 2011-01-04 18:22:22.000000000 +0900
++++ istream.c 2011-06-24 08:15:23.522990618 +0900
+@@ -22,8 +22,8 @@
+ static void basic_close(int *handle);
+ static int basic_read(int *handle, char *buf, int len);
+
+-static void file_close(struct file_handle *handle);
+-static int file_read(struct file_handle *handle, char *buf, int len);
++static void file_close(struct afile_handle *handle);
++static int file_read(struct afile_handle *handle, char *buf, int len);
+
+ static int str_read(Str handle, char *buf, int len);
+
+@@ -114,7 +114,7 @@
+ stream = New(union input_stream);
+ init_base_stream(&stream->base, STREAM_BUF_SIZE);
+ stream->file.type = IST_FILE;
+- stream->file.handle = New(struct file_handle);
++ stream->file.handle = New(struct afile_handle);
+ stream->file.handle->f = f;
+ if (closep)
+ stream->file.handle->close = closep;
+@@ -658,13 +658,13 @@
+ }
+
+ static void
+-file_close(struct file_handle *handle)
++file_close(struct afile_handle *handle)
+ {
+ handle->close(handle->f);
+ }
+
+ static int
+-file_read(struct file_handle *handle, char *buf, int len)
++file_read(struct afile_handle *handle, char *buf, int len)
+ {
+ return fread(buf, 1, len, handle->f);
+ }
+--- istream.h.~1.12.~ 2003-10-21 01:41:56.000000000 +0900
++++ istream.h 2011-06-24 08:15:54.392991144 +0900
+@@ -20,7 +20,7 @@
+
+ typedef struct stream_buffer *StreamBuffer;
+
+-struct file_handle {
++struct afile_handle {
+ FILE *f;
+ void (*close) ();
+ };
+@@ -53,7 +53,7 @@
+
+ struct file_stream {
+ struct stream_buffer stream;
+- struct file_handle *handle;
++ struct afile_handle *handle;
+ char type;
+ char iseos;
+ int (*read) ();
diff --git a/www-client/w3m/files/w3m-0.5.3-input-type-default.patch b/www-client/w3m/files/w3m-0.5.3-input-type-default.patch
new file mode 100644
index 000000000000..016d2a575ec2
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-input-type-default.patch
@@ -0,0 +1,13 @@
+Index: w3m-git/form.c
+===================================================================
+--- w3m-git.orig/form.c 2011-02-28 15:03:36.000000000 +0100
++++ w3m-git/form.c 2011-02-28 15:32:33.000000000 +0100
+@@ -196,7 +196,7 @@
+ if (!strcasecmp(typestr, _formtypetbl[i]))
+ return i;
+ }
+- return FORM_UNKNOWN;
++ return FORM_INPUT_TEXT;
+ }
+
+ void
diff --git a/www-client/w3m/files/w3m-0.5.3-parallel-make.patch b/www-client/w3m/files/w3m-0.5.3-parallel-make.patch
new file mode 100644
index 000000000000..427e3be20d55
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-parallel-make.patch
@@ -0,0 +1,22 @@
+--- a/w3mimg/Makefile.in
++++ b/w3mimg/Makefile.in
+@@ -22,6 +22,8 @@
+ $(AR) rv $@ $(IMGOBJS)
+ $(RANLIB) $@
+
++$(IMGOBJS): @IMGTARGETS@
++
+ w3mimg.o: w3mimg.c
+ $(CC) $(CFLAGS) -c $<
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -250,7 +250,7 @@
+ (cd $$subdir && $(MAKE) install); \
+ done
+
+-all-scripts:
++all-scripts: funcname.tab
+ for dir in $(SCRIPTSUBDIRS); \
+ do \
+ (cd $$dir && $(MAKE) $(MAKE_ARGS)); \
diff --git a/www-client/w3m/files/w3m-0.5.3-tinfo.patch b/www-client/w3m/files/w3m-0.5.3-tinfo.patch
new file mode 100644
index 000000000000..512f2cb10094
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-tinfo.patch
@@ -0,0 +1,15 @@
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -400,10 +400,10 @@
+ AC_ARG_WITH(termlib,
+ [ --with-termlib[=LIBS] terminal library
+ LIBS is space separated list of:
+- terminfo mytinfo termcap ncurses curses],,
++ terminfo mytinfo termcap tinfo ncurses curses],,
+ [with_termlib="yes"])
+ AC_MSG_RESULT($with_termlib)
+- test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap ncurses curses"
++ test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap tinfo ncurses curses"
+ for lib in $with_termlib; do
+ AC_CHECK_LIB($lib, tgetent, [W3M_LIBS="$W3M_LIBS -l$lib"; break])
+ done
diff --git a/www-client/w3m/files/w3m-0.5.3-underlinking.patch b/www-client/w3m/files/w3m-0.5.3-underlinking.patch
new file mode 100644
index 000000000000..1b034b46cb13
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-underlinking.patch
@@ -0,0 +1,15 @@
+Description: Explicitly link w3mimgdisplay with -lX11 to build with gcc 4.5
+Author: Martin Pitt <martin.pitt@ubuntu.com>
+Bug: https://sourceforge.net/tracker/?func=detail&aid=3126430&group_id=39518&atid=425441
+
+--- w3m-0.5.3.orig/Makefile.in 2011-01-04 18:22:18.000000000 +0900
++++ w3m-0.5.3/Makefile.in 2011-02-06 12:05:40.000000000 +0900
+@@ -199,7 +199,7 @@
+ $(CC) $(CFLAGS) -DDUMMY -c -o $@ $?
+
+ $(IMGDISPLAY): w3mimgdisplay.o $(ALIB) w3mimg/w3mimg.a
+- $(IMGLINK) $(CFLAGS) -o $(IMGDISPLAY) w3mimgdisplay.o w3mimg/w3mimg.a $(LDFLAGS) $(LIBS) $(IMGLDFLAGS)
++ $(IMGLINK) $(CFLAGS) -o $(IMGDISPLAY) w3mimgdisplay.o w3mimg/w3mimg.a $(LDFLAGS) $(LIBS) -lX11 $(IMGLDFLAGS)
+
+ w3mimgdisplay.o: w3mimgdisplay.c w3mimg/w3mimg.h
+ $(CC) $(CFLAGS) $(IMGCFLAGS) -o $@ -c $(srcdir)/w3mimgdisplay.c
diff --git a/www-client/w3m/files/w3m-0.5.3-url-schema.patch b/www-client/w3m/files/w3m-0.5.3-url-schema.patch
new file mode 100644
index 000000000000..759e7c226c15
--- /dev/null
+++ b/www-client/w3m/files/w3m-0.5.3-url-schema.patch
@@ -0,0 +1,91 @@
+X-Git-Url: http://anonscm.debian.org/gitweb/?p=collab-maint%2Fw3m.git;a=blobdiff_plain;f=url.c;h=6dbd5d3a43c51d96adca5ce5076b72a58c9d65fe;hp=ed6062ef3cb9e60a7e712ec054bcd46b49fd504d;hb=c155b93830b353a68468fb063df67987ed284142;hpb=dbd52ac2ca59d404bdcc29c5c90bda822f2c9334
+
+diff --git a/url.c b/url.c
+index ed6062e..6dbd5d3 100644
+--- a/url.c
++++ b/url.c
+@@ -121,6 +121,7 @@ static struct table2 DefaultGuess[] = {
+ };
+
+ static void add_index_file(ParsedURL *pu, URLFile *uf);
++static char * schemeNumToName(int scheme);
+
+ /* #define HTTP_DEFAULT_FILE "/index.html" */
+
+@@ -1280,6 +1281,18 @@ getURLScheme(char **url)
+ }
+
+ static char *
++schemeNumToName(int scheme)
++{
++ int i;
++
++ for (i = 0; schemetable[i].cmdname != NULL; i++) {
++ if (schemetable[i].cmd == scheme)
++ return schemetable[i].cmdname;
++ }
++ return NULL;
++}
++
++static char *
+ otherinfo(ParsedURL *target, ParsedURL *current, char *referer)
+ {
+ Str s = Strnew();
+@@ -1603,7 +1616,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
+ pu->host != NULL && !check_no_proxy(pu->host)) {
+ hr->flag |= HR_FLAG_PROXY;
+ sock = openSocket(FTP_proxy_parsed.host,
+- schemetable[FTP_proxy_parsed.scheme].cmdname,
++ schemeNumToName(FTP_proxy_parsed.scheme),
+ FTP_proxy_parsed.port);
+ if (sock < 0)
+ return uf;
+@@ -1645,15 +1658,15 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
+ }
+ else if (pu->scheme == SCM_HTTPS) {
+ sock = openSocket(HTTPS_proxy_parsed.host,
+- schemetable[HTTPS_proxy_parsed.scheme].
+- cmdname, HTTPS_proxy_parsed.port);
++ schemeNumToName(HTTPS_proxy_parsed.scheme),
++ HTTPS_proxy_parsed.port);
+ sslh = NULL;
+ }
+ else {
+ #endif /* USE_SSL */
+ sock = openSocket(HTTP_proxy_parsed.host,
+- schemetable[HTTP_proxy_parsed.scheme].
+- cmdname, HTTP_proxy_parsed.port);
++ schemeNumToName(HTTP_proxy_parsed.scheme),
++ HTTP_proxy_parsed.port);
+ #ifdef USE_SSL
+ sslh = NULL;
+ }
+@@ -1685,8 +1698,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
+ }
+ }
+ else {
+- sock = openSocket(pu->host,
+- schemetable[pu->scheme].cmdname, pu->port);
++ sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);
+ if (sock < 0) {
+ *status = HTST_MISSING;
+ return uf;
+@@ -1750,7 +1762,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
+ pu->host != NULL && !check_no_proxy(pu->host)) {
+ hr->flag |= HR_FLAG_PROXY;
+ sock = openSocket(GOPHER_proxy_parsed.host,
+- schemetable[GOPHER_proxy_parsed.scheme].cmdname,
++ schemeNumToName(GOPHER_proxy_parsed.scheme),
+ GOPHER_proxy_parsed.port);
+ if (sock < 0)
+ return uf;
+@@ -1758,8 +1770,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
+ tmp = HTTPrequest(pu, current, hr, extra_header);
+ }
+ else {
+- sock = openSocket(pu->host,
+- schemetable[pu->scheme].cmdname, pu->port);
++ sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);
+ if (sock < 0)
+ return uf;
+ if (pu->file == NULL)
diff --git a/www-client/w3m/files/w3m-CVE-2010-2074.patch b/www-client/w3m/files/w3m-CVE-2010-2074.patch
new file mode 100644
index 000000000000..2863932824c4
--- /dev/null
+++ b/www-client/w3m/files/w3m-CVE-2010-2074.patch
@@ -0,0 +1,55 @@
+Index: istream.c
+===================================================================
+--- istream.c
++++ istream.c
+@@ -447,8 +447,17 @@ ssl_check_cert_ident(X509 * x, char *hos
+
+ if (!seen_dnsname)
+ seen_dnsname = Strnew();
++ /* replace \0 to make full string visible to user */
++ if (sl != strlen(sn)) {
++ int i;
++ for (i = 0; i < sl; ++i) {
++ if (!sn[i])
++ sn[i] = '!';
++ }
++ }
+ Strcat_m_charp(seen_dnsname, sn, " ", NULL);
+- if (ssl_match_cert_ident(sn, sl, hostname))
++ if (sl == strlen(sn) /* catch \0 in SAN */
++ && ssl_match_cert_ident(sn, sl, hostname))
+ break;
+ }
+ }
+@@ -466,16 +475,27 @@ ssl_check_cert_ident(X509 * x, char *hos
+ if (match_ident == FALSE && ret == NULL) {
+ X509_NAME *xn;
+ char buf[2048];
++ int slen;
+
+ xn = X509_get_subject_name(x);
+
+- if (X509_NAME_get_text_by_NID(xn, NID_commonName,
+- buf, sizeof(buf)) == -1)
++ slen = X509_NAME_get_text_by_NID(xn, NID_commonName, buf, sizeof(buf));
++ if ( slen == -1)
+ /* FIXME: gettextize? */
+ ret = Strnew_charp("Unable to get common name from peer cert");
+- else if (!ssl_match_cert_ident(buf, strlen(buf), hostname))
++ else if (slen != strlen(buf)
++ || !ssl_match_cert_ident(buf, strlen(buf), hostname)) {
++ /* replace \0 to make full string visible to user */
++ if (slen != strlen(buf)) {
++ int i;
++ for (i = 0; i < slen; ++i) {
++ if (!buf[i])
++ buf[i] = '!';
++ }
++ }
+ /* FIXME: gettextize? */
+ ret = Sprintf("Bad cert ident %s from %s", buf, hostname);
++ }
+ else
+ match_ident = TRUE;
+ }
+
diff --git a/www-client/w3m/files/w3m.mailcap b/www-client/w3m/files/w3m.mailcap
new file mode 100644
index 000000000000..21603a6dc3a2
--- /dev/null
+++ b/www-client/w3m/files/w3m.mailcap
@@ -0,0 +1 @@
+application/xhtml+xml; cat %s; x-htmloutput
diff --git a/www-client/w3m/metadata.xml b/www-client/w3m/metadata.xml
new file mode 100644
index 000000000000..eeaac1e0cc4b
--- /dev/null
+++ b/www-client/w3m/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cjk</herd>
+ <use>
+ <flag name="lynxkeymap">If you prefer Lynx-like key binding</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">w3m</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-client/w3m/w3m-0.5.3-r5.ebuild b/www-client/w3m/w3m-0.5.3-r5.ebuild
new file mode 100644
index 000000000000..fa04611a64b7
--- /dev/null
+++ b/www-client/w3m/w3m-0.5.3-r5.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit autotools eutils
+
+DESCRIPTION="Text based WWW browser, supports tables and frames"
+HOMEPAGE="http://w3m.sourceforge.net/"
+SRC_URI="mirror://sourceforge/w3m/${P}.tar.gz"
+
+LICENSE="w3m"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris"
+IUSE="X fbcon gpm gtk imlib lynxkeymap migemo nls nntp ssl unicode vanilla xface linguas_ja"
+
+# We cannot build w3m with gtk+2 w/o X because gtk+2 ebuild doesn't
+# allow us to build w/o X, so we have to give up framebuffer w3mimg....
+RDEPEND=">=sys-libs/ncurses-5.2-r3
+ >=sys-libs/zlib-1.1.3-r2
+ >=dev-libs/boehm-gc-6.2
+ X? ( x11-libs/libXext x11-libs/libXdmcp )
+ gtk? (
+ vanilla? ( x11-libs/gtk+:2 )
+ !vanilla? ( x11-libs/gdk-pixbuf ) )
+ !gtk? ( imlib? ( >=media-libs/imlib2-1.1.0[X] ) )
+ xface? ( media-libs/compface )
+ gpm? ( >=sys-libs/gpm-1.19.3-r5 )
+ migemo? ( >=app-text/migemo-0.40 )
+ ssl? ( >=dev-libs/openssl-0.9.6b:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${PN}-0.5.2-gc72.patch" \
+ "${FILESDIR}/${PN}-0.5.3-parallel-make.patch" \
+ "${FILESDIR}/${PN}-0.5.3-glibc214.patch" \
+ "${FILESDIR}/${PN}-0.5.3-underlinking.patch" \
+ "${FILESDIR}/${PN}-0.5.3-tinfo.patch" \
+ "${FILESDIR}/${PN}-0.5.3-gettext.patch"
+ use vanilla || \
+ epatch "${FILESDIR}"/${PN}-0.5.3-button.patch \
+ "${FILESDIR}"/${P}-gdk-pixbuf.patch \
+ "${FILESDIR}"/${P}-input-type-default.patch \
+ "${FILESDIR}"/${P}-url-schema.patch
+ ecvs_clean
+ sed -i -e "/^AR=/s/ar/$(tc-getAR)/" {.,w3mimg,libwc}/Makefile.in || die
+ eautoconf
+}
+
+src_configure() {
+ local myconf migemo_command imagelibval imageval
+
+ if use gtk ; then
+ imagelibval="gtk2"
+ elif use imlib ; then
+ imagelibval="imlib2"
+ fi
+
+ if [ ! -z "${imagelibval}" ] ; then
+ use X && imageval="${imageval}${imageval:+,}x11"
+ use X && use fbcon && imageval="${imageval}${imageval:+,}fb"
+ fi
+
+ if use migemo ; then
+ migemo_command="migemo -t egrep ${EPREFIX}/usr/share/migemo/migemo-dict"
+ else
+ migemo_command="no"
+ fi
+
+ # emacs-w3m doesn't like "--enable-m17n --disable-unicode,"
+ # so we better enable or disable both. Default to enable
+ # m17n and unicode, see bug #47046.
+ if use linguas_ja ; then
+ if use unicode ; then
+ myconf="${myconf} --enable-japanese=U"
+ else
+ myconf="${myconf} --enable-japanese=E"
+ fi
+ elif use unicode ; then
+ myconf="${myconf} --with-charset=UTF-8"
+ else
+ myconf="${myconf} --with-charset=US-ASCII"
+ fi
+
+ # lynxkeymap IUSE flag. bug #49397
+ if use lynxkeymap ; then
+ myconf="${myconf} --enable-keymap=lynx"
+ else
+ myconf="${myconf} --enable-keymap=w3m"
+ fi
+
+ econf \
+ --with-editor="${EPREFIX}/usr/bin/vi" \
+ --with-mailer="${EPREFIX}/bin/mail" \
+ --with-browser="${EPREFIX}/usr/bin/xdg-open" \
+ --with-termlib=yes \
+ --enable-image=${imageval:-no} \
+ --with-imagelib="${imagelibval:-no}" \
+ --with-migemo="${migemo_command}" \
+ --enable-m17n \
+ --enable-unicode \
+ $(use_enable gpm mouse) \
+ $(use_enable nls) \
+ $(use_enable nntp) \
+ $(use_enable ssl digest-auth) \
+ $(use_with ssl) \
+ $(use_enable xface) \
+ ${myconf}
+}
+
+src_install() {
+
+ emake DESTDIR="${D}" install
+
+ # http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/200307.month/3944.html
+ insinto /etc/${PN}
+ newins "${FILESDIR}/${PN}.mailcap" mailcap
+
+ insinto /usr/share/${PN}/Bonus
+ doins Bonus/*
+ dodoc README NEWS TODO ChangeLog
+ docinto doc-en ; dodoc doc/*
+ if use linguas_ja ; then
+ docinto doc-jp ; dodoc doc-jp/*
+ else
+ rm -rf "${ED}"/usr/share/man/ja || die
+ fi
+}