diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /www-client/w3m | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.2-ambwidth.patch | 425 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.2-form.patch | 11 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.2-gc72.patch | 27 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-button.patch | 439 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch | 46 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-gettext.patch | 12 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-glibc214.patch | 58 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-input-type-default.patch | 13 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-parallel-make.patch | 22 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-tinfo.patch | 15 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-underlinking.patch | 15 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-0.5.3-url-schema.patch | 91 | ||||
-rw-r--r-- | www-client/w3m/files/w3m-CVE-2010-2074.patch | 55 | ||||
-rw-r--r-- | www-client/w3m/files/w3m.mailcap | 1 | ||||
-rw-r--r-- | www-client/w3m/metadata.xml | 11 | ||||
-rw-r--r-- | www-client/w3m/w3m-0.5.3-r5.ebuild | 130 |
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 +} |