From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kei Kebreau Subject: [PATCH] gnu: w3m: Switch to Debian's actively maintained fork of w3m. Date: Thu, 03 Nov 2016 18:08:22 -0400 Message-ID: <87twbow71l.fsf@openmailbox.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54342) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c2QCb-00027x-NO for guix-devel@gnu.org; Thu, 03 Nov 2016 18:10:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c2QBW-0003bL-M0 for guix-devel@gnu.org; Thu, 03 Nov 2016 18:09:41 -0400 Received: from smtp17.openmailbox.org ([62.4.1.51]:59773 helo=smtp2.openmailbox.org) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1c2QBU-0003Zy-6l for guix-devel@gnu.org; Thu, 03 Nov 2016 18:08:34 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain While SourceForge's w3m is apparently unmaintained, Debian's fork is not. This update takes that into account. It also makes us invulnerable to some unfriendly bugs. See http://www.openwall.com/lists/oss-security/2016/11/03/3. --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=0001-gnu-w3m-Switch-to-Debian-s-actively-maintained-fork-.patch Content-Transfer-Encoding: quoted-printable From=20b837111e3ddf406a3b9235538f63af678e3ac741 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 3 Nov 2016 17:58:48 -0400 Subject: [PATCH] gnu: w3m: Switch to Debian's actively maintained fork of w= 3m. Fixes some security issues seen here: * gnu/packages/patches/w3m-upstream-20120522.patch: New file. * gnu/packages/patches/w3m-debian-updates.patch: New file. * gnu/packages/w3m.scm (w3m): Switch to Debian's actively maintained fork of w3m. [source]: Use Debian's tarball and patches. Remove obsolete patches. [arguments]: Remove unnecessary modification of %standard-phases. * gnu/local.mk (dist_patch_DATA): Register new patches. Remove obsolete patches. =2D-- gnu/local.mk | 6 +- gnu/packages/patches/w3m-debian-updates.patch | 28498 +++++++++++++++= ++++ .../patches/w3m-disable-sslv2-and-sslv3.patch | 24 - .../patches/w3m-disable-weak-ciphers.patch | 24 - .../patches/w3m-force-ssl_verify_server-on.patch | 24 - gnu/packages/patches/w3m-libgc.patch | 28 - gnu/packages/patches/w3m-upstream-20120522.patch | 157 + gnu/packages/w3m.scm | 37 +- 8 files changed, 28668 insertions(+), 130 deletions(-) create mode 100644 gnu/packages/patches/w3m-debian-updates.patch delete mode 100644 gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch delete mode 100644 gnu/packages/patches/w3m-disable-weak-ciphers.patch delete mode 100644 gnu/packages/patches/w3m-force-ssl_verify_server-on.pat= ch delete mode 100644 gnu/packages/patches/w3m-libgc.patch create mode 100644 gnu/packages/patches/w3m-upstream-20120522.patch diff --git a/gnu/local.mk b/gnu/local.mk index a23d536..eb4778f 100644 =2D-- a/gnu/local.mk +++ b/gnu/local.mk @@ -891,10 +891,8 @@ dist_patch_DATA =3D \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vtk-mesa-10.patch \ =2D %D%/packages/patches/w3m-libgc.patch \ =2D %D%/packages/patches/w3m-force-ssl_verify_server-on.patch \ =2D %D%/packages/patches/w3m-disable-sslv2-and-sslv3.patch \ =2D %D%/packages/patches/w3m-disable-weak-ciphers.patch \ + %D%/packages/patches/w3m-upstream-20120522.patch \ + %D%/packages/patches/w3m-debian-updates.patch \ %D%/packages/patches/weechat-python.patch \ %D%/packages/patches/weex-vacopy.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ diff --git a/gnu/packages/patches/w3m-debian-updates.patch b/gnu/packages/p= atches/w3m-debian-updates.patch new file mode 100644 index 0000000..3bef2fa =2D-- /dev/null +++ b/gnu/packages/patches/w3m-debian-updates.patch @@ -0,0 +1,28498 @@ +Description: Git master branch of Debian's w3m +Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git + +diff --git a/Bonus/goodict.cgi b/Bonus/goodict.cgi +index 8f443c1..5fb6581 100755 +--- a/Bonus/goodict.cgi ++++ b/Bonus/goodict.cgi +@@ -1,14 +1,20 @@ + #!/usr/bin/perl +=20 + # ~/.w3m/urimethodmap +-# e: file:/cgi-bin/goodict.cgi?%s +-# w: file:/cgi-bin/goodict.cgi?%s +-# j: file:/cgi-bin/goodict.cgi?%s ++# e: file:/cgi-bin/goodict.cgi?%s Englich-Japanese ++# w: file:/cgi-bin/goodict.cgi?%s Japanese-English ++# j: file:/cgi-bin/goodict.cgi?%s Japanese ++# a: file:/cgi-bin/goodict.cgi?%s All ++# ++# e:0:word start with word ++# e:1:word perfect match ++# e:2:word end with word ++# e:3:word search body text ++# e:6:word search title ++# e:word perfect match +=20 +-use NKF; +-#$mode =3D 0; # substring +-$mode =3D 1; # perfect match +-#$mode =3D 3; # search body text ++use Encode; ++use Encode::Guess qw/euc-jp utf8/; + $url =3D "http://dictionary.goo.ne.jp"; + $_ =3D $ENV{"QUERY_STRING"}; + if (/^e:/) { +@@ -17,14 +23,22 @@ if (/^e:/) { + $kind =3D 'je'; + } elsif (/^j:/) { + $kind =3D 'jn'; ++} elsif (/^a:/) { ++ $kind =3D 'all' ++} ++s@^[ewja]:@@ && s@^//@@ && s@/$@@; ++if (/^([01236]):/) { ++ $mode=3D$1; ++ s/^[01236]://; ++}else{ ++ $mode=3D"1"; + } +-s@^[ewjs]:@@ && s@^//@@ && s@/$@@; + if ($_) { + s/\+/ /g; + s/%([\da-f][\da-f])/pack('C', hex($1))/egi; +- $_ =3D nkf("-e", $_); ++ $_ =3D encode("utf8", decode("Guess", $_)); + s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg; +- $url .=3D "/search.php?MT=3D$_&kind=3D$kind&mode=3D$mode"; ++ $url .=3D "/srch/$kind/$_/m$mode"."u/"; + } else { + $input =3D "w3m-control: GOTO_LINK"; + } +diff --git a/ChangeLog b/ChangeLog +index 88358ef..f9cc112 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,1198 @@ ++2016-10-31 Tatsuya Kinoshita ++ ++ * table.c, table.h, textlist.h: ++ Revert "Treat table height as int instead of short". ++ This reverts commit 0c9aebb26a16ad3acc69b2e87ffd216d43879cb6. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D842623 ++ ++2016-10-30 Tatsuya Kinoshita ++ ++ * NEWS: Update NEWS. ++ ++ * fm.h: Set use_dictcommand to 1 by default. ++ ++ * scripts/Makefile.in: Add w3mdict.cgi to LIB_TARGETS. ++ ++ * config.h.dist: Typo fix for USE_DICT. ++ ++2016-10-30 Boruch Baum ++ ++ * scripts/w3mdict.cgi: Add w3mdict.cgi to use a dictd dictionary query. ++ Bug-Debian: https://github.com/tats/w3m/issues/30 ++ ++2016-10-09 Tatsuya Kinoshita ++ ++ * form.c: ++ Fix incorrect dereference in formUpdateBuffer when MENU_SELECT. ++ cf. https://github.com/tats/w3m/commit/ec9eb22e008a69ea9dc21fdca4b9b8366= 79965ee ++ ++2016-10-08 Tatsuya Kinoshita ++ ++ * table.c, table.h, textlist.h: ++ Treat table height as int instead of short. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D838952 ++ ++ * form.c: Prevent global-buffer-overflow write in formUpdateBuffer. ++ Bug-Debian: https://github.com/tats/w3m/issues/29 ++ ++ * form.c: Fix null pointer dereference in formUpdateBuffer. ++ Bug-Debian: https://github.com/tats/w3m/issues/28 ++ ++2016-08-30 Kuang-che Wu ++ ++ * Str.c: Fix potential heap buffer corruption due to Strgrow. ++ Origin: https://github.com/tats/w3m/pull/27 ++ ++2016-08-29 Tatsuya Kinoshita ++ ++ * anchor.c: ++ Prevent segfault due to buffer overflows in addMultirowsForm. ++ Bug-Debian: https://github.com/tats/w3m/issues/21 ++ Bug-Debian: https://github.com/tats/w3m/issues/26 ++ ++ * form.c: Prevent segfault for formUpdateBuffer. ++ Bug-Debian: https://github.com/tats/w3m/issues/13#issuecomment-242981906 ++ ++2016-08-24 Tatsuya Kinoshita ++ ++ * table.c: Prevent segfault with malformed table_alt. ++ Bug-Debian: https://github.com/tats/w3m/issues/24 ++ ++ * form.c: Prevent segfault for formUpdateBuffer. ++ Bug-Debian: https://github.com/tats/w3m/issues/22 ++ ++ * table.c: Truncate max_width for renderTable. ++ Bug-Debian: https://github.com/tats/w3m/issues/25 ++ ++2016-08-20 Tatsuya Kinoshita ++ ++ * file.c, parsetagx.c: Fix uninitialised values for and
. ++ Bug-Debian: https://github.com/tats/w3m/issues/16 ++ ++ * file.c, parsetagx.c: ++ Revert "Fix uninitialised values for and
". ++ This reverts commit 0fba2f1a6eb6861206ad120a02af2643938082cd. ++ cf. https://github.com/tats/w3m/commit/0fba2f1a6eb6861206ad120a02af26439= 38082cd#commitcomment-18703355 ++ ++2016-08-19 Tatsuya Kinoshita ++ ++ * file.c, parsetagx.c: Fix uninitialised values for and
. ++ Bug-Debian: https://github.com/tats/w3m/issues/16 ++ ++2016-08-18 Kuang-che Wu ++ ++ * table.c: Fix table rowspan and colspan. ++ Origin: https://github.com/tats/w3m/pull/19 ++ Bug-Debian: https://github.com/tats/w3m/issues/8 ++ ++2016-08-18 Tatsuya Kinoshita ++ ++ * file.c: Prevent segfault with malformed input_alt. ++ Bug-Debian: https://github.com/tats/w3m/issues/18 ++ ++ * file.c: Prevent segfault with incorrect button type. ++ Bug-Debian: https://github.com/tats/w3m/issues/17 ++ ++2016-08-17 Tatsuya Kinoshita ++ ++ * file.c: Prevent segfault with incorrect form_int fid. ++ Bug-Debian: https://github.com/tats/w3m/issues/15 ++ ++ * libwc/iso2022.c: Prevent segfault when iso2022 parsing. ++ Bug-Debian: https://github.com/tats/w3m/issues/14 ++ ++ * form.c: Prevent segfault for formUpdateBuffer. ++ Bug-Debian: https://github.com/tats/w3m/issues/13 ++ ++ * file.c, form.c: ++ Prevent negative array index for selectnumber and textareanumber. ++ Bug-Debian: https://github.com/tats/w3m/issues/12 ++ ++2016-08-16 Tatsuya Kinoshita ++ ++ * file.c: Truncate large values of table attributes. ++ Bug-Debian: https://github.com/tats/w3m/issues/11 ++ ++2016-08-15 Tatsuya Kinoshita ++ ++ * form.c: Prevent segfault for formUpdateBuffer. ++ Bug-Debian: https://github.com/tats/w3m/issues/9 ++ Bug-Debian: https://github.com/tats/w3m/issues/10 ++ ++2016-08-09 Tatsuya Kinoshita ++ ++ * file.c: Prevent segfault with malformed input type. ++ Bug-Debian: https://github.com/tats/w3m/issues/7 ++ ++2016-08-08 Tatsuya Kinoshita ++ ++ * Makefile.in, configure, configure.ac, scripts/w3mman/Makefile.in: ++ Install German manpages. ++ ++2016-08-08 Markus Hiereth ++ ++ * doc-de/MANUAL.html, doc/MANUAL.html: ++ Update MANUAL.html in English and German. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D772341#90 ++ ++ * doc-de/FAQ.html, doc/FAQ.html: Update FAQ.html in English and German. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D772341#85 ++ ++ * scripts/w3mman/w3mman.1.in, scripts/w3mman/w3mman.de.1.in: ++ Update manpage for w3mman in English and German. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D772341#80 ++ ++ * doc-de/w3m.1, doc/w3m.1: ++ Update manpage for w3m in English and German. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D772341#75 ++ ++2016-07-18 Tatsuya Kinoshita ++ ++ * NEWS: Update NEWS. ++ ++ * fm.h: Set default_url to 1 by default. ++ ++2016-06-20 Tatsuya Kinoshita ++ ++ * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: ++ Trim trailing spaces. ++ ++2016-06-20 Markus Hiereth ++ ++ * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: ++ Update German help messages. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D765682#47 ++ ++2016-06-19 Tatsuya Kinoshita ++ ++ * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: ++ Convert German help messages to UTF-8. ++ ++ * main.c: Update description of SOURCE and VIEW. ++ ++2016-06-19 Markus Hiereth ++ ++ * doc-de/README.func, doc/README.func: ++ Update description of SOURCE and VIEW. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D765682#37 ++ ++2016-06-19 Tatsuya Kinoshita ++ ++ * NEWS: Update NEWS. ++ ++ * doc-de/README.func: Update German messages. ++ ++ * doc/README.func, main.c, menu.c: Update English messages. ++ ++ * doc-jp/README.func, scripts/w3mhelp-funcdesc.ja.pl.in: ++ Update Japanese help messages. ++ ++2016-06-19 Markus Hiereth ++ ++ * doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in: ++ Update German help messages. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D765682 ++ ++ * doc/README.func, scripts/w3mhelp-funcdesc.en.pl.in: ++ * scripts/w3mhelp.cgi.in: Update English help messages. ++ ++2016-05-11 Tatsuya Kinoshita ++ ++ * config.guess, config.sub: ++ Update config.* with autotools-dev 20160430.1. ++ ++2016-04-14 Tatsuya Kinoshita ++ ++ * doc-de/README.func, doc-jp/README.func, doc/README.func: ++ * w3m-doc/sample/keymap.cgi: Cleanup obsolete INIT_MAILCAP. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D820902 ++ ++ * NEWS: Update NEWS. ++ ++2016-04-08 Tatsuya Kinoshita ++ ++ * libwc/johab.c: Fix segfault on bogus text for wc_N_to_johab1. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D820373 ++ ++2016-04-07 Tatsuya Kinoshita ++ ++ * libwc/map/big5_ucs.map, libwc/map/cns11643_ucs.map: ++ * libwc/map/gb12345_ucs.map, libwc/map/gb2312_ucs.map: ++ * libwc/map/gbk_ucs.map, libwc/map/hkscs_ucs.map: ++ * libwc/map/jisx0208x0212x0213_ucs.map, libwc/map/ksx1001_ucs.map: ++ * libwc/map/sjis_ext_ucs.map, libwc/map/uhc_ucs.map, libwc/ucs.c: ++ * libwc/ucs.map: Fix segfault on bogus text for wc_any_to_ucs. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D820162 ++ ++2016-04-03 Tatsuya Kinoshita ++ ++ * doc/FAQ.html, doc/MANUAL.html: Update English documents. ++ ++2016-04-03 Markus Hiereth ++ ++ * doc/FAQ.html, doc/MANUAL.html: Update English documents. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D772341#25 ++ ++2016-04-02 Tatsuya Kinoshita ++ ++ * configure, configure.ac, doc-de/README.func, scripts/Makefile.in: ++ * scripts/w3mhelp-funcdesc.de.pl.in, scripts/w3mhelp.cgi.in: ++ Support German translated help messages (translation is in progress). ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D765682 ++ ++ * doc-jp/w3m.1, doc/w3m.1: Update manpage footers to w3m 0.5.3. ++ ++ * doc-jp/MANUAL.html, doc-jp/w3m.1, w3m-doc/outline.html.in: ++ * w3mhelp-lynx_ja.html.in, w3mhelp-w3m_ja.html.in: ++ Update Japanese documents for extbrowser4..9. ++ ++2016-04-02 Justin B Rye ++ ++ * doc/FAQ.html, doc/MANUAL.html, doc/README.func, doc/menu.submenu: ++ * main.c, menu.c, scripts/w3mhelp-funcdesc.ja.pl.in: ++ * scripts/w3mhelp.cgi.in, w3mhelp-lynx_en.html.in: ++ * w3mhelp-w3m_en.html.in: English fixes. ++ cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D772341#15 ++ Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00002.ht= ml ++ Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00030.ht= ml ++ Origin: https://lists.debian.org/debian-l10n-english/2015/02/msg00011.ht= ml ++ ++2016-03-30 Leo Famulari ++ ++ * url.c: Disable RC4. ++ Origin: http://git.savannah.gnu.org/cgit/guix.git/commit/?id=3D62339e2d4= 93bf87a3aabe12e45458581e9705d83 ++ ++2016-03-29 Tatsuya Kinoshita ++ ++ * url.c: Fix variable is reassigned a value before the old one has ++ been used. ++ ++ * regex.c: Fix printf format specifier mismatch when REGEX_DEBUG. ++ ++ * w3mimg/fb/fb.c: Fix invalid braces when not Linux or FreeBSD. ++ ++ * local.c: Fix uninitialized variable when not HAVE_PUTENV. ++ ++ * w3mimgdisplay.c: Fix realloc mistake for DrawImage. ++ ++ * file.c: Fix mistake of unescape spaces for _doFileCopy. ++ cf. [w3m-dev-en 00751], [w3m-dev-en 00752] on 2002-06-09 ++ ++ * url.c: Fix style of array index is used before limits check. ++ Bug: https://sourceforge.net/p/w3m/feature-requests/25/ ++ ++2016-03-22 Tatsuya Kinoshita ++ ++ * menu.c, proto.h: Fix build failure when not USE_MOUSE for sgrmouse. ++ cf. https://twitter.com/naota344/status/711541592167854081 ++ ++2016-03-20 Tatsuya Kinoshita ++ ++ * rc.c: Fix reverse ordered config parameters. ++ ++2016-03-19 Tatsuya Kinoshita ++ ++ * doc/FAQ.html: Update FAQ for extbrowser. ++ ++2016-03-14 Tatsuya Kinoshita ++ ++ * po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po, po/zh_TW.po, rc.c: ++ Update PO strings for extbrowser2..9. ++ ++2016-03-13 Tatsuya Kinoshita ++ ++ * acinclude.m4, configure: ++ Set firefox instead of mozilla to default browser. ++ ++ * po/Makefile.in.in, po/de.po, po/ja.po, po/w3m.pot, po/zh_CN.po: ++ * po/zh_TW.po: Update PO strings for extbrowser4..9. ++ ++ * doc-jp/MANUAL.html, doc/MANUAL.html, fm.h, main.c, rc.c: ++ Add extbrowser4, extbrowser5, ..., and extbrowser9. ++ e.g. ++ - extbrowser8 url=3D%s && printf %s "$url" | xsel && printf %s "$url" | = xsel -b ++ - extbrowser9 mpv %s & ++ cf. https://github.com/spcmd/w3m ++ ++2016-02-28 Tatsuya Kinoshita ++ ++ * menu.c: Fix SIGFPE for ACCESSKEY. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D779092 ++ ++ * doc/README.func, main.c: Typo fix for ACCESSKEY. ++ cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D779092#5 ++ ++2015-12-20 Franz Thoma ++ ++ * w3mimg/x11/x11_w3mimg.c: Fix semi-transparent artifacts in w3m-img ++ when used with 32-bit color (e.g. urxvt). ++ imlib_render_image_on_drawable_at_size() tended to leave nasty ++ semi-transparent artifacts in 32-bit mode. Apparently, resizing an ++ image in 32-bit mode affects the alpha channel even if there is no ++ transparency in the image. With this patch, resizing is done in ++ 24-bit mode (or whatever depth the original image has) before ++ converting the image to 32-bit and rendering it on the display. ++ Origin: https://gist.github.com/fmthoma/f76a1b44e00d5ca972bb ++ cf. https://github.com/hut/ranger/issues/86#issuecomment-166027119 ++ ++2015-12-17 Tatsuya Kinoshita ++ ++ * w3mimg/x11/x11_w3mimg.c: ++ Wrap render_pixbuf_to_pixmap_32() in USE_GTK2. ++ ++2015-12-17 Araki Ken ++ ++ * w3mimg/x11/x11_w3mimg.c: ++ w3mimgdisplay supports 32 bit depth screen. (e.g. gnome-terminal) ++ Origin: https://bitbucket.org/arakiken/w3m/commits/f9c22db8cfd1aaba9bb73= 01ef9ba51ed88d8bb40 ++ ++2015-12-17 Tatsuya Kinoshita ++ ++ * w3mimg/x11/x11_w3mimg.c: ++ Revert "Fix handling visuals and colormaps incorrectly". ++ This reverts commit e24b4064daf3e022e370788a8c7267db40c37dda. ++ ++2015-11-19 Tatsuya Kinoshita ++ ++ * fm.h: Accept cookies by default. ++ ++ * fm.h: Set argv_is_url to 1 by default. ++ Bug-Arch: https://bugs.archlinux.org/task/47102 ++ ++2015-11-18 Tatsuya Kinoshita ++ ++ * config.guess, config.sub: ++ Update config.* with autotools-dev 20150820.1. ++ ++2015-11-11 Mingye Wang (Arthur2e5) ++ ++ * po/LINGUAS, po/zh_CN.po, po/zh_TW.po: ++ Add zh_CN and zh_TW translations. ++ Please note that the zh_TW translation is machine-converted using ++ OpenCC from zh_CN, and needs to be further polished by actual zh_TW ++ speakers. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D804732#10 ++ ++2015-10-24 BwackNinja ++ ++ * w3mimg/x11/x11_w3mimg.c: ++ Fix handling visuals and colormaps incorrectly. ++ cf. https://github.com/hut/ranger/issues/86 ++ Origin: https://gist.github.com/BwackNinja/60a344730170f9ce2163 ++ Bug-Arch: https://bugs.archlinux.org/task/46836 ++ Bug: https://sourceforge.net/p/w3m/patches/72/ ++ ++2015-10-10 Tatsuya Kinoshita ++ ++ * cookie.c: Remove incomplete special_domain tests. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D385702 ++ ++2015-10-04 Gaetan Bisson ++ ++ * scripts/w3mhelp.cgi.in: Do not use defined(%hash). ++ Origin: https://projects.archlinux.org/svntogit/packages.git/commit/trun= k?h=3Dpackages/w3m&id=3Dd9e0a4f0b461c9e2177cd9e64a10581386650503 ++ Bug-Arch: https://bugs.archlinux.org/task/45608 ++ ++2015-09-06 Tatsuya Kinoshita ++ ++ * file.c: Do not use C99-style comments. ++ ++2015-09-06 David Crosby ++ ++ * file.c: Mitigate issue #16 found by @kcwu. ++ * table.c: Fix stack overflow found by @kcwu. ++ Origin: https://github.com/dafyddcrosby/sw3m ++ Bug-sw3m: https://github.com/dafyddcrosby/sw3m/issues/16 ++ ++2015-08-21 Tatsuya Kinoshita ++ ++ * doc-jp/keymap.lynx, doc/keymap.lynx: Fix unknown key. ++ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/265144 ++ Bug: https://sourceforge.net/p/w3m/bugs/48/ ++ ++2015-08-11 David Crosby ++ ++ Fix resource leaks, dead assignments, divide-by-zero, and so on. ++ Origin: https://github.com/dafyddcrosby/sw3m ++ ++ * buffer.c: Check for presence of prevl before using. ++ ++ * html.h: Adjust UFclose to remove false positive of CWE-481. ++ ++ * ftp.c: Move sockent for splint. ++ ++ * cookie.c: Use unsigned int for max_count. ++ ++ * libwc/iso2022.c: Add missing comparision that made if always true. ++ ++ * Str.c: Use fgetc in while loops, use int instead of char. ++ ++ * mailcap.c: Adjust len to size_t. ++ ++ * history.c: Check return value of rename. ++ ++ * main.c: Adjust while loop. ++ ++ * news.c: Check dup call for errors. ++ ++ * file.c: Remove unused value. ++ ++ * ftp.c: dup can give a negative value. ++ ++ * main.c: Use int for c. ++ ++ * table.c: Initialize new_tabwidth at declaration. ++ ++ * local.c: Remove overflow on readlink. ++ ++ * anchor.c, file.c, istream.c, main.c, menu.c, rc.c, table.c, terms.c: ++ * url.c: Remove dead assignments flagged by Clang static analysis. ++ ++ * w3mbookmark.c: ++ Move fclose to fix dereference after null check (Coverity). ++ ++ * file.c: Fix resource leak in AuthDigestCred. ++ ++ * buffer.c: Fix resource leak in readBufferCache. ++ ++ * cookie.c: Fix resource leak in load_cookies. ++ ++ * frame.c: Fix resource leak. ++ ++ * w3mhelperpanel.c: Fix resource leak. ++ ++ * w3mbookmark.c: Fix resource leak and a null return value dereference. ++ ++ * linein.c: Fix a divide-by-zero. ++ ++ * cookie.c: Change total_dot_number to unsigned int. ++ ++ * cookie.c: Free tmp. ++ ++ * local.c: Remove unreachable return. ++ ++2015-08-10 Alan Grow ++ ++ * url.c (HTTPrequest): ++ - Use Content-Type instead of Content-type. ++ - Use Content-Length instead of Content-length. ++ Origin: https://github.com/acg/w3m/commit/5946c2784d4eae46ec06e52390e43a= 874b3395fc ++ ++2015-08-09 Egmont Koblinger ++ ++ * terms.c: Support sgrmouse for skip_escseq. ++ * menu.c: Adjust comments for keymaps. ++ Origin: https://sourceforge.net/p/w3m/patches/65/#e2aa ++ ++2015-08-09 Tatsuya Kinoshita ++ ++ * keybind_lynx.c: Support sgrmouse for Lynx-like key binding. ++ cf. https://sourceforge.net/p/w3m/patches/65/ ++ ++2015-08-09 IWAMOTO Kouichi ++ ++ * menu.c: Support SGR style mouse handler for menu. ++ cf. https://github.com/tats/w3m/issues/5 ++ Origin: https://gist.github.com/ttdoda/83fbcf676a21da28432b ++ Bug: https://sourceforge.net/p/w3m/patches/65/ ++ ++2015-08-06 Richard Quirk ++ ++ Fix problems reported by cppcheck, clang --analyze and gcc warnings. ++ Origin: https://github.com/tats/w3m/pull/6 ++ ++ * Str.c, Str.h: Strnew_charp and co do not modify the char* input. ++ ++ * local.c: Close temp file if pipe open fails. ++ ++ * rc.c: Avoid passing null to strlen. ++ ++ * file.c: Initialise hidden_input to NULL. ++ This prevents a possible use of garbage value on line 3017. ++ ++ * file.c: Use pclose for pipe. ++ ++2015-08-05 IWAMOTO Kouichi ++ ++ * main.c: Fix that SGR style mouse handler has off-by-one problem. ++ cf. https://github.com/tats/w3m/issues/5 ++ Origin: https://gist.github.com/ttdoda/30c189a63d483beeb207 ++ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1390768 ++ Bug: https://sourceforge.net/p/w3m/patches/65/ ++ ++2015-07-31 yshl ++ ++ * Bonus/goodict.cgi: ++ - Use Encode.pm instead of NKF. ++ - Update to the current URL. ++ - Enable to select search mode. ++ Origin: https://github.com/tats/w3m/pull/4 ++ ++2015-07-20 Tatsuya Kinoshita ++ ++ * README: Add short description. ++ ++ * doc-jp/FAQ.html, doc/FAQ.html: Mention GOPHER_PROXY and FTP_PROXY. ++ ++2015-07-05 Tatsuya Kinoshita ++ ++ * doc-jp/FAQ.html, doc/FAQ.html: Mention HTTPS_PROXY. ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D791425 ++ ++2015-06-27 yshl ++ ++ * doc-jp/README.SSL: Modify certdata2pem.rb to assume the encoding ++ of the certdata.txt to be UTF-8. ++ Origin: https://github.com/tats/w3m/pull/3 ++ ++2015-06-23 Daniel Schepler ++ ++ * terms.c: Wrap the functions used by image.c in USE_IMAGE. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D789539 ++ ++2015-05-09 Tatsuya Kinoshita ++ ++ * doc-jp/README.siteconf, doc/README.siteconf: ++ Update examples of siteconf for twitter.com. ++ ++2015-05-03 Tatsuya Kinoshita ++ ++ * main.c: Correct GC version confirmation. ++ ++2015-05-02 yshl ++ ++ * main.c: Correct GC version confirmation. ++ Origin: https://github.com/tats/w3m/pull/2 ++ ++2015-04-29 Markus Hiereth ++ ++ * po/de.po: Update German translation. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D783383 ++ ++2015-04-29 Tatsuya Kinoshita ++ ++ * po/Makevars, po/de.po, po/ja.po, po/w3m.pot, rc.c: ++ Update PO strings for display_borders. ++ ++2015-04-26 yshl ++ ++ * main.c: Use GC_oom_fn instead of GC_set_oom_fn for gc-7.1. ++ Origin: https://github.com/tats/w3m/pull/1 ++ ++2015-02-03 Tatsuya Kinoshita ++ ++ * po/de.po, po/ja.po, po/w3m.pot: Update PO. ++ ++2015-02-02 Tatsuya Kinoshita ++ ++ * file.c, fm.h, rc.c: ++ New option "display_borders" to display 0 pixel table borders. ++ cf. http://d.hatena.ne.jp/rubikitch/20101120 ++ ++2015-01-24 Tatsuya Kinoshita ++ ++ * acinclude.m4, configure, version.c.in: ++ Update to 0.5.3+gitYYYYMMDD (generate from ChangeLog). ++ ++2015-01-15 Tatsuya Kinoshita ++ ++ * alloc.h, main.c: Drop C99 features. ++ ++2015-01-15 Scarlett ++ ++ Add overflow detection. ++ Origin: http://marc.info/?l=3Dopenbsd-ports&m=3D142090828929750&w=3D2 ++ * main.c: Call exit(1) when out of memory to avoid dereferencing null ++ pointers when gc's malloc fails. ++ * alloc.h: Replacements for w3m's allocation macros which add ++ overflow detection and concentrate the macros in one file. ++ * indep.h, libwc/charset.c, libwc/status.c, matrix.c: Use the ++ overflow-detecting allocation macros from alloc.h. ++ ++2015-01-15 Tatsuya Kinoshita ++ ++ * Str.c, cookie.c, map.c: ++ Do not use C99 printf format specifiers and asprintf. ++ ++2015-01-15 Scarlett ++ ++ Correct printf arguments and use asprintf. ++ Origin: http://marc.info/?l=3Dopenbsd-ports&m=3D142090828929750&w=3D2 ++ * Str.c: Use asprintf() instead of rolling our own printf string ++ length detection. ++ * cookie.c: Pass the char pointer in the string struct to printf %s ++ instead of the string struct itself. ++ Print time_t using %lld instead of %ld to allow for 64-bit time_t. ++ * main.c: Print a long int using the correct format specifier. ++ * map.c: Print size_t using the correct format specifier. ++ ++2014-12-06 Araki Ken ++ ++ Support OSC 5379 remote imaging and sixel graphics. ++ Origin: https://bitbucket.org/arakiken/w3m/branch/remoteimg (2014-11-16) ++ ++ * doc/README.sixel, terms.c: Add README.sixel. W3M_IMG2SIXEL ++ environmental variable enables to specify options of img2sixel. ++ ++ * image.c, terms.c: ++ Add n_terminal_image argument to put_image_{sixel|osc5379}(). ++ Use struct winsize to calculate ppc and ppl. ++ ++ * terms.c: If SCREEN_VARIANT=3Dsixel on GNU screen, exec img2sixel ++ without -P option. ++ ++ * terms.c: ttymode_set() -> ttymode_reset(). ++ ++ * terms.c: Fix. ++ ++ * terms.c: Support GNU screen. ++ ++ * terms.c: Show GIF (except animation GIF) correctly. ++ ++ * main.c, terms.c: img2sixel exits by Ctrl+C. Enable GIF Animation if ++ 'I' is pressed to show it. ++ ++ * image.c: Add declaration of get_pixel_per_cell(). ++ ++ * terms.c: Show the first frame of animation gif files. ++ ++ * terms.c: system() -> fork()&execvp() ++ ++ * display.c: Draw underline on anchor which contains cboth text and ++ images. ++ ++ * etc.c: Remove close_tty() from setup_child() because close_tty() ++ sometimes interrupts loadGeneralFile() in loadImage() and corrupt ++ image data can be cached in ~/.w3m. ++ ++ * image.c: Minor fix. ++ ++ * image.c: Cache image files if at all possible and convert them to ++ sixel when -sixel option is specified. ++ ++ * image.c: Init pixel_per_{char|line}_i if get_pixel_per_cell() fails. ++ ++ * display.c, file.c, fm.h, image.c, main.c, terms.c: ++ Add -sixel option which supports image processing by img2sixel. ++ ++ * image.c: Don't download image files whose size is specified in ++ tag. ++ ++ * image.c: Minor fixes of parseImageHeader(). ++ ++ * image.c: Determine the format of an image file by its header data ++ not by its file name suffix. ++ ++ * image.c: Read width and height from jpeg, png and gif files directly ++ instead of executing w3mimgdisplay -size. ++ ++ * display.c: display.c: Draw underline on anchor text which is not ++ overlapped with any image. ++ ++ * terms.c: Clear fd_set by FD_ZERO() before select(). ++ ++ * file.c: nw and ni are rounded up instead of rounded off to show ++ every corner of images. ++ ++ * terms.c: Change time to wait for the response of "\x1b[14t\x1b[18t" ++ from 0.1 sec to 0.5 sec. ++ ++ * image.c: ++ - clearImage() works. ++ - Use cached image files created by w3m in getImage(). ++ ++ * file.c: Hack for alignment. ++ ++ * fm.h, image.c, terms.c: ++ - Adjust the image size to the terminal cell size. ++ - If the image size is specified in html source, skip to load the image. ++ ++ * display.c, fm.h, image.c, main.c, terms.c, w3mimg/x11/x11_w3mimg.c: ++ Support remote image by OSC 5379 show_picture sequence. ++ ++2014-12-06 Olaf Hering ++ ++ * parsetagx.c: Fix crash in parse_tag() during every start. ++ Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3= m/w3m-parsetagx-crash.patch?expand=3D1 ++ ++ * fm.h: Change the default to alt_entity=3D0. ++ Change the default for the option "Use ASCII equivalents to ++ display entities" from YES to NO. ++ Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3= m/w3m-0.5.1-no-ASCII-equivalents-by-default.patch?expand=3D1 ++ Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=3D247397 ++ ++ * anchor.c, libwc/gb18030.c, libwc/ucs.c, regex.c: ++ Fix a few harmless uninitialized variables. ++ Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3= m/w3m-uninitialized.patch?expand=3D1 ++ ++2014-12-06 Peter Poeml ++ ++ * terms.c: Prevent segfault when editing a textarea field with vi. ++ Add fix for segfault that can occur when editing a textarea field ++ with vi, and returning to w3m (it seems to happen if the terminal ++ is not writable, as when using w3m after 'su - some_user') ++ Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3= m/w3m-0.4.1-textarea-segfault.dif?expand=3D1 ++ ++2014-12-04 Tatsuya Kinoshita ++ ++ * acinclude.m4: Follow updated configure. ++ ++2014-12-03 Yusuke Baba ++ ++ * configure, w3mimg/fb/fb.c, w3mimg/fb/fb.h, w3mimg/fb/fb_w3mimg.c: ++ Support FreeBSD framebuffer. ++ Origin: http://www.ac.auone-net.jp/~baba/w3m-img/index.html ++ Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D122673 ++ ++2014-12-02 Naohiro Aota ++ ++ * acinclude.m4, configure, w3mimg/fb/fb_gdkpixbuf.c: ++ * w3mimg/x11/x11_w3mimg.c: ++ Depend on gdk-pixbuf instead of gtk when gtk2. ++ Origin: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-clie= nt/w3m/files/w3m-0.5.3-gdk-pixbuf.patch?revision=3D1.1 ++ ++2014-12-02 Jeroen Roovers ++ ++ * acinclude.m4, configure: Add tinfo to with_termlib. ++ Fix building against sys-libs/ncurses[tinfo]. ++ Origin: https://504588.bugs.gentoo.org/attachment.cgi?id=3D372650 ++ Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=3D504588 ++ ++2014-12-01 OBATA Akio ++ ++ * acinclude.m4, configure: ++ Assume defined PKG_CONFIG points right location when gtk2. ++ Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch= -aa?rev=3D1.13&content-type=3Dtext/x-cvsweb-markup ++ Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch= -ak?rev=3D1.1&content-type=3Dtext/x-cvsweb-markup ++ ++2014-12-01 Vsevolod Stakhov ++ ++ * config.h.in: Disable USE_EGD for LibreSSL. ++ Disable use of RAND_egd as it is absent in FreeBSD. ++ This also fixes build error with LibreSSL. ++ Origin: https://bz-attachments.freebsd.org/attachment.cgi?id=3D144635 ++ Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D191852 ++ Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D191956 ++ ++2014-12-01 zimous ++ ++ * po/ja.po: Set Language tag properly for Japanese translation. ++ Origin: https://512722.bugs.gentoo.org/attachment.cgi?id=3D378452 ++ Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=3D512722 ++ ++2014-11-30 Tatsuya Kinoshita ++ ++ * doc/w3m.1: Typo fix. ++ ++2014-11-30 Markus Hiereth ++ ++ * doc/w3m.1: Miscellaneous changes to improve English manpage. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D766550#30 ++ ++2014-11-29 Markus Hiereth ++ ++ * doc/w3m.1: Improve FILES. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D766550#30 ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D403634 ++ ++ * doc/w3m.1: Improve EXAMPLES. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D766550#30 ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D380560 ++ ++ * doc/w3m.1: Improve explanation about option -N. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D766550#30 ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D345084 ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D530468 ++ ++ * doc/w3m.1: Note that -cols only affects when HTML is rendered. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D766550#30 ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D285251 ++ ++ * doc/w3m.1: Add more info on configuration. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D766550#30 ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D268211 ++ ++2014-11-29 Justin B Rye ++ ++ * scripts/w3mman/w3mman.1.in: Tweak for W3MMAN_W3M. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D771003#5 ++ ++ * scripts/w3mman/w3mman.1.in: English fixes. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D766550#25 ++ ++2014-11-29 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-19+. ++ ++2014-11-29 Justin B Rye ++ ++ * scripts/w3mman/w3mman2html.cgi.in: Fix Perl warnings. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D771004 ++ ++2014-10-21 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-19 ++ ++ * po/LINGUAS: Correct LINGUAS to a whitespace separated list ++ ++2014-10-21 Markus Hiereth ++ ++ * po/LINGUAS, po/de.po: Add German translation ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D763964 ++ ++2014-10-15 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-18 ++ ++ * doc-jp/README.SSL: Update README.SSL to follow default values ++ ++ * config.sub: Update config.sub with autotools-dev 20140911.1 ++ ++ * fm.h: Disable SSLv3 by default [CVE-2014-3566] ++ cf. https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-t= he-end-of-ssl-3-0/ ++ ++2014-10-15 Ludwig Nussel ++ ++ * fm.h: Force ssl_verify_server on and disable SSLv2 support ++ Origin: http://www.openwall.com/lists/oss-security/2010/06/14/4 ++ ++2014-10-13 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-17+ ++ ++2014-10-04 Tatsuya Kinoshita ++ ++ * libwc/ambwidth_map.awk, libwc/map/ucs_ambwidth.map: ++ Fix incorrect generation of ucs_ambwidth_map ++ ++2014-08-22 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-17 ++ ++ * config.guess: ++ Update config.guess to 2014-03-23 with autotools-dev 20140510.1 ++ ++ * config.sub: ++ Update config.sub to 2014-05-01 with autotools-dev 20140510.1 ++ ++2014-08-22 Micah Cowan ++ ++ * main.c: Support Boehm GC 7.2. ++ Replace Gentoo's patch to prevent segfaults due to infinite recursion. ++ Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=3D5;filename= =3D080_gc72.patch;att=3D1;bug=3D758831 ++ Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D758831 ++ Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=3D555467 ++ Bug: http://sourceforge.net/p/w3m/patches/63/ ++ Bug: http://sourceforge.net/p/w3m/patches/59/ ++ ++2014-08-22 Tatsuya Kinoshita ++ ++ * main.c: ++ Revert "Support Boehm GC 7.2" (w3m-0.5.2-gc72.patch from Gentoo) ++ This reverts commit 4331db3e3e673ac4dbfe8e9f2b42a8e0478dc98a. ++ ++2014-06-23 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-16 ++ ++ * url.c: Disable ciphers that use keys smaller than 128 bits ++ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1325674 ++ ++2014-01-04 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-15 ++ ++2014-01-03 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-14 ++ ++ * acinclude.m4, configure: Use pkg-config to build with imlib2 1.4.6 ++ ++ * doc/HISTORY, doc/README.cookie, doc/README.m17n: ++ Prefer US-ASCII rathar than Japanese encodings in English documents ++ ++2013-12-27 Tatsuya Kinoshita ++ ++ * doc-jp/MANUAL.html, doc/MANUAL.html: ++ Cleanup unusable links in MANUAL.html ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D517315 ++ ++ * version.c.in: Update to 0.5.3+debian-13+ ++ ++2013-12-17 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-13 ++ ++2013-12-14 Tatsuya Kinoshita ++ ++ * config.guess: ++ Update config.guess to 2013-06-10 with autotools-dev 20130810.1 ++ ++ * config.sub: ++ Update config.sub to 2013-08-10 with autotools-dev 20130810.1 ++ ++2013-12-07 Reinhard Max ++ ++ * local.c: Fix a directory descriptor leak in loadLocalDir. ++ Patch from openSUSE on 2009-09-07. ++ Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3= m/w3m-closedir.patch ++ Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=3D531675 ++ ++2013-12-07 AIDA Shinra ++ ++ * main.c: Fix crash after SEARCH_NEXT. ++ Patch from , ++ [w3m-dev:04473] on 2013-12-07. ++ ++2013-11-11 Paul Boekholt ++ ++ * file.c: Add support for single quoted meta refresh URL ++ Bug: https://sourceforge.net/p/w3m/patches/53/ ++ Bug-NetBSD: http://gnats.netbsd.org/42400 ++ ++2013-11-07 Cristian Rodriguez ++ ++ * url.c: Use SSL_OP_NO_COMPRESSION if available. ++ Due to the "CRIME attack" (CVE-2012-4929) HTTPS clients that ++ negotiate TLS-level compression can be abused for MITM attacks. ++ * url.c: Use SSL_MODE_RELEASE_BUFFERS if available. ++ Patch from openSUSE on 2012-11-12: ++ https://build.opensuse.org/request/show/141054 ++ ++2013-10-15 Tatsuya Kinoshita ++ ++ * Makefile.in: ++ Depend on funcname.tab to fix parallel make issue of scripts ++ Bug: https://sourceforge.net/p/w3m/patches/64/ ++ Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=3D362249 ++ ++ * w3mimg/Makefile.in: ++ Avoid prerequisite $(IMGOBJS) to fix parallel make issue of w3mimg ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D726188 ++ ++ * acinclude.m4, configure: ++ Explicitly add -lX11 to IMGX11LDFLAGS only when gtk2 ++ Bug: https://sourceforge.net/p/w3m/patches/57/ ++ ++ * w3mimg/Makefile.in: Revert "Fix parallel make issue" ++ This reverts commit aa6f871c6dcc108118142bcc786e4a6ac3d46867. ++ ++ * Makefile.in: ++ Revert "Explicitly link w3mimgdisplay with -lX11 to build with gcc 4.5" ++ This reverts commit 7410954066d68ac2ad6aea638801714447321fec. ++ ++2013-10-14 AIDA Shinra ++ ++ * url.c: Define schemeNumToName() to fix scheme bug. ++ Patch from , ++ [w3m-dev:04470] on 2013-10-14. ++ Bug: https://sourceforge.net/p/w3m/patches/60/ ++ ++ * config.h.in, file.c, fm.h, html.h, image.c, indep.c, indep.h: ++ * istream.c, istream.h, local.c, main.c, mimehead.c, proto.h: ++ Workaround of GC crash on Cygwin64. ++ Patch from , ++ [w3m-dev:04469] on 2013-10-14. ++ ++2013-10-14 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-12+ ++ ++2013-10-14 Jarek Czekalski ++ ++ * terms.c: Fix paren in check_cygwin_console() ++ Bug: https://sourceforge.net/p/w3m/patches/66/ ++ ++2013-10-13 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-12 ++ ++ * doc-jp/MANUAL.html, doc-jp/w3m.1, doc/MANUAL.html, doc/w3m.1: ++ Update document for the -s option change ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D75527 ++ ++ * terms.c: Do not fail when LANG is not set. ++ Check whether the value of LC_ALL, LC_CTYPE or LANG is not NULL in ++ check_cygwin_console(). ++ Bug: https://sourceforge.net/p/w3m/patches/66/ ++ ++2013-10-12 Tatsuya Kinoshita ++ ++ * table.h: Bump MAXCOL to 256 ++ Bug: https://sourceforge.net/p/w3m/feature-requests/24/ ++ ++2013-10-12 Laurence Richert ++ ++ * main.c, proto.h: vim/-perator like handling ++ - half page scrolling ++ - jumping to elements numbered by getLinkNumberStr() from Karsten ++ Schoelzel ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D724028 ++ ++2013-10-12 Tatsuya Kinoshita ++ ++ * doc-jp/README, doc/README: ++ Mention project page rather than unavailable mailing lists ++ ++2013-10-09 Rafael Laboissiere ++ ++ * doc/README.img: Fix typo ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D725892 ++ ++2013-08-12 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-11+ ++ ++ * ChangeLog: Update ChangeLog to use contributor's name ++ ++2013-08-08 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-11 ++ ++2013-08-04 Tatsuya Kinoshita ++ ++ * Str.c: Check length for Strchop() ++ ++ * main.c: Fix potentially segfault of execdict() ++ ++ * version.c.in: Update to 0.5.3+debian-10+ ++ ++ * file.c: Fix segfault of loadGeneralFile() ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D718612 ++ ++2013-08-02 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-10 ++ ++2013-08-02 Piotr P. Karwasz ++ ++ * scripts/w3mman/w3mman2html.cgi.in: ++ Correct underline processing and more UTF-8 support for w3mman2html.cgi. ++ Patch from ++ on 2010-11-23. ++ ++2013-08-01 Hilko Bengen ++ ++ * entity.c: Ignore SOFT HYPHEN to prevent drawing hyphens everywhere. ++ Patch from ++ on 2011-03-01. ++ ++2013-08-01 Tatsuya Kinoshita ++ ++ * doc-jp/README, doc/README: Update contact list in README ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D696209 ++ ++2013-07-30 Tatsuya Kinoshita ++ ++ * config.guess, config.sub: ++ Update config.guess and config.sub to supprot aarch64. ++ Updated with Debian autotools-dev version 20130515.1. ++ ++2013-07-30 Conrad J.C. Hughes ++ ++ * main.c: Sort anchors by sequence number in -dump. ++ Patch from ++ on 2012-01-27. ++ ++2013-07-30 Tatsuya Kinoshita ++ ++ * version.c.in: Update to 0.5.3+debian-9+ ++ ++2013-07-29 Tatsuya Kinoshita ++ ++ * version.c.in: Update version to w3m/0.5.3+debian-9 ++ ++ * version.c.in: Set CURRENT_VERSION to debian version ++ ++2013-07-28 Tatsuya Kinoshita ++ ++ * file.c: Fix segfault of process_button() ++ ++2013-04-08 AIDA Shinra ++ ++ * file.c: One more patch for siteconf from [w3m-dev 04464] ++ ++ * anchor.c, config.h.in, display.c, doc-jp/README.siteconf: ++ * doc/README.siteconf, file.c, fm.h, form.c, frame.c, func.c: ++ * history.c, indep.c, indep.h, linein.c, main.c, map.c, menu.c: ++ * po/ja.po, proto.h, rc.c, url.c: Support the siteconf feature. ++ Patch to support the siteconf feature, from [w3m-dev 04463] ++ on 2012-06-27. ++ ++2013-04-08 Hayaki Saito ++ ++ * keybind.c, main.c, proto.h, terms.c: ++ Support SGR 1006 mouse reporting. ++ cf. [w3m-dev 04466] on 2012-07-15 ++ Origin: https://gist.github.com/3114255 ++ Bug: https://sourceforge.net/p/w3m/patches/65/ ++ ++2012-05-19 Hilko Bengen ++ ++ * form.c: Assume "text" if an input type is unknown. ++ Patch from on 2011-03-01. ++ ++2012-05-19 Simon Ruderich ++ ++ * Makefile.in: Use $(CPPFLAGS) with $(CPP). ++ Patch from ++ on 2012-03-24. ++ ++2012-05-03 Miroslav =C5=A0ulc ++ ++ * w3mimg/Makefile.in: Fix parallel make issue. ++ Patch from Gentoo ++ ++ on 2011-02-01. ++ ++2012-05-03 MATSUU Takuto ++ ++ * main.c: Support Boehm GC 7.2. ++ Patch from Gentoo ++ ++ on 2009-12-13. ++ ++2012-05-02 Reinhard Tartler ++ ++ * istream.c, istream.h: ++ Fix that struct file_handle conflicts with glibc 2.14. ++ Patch from ++ on 2012-02-19. ++ ++2011-10-30 Colin Watson ++ ++ * acinclude.m4, configure, w3mbookmark.c: ++ Appease gcc -Werror=3Dformat-security. ++ Patch from 0.5.3-3ubuntu1 on 2011-10-23. ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D646321 ++ ++2011-06-19 Martin Pitt ++ ++ * Makefile.in: ++ Explicitly link w3mimgdisplay with -lX11 to build with gcc 4.5. ++ Patch from 0.5.2-10ubuntu1 on 2010-12-03. ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D605761 ++ ++2011-06-19 Fumitoshi UKAI ++ ++ * main.c: Change the -s option to "squeeze multiple blank lines". ++ Change the -s option from "display charset Shift_JIS" to "squeeze ++ multiple blank lines" to work as /usr/bin/pager. In addition, the ++ options -j and -e are disabled. To specify the display charset, ++ use -O{s|j|e} instead. ++ Patch from [w3m-dev 01275] on 2000-10-26. ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D75527 ++ ++2011-06-19 Hiroyuki Ito ++ ++ * file.c, fm.h, html.c, html.h, proto.h, table.c, tagtable.tab: ++ Support the button element as defined in HTML 4.01. ++ Patch from upstream, [w3m-dev 04411] on 2010-09-17, to support the ++ button element. It is discussed upstream and incomplete, but enough ++ to login Launchpad. ++ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D136810 ++ Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/628755 ++ + 2012-05-22 Tatsuya Kinoshita +=20 + * [w3m-dev 04451] w3m/entity.h should be removed when `make clean' +diff --git a/Makefile.in b/Makefile.in +index 7d692f9..453072d 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -111,6 +111,7 @@ IMGDISPLAY=3Dw3mimgdisplay$(EXT) + MAN1_TARGET=3D$(PACKAGE).1 + MAN1=3D$(top_srcdir)/doc/w3m.1 + MAN1_JA=3D$(top_srcdir)/doc-jp/w3m.1 ++MAN1_DE=3D$(top_srcdir)/doc-de/w3m.1 +=20 + LIB_TARGETS=3D$(BOOKMARKER) $(HELPER) + AUXBIN_TARGETS=3D@AUXBIN_TARGETS@ +@@ -150,7 +151,7 @@ parsetagx.o: html.c +=20 + funcname.tab: $(DEFUNS) + (echo '#define DEFUN(x,y,z) x y';\ +- sed -ne '/^DEFUN/{p;n;/^[ ]/p;}' $(DEFUNS)) | $(CPP) - | \ ++ sed -ne '/^DEFUN/{p;n;/^[ ]/p;}' $(DEFUNS)) | $(CPP) $(CPPFLAGS) - | \ + awk '$$1 ~ /^[_A-Za-z]/ { \ + for (i=3D2;i<=3DNF;i++) { print $$i, $$1} \ + }' > $@.tmp +@@ -220,10 +221,12 @@ install-core: $(TARGETS) + -$(MKDIR) $(DESTDIR)$(HELP_DIR) + -$(MKDIR) $(DESTDIR)$(mandir)/man1 + -$(MKDIR) $(DESTDIR)$(mandir)/ja/man1 ++ -$(MKDIR) $(DESTDIR)$(mandir)/de/man1 + $(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(bindir)/$(TARGET) + $(INSTALL_DATA) $(HELP_FILE) $(DESTDIR)$(HELP_DIR)/$(HELP_TARGET) + $(INSTALL_DATA) $(MAN1) $(DESTDIR)$(mandir)/man1/$(MAN1_TARGET) + $(INSTALL_DATA) $(MAN1_JA) $(DESTDIR)$(mandir)/ja/man1/$(MAN1_TARGET) ++ $(INSTALL_DATA) $(MAN1_DE) $(DESTDIR)$(mandir)/de/man1/$(MAN1_TARGET) + targets=3D"$(AUXBIN_TARGETS)"; for file in $$targets; \ + do \ + case $$file in \ +@@ -250,7 +253,7 @@ install-po: + (cd $$subdir && $(MAKE) install); \ + done +=20 +-all-scripts: ++all-scripts: funcname.tab + for dir in $(SCRIPTSUBDIRS); \ + do \ + (cd $$dir && $(MAKE) $(MAKE_ARGS)); \ +@@ -280,6 +283,7 @@ uninstall: + -$(RM) -f $(HELP_DIR)/$(HELP_TARGET) + -$(RM) -f $(mandir)/man1/$(MAN1_TARGET) + -$(RM) -f $(mandir)/ja/man1/$(MAN1_TARGET) ++ -$(RM) -f $(mandir)/de/man1/$(MAN1_TARGET) + -for dir in $(SCRIPTSUBDIRS); \ + do \ + (cd $$dir && $(MAKE) $(MAKE_ARGS) uninstall); \ +diff --git a/NEWS b/NEWS +index 66e309d..5fb5f24 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,3 +1,40 @@ ++w3m X.X.X - YYYY-MM-DD ++ ++* new features ++ - support OSC 5379 remote imaging and sixel graphics ++ - support SGR style mouse handler ++ - support 32-bit color images ++ - support FreeBSD framebuffer ++ - support button element ++ - support meta charset ++ - add extbrowser4..9 ++ - add display_borders to display 0 pixel table borders ++ - add siteconf feature ++ - add German translation for options setting panel ++ - add translations for de, zh_CN and zh_TW ++* bug fixes ++ - fix segfaults with malformed text ++ - disable SSLv2 and SSLv3 by default [CVE-2014-3566] ++ - set ssl_verify_server to 1 by default ++ - disable RC4, export ciphers, and keys < 128 bits ++ - use SSL_OP_NO_COMPRESSION due to "CRIME attack" [CVE-2012-4929] ++ - use SSL_MODE_RELEASE_BUFFERS ++ - disable USE_EGD for LibreSSL ++ - appease gcc -Werror=3Dformat-security ++ - option -s is now "squeeze multiple blank lines" to work as pager, and ++ -j and -e are obsolete, so use -O{s|j|e} to specify display charset ++ - accept single quoted meta refresh URL ++ - assume "text" if a form input type is unknown ++ - accept cookies by default ++ - set use_dictcommand to 1 by default ++ - set default_url to 1 by default ++ - set argv_is_url to 1 by default ++ - set alt_entity to 0 by default ++ - fix build problems with Boehm GC 7.2, imlib2 1.4.6 and glibc 2.14 ++ - fix parallel make failure ++ - fix incorrect ucs_ambwidth_map ++ - and many fixes ++ + w3m 0.5.3 - 2011-01-15 +=20 + * security fix +diff --git a/README b/README +index 8778d80..765c996 100644 +--- a/README ++++ b/README +@@ -1,3 +1,9 @@ ++w3m: WWW wo Miru Tool ++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D ++ ++w3m is a pager with WWW capability. It IS a pager, but it can be used ++as a text-mode WWW browser. ++ + If you can read English, see doc/*. + If you can read Japanese, see doc-jp/*. + If you can read both, read both and correct English. :-) +diff --git a/Str.c b/Str.c +index e5a0982..d34129f 100644 +--- a/Str.c ++++ b/Str.c +@@ -56,7 +56,7 @@ Strnew_size(int n) + } +=20 + Str +-Strnew_charp(char *p) ++Strnew_charp(const char *p) + { + Str x; + int n; +@@ -73,7 +73,7 @@ Strnew_charp(char *p) + } +=20 + Str +-Strnew_m_charp(char *p, ...) ++Strnew_m_charp(const char *p, ...) + { + va_list ap; + Str r =3D Strnew(); +@@ -87,7 +87,7 @@ Strnew_m_charp(char *p, ...) + } +=20 + Str +-Strnew_charp_n(char *p, int n) ++Strnew_charp_n(const char *p, int n) + { + Str x; +=20 +@@ -140,7 +140,7 @@ Strcopy(Str x, Str y) + } +=20 + void +-Strcopy_charp(Str x, char *y) ++Strcopy_charp(Str x, const char *y) + { + int len; +=20 +@@ -160,7 +160,7 @@ Strcopy_charp(Str x, char *y) + } +=20 + void +-Strcopy_charp_n(Str x, char *y, int n) ++Strcopy_charp_n(Str x, const char *y, int n) + { + int len =3D n; +=20 +@@ -180,7 +180,7 @@ Strcopy_charp_n(Str x, char *y, int n) + } +=20 + void +-Strcat_charp_n(Str x, char *y, int n) ++Strcat_charp_n(Str x, const char *y, int n) + { + int newlen; +=20 +@@ -209,7 +209,7 @@ Strcat(Str x, Str y) + } +=20 + void +-Strcat_charp(Str x, char *y) ++Strcat_charp(Str x, const char *y) + { + if (y =3D=3D NULL) + return; +@@ -232,8 +232,8 @@ Strgrow(Str x) + { + char *old =3D x->ptr; + int newlen; +- newlen =3D x->length * 6 / 5; +- if (newlen =3D=3D x->length) ++ newlen =3D x->area_size * 6 / 5; ++ if (newlen =3D=3D x->area_size) + newlen +=3D 2; + x->ptr =3D GC_MALLOC_ATOMIC(newlen); + x->area_size =3D newlen; +@@ -278,8 +278,8 @@ void + Strchop(Str s) + { + STR_LENGTH_CHECK(s); +- while ((s->ptr[s->length - 1] =3D=3D '\n' || s->ptr[s->length - 1] = =3D=3D '\r') && +- s->length > 0) { ++ while (s->length > 0 && ++ (s->ptr[s->length - 1] =3D=3D '\n' || s->ptr[s->length - 1] =3D=3D '\= r')) { + s->length--; + } + s->ptr[s->length] =3D '\0'; +@@ -301,7 +301,7 @@ Strinsert_char(Str s, int pos, char c) + } +=20 + void +-Strinsert_charp(Str s, int pos, char *p) ++Strinsert_charp(Str s, int pos, const char *p) + { + STR_LENGTH_CHECK(s); + while (*p) +@@ -530,11 +530,8 @@ Str + Strfgets(FILE * f) + { + Str s =3D Strnew(); +- char c; +- while (1) { +- c =3D fgetc(f); +- if (feof(f) || ferror(f)) +- break; ++ int c; ++ while ((c =3D fgetc(f)) !=3D EOF) { + Strcat_char(s, c); + if (c =3D=3D '\n') + break; +@@ -546,11 +543,8 @@ Str + Strfgetall(FILE * f) + { + Str s =3D Strnew(); +- char c; +- while (1) { +- c =3D fgetc(f); +- if (feof(f) || ferror(f)) +- break; ++ int c; ++ while ((c =3D fgetc(f)) !=3D EOF) { + Strcat_char(s, c); + } + return s; +diff --git a/Str.h b/Str.h +index f345c74..248815d 100644 +--- a/Str.h ++++ b/Str.h +@@ -30,22 +30,22 @@ typedef struct _Str { +=20 + Str Strnew(void); + Str Strnew_size(int); +-Str Strnew_charp(char *); +-Str Strnew_charp_n(char *, int); +-Str Strnew_m_charp(char *, ...); ++Str Strnew_charp(const char *); ++Str Strnew_charp_n(const char *, int); ++Str Strnew_m_charp(const char *, ...); + Str Strdup(Str); + void Strclear(Str); + void Strfree(Str); + void Strcopy(Str, Str); +-void Strcopy_charp(Str, char *); +-void Strcopy_charp_n(Str, char *, int); +-void Strcat_charp_n(Str, char *, int); ++void Strcopy_charp(Str, const char *); ++void Strcopy_charp_n(Str, const char *, int); ++void Strcat_charp_n(Str, const char *, int); + void Strcat(Str, Str); +-void Strcat_charp(Str, char *); ++void Strcat_charp(Str, const char *); + void Strcat_m_charp(Str, ...); + Str Strsubstr(Str, int, int); + void Strinsert_char(Str, int, char); +-void Strinsert_charp(Str, int, char *); ++void Strinsert_charp(Str, int, const char *); + void Strdelete(Str, int, int); + void Strtruncate(Str, int); + void Strlower(Str); +diff --git a/acinclude.m4 b/acinclude.m4 +index e4ccc3d..ed1035d 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -6,7 +6,8 @@ dnl w3m autoconf macros + AC_DEFUN([AC_W3M_VERSION], + [AC_SUBST(CURRENT_VERSION) + cvsver=3D`$AWK '\$[1] ~ /Id:/ { print \$[3]}' $srcdir/ChangeLog` +- sed -e 's/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+= cvs-'$cvsver'/' $srcdir/version.c.in > version.c ++ ymdver=3D`sed -e 's/ .*//;s/-//g;q' $srcdir/ChangeLog` ++ sed -e 's/define CURRENT_VERSION "\(.*\)YYYYMMDD/define CURRENT_VERSION = "\1'$ymdver'/;s/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "= \1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c + CURRENT_VERSION=3D`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/= \1/p' version.c`]) + # + # ---------------------------------------------------------------- +@@ -330,10 +331,10 @@ AC_DEFINE_UNQUOTED(DEF_MAILER, "$w3m_mailer")]) + # ---------------------------------------------------------------- + AC_DEFUN([AC_W3M_EXT_BROWSER], + [AC_SUBST(DEF_EXT_BROWSER) +-w3m_browser=3D"/usr/bin/mozilla" ++w3m_browser=3D"/usr/bin/firefox" + AC_MSG_CHECKING(which external browser is used by default) + AC_ARG_WITH(browser, +- [ --with-browser=3DBROWSER default browser (/usr/bin/mozilla)], ++ [ --with-browser=3DBROWSER default browser (/usr/bin/firefox)], + [w3m_browser=3D"$with_browser"]) + AC_MSG_RESULT($w3m_browser) + AC_DEFINE_UNQUOTED(DEF_EXT_BROWSER, "$w3m_browser")]) +@@ -400,10 +401,10 @@ AC_DEFUN([AC_W3M_TERMLIB], + AC_ARG_WITH(termlib, + [ --with-termlib[=3DLIBS] terminal library + LIBS is space separated list of: +- terminfo mytinfo termcap ncurses curses],, ++ terminfo mytinfo termcap tinfo ncurses curses],, + [with_termlib=3D"yes"]) + AC_MSG_RESULT($with_termlib) +- test x"$with_termlib" =3D xyes && with_termlib=3D"terminfo mytinfo terml= ib termcap ncurses curses" ++ test x"$with_termlib" =3D xyes && with_termlib=3D"terminfo mytinfo terml= ib termcap tinfo ncurses curses" + for lib in $with_termlib; do + AC_CHECK_LIB($lib, tgetent, [W3M_LIBS=3D"$W3M_LIBS -l$lib"; break]) + done +@@ -600,7 +601,7 @@ AC_DEFUN([AC_W3M_IMAGE], + if test x"$enable_image" =3D xyes; then + enable_image=3Dx11 + case "`uname -s`" in +- Linux|linux|LINUX)=20 ++ Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD)=20 + if test -c /dev/fb0; then + enable_image=3Dx11,fb + fi;; +@@ -649,6 +650,9 @@ AC_DEFUN([AC_W3M_IMAGE], + fi;; + imlib2) + with_imlib2=3D"yes" ++ if test x"$PKG_CONFIG" =3D x; then ++ PKG_CONFIG=3Dpkg-config ++ fi + if test x"$IMLIB2_CONFIG" =3D x; then + IMLIB2_CONFIG=3Dimlib2-config + fi;; +@@ -661,8 +665,6 @@ AC_DEFUN([AC_W3M_IMAGE], + with_gtk2=3D"yes" + if test x"$PKG_CONFIG" =3D x; then + PKG_CONFIG=3Dpkg-config +- else +- PKG_CONFIG=3D: + fi;; + esac + done +@@ -705,8 +707,8 @@ AC_DEFUN([AC_W3M_IMAGE], + IMGTARGETS=3D"x11"=20=20=20=20 + AC_DEFINE(USE_GDKPIXBUF) + AC_DEFINE(USE_GTK2) +- IMGX11CFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xl= ib-2.0 gtk+-2.0`" +- IMGX11LDFLAGS=3D"`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xli= b-2.0 gtk+-2.0`" ++ IMGX11CFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xl= ib-2.0`" ++ IMGX11LDFLAGS=3D"-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixb= uf-xlib-2.0`" + elif test x"$have_gdkpixbuf" =3D xyes; then + AC_DEFINE(USE_W3MIMG_X11) + IMGOBJS=3D"$IMGOBJS x11/x11_w3mimg.o" +@@ -728,7 +730,7 @@ AC_DEFUN([AC_W3M_IMAGE], + IMGTARGETS=3D"x11"=20=20=20=20 + AC_DEFINE(USE_IMLIB2) + IMGX11CFLAGS=3D"`${IMLIB2_CONFIG} --cflags`" +- IMGX11LDFLAGS=3D"`${IMLIB2_CONFIG} --libs`" ++ IMGX11LDFLAGS=3D"-lX11 `${PKG_CONFIG} --libs imlib2`" + else + AC_MSG_WARN([unable to build w3mimgdisplay with X11 support]) + fi +@@ -740,8 +742,8 @@ AC_DEFUN([AC_W3M_IMAGE], + IMGTARGETS=3D"${IMGTARGETS} fb" + AC_DEFINE(USE_GDKPIXBUF) + AC_DEFINE(USE_GTK2) +- IMGFBCFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" +- IMGFBLDFLAGS=3D"`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" ++ IMGFBCFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`" ++ IMGFBLDFLAGS=3D"`${PKG_CONFIG} --libs gdk-pixbuf-2.0`" + elif test x"$have_gdkpixbuf" =3D xyes; then + AC_DEFINE(USE_W3MIMG_FB) + IMGOBJS=3D"$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" +@@ -756,7 +758,7 @@ AC_DEFUN([AC_W3M_IMAGE], + AC_DEFINE(USE_IMLIB2) + IMGOBJS=3D"$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGFBCFLAGS=3D"`${IMLIB2_CONFIG} --cflags`" +- IMGFBLDFLAGS=3D"`${IMLIB2_CONFIG} --libs`" ++ IMGFBLDFLAGS=3D"`${PKG_CONFIG} --libs imlib2`" + else + AC_MSG_WARN([unable to build w3mimgdisplay with FB support]) + fi +@@ -866,7 +868,7 @@ AC_MSG_CHECKING(for sys_errlist) + AC_TRY_COMPILE( + changequote(<<,>>)dnl + <>, +-<>, ++<>, + changequote([,])dnl + [have_sys_errlist=3D"yes"; AC_DEFINE(HAVE_SYS_ERRLIST)], + [have_sys_errlist=3D"no"]) +diff --git a/alloc.h b/alloc.h +new file mode 100644 +index 0000000..fa0d391 +--- /dev/null ++++ b/alloc.h +@@ -0,0 +1,39 @@ ++/* ++ * by Scarlett. public domain. ++ * replacements for w3m's allocation macros which add overflow ++ * detection and concentrate the macros in one file ++ */ ++#ifndef W3_ALLOC_H ++#define W3_ALLOC_H ++#include ++#include ++#include ++#include ++ ++static inline size_t ++z_mult_no_oflow_(size_t n, size_t size) ++{ ++ if (size !=3D 0 && n > ULONG_MAX / size) { ++ fprintf(stderr, ++ "w3m: overflow in malloc, %lu*%lu\n", (unsigned long)n, (unsigned l= ong)size); ++ exit(1); ++ } ++ return n * size; ++} ++ ++#define New(type) \ ++ (GC_MALLOC(sizeof(type))) ++ ++#define NewAtom(type) \ ++ (GC_MALLOC_ATOMIC(sizeof(type))) ++ ++#define New_N(type, n) \ ++ (GC_MALLOC(z_mult_no_oflow_((n), sizeof(type)))) ++ ++#define NewAtom_N(type, n) \ ++ (GC_MALLOC_ATOMIC(z_mult_no_oflow_((n), sizeof(type)))) ++ ++#define New_Reuse(type, ptr, n) \ ++ (GC_REALLOC((ptr), z_mult_no_oflow_((n), sizeof(type)))) ++ ++#endif /* W3_ALLOC_H */ +diff --git a/anchor.c b/anchor.c +index 27bbd56..fa8d3eb 100644 +--- a/anchor.c ++++ b/anchor.c +@@ -11,7 +11,7 @@ putAnchor(AnchorList *al, char *url, char *target, Ancho= r **anchor_return, + { + int n, i, j; + Anchor *a; +- BufferPoint bp; ++ BufferPoint bp =3D { 0 }; + if (al =3D=3D NULL) { + al =3D New(AnchorList); + al->anchors =3D NULL; +@@ -200,10 +200,11 @@ _put_anchor_news(Buffer *buf, char *p1, char *p2, in= t line, int pos) + if (*(p2 - 1) =3D=3D '>') + p2--; + } +- tmp =3D wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset, +- buf->document_charset); +- tmp =3D Sprintf("news:%s", file_quote(tmp->ptr)); +- return registerHref(buf, tmp->ptr, NULL, NO_REFERER, NULL, '\0', line, ++ tmp =3D Strnew_charp("news:"); ++ Strcat_charp_n(tmp, p1, p2 - p1); ++ return registerHref(buf, url_encode(tmp->ptr, baseURL(buf), ++ buf->document_charset), ++ NULL, NO_REFERER, NULL, '\0', line, + pos); + } + #endif /* USE_NNTP */ +@@ -213,9 +214,10 @@ _put_anchor_all(Buffer *buf, char *p1, char *p2, int = line, int pos) + { + Str tmp; +=20 +- tmp =3D wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset, +- buf->document_charset); +- return registerHref(buf, url_quote(tmp->ptr), NULL, NO_REFERER, NULL, ++ tmp =3D Strnew_charp_n(p1, p2 - p1); ++ return registerHref(buf, url_encode(tmp->ptr, baseURL(buf), ++ buf->document_charset), ++ NULL, NO_REFERER, NULL, + '\0', line, pos); + } +=20 +@@ -641,7 +643,6 @@ addMultirowsForm(Buffer *buf, AnchorList *al) + { + int i, j, k, col, ecol, pos; + Anchor a_form, *a; +- FormItemList *fi; + Line *l, *ls; +=20 + if (al =3D=3D NULL || al->nanchor =3D=3D 0) +@@ -668,7 +669,6 @@ addMultirowsForm(Buffer *buf, AnchorList *al) + if (!ls) + continue; + } +- fi =3D (FormItemList *)a_form.url; + col =3D COLPOS(ls, a_form.start.pos); + ecol =3D COLPOS(ls, a_form.end.pos); + for (j =3D 0; l && j < a_form.rows; l =3D l->next, j++) { +@@ -685,6 +685,8 @@ addMultirowsForm(Buffer *buf, AnchorList *al) + a->hseq =3D a_form.hseq; + a->y =3D a_form.y; + a->end.pos =3D pos + ecol - col; ++ if (pos < 1 || a->end.pos >=3D l->size) ++ continue; + l->lineBuf[pos - 1] =3D '['; + l->lineBuf[a->end.pos] =3D ']'; + for (k =3D pos; k < a->end.pos; k++) +@@ -756,7 +758,7 @@ link_list_panel(Buffer *buf) + p =3D parsedURL2Str(&pu)->ptr; + u =3D html_quote(p); + if (DecodeURL) +- p =3D html_quote(url_unquote_conv(p, buf->document_charset)); ++ p =3D html_quote(url_decode2(p, buf)); + else + p =3D u; + } +@@ -787,7 +789,7 @@ link_list_panel(Buffer *buf) + p =3D parsedURL2Str(&pu)->ptr; + u =3D html_quote(p); + if (DecodeURL) +- p =3D html_quote(url_unquote_conv(p, buf->document_charset)); ++ p =3D html_quote(url_decode2(p, buf)); + else + p =3D u; + t =3D getAnchorText(buf, al, a); +@@ -809,16 +811,13 @@ link_list_panel(Buffer *buf) + p =3D parsedURL2Str(&pu)->ptr; + u =3D html_quote(p); + if (DecodeURL) +- p =3D html_quote(url_unquote_conv(p, buf->document_charset)); ++ p =3D html_quote(url_decode2(p, buf)); + else + p =3D u; + if (a->title && *a->title) + t =3D html_quote(a->title); +- else if (DecodeURL) +- t =3D html_quote(url_unquote_conv +- (a->url, buf->document_charset)); + else +- t =3D html_quote(a->url); ++ t =3D html_quote(url_decode2(a->url, buf)); + Strcat_m_charp(tmp, "
  • ", t, "
    ", p, + "\n", NULL); + a =3D retrieveAnchor(buf->formitem, a->start.line, a->start.pos); +@@ -842,19 +841,13 @@ link_list_panel(Buffer *buf) + p =3D parsedURL2Str(&pu)->ptr; + u =3D html_quote(p); + if (DecodeURL) +- p =3D html_quote(url_unquote_conv(p, +- buf-> +- document_charset)); ++ p =3D html_quote(url_decode2(p, buf)); + else + p =3D u; + if (m->alt && *m->alt) + t =3D html_quote(m->alt); +- else if (DecodeURL) +- t =3D html_quote(url_unquote_conv(m->url, +- buf-> +- document_charset)); + else +- t =3D html_quote(m->url); ++ t =3D html_quote(url_decode2(m->url, buf)); + Strcat_m_charp(tmp, "
  • ", t, + "
    ", p, "\n", NULL); + } +diff --git a/buffer.c b/buffer.c +index 5afc26a..3b2352a 100644 +--- a/buffer.c ++++ b/buffer.c +@@ -705,6 +705,7 @@ readBufferCache(Buffer *buf) +=20 + cache =3D fopen(buf->savecache, "r"); + if (cache =3D=3D NULL || fread1(clnum, cache) || fread1(tlnum, cache)= ) { ++ fclose(cache); + buf->savecache =3D NULL; + return -1; + } +@@ -760,8 +761,10 @@ readBufferCache(Buffer *buf) + } + #endif + } +- buf->lastLine =3D prevl; +- buf->lastLine->next =3D NULL; ++ if (prevl) { ++ buf->lastLine =3D prevl; ++ buf->lastLine->next =3D NULL; ++ } + fclose(cache); + unlink(buf->savecache); + buf->savecache =3D NULL; +diff --git a/config.guess b/config.guess +index 51fab47..0967f2a 100755 +--- a/config.guess ++++ b/config.guess +@@ -1,13 +1,12 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++# Copyright 1992-2016 Free Software Foundation, Inc. +=20 +-timestamp=3D'2004-03-12' ++timestamp=3D'2016-04-02' +=20 + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -16,24 +15,22 @@ timestamp=3D'2004-03-12' + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, U= SA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. +- +-# Originally written by Per Bothner . +-# Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). ++# ++# Originally written by Per Bothner; maintained since 2000 by Ben Ellisto= n. + # +-# This script attempts to guess a canonical system name similar to +-# config.sub. If it succeeds, it prints the system name on stdout, and +-# exits with 0. Otherwise, it exits with 1. ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=3Dconfig.git;a=3Dblob_plain;f=3Dc= onfig.guess + # +-# The plan is that this can be called by configure scripts if you +-# don't specify an explicit build system type. ++# Please send patches to . ++ +=20 + me=3D`echo "$0" | sed -e 's,.*/,,'` +=20 +@@ -53,8 +50,7 @@ version=3D"\ + GNU config.guess ($timestamp) +=20 + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +-Free Software Foundation, Inc. ++Copyright 1992-2016 Free Software Foundation, Inc. +=20 + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOS= E." +@@ -66,11 +62,11 @@ Try \`$me --help' for more information." + while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) +- echo "$timestamp" ; exit 0 ;; ++ echo "$timestamp" ; exit ;; + --version | -v ) +- echo "$version" ; exit 0 ;; ++ echo "$version" ; exit ;; + --help | --h* | -h ) +- echo "$usage"; exit 0 ;; ++ echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. +@@ -104,7 +100,7 @@ set_cc_for_build=3D' + trap "exitcode=3D\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/n= ull) && exit \$exitcode" 0 ; + trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 = 13 15 ; + : ${TMPDIR=3D/tmp} ; +- { tmp=3D`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && = test -n "$tmp" && test -d "$tmp" ; } || ++ { tmp=3D`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && tes= t -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=3D$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir= $tmp) ; } || + { tmp=3D$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: cre= ating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit = 1 ; } ; +@@ -123,7 +119,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in + ;; + ,,*) CC_FOR_BUILD=3D$CC ;; + ,*,*) CC_FOR_BUILD=3D$HOST_CC ;; +-esac ;' ++esac ; set_cc_for_build=3D ;' +=20 + # This is needed to find uname on a Pyramid OSx when run in the BSD unive= rse. + # (ghazi@noc.rutgers.edu 1994-08-24) +@@ -136,12 +132,33 @@ UNAME_RELEASE=3D`(uname -r) 2>/dev/null` || UNAME_RE= LEASE=3Dunknown + UNAME_SYSTEM=3D`(uname -s) 2>/dev/null` || UNAME_SYSTEM=3Dunknown + UNAME_VERSION=3D`(uname -v) 2>/dev/null` || UNAME_VERSION=3Dunknown +=20 ++case "${UNAME_SYSTEM}" in ++Linux|GNU|GNU/*) ++ # If the system lacks a compiler, then just pick glibc. ++ # We could probably try harder. ++ LIBC=3Dgnu ++ ++ eval $set_cc_for_build ++ cat <<-EOF > $dummy.c ++ #include ++ #if defined(__UCLIBC__) ++ LIBC=3Duclibc ++ #elif defined(__dietlibc__) ++ LIBC=3Ddietlibc ++ #else ++ LIBC=3Dgnu ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g= '` ++ ;; ++esac ++ + # Note: order is significant - the case branches are not exclusive. +=20 + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}"= in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -151,22 +168,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl=3D"sysctl -n hw.machine_arch" +- UNAME_MACHINE_ARCH=3D`(/sbin/$sysctl 2>/dev/null || \ +- /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ UNAME_MACHINE_ARCH=3D`(uname -p 2>/dev/null || \ ++ /sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || \ ++ echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=3Darmeb-unknown ;; + arm*) machine=3Darm-unknown ;; + sh3el) machine=3Dshl-unknown ;; + sh3eb) machine=3Dsh-unknown ;; ++ sh5el) machine=3Dsh5le-unknown ;; ++ earmv*) ++ arch=3D`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` ++ endian=3D`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` ++ machine=3D${arch}${endian}-unknown ++ ;; + *) machine=3D${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in +- arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ +- | grep __ELF__ >/dev/null ++ | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaou= t). + # Return netbsd for either. FIX? +@@ -176,7 +201,14 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEAS= E}:${UNAME_VERSION}" in + fi + ;; + *) +- os=3Dnetbsd ++ os=3Dnetbsd ++ ;; ++ esac ++ # Determine ABI tags. ++ case "${UNAME_MACHINE_ARCH}" in ++ earm*) ++ expr=3D's/^earmv[0-9]/-eabi/;s/eb$//' ++ abi=3D`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release +@@ -189,78 +221,48 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + release=3D'-gnu' + ;; + *) +- release=3D`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ release=3D`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. +- echo "${machine}-${os}${release}" +- exit 0 ;; +- amd64:OpenBSD:*:*) +- echo x86_64-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- amiga:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- arc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- cats:OpenBSD:*:*) +- echo arm-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- hp300:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mac68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- macppc:OpenBSD:*:*) +- echo powerpc-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme88k:OpenBSD:*:*) +- echo m88k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvmeppc:OpenBSD:*:*) +- echo powerpc-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- pegasos:OpenBSD:*:*) +- echo powerpc-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- pmax:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- sgi:OpenBSD:*:*) +- echo mipseb-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- sun3:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- wgrisc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ echo "${machine}-${os}${release}${abi}" ++ exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=3D`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ UNAME_MACHINE_ARCH=3D`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:LibertyBSD:*:*) ++ UNAME_MACHINE_ARCH=3D`arch | sed 's/^.*BSD\.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} ++ exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; + macppc:MirBSD:*:*) +- echo powerppc-unknown-mirbsd${UNAME_RELEASE} +- exit 0 ;; ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:Sortix:*:*) ++ echo ${UNAME_MACHINE}-unknown-sortix ++ exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=3D`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=3D`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=3D`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -270,76 +272,82 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + ALPHA_CPU_TYPE=3D`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\= ) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") +- UNAME_MACHINE=3D"alpha" ;; ++ UNAME_MACHINE=3Dalpha ;; + "EV4.5 (21064)") +- UNAME_MACHINE=3D"alpha" ;; ++ UNAME_MACHINE=3Dalpha ;; + "LCA4 (21066/21068)") +- UNAME_MACHINE=3D"alpha" ;; ++ UNAME_MACHINE=3Dalpha ;; + "EV5 (21164)") +- UNAME_MACHINE=3D"alphaev5" ;; ++ UNAME_MACHINE=3Dalphaev5 ;; + "EV5.6 (21164A)") +- UNAME_MACHINE=3D"alphaev56" ;; ++ UNAME_MACHINE=3Dalphaev56 ;; + "EV5.6 (21164PC)") +- UNAME_MACHINE=3D"alphapca56" ;; ++ UNAME_MACHINE=3Dalphapca56 ;; + "EV5.7 (21164PC)") +- UNAME_MACHINE=3D"alphapca57" ;; ++ UNAME_MACHINE=3Dalphapca57 ;; + "EV6 (21264)") +- UNAME_MACHINE=3D"alphaev6" ;; ++ UNAME_MACHINE=3Dalphaev6 ;; + "EV6.7 (21264A)") +- UNAME_MACHINE=3D"alphaev67" ;; ++ UNAME_MACHINE=3Dalphaev67 ;; + "EV6.8CB (21264C)") +- UNAME_MACHINE=3D"alphaev68" ;; ++ UNAME_MACHINE=3Dalphaev68 ;; + "EV6.8AL (21264B)") +- UNAME_MACHINE=3D"alphaev68" ;; ++ UNAME_MACHINE=3Dalphaev68 ;; + "EV6.8CX (21264D)") +- UNAME_MACHINE=3D"alphaev68" ;; ++ UNAME_MACHINE=3Dalphaev68 ;; + "EV6.9A (21264/EV69A)") +- UNAME_MACHINE=3D"alphaev69" ;; ++ UNAME_MACHINE=3Dalphaev69 ;; + "EV7 (21364)") +- UNAME_MACHINE=3D"alphaev7" ;; ++ UNAME_MACHINE=3Dalphaev7 ;; + "EV7.9 (21364A)") +- UNAME_MACHINE=3D"alphaev79" ;; ++ UNAME_MACHINE=3Dalphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. +- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]/= /' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit 0 ;; +- Alpha*:OpenVMS:*:*) +- echo alpha-hp-vms +- exit 0 ;; ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]/= /' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=3D$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix +- exit 0 ;; ++ exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 +- exit 0 ;; ++ exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 +- exit 0;; ++ exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos +- exit 0 ;; ++ exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos +- exit 0 ;; ++ exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition +- exit 0 ;; ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 +- exit 0 ;; ++ echo powerpc-ibm-os400 ++ exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} +- exit 0;; ++ exit ;; ++ arm*:riscos:*:*|arm*:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp +- exit 0;; ++ exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" =3D att ; then +@@ -347,32 +355,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + else + echo pyramid-pyramid-bsd + fi +- exit 0 ;; ++ exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 +- exit 0 ;; ++ exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 +- exit 0 ;; +- DRS?6000:UNIX_SV:4.2*:7*) ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in +- sparc) echo sparc-icl-nx7 && exit 0 ;; ++ sparc) echo sparc-icl-nx7; exit ;; + esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*= //'` ++ exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; +- i86pc:SunOS:5.*:*) +- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) ++ eval $set_cc_for_build ++ SUN_ARCH=3Di386 ++ # If there is a compiler, see if it is configured for 64-bit objects. ++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. ++ # This test works for both compilers. ++ if [ "$CC_FOR_BUILD" !=3D no_compiler_found ]; then ++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS=3D"" $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ SUN_ARCH=3Dx86_64 ++ fi ++ fi ++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) +@@ -381,13 +408,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` +- exit 0 ;; ++ exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=3D`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/de= v/null` +- test "x${UNAME_RELEASE}" =3D "x" && UNAME_RELEASE=3D3 ++ test "x${UNAME_RELEASE}" =3D x && UNAME_RELEASE=3D3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} +@@ -396,10 +423,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac +- exit 0 ;; ++ exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor +@@ -409,41 +436,41 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 +- exit 0 ;; ++ exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +@@ -467,35 +494,36 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEA= SE}:${UNAME_VERSION}" in + exit (-1); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c \ +- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ +- && exit 0 ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=3D`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=3D`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax +- exit 0 ;; ++ exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax +- exit 0 ;; ++ exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax +- exit 0 ;; ++ exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix +- exit 0 ;; ++ exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 +- exit 0 ;; ++ exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 +- exit 0 ;; ++ exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=3D`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=3D`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR =3D mc88100 ] || [ $UNAME_PROCESSOR =3D mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x =3D m88kdguxelfx ] || \ +@@ -508,29 +536,29 @@ EOF + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 +- exit 0 ;; ++ exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 +- exit 0 ;; ++ exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd +- exit 0 ;; ++ exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` +- exit 0 ;; ++ exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. +- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id +- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix +- exit 0 ;; ++ exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=3D`/usr/bin/oslevel` +@@ -538,7 +566,7 @@ EOF + IBM_REV=3D${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} +- exit 0 ;; ++ exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build +@@ -553,49 +581,54 @@ EOF + exit(0); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 +- echo rs6000-ibm-aix3.2.5 ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=3D`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi +- exit 0 ;; +- *:AIX:*:[45]) ++ exit ;; ++ *:AIX:*:[4567]) + IBM_CPU_ID=3D`/usr/sbin/lsdev -C -c processor -S available | sed 1q | aw= k '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; t= hen + IBM_ARCH=3Drs6000 + else + IBM_ARCH=3Dpowerpc + fi +- if [ -x /usr/bin/oslevel ] ; then +- IBM_REV=3D`/usr/bin/oslevel` ++ if [ -x /usr/bin/lslpp ] ; then ++ IBM_REV=3D`/usr/bin/lslpp -Lqc bos.rte.libc | ++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=3D${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} +- exit 0 ;; ++ exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix +- exit 0 ;; ++ exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 +- exit 0 ;; ++ exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to +- exit 0 ;; # report: romp-ibm BSD 4.3 ++ exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx +- exit 0 ;; ++ exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 +- exit 0 ;; ++ exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd +- exit 0 ;; ++ exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 +- exit 0 ;; ++ exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=3D`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in +@@ -604,74 +637,84 @@ EOF + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=3D`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=3D`/usr/bin/getconf SC_KERNEL_BITS 2>/= dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH=3D"hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH=3D"hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH=3D"hppa2.0n" ;; +- 64) HP_ARCH=3D"hppa2.0w" ;; +- '') HP_ARCH=3D"hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ sc_kernel_bits=3D`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH=3Dhppa1.0 ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH=3Dhppa1.1 ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH=3Dhppa2.0n ;; ++ 64) HP_ARCH=3Dhppa2.0w ;; ++ '') HP_ARCH=3Dhppa2.0 ;; # HP-UX 10.20 ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" =3D "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c +=20 +- #define _HPUX_SOURCE +- #include +- #include ++ #define _HPUX_SOURCE ++ #include ++ #include +=20 +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits =3D sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu =3D sysconf (_SC_CPU_VERSION); ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits =3D sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu =3D sysconf (_SC_CPU_VERSION); +=20 +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF +- (CCOPTS=3D $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH= =3D`$dummy` ++ (CCOPTS=3D"" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_AR= CH=3D`$dummy` + test -z "$HP_ARCH" && HP_ARCH=3Dhppa + fi ;; + esac +- if [ ${HP_ARCH} =3D "hppa2.0w" ] ++ if [ ${HP_ARCH} =3D hppa2.0w ] + then +- # avoid double evaluation of $set_cc_for_build +- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build +- if echo __LP64__ | (CCOPTS=3D $CC_FOR_BUILD -E -) | grep __LP64__ >/= dev/null ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=3Dcc ./config.guess ++ # =3D> hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD=3D"cc +DA2.0w" ./config.guess ++ # =3D> hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS=3D"" $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep -q __LP64__ + then +- HP_ARCH=3D"hppa2.0w" ++ HP_ARCH=3Dhppa2.0w + else +- HP_ARCH=3D"hppa64" ++ HP_ARCH=3Dhppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} +- exit 0 ;; ++ exit ;; + ia64:HP-UX:*:*) + HPUX_REV=3D`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} +- exit 0 ;; ++ exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +@@ -699,340 +742,351 @@ EOF + exit (0); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=3D`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 +- exit 0 ;; ++ exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd +- exit 0 ;; ++ exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd +- exit 0 ;; ++ exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix +- exit 0 ;; ++ exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf +- exit 0 ;; ++ exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf +- exit 0 ;; ++ exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi +- exit 0 ;; ++ exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites +- exit 0 ;; ++ exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit 0 ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit 0 ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit 0 ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit 0 ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit 0 ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ exit ;; + *:UNICOS/mp:*:*) +- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) +- FUJITSU_PROC=3D`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijkl= mnopqrstuvwxyz'` +- FUJITSU_SYS=3D`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdef= ghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=3D`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit 0 ;; ++ FUJITSU_PROC=3D`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmno= pqrstuvwxyz` ++ FUJITSU_SYS=3D`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnop= qrstuvwxyz | sed -e 's/\///'` ++ FUJITSU_REL=3D`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=3D`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdef= ghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=3D`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUV= WXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit 0 ;; ++ FUJITSU_SYS=3D`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnop= qrstuvwxyz | sed -e 's/\///'` ++ FUJITSU_REL=3D`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abc= defghijklmnopqrstuvwxyz | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:FreeBSD:*:*) +- # Determine whether the default compiler uses glibc. +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include +- #if __GLIBC__ >=3D 2 +- LIBC=3Dgnu +- #else +- LIBC=3D +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=3D` +- # GNU/KFreeBSD systems have a "k" prefix to indicate we are using +- # FreeBSD's kernel, but not the complete OS. +- case ${LIBC} in gnu) kernel_only=3D'k' ;; esac +- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE= }|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} +- exit 0 ;; ++ UNAME_PROCESSOR=3D`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` = ;; ++ *) ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's= /[-(].*//'` ;; ++ esac ++ exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin +- exit 0 ;; +- i*:MINGW*:*) ++ exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; ++ *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 +- exit 0 ;; ++ exit ;; ++ *:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 +- exit 0 ;; +- x86:Interix*:[34]*) +- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' +- exit 0 ;; ++ exit ;; ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ authenticamd | genuineintel | EM64T) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks +- exit 0 ;; ++ exit ;; ++ 8664:Windows_NT:*) ++ echo x86_64-pc-mks ++ exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix +- exit 0 ;; ++ exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin +- exit 0 ;; ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin +- exit 0 ;; ++ exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + *:GNU:*:*) + # the GNU system +- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNA= ME_RELEASE}|sed -e 's,/.*$,,'` +- exit 0 ;; ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo $= {UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland +- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' = | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' = | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${= LIBC} ++ exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix +- exit 0 ;; ++ exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=3Daarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=3Dalphaev5 ;; ++ EV56) UNAME_MACHINE=3Dalphaev56 ;; ++ PCA56) UNAME_MACHINE=3Dalphapca56 ;; ++ PCA57) UNAME_MACHINE=3Dalphapca56 ;; ++ EV6) UNAME_MACHINE=3Dalphaev6 ;; ++ EV67) UNAME_MACHINE=3Dalphaev67 ;; ++ EV68*) UNAME_MACHINE=3Dalphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" =3D 0 ; then LIBC=3Dgnulibc1 ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arc:Linux:*:* | arceb:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + arm*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ else ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf ++ fi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ crisv32:Linux:*:*) ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} ++ exit ;; ++ e2k:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ frv:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:Linux:*:*) ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} ++ exit ;; + ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ k1om:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + m32r*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + m68*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; +- mips:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU +- #undef mips +- #undef mipsel ++ #undef ${UNAME_MACHINE} ++ #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defi= ned(MIPSEL) +- CPU=3Dmipsel ++ CPU=3D${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defi= ned(MIPSEB) +- CPU=3Dmips ++ CPU=3D${UNAME_MACHINE} + #else + CPU=3D + #endif + #endif + EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=3D` +- test x"${CPU}" !=3D x && echo "${CPU}-unknown-linux-gnu" && exit 0 ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` ++ test x"${CPU}" !=3D x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; +- mips64:Linux:*:*) +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #undef CPU +- #undef mips64 +- #undef mips64el +- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defi= ned(MIPSEL) +- CPU=3Dmips64el +- #else +- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defi= ned(MIPSEB) +- CPU=3Dmips64 +- #else +- CPU=3D +- #endif +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=3D` +- test x"${CPU}" !=3D x && echo "${CPU}-unknown-linux-gnu" && exit 0 +- ;; +- ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu +- exit 0 ;; +- ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu +- exit 0 ;; +- alpha:Linux:*:*) +- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +- EV5) UNAME_MACHINE=3Dalphaev5 ;; +- EV56) UNAME_MACHINE=3Dalphaev56 ;; +- PCA56) UNAME_MACHINE=3Dalphapca56 ;; +- PCA57) UNAME_MACHINE=3Dalphapca56 ;; +- EV6) UNAME_MACHINE=3Dalphaev6 ;; +- EV67) UNAME_MACHINE=3Dalphaev67 ;; +- EV68*) UNAME_MACHINE=3Dalphaev68 ;; +- esac +- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null +- if test "$?" =3D 0 ; then LIBC=3D"libc1" ; else LIBC=3D"" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} +- exit 0 ;; ++ openrisc*:Linux:*:*) ++ echo or1k-unknown-linux-${LIBC} ++ exit ;; ++ or32:Linux:*:* | or1k*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ padre:Linux:*:*) ++ echo sparc-unknown-linux-${LIBC} ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-${LIBC} ++ exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +- PA7*) echo hppa1.1-unknown-linux-gnu ;; +- PA8*) echo hppa2.0-unknown-linux-gnu ;; +- *) echo hppa-unknown-linux-gnu ;; ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; + esac +- exit 0 ;; +- parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu +- exit 0 ;; ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-${LIBC} ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-${LIBC} ++ exit ;; ++ ppc64le:Linux:*:*) ++ echo powerpc64le-unknown-linux-${LIBC} ++ exit ;; ++ ppcle:Linux:*:*) ++ echo powerpcle-unknown-linux-${LIBC} ++ exit ;; + s390:Linux:*:* | s390x:Linux:*:*) +- echo ${UNAME_MACHINE}-ibm-linux +- exit 0 ;; ++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} ++ exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + sh*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu +- exit 0 ;; ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} ++ exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu +- exit 0 ;; +- i*86:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. cd to the root directory to prevent +- # problems with other programs or directories called `ld' in the path. +- # Set LC_ALL=3DC to ensure ld outputs messages in English. +- ld_supported_targets=3D`cd /; LC_ALL=3DC ld --help 2>&1 \ +- | sed -ne '/supported targets:/!d +- s/[ ][ ]*/ /g +- s/.*supported targets: *// +- s/ .*// +- p'` +- case "$ld_supported_targets" in +- elf32-i386) +- TENTATIVE=3D"${UNAME_MACHINE}-pc-linux-gnu" +- ;; +- a.out-i386-linux) +- echo "${UNAME_MACHINE}-pc-linux-gnuaout" +- exit 0 ;; +- coff-i386) +- echo "${UNAME_MACHINE}-pc-linux-gnucoff" +- exit 0 ;; +- "") +- # Either a pre-BFD a.out linker (linux-gnuoldld) or +- # one that does not give us useful --help. +- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" +- exit 0 ;; +- esac +- # Determine whether the default compiler is a.out or elf +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include +- #ifdef __ELF__ +- # ifdef __GLIBC__ +- # if __GLIBC__ >=3D 2 +- LIBC=3Dgnu +- # else +- LIBC=3Dgnulibc1 +- # endif +- # else +- LIBC=3Dgnulibc1 +- # endif +- #else +- #ifdef __INTEL_COMPILER +- LIBC=3Dgnu +- #else +- LIBC=3Dgnuaout +- #endif +- #endif +- #ifdef __dietlibc__ +- LIBC=3Ddietlibc +- #endif +-EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=3D` +- test x"${LIBC}" !=3D x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && ex= it 0 +- test x"${TENTATIVE}" !=3D x && echo "${TENTATIVE}" && exit 0 +- ;; ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} ++ exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 +- exit 0 ;; ++ exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} +- exit 0 ;; ++ exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx +- exit 0 ;; ++ exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop +- exit 0 ;; ++ exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos +- exit 0 ;; +- i*86:syllable:*:*) ++ exit ;; ++ i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable +- exit 0 ;; +- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp +- exit 0 ;; ++ exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=3D`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then +@@ -1040,15 +1094,16 @@ EOF + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi +- exit 0 ;; +- i*86:*:5:[78]*) ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=3Di486 ;; + *Pentium) UNAME_MACHINE=3Di586 ;; + *Pent*|*Celeron) UNAME_MACHINE=3Di686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME= _VERSION} +- exit 0 ;; ++ exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=3D`sed -n 's/.*Version //p' /dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi +- exit 0 ;; ++ exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv +- exit 0 ;; ++ exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv +- exit 0 ;; ++ exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix +- exit 0 ;; +- M68*:*:R3V[567]*:*) +- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]= ??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*= :4.0:3.0 | SHG2:*:4.0:3.0) ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]= ??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*= :4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL=3D'' + test -r /etc/.relid \ + && OS_REL=3D.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ +- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4 && exit 0 ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ NCR*:*:4.2:* | MPRAS*:*:4.2:*) ++ OS_REL=3D'.3' ++ test -r /etc/.relid \ ++ && OS_REL=3D.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.r= elid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 +- exit 0 ;; ++ exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; +- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*= :*) ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[0= 2]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=3D`(uname -p) 2>/dev/null` +@@ -1140,278 +1208,203 @@ EOF + else + echo ns32k-sni-sysv + fi +- exit 0 ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says +- echo i586-unisys-sysv4 +- exit 0 ;; ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 +- exit 0 ;; ++ exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 +- exit 0 ;; ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos +- exit 0 ;; ++ exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 +- exit 0 ;; ++ exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos +- exit 0 ;; ++ exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos +- exit 0 ;; ++ exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos +- exit 0 ;; ++ exit ;; ++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. ++ echo i586-pc-haiku ++ exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-ACE:SUPER-UX:*:*) ++ echo sxace-nec-superux${UNAME_RELEASE} ++ exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Darwin:*:*) +- case `uname -p` in +- *86) UNAME_PROCESSOR=3Di686 ;; +- powerpc) UNAME_PROCESSOR=3Dpowerpc ;; +- esac ++ UNAME_PROCESSOR=3D`uname -p` || UNAME_PROCESSOR=3Dunknown ++ eval $set_cc_for_build ++ if test "$UNAME_PROCESSOR" =3D unknown ; then ++ UNAME_PROCESSOR=3Dpowerpc ++ fi ++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then ++ if [ "$CC_FOR_BUILD" !=3D no_compiler_found ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS=3D"" $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ case $UNAME_PROCESSOR in ++ i386) UNAME_PROCESSOR=3Dx86_64 ;; ++ powerpc) UNAME_PROCESSOR=3Dpowerpc64 ;; ++ esac ++ fi ++ fi ++ elif test "$UNAME_PROCESSOR" =3D i386 ; then ++ # Avoid executing cc on OS X 10.9, as it ships with a stub ++ # that puts up a graphical alert prompting to install ++ # developer tools. Any system running Mac OS X 10.7 or ++ # later (Darwin 11 and later) is required to have a 64-bit ++ # processor. This is not true of the ARM version of Darwin ++ # that Apple uses in portable devices. ++ UNAME_PROCESSOR=3Dx86_64 ++ fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=3D`uname -p` +- if test "$UNAME_PROCESSOR" =3D "x86"; then ++ if test "$UNAME_PROCESSOR" =3D x86; then + UNAME_PROCESSOR=3Di386 + UNAME_MACHINE=3Dpc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:QNX:*:4*) + echo i386-pc-qnx +- exit 0 ;; ++ exit ;; ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux +- exit 0 ;; ++ exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv +- exit 0 ;; ++ exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. +- if test "$cputype" =3D "386"; then ++ if test "$cputype" =3D 386; then + UNAME_MACHINE=3Di386 + else + UNAME_MACHINE=3D"$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 +- exit 0 ;; ++ exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 +- exit 0 ;; ++ exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex +- exit 0 ;; ++ exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 +- exit 0 ;; ++ exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 +- exit 0 ;; ++ exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 +- exit 0 ;; ++ exit ;; + *:ITS:*:*) + echo pdp10-unknown-its +- exit 0 ;; ++ exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} +- exit 0 ;; ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/= [-(].*//'` +- exit 0 ;; ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=3D`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; ++ i*86:AROS:*:*) ++ echo ${UNAME_MACHINE}-pc-aros ++ exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; ++ amd64:Isilon\ OneFS:*:*) ++ echo x86_64-unknown-onefs ++ exit ;; + esac +=20 +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}= " 1>&2 +- +-eval $set_cc_for_build +-cat >$dummy.c < +-# include +-#endif +-main () +-{ +-#if defined (sony) +-#if defined (MIPSEB) +- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, +- I don't know.... */ +- printf ("mips-sony-bsd\n"); exit (0); +-#else +-#include +- printf ("m68k-sony-newsos%s\n", +-#ifdef NEWSOS4 +- "4" +-#else +- "" +-#endif +- ); exit (0); +-#endif +-#endif +- +-#if defined (__arm) && defined (__acorn) && defined (__unix) +- printf ("arm-acorn-riscix"); exit (0); +-#endif +- +-#if defined (hp300) && !defined (hpux) +- printf ("m68k-hp-bsd\n"); exit (0); +-#endif +- +-#if defined (NeXT) +-#if !defined (__ARCHITECTURE__) +-#define __ARCHITECTURE__ "m68k" +-#endif +- int version; +- version=3D`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev= /null`; +- if (version < 4) +- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); +- else +- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); +- exit (0); +-#endif +- +-#if defined (MULTIMAX) || defined (n16) +-#if defined (UMAXV) +- printf ("ns32k-encore-sysv\n"); exit (0); +-#else +-#if defined (CMU) +- printf ("ns32k-encore-mach\n"); exit (0); +-#else +- printf ("ns32k-encore-bsd\n"); exit (0); +-#endif +-#endif +-#endif +- +-#if defined (__386BSD__) +- printf ("i386-pc-bsd\n"); exit (0); +-#endif +- +-#if defined (sequent) +-#if defined (i386) +- printf ("i386-sequent-dynix\n"); exit (0); +-#endif +-#if defined (ns32000) +- printf ("ns32k-sequent-dynix\n"); exit (0); +-#endif +-#endif +- +-#if defined (_SEQUENT_) +- struct utsname un; +- +- uname(&un); +- +- if (strncmp(un.version, "V2", 2) =3D=3D 0) { +- printf ("i386-sequent-ptx2\n"); exit (0); +- } +- if (strncmp(un.version, "V1", 2) =3D=3D 0) { /* XXX is V1 correct? */ +- printf ("i386-sequent-ptx1\n"); exit (0); +- } +- printf ("i386-sequent-ptx\n"); exit (0); +- +-#endif +- +-#if defined (vax) +-# if !defined (ultrix) +-# include +-# if defined (BSD) +-# if BSD =3D=3D 43 +- printf ("vax-dec-bsd4.3\n"); exit (0); +-# else +-# if BSD =3D=3D 199006 +- printf ("vax-dec-bsd4.3reno\n"); exit (0); +-# else +- printf ("vax-dec-bsd\n"); exit (0); +-# endif +-# endif +-# else +- printf ("vax-dec-bsd\n"); exit (0); +-# endif +-# else +- printf ("vax-dec-ultrix\n"); exit (0); +-# endif +-#endif +- +-#if defined (alliant) && defined (i860) +- printf ("i860-alliant-bsd\n"); exit (0); +-#endif +- +- exit (1); +-} +-EOF +- +-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 +- +-# Apollos put the system type in the environment. +- +-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +- +-# Convex versions that predate uname can use getsysinfo(1) +- +-if [ -x /usr/convex/getsysinfo ] +-then +- case `getsysinfo -f cpu_type` in +- c1*) +- echo c1-convex-bsd +- exit 0 ;; +- c2*) +- if getsysinfo -f scalar_acc +- then echo c32-convex-bsd +- else echo c2-convex-bsd +- fi +- exit 0 ;; +- c34*) +- echo c34-convex-bsd +- exit 0 ;; +- c38*) +- echo c38-convex-bsd +- exit 0 ;; +- c4*) +- echo c4-convex-bsd +- exit 0 ;; +- esac +-fi +- + cat >&2 <. ++# + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). +=20 +-# Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++ ++# Please send patches to . + # + # Configuration subroutine to validate and canonicalize a configuration t= ype. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with cod= e 1. + # Otherwise, we print the canonical config type on stdout and succeed. +=20 ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=3Dconfig.git;a=3Dblob_plain;f=3Dc= onfig.sub ++ + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases + # that are meaningful with *any* GNU software. +@@ -55,8 +53,7 @@ timestamp=3D'2004-03-12' + me=3D`echo "$0" | sed -e 's,.*/,,'` +=20 + usage=3D"\ +-Usage: $0 [OPTION] CPU-MFR-OPSYS +- $0 [OPTION] ALIAS ++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS +=20 + Canonicalize a configuration name. +=20 +@@ -70,8 +67,7 @@ Report bugs and patches to ." + version=3D"\ + GNU config.sub ($timestamp) +=20 +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +-Free Software Foundation, Inc. ++Copyright 1992-2016 Free Software Foundation, Inc. +=20 + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOS= E." +@@ -83,11 +79,11 @@ Try \`$me --help' for more information." + while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) +- echo "$timestamp" ; exit 0 ;; ++ echo "$timestamp" ; exit ;; + --version | -v ) +- echo "$version" ; exit 0 ;; ++ echo "$version" ; exit ;; + --help | --h* | -h ) +- echo "$usage"; exit 0 ;; ++ echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. +@@ -99,7 +95,7 @@ while test $# -gt 0 ; do + *local*) + # First pass through any local machine types. + echo $1 +- exit 0;; ++ exit ;; +=20 + * ) + break ;; +@@ -118,11 +114,18 @@ esac + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=3D`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc= * | uclinux-gnu* | \ +- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx*= | rtmk-nova*) ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib*= | \ ++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd= *-gnu* | \ ++ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ ++ kopensolaris*-gnu* | \ ++ storm-chaos* | os2-emx* | rtmk-nova*) + os=3D-$maybe_os + basic_machine=3D`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; ++ android-linux) ++ os=3D-linux-android ++ basic_machine=3D`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unkn= own ++ ;; + *) + basic_machine=3D`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine !=3D $1 ] +@@ -145,10 +148,13 @@ case $os in + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple | -axis) ++ -apple | -axis | -knuth | -cray | -microblaze*) + os=3D + basic_machine=3D$1 + ;; ++ -bluegene*) ++ os=3D-cnk ++ ;; + -sim | -cisco | -oki | -wec | -winbond) + os=3D + basic_machine=3D$1 +@@ -163,13 +169,17 @@ case $os in + os=3D-chorusos + basic_machine=3D$1 + ;; +- -chorusrdb) +- os=3D-chorusrdb ++ -chorusrdb) ++ os=3D-chorusrdb + basic_machine=3D$1 +- ;; ++ ;; + -hiux*) + os=3D-hiuxwe2 + ;; ++ -sco6) ++ os=3D-sco5v6 ++ basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; + -sco5) + os=3D-sco3.2v5 + basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` +@@ -186,6 +196,10 @@ case $os in + # Don't forget version if it is 3.2v4 or newer. + basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; + -sco*) + os=3D-sco3.2v2 + basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` +@@ -203,6 +217,12 @@ case $os in + -isc*) + basic_machine=3D`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -lynx*178) ++ os=3D-lynxos178 ++ ;; ++ -lynx*5) ++ os=3D-lynxos5 ++ ;; + -lynx*) + os=3D-lynxos + ;; +@@ -227,57 +247,114 @@ case $basic_machine in + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[= 67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ +- | c4x | clipper \ ++ | arc | arceb \ ++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ ++ | avr | avr32 \ ++ | ba \ ++ | be32 | be64 \ ++ | bfin \ ++ | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ +- | fr30 | frv \ ++ | e2k | epiphany \ ++ | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ +- | m32r | m32rle | m68000 | m68k | m88k | mcore \ ++ | k1om \ ++ | le32 | le64 \ ++ | lm32 \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +- | mips64vr | mips64vrel \ ++ | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ ++ | mips64r5900 | mips64r5900el \ ++ | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ + | msp430 \ ++ | nds32 | nds32le | nds32be \ ++ | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ +- | openrisc | or32 \ ++ | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ +- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele= \ ++ | riscv32 | riscv64 \ ++ | rl78 | rx \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shb= e | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 = | sparcv9b \ +- | strongarm \ +- | tahoe | thumb | tic4x | tic80 | tron \ +- | v850 | v850e \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclit= e \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu \ ++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ ++ | ubicom32 \ ++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ ++ | visium \ + | we32k \ +- | x86 | xscale | xstormy16 | xtensa \ +- | z8k) ++ | x86 | xc16x | xstormy16 | xtensa \ ++ | z8k | z80) + basic_machine=3D$basic_machine-unknown + ;; +- m6811 | m68hc11 | m6812 | m68hc12) +- # Motorola 68HC11/12. ++ c54x) ++ basic_machine=3Dtic54x-unknown ++ ;; ++ c55x) ++ basic_machine=3Dtic55x-unknown ++ ;; ++ c6x) ++ basic_machine=3Dtic6x-unknown ++ ;; ++ leon|leon[3-9]) ++ basic_machine=3Dsparc-$basic_machine ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=3D$basic_machine-unknown + os=3D-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; ++ ms1) ++ basic_machine=3Dmt-unknown ++ ;; ++ ++ strongarm | thumb | xscale) ++ basic_machine=3Darm-unknown ++ ;; ++ xgate) ++ basic_machine=3D$basic_machine-unknown ++ os=3D-none ++ ;; ++ xscaleeb) ++ basic_machine=3Darmeb-unknown ++ ;; ++ ++ xscaleel) ++ basic_machine=3Darmel-unknown ++ ;; +=20 + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and +@@ -293,59 +370,89 @@ case $basic_machine in + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* \ +- | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ +- | clipper-* | cydra-* \ ++ | avr-* | avr32-* \ ++ | ba-* \ ++ | be32-* | be64-* \ ++ | bfin-* | bs2000-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* \ ++ | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ +- | elxsi-* \ +- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ ++ | e2k-* | elxsi-* \ ++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ +- | m32r-* | m32rle-* \ ++ | k1om-* \ ++ | le32-* | le64-* \ ++ | lm32-* \ ++ | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | mcore-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ ++ | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ +- | mips64vr-* | mips64vrel-* \ ++ | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ ++ | mips64r5900-* | mips64r5900el-* \ ++ | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ ++ | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ ++ | mt-* \ + | msp430-* \ +- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ ++ | nds32-* | nds32le-* | nds32be-* \ ++ | nios-* | nios2-* | nios2eb-* | nios2el-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ ++ | open8-* \ ++ | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ +- | romp-* | rs6000-* \ +- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ ++ | riscv32-* | riscv64-* \ ++ | rl78-* | romp-* | rs6000-* | rx-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* |= sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ +- | tahoe-* | thumb-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-= * \ ++ | sparclite-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ ++ | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tile*-* \ + | tron-* \ +- | v850-* | v850e-* | vax-* \ ++ | ubicom32-* \ ++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ++ | vax-* \ ++ | visium-* \ + | we32k-* \ +- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ +- | xtensa-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* \ ++ | xstormy16-* | xtensa*-* \ + | ymp-* \ +- | z8k-*) ++ | z8k-* | z80-*) ++ ;; ++ # Recognize the basic CPU types without company name, with glob match. ++ xtensa*) ++ basic_machine=3D$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +@@ -363,7 +470,7 @@ case $basic_machine in + basic_machine=3Da29k-amd + os=3D-udi + ;; +- abacus) ++ abacus) + basic_machine=3Dabacus-unknown + ;; + adobe68k) +@@ -409,6 +516,13 @@ case $basic_machine in + basic_machine=3Dm68k-apollo + os=3D-bsd + ;; ++ aros) ++ basic_machine=3Di386-pc ++ os=3D-aros ++ ;; ++ asmjs) ++ basic_machine=3Dasmjs-unknown ++ ;; + aux) + basic_machine=3Dm68k-apple + os=3D-aux +@@ -417,10 +531,35 @@ case $basic_machine in + basic_machine=3Dns32k-sequent + os=3D-dynix + ;; ++ blackfin) ++ basic_machine=3Dbfin-unknown ++ os=3D-linux ++ ;; ++ blackfin-*) ++ basic_machine=3Dbfin-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=3D-linux ++ ;; ++ bluegene*) ++ basic_machine=3Dpowerpc-ibm ++ os=3D-cnk ++ ;; ++ c54x-*) ++ basic_machine=3Dtic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c55x-*) ++ basic_machine=3Dtic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c6x-*) ++ basic_machine=3Dtic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + c90) + basic_machine=3Dc90-cray + os=3D-unicos + ;; ++ cegcc) ++ basic_machine=3Darm-unknown ++ os=3D-cegcc ++ ;; + convex-c1) + basic_machine=3Dc1-convex + os=3D-bsd +@@ -445,13 +584,20 @@ case $basic_machine in + basic_machine=3Dj90-cray + os=3D-unicos + ;; +- cr16c) +- basic_machine=3Dcr16c-unknown ++ craynv) ++ basic_machine=3Dcraynv-cray ++ os=3D-unicosmp ++ ;; ++ cr16 | cr16-*) ++ basic_machine=3Dcr16-unknown + os=3D-elf + ;; + crds | unos) + basic_machine=3Dm68k-crds + ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=3Dcrisv32-axis ++ ;; + cris | cris-* | etrax*) + basic_machine=3Dcris-axis + ;; +@@ -481,6 +627,14 @@ case $basic_machine in + basic_machine=3Dm88k-motorola + os=3D-sysv3 + ;; ++ dicos) ++ basic_machine=3Di686-pc ++ os=3D-dicos ++ ;; ++ djgpp) ++ basic_machine=3Di586-pc ++ os=3D-msdosdjgpp ++ ;; + dpx20 | dpx20-*) + basic_machine=3Drs6000-bull + os=3D-bosx +@@ -592,7 +746,6 @@ case $basic_machine in + i370-ibm* | ibm*) + basic_machine=3Di370-ibm + ;; +-# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=3D`echo $1 | sed -e 's/86.*/86-pc/'` + os=3D-sysv32 +@@ -631,6 +784,17 @@ case $basic_machine in + basic_machine=3Dm68k-isi + os=3D-sysv + ;; ++ leon-*|leon[3-9]-*) ++ basic_machine=3Dsparc-`echo $basic_machine | sed 's/-.*//'` ++ ;; ++ m68knommu) ++ basic_machine=3Dm68k-unknown ++ os=3D-linux ++ ;; ++ m68knommu-*) ++ basic_machine=3Dm68k-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=3D-linux ++ ;; + m88k-omron*) + basic_machine=3Dm88k-omron + ;; +@@ -642,10 +806,21 @@ case $basic_machine in + basic_machine=3Dns32k-utek + os=3D-sysv + ;; ++ microblaze*) ++ basic_machine=3Dmicroblaze-xilinx ++ ;; ++ mingw64) ++ basic_machine=3Dx86_64-pc ++ os=3D-mingw64 ++ ;; + mingw32) +- basic_machine=3Di386-pc ++ basic_machine=3Di686-pc + os=3D-mingw32 + ;; ++ mingw32ce) ++ basic_machine=3Darm-unknown ++ os=3D-mingw32ce ++ ;; + miniframe) + basic_machine=3Dm68000-convergent + ;; +@@ -659,10 +834,6 @@ case $basic_machine in + mips3*) + basic_machine=3D`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; +- mmix*) +- basic_machine=3Dmmix-knuth +- os=3D-mmixware +- ;; + monitor) + basic_machine=3Dm68k-rom68k + os=3D-coff +@@ -671,14 +842,29 @@ case $basic_machine in + basic_machine=3Dpowerpc-unknown + os=3D-morphos + ;; ++ moxiebox) ++ basic_machine=3Dmoxie-unknown ++ os=3D-moxiebox ++ ;; + msdos) + basic_machine=3Di386-pc + os=3D-msdos + ;; ++ ms1-*) ++ basic_machine=3D`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ ;; ++ msys) ++ basic_machine=3Di686-pc ++ os=3D-msys ++ ;; + mvs) + basic_machine=3Di370-ibm + os=3D-mvs + ;; ++ nacl) ++ basic_machine=3Dle32-unknown ++ os=3D-nacl ++ ;; + ncr3000) + basic_machine=3Di486-ncr + os=3D-sysv4 +@@ -743,9 +929,11 @@ case $basic_machine in + np1) + basic_machine=3Dnp1-gould + ;; +- nv1) +- basic_machine=3Dnv1-cray +- os=3D-unicosmp ++ neo-tandem) ++ basic_machine=3Dneo-tandem ++ ;; ++ nse-tandem) ++ basic_machine=3Dnse-tandem + ;; + nsr-tandem) + basic_machine=3Dnsr-tandem +@@ -754,9 +942,8 @@ case $basic_machine in + basic_machine=3Dhppa1.1-oki + os=3D-proelf + ;; +- or32 | or32-*) ++ openrisc | openrisc-*) + basic_machine=3Dor32-unknown +- os=3D-coff + ;; + os400) + basic_machine=3Dpowerpc-ibm +@@ -778,6 +965,14 @@ case $basic_machine in + basic_machine=3Di860-intel + os=3D-osf + ;; ++ parisc) ++ basic_machine=3Dhppa-unknown ++ os=3D-linux ++ ;; ++ parisc-*) ++ basic_machine=3Dhppa-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=3D-linux ++ ;; + pbd) + basic_machine=3Dsparc-tti + ;; +@@ -787,6 +982,12 @@ case $basic_machine in + pc532 | pc532-*) + basic_machine=3Dns32k-pc532 + ;; ++ pc98) ++ basic_machine=3Di386-pc ++ ;; ++ pc98-*) ++ basic_machine=3Di386-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=3Di586-pc + ;; +@@ -816,9 +1017,10 @@ case $basic_machine in + ;; + power) basic_machine=3Dpower-ibm + ;; +- ppc) basic_machine=3Dpowerpc-unknown ++ ppc | ppcbe) basic_machine=3Dpowerpc-unknown + ;; +- ppc-*) basic_machine=3Dpowerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ppc-* | ppcbe-*) ++ basic_machine=3Dpowerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=3Dpowerpcle-unknown +@@ -843,6 +1045,14 @@ case $basic_machine in + basic_machine=3Di586-unknown + os=3D-pw32 + ;; ++ rdos | rdos64) ++ basic_machine=3Dx86_64-pc ++ os=3D-rdos ++ ;; ++ rdos32) ++ basic_machine=3Di386-pc ++ os=3D-rdos ++ ;; + rom68k) + basic_machine=3Dm68k-rom68k + os=3D-coff +@@ -869,6 +1079,10 @@ case $basic_machine in + sb1el) + basic_machine=3Dmipsisa64sb1el-unknown + ;; ++ sde) ++ basic_machine=3Dmipsisa32-sde ++ os=3D-elf ++ ;; + sei) + basic_machine=3Dmips-sei + os=3D-seiux +@@ -880,6 +1094,9 @@ case $basic_machine in + basic_machine=3Dsh-hitachi + os=3D-hms + ;; ++ sh5el) ++ basic_machine=3Dsh5le-unknown ++ ;; + sh64) + basic_machine=3Dsh64-unknown + ;; +@@ -901,6 +1118,9 @@ case $basic_machine in + basic_machine=3Di860-stratus + os=3D-sysv4 + ;; ++ strongarm-* | thumb-*) ++ basic_machine=3Darm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + sun2) + basic_machine=3Dm68000-sun + ;; +@@ -957,17 +1177,9 @@ case $basic_machine in + basic_machine=3Dt90-cray + os=3D-unicos + ;; +- tic54x | c54x*) +- basic_machine=3Dtic54x-unknown +- os=3D-coff +- ;; +- tic55x | c55x*) +- basic_machine=3Dtic55x-unknown +- os=3D-coff +- ;; +- tic6x | c6x*) +- basic_machine=3Dtic6x-unknown +- os=3D-coff ++ tile*) ++ basic_machine=3D$basic_machine-unknown ++ os=3D-linux-gnu + ;; + tx39) + basic_machine=3Dmipstx39-unknown +@@ -1029,9 +1241,16 @@ case $basic_machine in + basic_machine=3Dhppa1.1-winbond + os=3D-proelf + ;; ++ xbox) ++ basic_machine=3Di686-pc ++ os=3D-mingw32 ++ ;; + xps | xps100) + basic_machine=3Dxps100-honeywell + ;; ++ xscale-* | xscalee[bl]-*) ++ basic_machine=3D`echo $basic_machine | sed 's/^xscale/arm/'` ++ ;; + ymp) + basic_machine=3Dymp-cray + os=3D-unicos +@@ -1040,6 +1259,10 @@ case $basic_machine in + basic_machine=3Dz8k-unknown + os=3D-sim + ;; ++ z80-*-coff) ++ basic_machine=3Dz80-unknown ++ os=3D-sim ++ ;; + none) + basic_machine=3Dnone-none + os=3D-none +@@ -1059,6 +1282,9 @@ case $basic_machine in + romp) + basic_machine=3Dromp-ibm + ;; ++ mmix) ++ basic_machine=3Dmmix-knuth ++ ;; + rs6000) + basic_machine=3Drs6000-ibm + ;; +@@ -1075,13 +1301,10 @@ case $basic_machine in + we32k) + basic_machine=3Dwe32k-att + ;; +- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) ++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=3Dsh-unknown + ;; +- sh64) +- basic_machine=3Dsh64-unknown +- ;; +- sparc | sparcv8 | sparcv9 | sparcv9b) ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=3Dsparc-sun + ;; + cydra) +@@ -1125,9 +1348,12 @@ esac + if [ x"$os" !=3D x"" ] + then + case $os in +- # First match some system type aliases +- # that might get confused with valid system types. ++ # First match some system type aliases ++ # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. ++ -auroraux) ++ os=3D-auroraux ++ ;; + -solaris1 | -solaris1.*) + os=3D`echo $os | sed -e 's|solaris1|sunos4|'` + ;; +@@ -1148,26 +1374,32 @@ case $os in + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ +- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ +- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -suno= s[34]*\ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solari= s* \ ++ | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ +- | -aos* \ ++ | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ ++ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ +- | -chorusos* | -chorusrdb* \ +- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mp= eix* | -udk* \ ++ | -chorusos* | -chorusrdb* | -cegcc* \ ++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ +- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) ++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ ++ | -onefs* | -tirtos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1185,7 +1417,7 @@ case $os in + os=3D`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ +- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) +@@ -1206,7 +1438,7 @@ case $os in + -opened*) + os=3D-openedition + ;; +- -os400*) ++ -os400*) + os=3D-os400 + ;; + -wince*) +@@ -1255,7 +1487,7 @@ case $os in + -sinix*) + os=3D-sysv4 + ;; +- -tpf*) ++ -tpf*) + os=3D-tpf + ;; + -triton*) +@@ -1291,8 +1523,15 @@ case $os in + -aros*) + os=3D-aros + ;; +- -kaos*) +- os=3D-kaos ++ -zvmoe) ++ os=3D-zvmoe ++ ;; ++ -dicos*) ++ os=3D-dicos ++ ;; ++ -nacl*) ++ ;; ++ -ios) + ;; + -none) + ;; +@@ -1316,6 +1555,12 @@ else + # system, and we'll never get to this point. +=20 + case $basic_machine in ++ score-*) ++ os=3D-elf ++ ;; ++ spu-*) ++ os=3D-elf ++ ;; + *-acorn) + os=3D-riscix1.2 + ;; +@@ -1325,9 +1570,24 @@ case $basic_machine in + arm*-semi) + os=3D-aout + ;; +- c4x-* | tic4x-*) +- os=3D-coff +- ;; ++ c4x-* | tic4x-*) ++ os=3D-coff ++ ;; ++ c8051-*) ++ os=3D-elf ++ ;; ++ hexagon-*) ++ os=3D-elf ++ ;; ++ tic54x-*) ++ os=3D-coff ++ ;; ++ tic55x-*) ++ os=3D-coff ++ ;; ++ tic6x-*) ++ os=3D-coff ++ ;; + # This must come before the *-dec entry. + pdp10-*) + os=3D-tops20 +@@ -1346,13 +1606,13 @@ case $basic_machine in + ;; + m68000-sun) + os=3D-sunos3 +- # This also exists in the configure program, but was not the +- # default. +- # os=3D-sunos4 + ;; + m68*-cisco) + os=3D-aout + ;; ++ mep-*) ++ os=3D-elf ++ ;; + mips*-cisco) + os=3D-elf + ;; +@@ -1371,9 +1631,15 @@ case $basic_machine in + *-be) + os=3D-beos + ;; ++ *-haiku) ++ os=3D-haiku ++ ;; + *-ibm) + os=3D-aix + ;; ++ *-knuth) ++ os=3D-mmixware ++ ;; + *-wec) + os=3D-proelf + ;; +@@ -1476,7 +1742,7 @@ case $basic_machine in + -sunos*) + vendor=3Dsun + ;; +- -aix*) ++ -cnk*|-aix*) + vendor=3Dibm + ;; + -beos*) +@@ -1539,7 +1805,7 @@ case $basic_machine in + esac +=20 + echo $basic_machine$os +-exit 0 ++exit +=20 + # Local variables: + # eval: (add-hook 'write-file-hooks 'time-stamp) +diff --git a/configure b/configure +index 4c1bc06..140f050 100755 +--- a/configure ++++ b/configure +@@ -1486,11 +1486,11 @@ Optional Packages: + --with-migemo=3DMIGEMO_COMMAND migemo command + --with-editor=3DEDITOR default editor (/usr/bin/vi) + --with-mailer=3DMAILER default mailer (/usr/bin/mail) +- --with-browser=3DBROWSER default browser (/usr/bin/mozilla) ++ --with-browser=3DBROWSER default browser (/usr/bin/firefox) + --with-ssl=3DPREFIX support https protocol + --with-termlib=3DLIBS terminal library + LIBS is space separated list of: +- terminfo mytinfo termcap ncurses curses ++ terminfo mytinfo termcap tinfo ncurses curses + --with-gc=3DPREFIX libgc PREFIX +=20 + Some influential environment variables: +@@ -6755,7 +6755,7 @@ $as_echo "$enable_image" >&6; } + if test x"$enable_image" =3D xyes; then + enable_image=3Dx11 + case "`uname -s`" in +- Linux|linux|LINUX) ++ Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD) + if test -c /dev/fb0; then + enable_image=3Dx11,fb + fi;; +@@ -6811,6 +6811,9 @@ $as_echo "$with_imagelib" >&6; } + fi;; + imlib2) + with_imlib2=3D"yes" ++ if test x"$PKG_CONFIG" =3D x; then ++ PKG_CONFIG=3Dpkg-config ++ fi + if test x"$IMLIB2_CONFIG" =3D x; then + IMLIB2_CONFIG=3Dimlib2-config + fi;; +@@ -6823,8 +6826,6 @@ $as_echo "$with_imagelib" >&6; } + with_gtk2=3D"yes" + if test x"$PKG_CONFIG" =3D x; then + PKG_CONFIG=3Dpkg-config +- else +- PKG_CONFIG=3D: + fi;; + esac + done +@@ -6926,8 +6927,8 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed. = Install Imlib2 (version >=3D +=20 + $as_echo "#define USE_GTK2 1" >>confdefs.h +=20 +- IMGX11CFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xl= ib-2.0 gtk+-2.0`" +- IMGX11LDFLAGS=3D"`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xli= b-2.0 gtk+-2.0`" ++ IMGX11CFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xl= ib-2.0`" ++ IMGX11LDFLAGS=3D"-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixb= uf-xlib-2.0`" + elif test x"$have_gdkpixbuf" =3D xyes; then + $as_echo "#define USE_W3MIMG_X11 1" >>confdefs.h +=20 +@@ -6955,7 +6956,7 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed. = Install Imlib2 (version >=3D + $as_echo "#define USE_IMLIB2 1" >>confdefs.h +=20 + IMGX11CFLAGS=3D"`${IMLIB2_CONFIG} --cflags`" +- IMGX11LDFLAGS=3D"`${IMLIB2_CONFIG} --libs`" ++ IMGX11LDFLAGS=3D"-lX11 `${PKG_CONFIG} --libs imlib2`" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3= mimgdisplay with X11 support" >&5 + $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support= " >&2;} +@@ -6971,8 +6972,8 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdis= play with X11 support" >&2;} +=20 + $as_echo "#define USE_GTK2 1" >>confdefs.h +=20 +- IMGFBCFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`" +- IMGFBLDFLAGS=3D"`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`" ++ IMGFBCFLAGS=3D"`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`" ++ IMGFBLDFLAGS=3D"`${PKG_CONFIG} --libs gdk-pixbuf-2.0`" + elif test x"$have_gdkpixbuf" =3D xyes; then + $as_echo "#define USE_W3MIMG_FB 1" >>confdefs.h +=20 +@@ -6991,7 +6992,7 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdis= play with X11 support" >&2;} +=20 + IMGOBJS=3D"$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o" + IMGFBCFLAGS=3D"`${IMLIB2_CONFIG} --cflags`" +- IMGFBLDFLAGS=3D"`${IMLIB2_CONFIG} --libs`" ++ IMGFBLDFLAGS=3D"`${PKG_CONFIG} --libs imlib2`" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3= mimgdisplay with FB support" >&5 + $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with FB support"= >&2;} +@@ -7344,7 +7345,7 @@ cat >>confdefs.h <<_ACEOF + _ACEOF +=20 +=20 +-w3m_browser=3D"/usr/bin/mozilla" ++w3m_browser=3D"/usr/bin/firefox" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which external browser = is used by default" >&5 + $as_echo_n "checking which external browser is used by default... " >&6; } +=20 +@@ -7977,7 +7978,7 @@ fi +=20 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_termlib" >&5 + $as_echo "$with_termlib" >&6; } +- test x"$with_termlib" =3D xyes && with_termlib=3D"terminfo mytinfo terml= ib termcap ncurses curses" ++ test x"$with_termlib" =3D xyes && with_termlib=3D"terminfo mytinfo terml= ib termcap tinfo ncurses curses" + for lib in $with_termlib; do + as_ac_Lib=3D`$as_echo "ac_cv_lib_$lib''_tgetent" | $as_tr_sh` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -l$lib" = >&5 +@@ -8986,7 +8987,7 @@ extern char *sys_errlist[]; + int + main () + { +-printf(sys_errlist[0]); ++printf("%s", sys_errlist[0]); + ; + return 0; + } +@@ -9076,7 +9077,7 @@ RC_DIR=3D"~/.$PACKAGE" + $as_echo "#define RC_DIR \"\$RC_DIR\"" >>confdefs.h +=20 +=20 +-DOCDIRS=3D"doc:en_English doc-jp:ja_Japanese" ++DOCDIRS=3D"doc:en_English doc-jp:ja_Japanese doc-de:de_German" + cat >>confdefs.h <<_ACEOF + #define DOCDIRS "$DOCDIRS" + _ACEOF +@@ -9084,9 +9085,10 @@ _ACEOF +=20 +=20 + cvsver=3D`$AWK '\$1 ~ /Id:/ { print \$3}' $srcdir/ChangeLog` +- sed -e 's/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "\1+= cvs-'$cvsver'/' $srcdir/version.c.in > version.c ++ ymdver=3D`sed -e 's/ .*//;s/-//g;q' $srcdir/ChangeLog` ++ sed -e 's/define CURRENT_VERSION "\(.*\)YYYYMMDD/define CURRENT_VERSION = "\1'$ymdver'/;s/define CURRENT_VERSION "\(.*\)+cvs/define CURRENT_VERSION "= \1+cvs-'$cvsver'/' $srcdir/version.c.in > version.c + CURRENT_VERSION=3D`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/= \1/p' version.c` +-ac_config_files=3D"$ac_config_files Makefile posubst po/Makefile.in scrip= ts/Makefile scripts/dirlist.cgi scripts/w3mhelp.cgi scripts/w3mmail.cgi scr= ipts/xface2xpm scripts/multipart/Makefile scripts/multipart/multipart.cgi s= cripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 script= s/w3mman/w3mman2html.cgi libwc/Makefile w3mimg/Makefile w3mimg/fb/Makefile = w3mimg/x11/Makefile w3mimg/win/Makefile w3mhelp-w3m_en.html w3mhelp-w3m_ja.= html w3mhelp-lynx_en.html w3mhelp-lynx_ja.html" ++ac_config_files=3D"$ac_config_files Makefile posubst po/Makefile.in scrip= ts/Makefile scripts/dirlist.cgi scripts/w3mhelp.cgi scripts/w3mmail.cgi scr= ipts/xface2xpm scripts/multipart/Makefile scripts/multipart/multipart.cgi s= cripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 script= s/w3mman/w3mman.de.1 scripts/w3mman/w3mman2html.cgi libwc/Makefile w3mimg/M= akefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefile w3mhelp-= w3m_en.html w3mhelp-w3m_ja.html w3mhelp-lynx_en.html w3mhelp-lynx_ja.html" +=20 + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure +@@ -9810,6 +9812,7 @@ do + "scripts/w3mman/Makefile") CONFIG_FILES=3D"$CONFIG_FILES scripts/w3mm= an/Makefile" ;; + "scripts/w3mman/w3mman") CONFIG_FILES=3D"$CONFIG_FILES scripts/w3mman= /w3mman" ;; + "scripts/w3mman/w3mman.1") CONFIG_FILES=3D"$CONFIG_FILES scripts/w3mm= an/w3mman.1" ;; ++ "scripts/w3mman/w3mman.de.1") CONFIG_FILES=3D"$CONFIG_FILES scripts/w= 3mman/w3mman.de.1" ;; + "scripts/w3mman/w3mman2html.cgi") CONFIG_FILES=3D"$CONFIG_FILES scrip= ts/w3mman/w3mman2html.cgi" ;; + "libwc/Makefile") CONFIG_FILES=3D"$CONFIG_FILES libwc/Makefile" ;; + "w3mimg/Makefile") CONFIG_FILES=3D"$CONFIG_FILES w3mimg/Makefile" ;; +diff --git a/configure.ac b/configure.ac +index 7308fc6..320a6e2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -172,7 +172,7 @@ AC_SUBST(RC_DIR) + RC_DIR=3D"~/.$PACKAGE" + AC_DEFINE(RC_DIR, "$RC_DIR") + AC_SUBST(DOCDIRS) +-DOCDIRS=3D"doc:en_English doc-jp:ja_Japanese" ++DOCDIRS=3D"doc:en_English doc-jp:ja_Japanese doc-de:de_German" + AC_DEFINE_UNQUOTED(DOCDIRS, "$DOCDIRS") +=20 + AC_W3M_VERSION +@@ -181,7 +181,8 @@ scripts/Makefile scripts/dirlist.cgi \ + scripts/w3mhelp.cgi \ + scripts/w3mmail.cgi scripts/xface2xpm \ + scripts/multipart/Makefile scripts/multipart/multipart.cgi \ +-scripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 \ ++scripts/w3mman/Makefile scripts/w3mman/w3mman \ ++scripts/w3mman/w3mman.1 scripts/w3mman/w3mman.de.1 \ + scripts/w3mman/w3mman2html.cgi \ + libwc/Makefile \ + w3mimg/Makefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefil= e \ +diff --git a/cookie.c b/cookie.c +index 8020f6d..705e277 100644 +--- a/cookie.c ++++ b/cookie.c +@@ -22,10 +22,10 @@ static int is_saved =3D 1; +=20 + #define contain_no_dots(p, ep) (total_dot_number((p),(ep),1)=3D=3D0) +=20 +-static int +-total_dot_number(char *p, char *ep, int max_count) ++static unsigned int ++total_dot_number(char *p, char *ep, unsigned int max_count) + { +- int count =3D 0; ++ unsigned int count =3D 0; + if (!ep) + ep =3D p + strlen(p); +=20 +@@ -105,6 +105,7 @@ make_portlist(Str port) + pl->next =3D first; + first =3D pl; + } ++ Strfree(tmp); + return first; + } +=20 +@@ -247,16 +248,12 @@ find_cookie(ParsedURL *pu) + Strcat(tmp, Sprintf("; $Domain=3D\"%s\"", p1->domain->ptr)); + if (p1->portl) + Strcat(tmp, +- Sprintf("; $Port=3D\"%s\"", portlist2str(p1->portl))); ++ Sprintf("; $Port=3D\"%s\"", portlist2str(p1->portl)->ptr)); + } + } + return tmp; + } +=20 +-char *special_domain[] =3D { +- ".com", ".edu", ".gov", ".mil", ".net", ".org", ".int", NULL +-}; +- + int + check_avoid_wrong_number_of_dots_domain( Str domain ) + { +@@ -324,7 +321,7 @@ add_cookie(ParsedURL *pu, Str name, Str value, +=20 + if (version =3D=3D 0) { + /* [NETSCAPE] rule */ +- int n =3D total_dot_number(domain->ptr, ++ unsigned int n =3D total_dot_number(domain->ptr, + domain->ptr + domain->length, + 3); + if (n < 2) { +@@ -332,19 +329,6 @@ add_cookie(ParsedURL *pu, Str name, Str value, + COOKIE_ERROR(COO_ESPECIAL); + } + } +- else if (n =3D=3D 2) { +- char **sdomain; +- int ok =3D 0; +- for (sdomain =3D special_domain; !ok && *sdomain; sdomain++) { +- int offset =3D domain->length - strlen(*sdomain); +- if (offset >=3D 0 && +- strcasecmp(*sdomain, &domain->ptr[offset]) =3D=3D 0) +- ok =3D 1; +- } +- if (!ok && ! check_avoid_wrong_number_of_dots_domain(domain)) { +- COOKIE_ERROR(COO_ESPECIAL); +- } +- } + } + else { + /* [DRAFT 12] s. 4.3.2 case 2 */ +@@ -463,7 +447,7 @@ save_cookies(void) + continue; + fprintf(fp, "%s\t%s\t%s\t%ld\t%s\t%s\t%d\t%d\t%s\t%s\t%s\n", + parsedURL2Str(&p->url)->ptr, +- p->name->ptr, p->value->ptr, p->expires, ++ p->name->ptr, p->value->ptr, (long)p->expires, + p->domain->ptr, p->path->ptr, p->flag, + p->version, str2charp(p->comment), + (p->portl) ? portlist2str(p->portl)->ptr : "", +@@ -517,36 +501,36 @@ load_cookies(void) + cookie->commentURL =3D NULL; + parseURL(readcol(&str)->ptr, &cookie->url, NULL); + if (!*str) +- return; ++ break; + cookie->name =3D readcol(&str); + if (!*str) +- return; ++ break; + cookie->value =3D readcol(&str); + if (!*str) +- return; ++ break; + cookie->expires =3D (time_t) atol(readcol(&str)->ptr); + if (!*str) +- return; ++ break; + cookie->domain =3D readcol(&str); + if (!*str) +- return; ++ break; + cookie->path =3D readcol(&str); + if (!*str) +- return; ++ break; + cookie->flag =3D atoi(readcol(&str)->ptr); + if (!*str) +- return; ++ break; + cookie->version =3D atoi(readcol(&str)->ptr); + if (!*str) +- return; ++ break; + cookie->comment =3D readcol(&str); + if (cookie->comment->length =3D=3D 0) + cookie->comment =3D NULL; + if (!*str) +- return; ++ break; + cookie->portl =3D make_portlist(readcol(&str)); + if (!*str) +- return; ++ break; + cookie->commentURL =3D readcol(&str); + if (cookie->commentURL->length =3D=3D 0) + cookie->commentURL =3D NULL; +diff --git a/display.c b/display.c +index e00eb0c..d4f336a 100644 +--- a/display.c ++++ b/display.c +@@ -257,7 +257,7 @@ make_lastline_link(Buffer *buf, char *title, char *url) + parseURL2(url, &pu, baseURL(buf)); + u =3D parsedURL2Str(&pu); + if (DecodeURL) +- u =3D Strnew_charp(url_unquote_conv(u->ptr, buf->document_charset)); ++ u =3D Strnew_charp(url_decode2(u->ptr, buf)); + #ifdef USE_M17N + u =3D checkType(u, &pr, NULL); + #endif +@@ -487,7 +487,7 @@ displayBuffer(Buffer *buf, int mode) + term_title(conv_to_system(buf->buffername)); + refresh(); + #ifdef USE_IMAGE +- if (activeImage && displayImage && buf->img) { ++ if (activeImage && displayImage && buf->img && buf->image_loaded) { + drawImage(); + } + #endif +@@ -521,7 +521,15 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hs= eq, int prevhseq, + break; + } + if (hseq >=3D 0 && an->hseq =3D=3D hseq) { ++ int start_pos =3D an->start.pos; ++ int end_pos =3D an->end.pos; + for (i =3D an->start.pos; i < an->end.pos; i++) { ++ if (enable_inline_image && (l->propBuf[i] & PE_IMAGE)) { ++ if (start_pos =3D=3D i) ++ start_pos =3D i + 1; ++ else if (end_pos =3D=3D an->end.pos) ++ end_pos =3D i - 1; ++ } + if (l->propBuf[i] & (PE_IMAGE | PE_ANCHOR | PE_FORM)) { + if (active) + l->propBuf[i] |=3D PE_ACTIVE; +@@ -529,9 +537,9 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hse= q, int prevhseq, + l->propBuf[i] &=3D ~PE_ACTIVE; + } + } +- if (active) ++ if (active && start_pos < end_pos) + redrawLineRegion(buf, l, l->linenumber - tline + buf->rootY, +- an->start.pos, an->end.pos); ++ start_pos, end_pos); + } + else if (prevhseq >=3D 0 && an->hseq =3D=3D prevhseq) { + if (active) +@@ -855,14 +863,16 @@ redrawLineImage(Buffer *buf, Line *l, int i) + y =3D (int)(i * pixel_per_line); + sx =3D (int)((rcol - COLPOS(l, a->start.pos)) * pixel_per_char); + sy =3D (int)((l->linenumber - image->y) * pixel_per_line); +- if (sx =3D=3D 0 && x + image->xoffset >=3D 0) +- x +=3D image->xoffset; +- else +- sx -=3D image->xoffset; +- if (sy =3D=3D 0 && y + image->yoffset >=3D 0) +- y +=3D image->yoffset; +- else +- sy -=3D image->yoffset; ++ if (! enable_inline_image) { ++ if (sx =3D=3D 0 && x + image->xoffset >=3D 0) ++ x +=3D image->xoffset; ++ else ++ sx -=3D image->xoffset; ++ if (sy =3D=3D 0 && y + image->yoffset >=3D 0) ++ y +=3D image->yoffset; ++ else ++ sy -=3D image->yoffset; ++ } + if (image->width > 0) + w =3D image->width - sx; + else +diff --git a/doc-de/FAQ.html b/doc-de/FAQ.html +new file mode 100644 +index 0000000..d88ba64 +--- /dev/null ++++ b/doc-de/FAQ.html +@@ -0,0 +1,691 @@ ++ ++ ++ ++ ++ ++ W3M FAQ ++ ++ ++

    ++ H=C3=A4ufig gestellte Fragen zu w3m ++

    ++

    ++ Akinori Ito <aito@fw.ipsj.or.jp>
    korrigiert von Tom Berger &= lt;tom.be@gmx.net> ++

    ++

    ++ ++ =C3=9Cbersicht ++ ++

    ++
      ++
    • ++ ++ ++ Allgemeine Fragen; wie bekomme ich das Programm, welche Arbeitsumge= bung wird ben=C3=B6tigt? ++ ++ ++
    • ++
        ++
      • ++ ++ Wie wird w3m ausgesprochen? ++ ++
      • ++
      • ++ ++ Warum hat man es w3m genannt? ++ ++
      • ++
      • ++ ++ Auf welchen Plattformen l=C3=A4uft es? ++ ++
      • ++
      • ++ ++ Wo bekomme ich mehr Informationen =C3=BCber w3m? ++ ++
      • ++
      • ++ ++ Gibt es eine Mailingliste f=C3=BCr w3m? ++ ++
      • ++
      • ++ ++ Gibt es das Programm fertig kompiliert? ++ ++
      • ++
      ++
    • ++ ++ ++ Kompilierung und Installation ++ ++ ++
    • ++
    • ++ ++ ++ Optionen, Befehle und Verwendung ++ ++ ++
    • ++
        ++
      • ++ ++ w3m beendet sich von selbst, wenn es ohne Argumente aufgerufen wur= de. Was l=C3=A4uft hier falsch? ++ ++
      • ++
      • ++ ++ w3m startet mit schwarzen Zeichen vor schwarzem Hintergrund. Wie k= ann ich das =C3=A4ndern? ++ ++
      • ++
      • ++ ++ Kann w3m Dinge in Farbe darstellen?=20 ++ ++
      • ++
      • ++ ++ Kann w3m mit monochromen Bildschirmen benutzt werden?=20 ++ ++
      • ++
      • ++ ++ Wie kann ich den angezeigten Bereich verschieben? ++ ++
      • ++
      • ++ ++ Wie komme ich von einem zum anderen Hyperlink? ++ ++
      • ++
      • ++ ++ Grafische Browser stellen ein Wort rot dar, w3m hingegen nicht. Wa= rum? ++ ++
      • ++
      • ++ ++ Wie =C3=A4ndere ich die f=C3=BCr Hyperlinks, Bilder und Formularf= elder benutzten Farben? ++ ++
      • ++
      • ++ ++ w3m scheint die Umgebungsvariable EDITOR zu ignorieren. Weshalb? ++ ++
      • ++
      • ++ ++ Wie breche ich eine Suche oder die Eingabe einer URL ab? ++ ++
      • ++
      ++
    • ++ ++ ++ Fragen zur Benutzung als Internetbrowser ++ ++ ++
    • ++
        ++
      • ++ ++ Wie f=C3=BClle ich mit w3m Formulare aus? ++ ++
      • ++
      • ++ ++ w3m scheint langsamer als einige andere Browser zu sein. Warum? ++ ++
      • ++
      • ++ ++ Die Zeit zum Laden einer Seite wird nicht geringer, wenn diese Sei= te schon einmal angezeigt wurde. ++ ++
      • ++
      • ++ ++ Wie lade ich eine Datei herunter, auf die verlinkt wird? ++ ++
      • ++
      • ++ ++ Wie gebe ich einen Proxy-Server vor? ++ ++
      • ++ ++
      • ++ ++ Wie w=C3=A4hle ich den standardm=C3=A4=C3=9Fig verwendeten Bildbet= rachter aus? ++ ++
      • ++
      • ++ ++ Wie wird eine URL eingegeben?=20 ++ ++
      • ++
      • ++ ++ w3m h=C3=A4ngt eine URL an die vorherige an, obwohl die Zeile mit STRG-u gel=C3=B6scht worden war. Was ist zu tun? ++ ++
      • ++
      ++
    • ++ ++ ++ Verschiedenes ++ ++ ++
    • ++
        ++
      • ++ ++ Ich suche die Konfigurationsdatei von w3m. ++ ++
      • ++
      • ++ ++ Wof=C3=BCr sind die w3mxxxx Dateien in meinem ~/.w3m Verzeichnis g= ut? ++ ++
      • ++
      ++
    ++

    ++ ++ Allgemeine Fragen; wie bekomme ich das Programm, welche Arbeitsumgebu= ng wird ben=C3=B6tigt? ++ ++

    ++
    ++
    ++ ++ Wie wird w3m ausgesprochen? ++ ++
    ++
    ++

    ++ Der Name wird englisch ausgesprochen W-three-M und reimt sich= nicht auf pteranodon. ++

    ++
    ++
    ++ ++ Warum hat man es w3m genannt? ++ ++
    ++
    ++

    ++ Darin steckt der japanische Satz WWW-wo-Miru, was Sichte d= as weltweite Netz bedeutet. Dieser Browser k=C3=B6nnte also auf deutsch= Sdw2N hei=C3=9Fen.=20 ++

    ++
    ++
    ++ ++ Auf welchen Plattformen l=C3=A4uft es? ++ ++
    ++
    ++

    ++ Das Programm l=C3=A4uft auf verschiedenen Unices, seit der Version 9= 90226 auf OS/2 und seit Version 990303 auch auf Microsoft-Windows mit Cygwi= n32. ++

    ++

    ++ Es wurde best=C3=A4tigt, dass neuere Versionen laufen auf:=20 ++

    ++
      ++
    • ++ SunOS 4.1.x ++
    • ++
    • ++ HP-UX 9.x, 10.x ++
    • ++
    • ++ Solaris 2.5.x, 2.6, 8 ++
    • ++
    • ++ Linux 2.0.1 bis 3.17 ++
    • ++
    • ++ FreeBSD 2.2.8, 3.1, 3.2, 4.6 ++
    • ++
    • ++ NetBSD/macppc, m68k ++
    • ++
    • ++ EWS4800 Rel.12.2 Rev.A ++
    • ++
    • ++ Digital UNIX: v3.2D, v4.0D ++
    • ++
    • ++ IRIX 5.3, IRIX 6.5 ++
    • ++
    • ++ OS/2 mit emx ++
    • ++
    • ++ Windows 9x/NT mit Cygwin32 b20.1 ++
    • ++
    • ++ MS-DOS mit DJGPP und WATT32 Pakettreiber ++
    • ++
    • ++ MacOS X Server ++
    • ++
    • ++ MacOS X 10.1, 10.2 ++
    • ++
    ++
    ++
    ++ ++ Wo bekomme ich mehr Informationen =C3=BCber w3m? ++ ++
    ++
    ++

    ++ Auf der englischen Homepage des w3m-Projekts. ++

    ++
    ++
    ++ ++ Gibt es eine Mailingliste f=C3=BCr w3m? ++ ++
    ++
    ++

    ++ Es gibt eine Mailingliste f=C3=BCr Entwickler (w3m-dev-en). Einzelhe= iten dazu finden Sie auf der Homepage des w3m-Projekts. Sie k=C3=B6nnen Ihre Anmerkungen auch= dem Autor schicken. ++

    ++
    ++
    ++ ++ Gibt es das Programm fertig kompiliert? ++ ++
    ++
    ++

    ++ Bis jetzt wurde das Programm nur f=C3=BCr Windows /Cygnus32 kompilie= rt. Sollten Sie dies f=C3=BCr andere Plattformen durchgef=C3=BChrt haben un= d m=C3=B6chten Ihre Bin=C3=A4rversion der Allgemeinheit zur Verf=C3=BCgung = stellen, kontaktieren Sie den Autor. ++

    ++
    ++
    ++

    ++ ++ Zur=C3=BCck zur =C3=9Cbersicht ++ ++

    ++

    ++ ++ Kompilierung und Installation ++ ++

    ++

    ++ Kein Problem :-) ++

    ++

    ++ ++ Optionen, Befehle und Verwendung ++ ++

    ++
    ++
    ++ ++ w3m beendet sich von selbst, wenn es ohne Argumente aufgerufen wurde= . Was l=C3=A4uft hier falsch? ++ ++
    ++
    ++

    ++ w3m ist ein Textbetrachter. Deshalb schlie=C3=9Ft sich das Pr= ogramm von selbst, wenn es ohne ein Argument aufgerufen wird. Es l=C3=A4uft= weiter=20 ++

    ++
      ++
    • ++ mit einem Dateinamen oder einer Adresse als Argument ++
    • ++
    • ++ mit aus der Standardeingabe eingehenden Daten ++
    • ++
    • ++ nach Aufruf mit der Option -B, woraufhin die Lesezeichendatei gezei= gt wird ++
    • ++
    • ++ nach Aufruf mit der Option -v, woraufhin eine Begr=C3=BC=C3=9Fungss= eite angezeigt wird ++
    • ++
    • ++ wenn die Variablen HTTP_HOME oder WWW_HOME spezifiziert wurden ++
    • ++
    ++
    ++
    ++ ++ w3m startet mit schwarzen Zeichen vor schwarzem Hintergrund. Wie kan= n ich das =C3=A4ndern? ++ ++
    ++
    ++

    ++ Wenn w3m f=C3=BCr den Farbmodus kompiliert wurde, geht das Programm = von wei=C3=9Fem Hintergrund aus und zeigt die Buchstaben in schwarz. ++

    ++

    ++ Sie k=C3=B6nnen entweder die Hintergrundfarbe Ihres Terminals =C3=A4= ndern (bei xterm z.B. mit der Option -bg) oder so vorgehen ++

    ++
      ++
    1. ++ Mit w3m -M den Monochrom-Modus von w3m = starten ++
    2. ++
    3. ++ o eintippen, was Sie in den Einstellungs-Dialog bringt ++
    4. ++
    5. ++ YES neben in Farbe anzeigen markieren und irgendeine = Farbe ausw=C3=A4hlen. ++
    6. ++
    7. ++ auf [OK] klicken ++
    8. ++
    ++
    ++
    ++ ++ Kann w3m Dinge in Farbe darstellen?=20 ++ ++
    ++
    ++

    ++ Ja. Wenn Sie ./configure durchf=C3=BChren, werden Ihnen folge= nde M=C3=B6glichkeiten angeboten: ++

    ++
    ++  Let's do some configurations. Choose config option among the list. 
    = 1 - Baby model (no color, no menu, no mouse, no cookie, no SSL)
    2 -= Little model (color, menu, no mouse, no cookie, no SSL)
    3 - Mouse mo= del (color, menu, mouse, no cookie, no SSL)
    4 - Cookie model (color, = menu, mouse, cookie, no SSL)
    5 - Monster model (with everything; you n= eed openSSL library)
    6 - Customize Which? ++
    ++

    ++ Sie entscheiden sich f=C3=BCr 2, 3, 4, oder 5. ++

    ++
    ++
    ++ ++ Kann w3m mit monochromen Bildschirmen benutzt werden?=20 ++ ++
    ++
    ++

    ++ Ja, Sie k=C3=B6nnen entweder ++

    ++
      ++
    • ++ obige Frage bei ./configure mit 1 beantworten, oder ++
    • ++
    • ++ w3m mit der Option -M starten, oder ++
    • ++
    • ++ innerhalb von w3m die Taste o bet=C3=A4tigen, was den Einste= llungs-Dialog =C3=B6ffnet, in dem Sie in Farbe anzeigen abschalten k= =C3=B6nnen. ++
    • ++
    ++
    ++
    ++ ++ Wie kann ich den angezeigten Bereich verschieben? ++ ++
    ++
    ++

    ++ Indem Sie den Cursor an den Rand des Bildschirmes bewegen. Au=C3=9Fe= rdem k=C3=B6nnen Sie die folgenden Kommmandos nutzen ++

    ++
      ++
    • SHIFT_LEFT und SHIFT_RIGHT, denen die Tasten > und < zugeordnet sind
    • ++
    • SHIFT_LEFT1 und SHIFT_RIGHT1, denen die Tasten . und , zugeordnet sind
    • ++
    ++

    ++ Ein weiterer Weg w=C3=A4re, mit der Option -geometry des Terminalpro= gramms den zur Anzeige verf=C3=BCgbaren Platz anzupassen, beispielsweise mi= t einer Eingabe der Art ++

    ++
      xterm -geometry 110x45 -bg white -name w3m -e w3m -B
    ++
    ++
    ++ ++ Wie komme ich von einem zum anderen Hyperlink? ++ ++
    ++
    ++

    ++ ++ Sie erreichen den n=C3=A4chsten Hyperlink mit der TAB-Taste. Zum vo= rhergehenden springt der Cursor, wenn die ESC-Taste vor der TAB-Taste gedr= =C3=BCckt wurde. (Mehr zu Funktionen und Tastaturbelegung im Handbuch von w3m) ++ ++

    ++
    ++
    ++ ++ Grafische Browser stellen ein Wort rot dar, w3m hingegen nicht. Waru= m? ++ ++
    ++
    ++

    ++ w3m ignoriert das Attribut COLOR=3D"..." in HTML. Dessen Ber=C3=BCck= sichtigung zu implementieren, w=C3=A4re m=C3=B6glich, aber ich denke, die D= okumente w=C3=A4ren am Ende schwerer lesbar. ++

    ++
    ++
    ++ ++ Wie =C3=A4ndere ich die f=C3=BCr Hyperlinks, Bilder und Formularfeld= er benutzten Farben? ++ ++
    ++
    ++

    ++ Tippen Sie in w3m o ein und gelangen damit in den Einstellung= s-Dialog. Dort k=C3=B6nnen Sie die Farben =C3=A4ndern. ++

    ++
    ++
    ++ ++ w3m scheint die Umgebungsvariable EDITOR zu ignorieren. Weshalb? ++ ++
    ++
    ++

    ++ Tippen Sie in w3m o ein und gelangen damit in den Einstellung= s-Dialog. Jeglicher Eintrag im Feld Editor hat Vorrang gegen=C3=BCbe= r der Umgebungsvariablen. ++

    ++

    ++ Wenn Sie also das durch EDITOR angegebene Textbearbeitungsprogramm v= erwenden m=C3=B6chten, l=C3=B6schen Sie den Eintrag und dr=C3=BCcken [OK]. ++

    ++
    ++
    ++ ++ Wie breche ich eine Suche oder die Eingabe einer URL ab? ++ ++
    ++
    ++

    ++ L=C3=B6schen Sie den eingegebenen Text mit STRG= -u und dr=C3=BCcken Sie die Eingabetaste. ++

    ++
    ++
    ++

    ++ ++ Zur=C3=BCck zur =C3=9Cbersicht ++ ++

    ++

    ++ ++ Fragen zur Benutzung als Internetbrowser ++ ++

    ++
    ++
    ++ ++ Wie f=C3=BClle ich mit w3m Formulare aus? ++ ++
    ++
    ++

    ++ Formular-Eingabefelder werden in rot (oder invertiert) angezeigt. Be= wegen Sie den Cursor dorthin. Wenn es ++

    ++
      ++
    • ++ ein Texteingabefeld ist, dr=C3=BCcken Sie die Eingabetaste, schrei= ben den Text unten in die Eingabezeile und dr=C3=BCcken die Eingabetaste no= chmals, ++
    • ++
    • ++ sich um einen Radiobutton oder eine Checkbox handelt, wird bei Dr= =C3=BCcken der Eingabetaste die Auswahl ver=C3=A4ndert oder neu getroffen=20 ++
    • ++
    • ++ sich um einen Texteingabebereich handelt, wird durch Dr=C3=BCcken = der Eingabetaste ein Editor gestartet=20 ++
    • ++
    • ++ sich um eine Schaltfl=C3=A4chen f=C3=BCr =C3=9Cbermitteln o= der Zur=C3=BCcksetzen handelt, wird die entsprechende Aktion ausgef= =C3=BChrt. ++
    • ++
    ++
    ++
    ++ ++ w3m scheint langsamer als einige andere Browser zu sein. Warum? ++ ++
    ++
    ++

    ++ HTML-Dokumente werden in zwei Schritten verarbeitet. Erst nachdem ei= n Dokument vollst=C3=A4ndig vorliegt, baut w3m die Anzeige auf.=20 ++

    ++

    ++ Da die meisten anderen Browser die Seite aufbauen, ehe sie komplett = ist, scheinen sie schneller. ++

    ++
    ++
    ++ ++ Die Zeit zum Laden einer Seite wird nicht geringer, wenn diese Seite= schon einmal angezeigt wurde. ++ ++
    ++
    ++

    ++ w3m nutzt keinen eigenen Zwischenspeicher. Es liest daher Dokumente = jedesmal neu vom Server ein. Wenn m=C3=B6glich, verwenden Sie einen Server = f=C3=BCr die Zwischenspeicherung. ++

    ++
    ++
    ++ ++ Wie lade ich eine Datei herunter, auf die verlinkt wird? ++ ++
    ++
    ++

    ++ Verwenden Sie a (oder d bei lynx-artiger Tastaturbele= gung) oder ESC RET. Wenn Sie ein eingebundenes = Bild herunterladen m=C3=B6chten, dr=C3=BCcken Sie ESC = I. (Mehr zu Fun= ktionen und Tastaturbelegung im Handbuch von w3m) ++

    ++
    ++
    ++ ++ Wie gebe ich einen Proxy-Server vor? ++ ++
    ++
    ++

    ++ Setzen Sie die Umgebungsvariablen HTTP_PROXY, HTTPS_PROXY, GOPHER_PR= OXY und FTP_PROXY oder =C3=B6ffnen mit o den Einstellungs-Dialog. Um= beispielsweise den Port 8000 von proxy.example.org zu benutzen, geben Sie = ein ++

    ++
      http://proxy.example.org:8000/
    ++
    ++ ++
    ++ ++ Wie w=C3=A4hle ich den standardm=C3=A4=C3=9Fig verwendeten Bildbetra= chter aus? ++ ++
    ++
    ++

    ++ Standardm=C3=A4=C3=9Fig benutzt w3m den Bildbetrachter xv. Wenn Sie= beispielsweise display vorziehen, erg=C3=A4nzen Sie ~/.w3m/mailcap = oder /etc/mailcap um die Zeile: ++

    ++
    ++  image/*; display %s
    ++
    ++

    ++ Ebenso k=C3=B6nnen Sie f=C3=BCr andere Dateitypen externe Anzeigepr= ogramme festlegen: ++

    ++
    ++  image/*; display %s 
    application/postscript; ghostview %s
    applic= ation/x-dvi; xdvi %s ++
    ++
    ++
    ++ ++ Wie wird eine URL eingegeben?=20 ++ ++
    ++
    ++

    ++ Dr=C3=BCcken Sie U ++

    ++
    ++
    ++ ++ w3m h=C3=A4ngt eine URL an die vorherige an, obwohl die Zeile mit STRG-u gel=C3=B6scht worden war. Was ist zu tun? ++ ++
    ++
    ++

    ++ Geben Sie die komplette Adresse ein, z.B. http://www.slashdot= .org. ++

    ++
    ++
    ++

    ++ ++ Zur=C3=BCck zur =C3=9Cbersicht ++ ++

    ++

    ++ ++ Verschiedenes ++ ++

    ++
    ++
    ++ ++ Ich suche die Konfigurationsdatei von w3m. ++ ++
    ++
    ++

    ++ Es ist ~/.w3m/config. ++

    ++ ++

    ++ In dieser Datei kann jeder Benutzer das Verhalten von w3m anpassen. = Sie finden dort zeilenweise die Variablen zu den im Einstellungs-Dialog bes= chriebenen Optionen. Den Namen und die Belegung einer Variable trennt ein L= eerzeichen. ++

    ++=20=20=20=20 ++

    Ohne eine benutzerspezifische Konfigurationsdatei richtet sich w3m= nach der systemweiten Konfigurationsdatei /etc/w3m/config. ++

    ++=20=20=20=20 ++
    ++
    ++ ++ Wof=C3=BCr sind die w3mxxxx Dateien in meinem ~/.w3m Verzeichnis gut? ++ ++
    ++
    ++

    ++ Es handelt sich um tempor=C3=A4re Dateien, die w3m beim Lesen anlegt= . Sie dienen nicht zur Zwischenspeicherung und werden beim Verlassen des Pr= ogramms normalerweise gel=C3=B6scht. Wenn welche zur=C3=BCckbleiben, l=C3= =B6schen Sie sie einfach selbst. ++

    ++
    ++
    ++

    ++ ++ Zur=C3=BCck zur =C3=9Cbersicht ++ ++

    ++ ++ +diff --git a/doc-de/MANUAL.html b/doc-de/MANUAL.html +new file mode 100644 +index 0000000..f922314 +--- /dev/null ++++ b/doc-de/MANUAL.html +@@ -0,0 +1,2340 @@ ++ ++ ++ ++ w3m Handbuch ++ ++ ++ ++ ++ ++=20=20=20 ++

    w3m HANDBUCH

    ++
    ++ Akinori Ito
    aito@fw.ipsj.or.jp ++
    ++

    =C3=9Cbersicht

    ++ ++
    ++

    ++ Einf=C3=BChrung ++

    ++

    ++ w3m ist ein textorientierter Browser und Textbetrachter (Pager). In ei= nem Terminalemulator k=C3=B6nnen Sie damit lokale und andere Dokumente anze= igen lassen und Verkn=C3=BCpfungen (Hyperlinks) weiterverfolgen. ++

    ++
    ++

    ++ Einstellungen ++

    ++

    ++ Der Aufruf per Befehlszeile lautet ++

    ++ ++
    ++  w3m [Option]=E2=80=A6 [Datei|Adresse]=E2=80=A6
    ++
    ++

    ++ Wenn Sie Dateinamen oder Adressen in der Befehlszeile angeben, werden = diese Dokumente angezeigt. Fehlen entsprechende Argumente, wird w3m ein Dok= ument aus der Standardeingabe erwarten und anzeigen. Erh=C3=A4lt das Progra= mm auch hier keine Daten, beendet es sich normalerweise selbstst=C3=A4ndig. ++

    ++

    ++ Optionen sind unter anderem: ++

    ++
    ++

    Allgemeine Optionen

    ++
    ++ -B ++
    ++
    ++

    ++=20=20=20=20 ++ starte mit einer Ansicht aller Lesezeichen (wenn kein anderes Zielob= jekt angegeben ist) ++

    ++
    ++
    ++ -M ++
    ++
    ++

    ++=20=20=20=20 ++ monochrome Anzeige ++

    ++
    ++
    ++ -no-mouse ++
    ++
    ++

    ++ Mausfunktion aus ++

    ++
    ++
    ++ -num ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ zeige Zeilennummern an ++ ++

    ++
    ++ ++
    ++ -v ++
    ++
    ++

    ++=20=20=20=20 ++ begr=C3=BC=C3=9Fe den Benutzer mit einer eingebauten Seite (wenn ke= in anderes Zielobjekt angegeben ist) ++

    ++
    ++
    ++ -W ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ wechsle zwischen umlaufendem und nicht umlaufendem Suchen ++

    ++
    ++
    ++ -X ++
    ++
    ++

    ++ nach Beenden des Programms das Terminal nicht neu initialisieren. ++

    ++
    ++
    ++ +Zahl ++
    ++
    ++

    ++ gehe zu Zeile Zahl. Wirkt nur, wenn Zahl gr=C3=B6=C3= =9Fer ist als die im Terminal verf=C3=BCgbare Zeilenzahl ++

    ++
    ++

    Browser-Optionen

    ++
    ++ -cols Zahl ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ bei f=C3=BCr die Standardausgabe bestimmten Inhalten, nimm bei zur = Umsetzung von HTML eine L=C3=A4nge von num Zeichen pro Zeile ++

    ++
    ++
    ++ -cookie ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ verwende gespeicherte Cookies und akzeptiere neue ++

    ++
    ++
    ++ -no-cookie ++
    ++
    ++

    ++=20=20=20=20=20 ++ verwende weder gespeicherte Cookies noch akzeptiere neue ++ ++

    ++
    ++
    ++ -F ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ verarbeite Frames ++

    ++
    ++
    ++ -no-graph ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ verwende bei der Umsetzung von Tabellen und Frames keine grafischen= Zeichen ++

    ++
    ++
    ++ -header Zeichenkette ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ f=C3=BCge der HTTP(S)-Anfrage Zeichenkette an. Diese muss de= r Kopfdaten-Syntax "Variable: Wert" entsprechen ++

    ++
    ++
    ++ -m ++
    ++
    ++

    ++ arbeite im Internetnachrichten-Modus. Mit dieser Option entni= mmt w3m den Typ eines Dokumentes dessen Kopfdaten. Dies ist n=C3=BCtzlich b= eim Lesen von Mails und Usenet-Nachrichten. ++ ++

    ++
    ++
    ++ -no-proxy ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ verwende keinen Proxy ++

    ++
    ++
    ++ -post Datei ++
    ++
    ++

    ++ verwende die Methode POST, um in Datei hinterlegte Daten hoc= hzuladen. Hierbei wird die Syntax "var1=3Dwert1[&v= ar2=3Dwert2]…" erwartet ++

    ++
    ++

    Textbetrachter-Optionen

    ++
    ++ -l Zahl ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ Anzahl der Zeilen, die zwischengespeichert werden, wenn Text per St= andardeingabe =C3=BCbergeben wurde. (Voreinstellung ist 10000) ++

    ++
    ++
    ++ -r ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ verarbeite spezielle Escape-Zeichen (beispielsweise ANSI-Escape-Zei= chen oder nroff-R=C3=BCckw=C3=A4rtsschritte f=C3=BCr fette und unterstriche= ne Zeichen) nicht, sondern zeige sie stattdessen mittels Caret-Notation. ++

    ++
    ++
    ++ -s ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ mehrere leere Zeilen werden bis auf eine gel=C3=B6scht ++

    ++
    ++=20=20 ++
    ++ -t Zahl ++
    ++
    ++

    ++ Tab-Zeichen so verwerten, dass Spalten mit einer Weite von Zahl= Zeichen entstehen. Wirkt nicht auf Standardausgabe ++

    ++
    ++

    Datenart- und Datenkodierungs-Optionen

    ++
    ++ -I Zeichenkodierung ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ zu benutzende Zeichenkodierung f=C3=BCr erhaltene Daten=20 ++

    ++
    ++
    ++ -O Zeichenkodierung ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ zu benutzende Zeichenkodierung f=C3=BCr auszugebende Daten=20 ++

    ++
    ++
    ++ -T Typ ++
    ++
    ++

    ++=20=20=20=20=20=20=20 ++ legt den MIME-Typ erhaltener Daten fest. Ohne diese Option bestimmt= ihn das Programm anhand der Dateinamen-Erweiterung. Wenn dies fehlschl=C3= =A4gt, wird text/plain als Typ angenommen. Zum Beispiel: ++

    ++

    ++ =C3=9Cbernimm HTML-Dokument von der Standardeingabe und zeige es an ++

    ++
    ++   cat beispiel.html | w3m -T text/html
    ++
    ++

    ++ Zeige HTML-Quelltext an ++

    ++
    ++   w3m -T text/plain beispiel.html
    ++
    ++
    ++

    Optionen zur Datenausgabe, mit sofortigem Verlassen des Programms

    ++
    ++ -dump ++
    ++
    ++

    ++ lies das per URL angegebene Dokument und leite es verarbeitet der S= tandardausgabe zu. Wenn mit der Option -cols nichts anderes eingestellt ist= , erh=C3=A4lt es eine Breite von 80 Zeichen ++

    ++
    ++
    ++ -dump_source ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ leite den Seitenquelltext der Standardausgabe zu ++

    ++
    ++
    ++ -dump_head ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ leite die Antwort einer HEAD-Anfrage f=C3=BCr eine URL der Standard= ausgabe zu ++

    ++
    ++
    ++ -dump_both ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ leite Antwort auf HEAD-Anfrage und Seitenquelltext der Standardausg= abe zu ++ ++

    ++
    ++
    ++ -dump_extra ++
    ++
    ++

    ++=20=20=20=20=20=20 ++ leite Antwort auf HEAD-Anfrage, Seitenquelltext und Extrainformation= der Standardausgabe zu ++

    ++
    ++ ++

    Optionen, die Standards f=C3=BCr Einstellungen und Datenquellen au=C3= =9Fer Kraft setzen

    ++=20=20=20 ++
    ++ -bookmark Datei ++
    ++
    ++

    ++=20=20=20=20 ++ benutze anstelle der Standarddatei bookmark.html f=C3=BCr Lesezeiche= n die Datei Datei ++

    ++
    ++
    ++ -config Datei ++
    ++
    ++

    ++=20=20=20=20=20=20=20=20=20=20=20=20 ++ benutze Datei anstelle der Standard-Konfigurationsdatei=20 ++

    ++
    ++
    ++ -o Option=3DWert ++
    ++
    ++

    ++=20=20=20=20=20 ++ arbeite mit einer Konfiguration, bei der die Einstellung Option<= /i> mit Wert belegt ist. Ohne Option=3DWert gleichwertig mit = -show-option ++

    ++
    ++
    ++
    ++

    ++ Farbzuordnung im Dokument ++

    ++

    ++ Links und Bildelemente werden wie folgt angezeigt: ++

    ++
    ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
    ++ ++ Farbmodus ++ ++ Monochrom-Modus ++
    ++ Hyperlinks ++ ++ blau ++ ++ unterstrichen ++
    ++ Bilder ++ ++ gr=C3=BCn ++ ++ invertiert ++
    ++ Formular-Eingabefelder ++ ++ rot ++ ++ invertiert ++
    ++
    ++

    ++ Diese Farben k=C3=B6nnen nach Eingabe von o im Einstellungs-Dia= log anders zugeordnet werden. ++

    ++
    ++

    ++ Funktionen und Tastaturbelegung ++

    ++=20=20 ++

    ++ Wenn w3m l=C3=A4uft, bedienen Sie das Programm, indem Sie Funktionen a= nhand ihres Namens oder der ihr zugeordneten Tastenkombination aufrufen. Es= gibt voreingestellte Tastaturbelegungen. ++ ++

    ++ ++

    ++ Sie k=C3=B6nnen die Tastaturbelegungen (abgesehen von jenen des Men=C3= =BC- und des Texteingabe-Modus) in einer Datei ~/.w3m/keymap anpassen. Beis= pielsweise bindet ++

    ++ ++
    ++   keymap C-o NEXT_PAGE
    ++
    ++ ++

    ++ die Funktion NEXT_PAGE (die normalerweise = mit SPC und C-v verkn=C3=BCpft ist) mit C-o. Siehe die Liste verf=C3=BCgbar= er Funktionen in README.func. Original- und Lyn= x-artige Tastaturbelegungen enthalten die Beispieldateien keymap.default und keymap.lynx. ++

    ++ ++

    ++ Im Folgenden stehen C- und M- f=C3=BCr die Eingabe-Modif= ikationen mit der Steuerungs- und der Meta-Taste. Die letzter= e ersetzt die ALT-Taste, wohingegen Dr=C3=BCcken der ESC-Tast= e zwischen Meta-modifiziertem und einfachen Tastendruck wechselt. Da= s Minus-Zeichen bedeutet das gleichzeitige Dr=C3=BCcken von Tasten; der Lee= rraum dagegen steht daf=C3=BCr, dass eine Taste nach der anderen gedr=C3=BC= ckt wird. Mit 2 M ist also gemeint, die 2 und dann M z= u dr=C3=BCcken. ++

    ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
    ++ Funktion ++ Tastenkombination ++ ++ Beschreibung ++
    ++ Standard ++ ++ Lynx-=C3=A4hnlich ++
    ++

    Navigation innerhalb von Seiten

    ++
    ++ NEXT_PAGE ++ ++ SPC, C-v, +, PGDN ++ ++ SPC, C-v, + ++ ++ Scrolle eine Seite abw=C3=A4rts ++
    ++ PREVIOUS_PAGE ++ ++ b, M-v, -, PGUP ++ ++ b, M-v, - ++ ++ Scrolle eine Seite aufw=C3=A4rts ++
    ++ MOVE_RIGHT ++ ++ l, C-f, RIGHT ++ ++ l ++ ++ Bewege Cursor nach rechts (mit Verschiebung um halbe Bildschirmbreit= e an dessen Rand) ++
    ++ C-b, LEFT ++ ++ h, C-b, LEFT ++ ++ h ++ ++ Bewege Cursor nach links (mit Verschiebung um halbe Bildschirmbreite= an dessen Rand) ++
    ++ MOVE_DOWN ++ ++ j, C-n, DOWN ++ ++ j ++ ++ Bewege Cursor abw=C3=A4rts (scrolle eine Zeile am Bildschirmrand) ++
    ++ MOVE_UP ++ ++ k, C-p, UP ++ ++ k ++ ++ Bewege Cursor aufw=C3=A4rts (scrolle eine Zeile am Bildschirmrand) ++
    ++ UP ++ ++ J ++ ++ J ++ ++ Scrolle den Anzeigebereich eine Zeile aufw=C3=A4rts ++
    ++ DOWN ++ ++ K ++ ++ K ++ ++ Scrolle den Anzeigebereich eine Zeile abw=C3=A4rts ++
    ++ LINE_BEGIN ++ ++ ^, C-a ++ ++ ^ ++ ++ Gehe zum Zeilenanfang ++
    ++ LINE_END ++ ++ $, C-e ++ ++ $ ++ ++ Gehe zum Zeilenende ++
    ++ NEXT_WORD ++ ++ w ++ ++ w ++ ++ Gehe zum n=C3=A4chsten Wort ++
    ++ PREVIOUS_WORD ++ ++ W ++ ++ W ++ ++ Gehe zum vorherigen Wort ++
    ++ SHIFT_RIGHT ++ ++ > ++ ++ > ++ ++ Anzeigebereich nach rechts versetzen ++
    ++ SHIFT_LEFT ++ ++ < ++ ++ < ++ ++ Anzeigebereich nach links versetzen ++
    ++ RIGHT ++ ++ . ++ ++ . ++ ++ Anzeigebereich um eine Spalte nach rechts verschieben ++
    ++ LEFT ++ ++ , ++ ++ , ++ ++ Anzeigebereich um eine Spalte nach links verschieben ++
    ++ BEGIN ++ ++ g, M-<, HOME ++ ++ C-a, M-< ++ ++ Gehe zur ersten Zeile ++
    ++ END ++ ++ G, M->, END ++ ++ C-e, M-> ++ ++ Gehe zur letzten Zeile ++
    ++ GOTO_LINE ++ ++ M-g ++ ++ G ++ ++ Gehe zur angegebenen Zeile ++
    ++ LINE_INFO ++ ++ C-g ++ ++ C-g ++ ++ Zeige aktuelle Position im Dokument an ++
    ++ CENTER_H ++ ++ Z ++ ++ Z ++ ++ Bildschirm rechts und links des Cursors zentrieren ++
    ++ CENTER_V ++ ++ z ++ ++ z ++ ++ Bildschirm ober- und unterhalb des Cursors zentrieren ++
    ++ NEXT_LINK ++ ++ TAB ++ ++ TAB, C-n, DOWN ++ ++ Gehe zum n=C3=A4chsten Hyperlink ++
    ++ PREVIOUS_LINK ++ ++ M-TAB, C-u=20 ++ ++ M-TAB, C-u, C-p, UP ++ ++ Gehe zum vorangegangen Hyperlink ++
    ++ LINK_BEGIN ++ ++ [ ++ ++ [ ++ ++ Gehe zum ersten Hyperlink ++
    ++ LINK_END ++ ++ ] ++ ++ ] ++ ++ Gehe zum letzten Hyperlink ++
    MOVE_LIST_MENUM-mM-m=C3=96ffne Men=C3=BC mit vorhandenen Hyperlinks
    ++

    Umgang mit Hyperlinks

    ++
    ++ GOTO_LINK ++ ++ C-j, C-m, RET ++ ++ C-f, C-j, C-m, RET, RIGHT ++ ++ Folge dem aktuellen Hyperlink in neuem Puffer ++
    LIST_MENUM-lM-l=C3=96ffne Men=C3=BC mit Hyperlinks und folge dem ausgew=C3=A4hlten ++
    ++ SAVE_LINK ++ ++ a, M-RET ++ ++ d, M-RET ++ ++ Speichere Ziel des Hyperlinks ++
    ++ PEEK_LINK ++ ++ u ++ ++ u ++ ++ Zeige Zieladresse ++
    ++ PEEK_IMG ++ ++ i ++ ++ i ++ ++ Zeige Adresse des Bildes ++
    ++ VIEW_IMAGE ++ ++ I ++ ++ I ++ ++ Zeige Bild in Betrachter ++
    ++ SAVE_IMAGE ++ ++ M-I ++ ++ M-I ++ ++ Speichere Bild ++
    MARK_WORD;;Wandle aktuelles Wort in Hyperlink um
    ++ MARK_URL ++ ++ : ++ ++ : ++ ++ Wandle URL-artige Zeichenketten um in Hyperlinks ++
    ++ MARK_MID ++ ++ M-: ++ ++ M-: ++ ++=20 ++ Wandle Nachrichten-ID-artige Zeichenketten um in Hyperlinks ++
    ++ PEEK ++ ++ c ++ ++ c ++ ++ Zeige aktuelle Adresse an ++
    ++ INFO ++ ++ =3D ++ ++ =3D ++ ++ Zeige Informationen =C3=BCber dieses Dokument ++
    ++ HISTORY ++ ++ C-h ++ ++ C-h ++ ++ Chronik aufgesuchter Dokumente ++
    ++ EXTERN ++ ++ M ++ ++ M ++ ++ Zeige das aktuelle Dokument mit einem externen Browser (wird eine Ta= ste von 2 bis 9 gedr=C3=BCckt, also beispielsweise 3 M, eingegeben, kommt e= in anderer, in der Konfiguration hinterlegter Browser zum Einsatz) ++
    ++ EXTERN_LINK ++ ++ M-M ++ ++ M-M ++ ++ Bringe das Linkziel mit einem externen Browser zur Anzeige (voranges= tellte Zahlen wirken sich wie oben beschrieben aus) ++
    ++

    Verwalten von Lesezeichen

    ++
    ++ BOOKMARK ++ ++ M-b ++ ++ v, M-b ++ ++ Lesezeichen ansehen ++
    ++ ADD_BOOKMARK ++ ++ M-a ++ ++ a, M-a ++ ++ Lege f=C3=BCr aktuelle Seite Lesezeichen an ++
    ++

    Umgang mit Dateien und Datenstr=C3=B6men

    ++
    ++ GOTO ++ ++ U ++ ++ g, U ++ ++ =C3=96ffne angegebenes Dokument in neuem Puffer ++
    GOTO_RELATIVEM-uM-u=C3=96ffne relative Adresse in neuem Puffer
    ++ LOAD ++ ++ V ++ ++ V ++ ++ =C3=96ffne lokale Datei in einem neuen Puffer ++
    ++ READ_SHELL ++ ++ @ ++ ++ @ ++ ++=20=20=20=20=20=20 ++=20=20=20=20=20=20=20 ++ F=C3=BChre einen Shell-Befehl aus und zeige Ausgabe in einem neuen = Puffer ++
    ++ PIPE_SHELL ++ ++ # ++ ++ # ++ ++=20=20=20=20=20=20 ++=20=20=20=20=20=20=20 ++ F=C3=BChre einen Shell-Befehl aus und zeige Ausgabe in einem neuen = Puffer ++
    ++

    Arbeit an Seiteninhalten

    ++
    ++ VIEW=20 ++ ++ v ++ ++ \ ++ ++ Wechsle zwischen HTML-Quellcode und verarbeitetem Dokument ++
    LISTLLListe Link-Elemente, Hyperlinks und Bilder auf
    ++ FRAME ++ ++ F ++ ++ F ++ ++ Wechsle zwischen Kennung und Umsetzung von HTML-Frames ++
    ++ REDRAW ++ ++ C-l ++ ++ C-l, C-w ++ ++ Bildschirmanzeige neu aufbauen ++
    ++ RELOAD ++ ++ R ++ ++ R, C-r ++ ++ Aktuelles Dokument erneut laden ++
    ++ EDIT ++ ++ E ++ ++ E ++ ++ Bearbeite lokales Quelldokument ++
    ++ EDIT_SCREEN ++ ++ M-e ++ ++ M-e ++ ++ Bearbeite eine Kopie des verarbeiteten Dokuments ++
    PIPE_BUF||Leite aktuellen Pufferinhalt einem Shell-Befehl zu und zeige Ausgabe = an
    ++ DOWNLOAD=20 ++ ++ M-s ++ ++ M-s ++ ++ Dokument-Quellcode speichern ++
    ++ SAVE_SCREEN ++ ++ S ++ ++ S, p ++ ++ Speichere verarbeitetes Dokument ++
    ++

    Navigation zwischen Puffern und Reitern

    ++
    ++ BACK ++ ++ B ++ ++ B, C-b, LEFT ++ ++ Schlie=C3=9Fe aktuellen Puffer und kehre zu dem im Stapel darunterli= egenden zur=C3=BCck ++
    ++ SELECT_MENU ++ ++ s ++ ++ s, C-h ++ ++ =C3=96ffne Pufferstapel-Men=C3=BC ++
    ++ TAB_MENU ++ ++ M-t ++ ++ M-t ++ ++ =C3=96ffne das Reiter-Auswahl-Men=C3=BC ++
    ++ NEW_TAB ++ ++ T ++ ++ T ++ ++ =C3=96ffne neuen Reiter (mit aktuellem Dokument) ++
    ++ TAB_LINK ++ ++ C-t ++ ++ C-t ++ ++ Folge dem aktuellen Hyperlink in einem neuen Reiter ++
    ++ NEXT_TAB ++ ++ } ++ ++ } ++ ++ Schalte zum n=C3=A4chsten Reiter ++
    ++ PREV_TAB ++ ++ { ++ ++ { ++ ++ Schalte zum vorherigen Reiter ++
    ++ CLOSE_TAB ++ ++ C-q ++ ++ C-q ++ ++ Schlie=C3=9Fe aktuellen Reiter ++
    ++

    Suchfunktionen

    ++
    ++ SEARCH ++ ++ / ++ ++ /, C-s ++ ++ Suche vorw=C3=A4rts ++
    ++ SEARCH_BACK ++ ++ ? ++ ++ ++ Suche r=C3=BCckw=C3=A4rts ++
    ++ ISEARCH ++ ++ C-s ++ ++ ++ Inkrementelle Suche vorw=C3=A4rts ++
    ++ ISEARCH_BACK ++ ++ C-r ++ ++ ++ Inkrementelle Suche r=C3=BCckw=C3=A4rts ++
    ++ SEARCH_NEXT ++ ++ n ++ ++ n ++ ++ Setze Suche vorw=C3=A4rts fort ++
    ++ SEARCH_PREV ++ ++ N ++ ++ ++ Setze Suche r=C3=BCckw=C3=A4rts fort ++
    ++ WRAP_TOGGLE ++ ++ C-w ++ ++ w ++ ++ Wechsle zwischen umlaufendem und nicht-umlaufendem Suchen ++
    ++

    Arbeit mit Textmarken

    ++
    ++ MARK ++ ++ C-SPC ++ ++ C-SPC ++ ++ Setze/L=C3=B6sche Markierung ++
    ++ PREV_MARK ++ ++ M-p ++ ++ P ++ ++ Gehe zur vorherigen Markierung ++
    ++ NEXT_MARK ++ ++ M-n ++ ++ N ++ ++ Gehe zur n=C3=A4chsten Markierung ++
    ++ REG_MARK ++ ++ " ++ ++ " ++ ++ Markiere alle Vorkommen eines Zeichenmusters ++
    ++

    Verschiedenes

    ++
    ++ COMMAND ++ ++ M-c ++ ++ M-c ++ ++ Rufe eine oder mehrere durch Strichpunkt getrennte w3m-Funktionen auf ++
    ++ HELP ++ ++ H ++ ++ H, ? ++ ++ Zeige Hilfe-=C3=9Cbersicht ++
    ++ OPTIONEN ++ ++ o ++ ++ o ++ ++ Einstellungs-Dialog =C3=B6ffnen ++
    SET_OPTIONM-oM-oSetze Option
    DEFINE_KEYM-kM-kDefiniere eine Verbindung zwischen einer Tastenkombination und einem = Kommando
    MOUSE_TOGGLEmmSchalte Mausbedienung an oder ab
    DOWNLOAD_LISTDD=C3=9Cbersicht heruntergeladener Dateien anzeigen
    ++ COOKIE ++ ++ C-k ++ ++ C-k ++ ++ Zeige die gespeicherten Cookies ++
    UNDO((Nimm die letzte Cursorbewegung zur=C3=BCck
    REDO))Den letzten R=C3=BCcknahmebefehl zur=C3=BCcknehmen
    ++ EXEC_SHELL=20 ++ ++ ! ++ ++ ! ++ ++ Shell-Befehl ausf=C3=BChren ++
    DICT_WORDM-wM-wF=C3=BChre eine W=C3=B6rterbuch-Funktion aus (siehe README.dict)
    DICT_WORD_ATM-WM-WBenutze W=C3=B6rterbuch f=C3=BCr Wort unter Cursor
    VERSIONrrZeige die Version von w3m an
    ++ SUSPEND ++ ++ C-z ++ ++ C-z ++ ++ w3m zum Hintergrundprozess machen. (Wird mit dem Shell-Befehl fg zur=C3=BCckgenommen.) ++
    ++ QUIT ++ ++ q ++ ++ q ++ ++ Mit Best=C3=A4tigungsfrage beenden ++
    ++ EXIT ++ ++ Q ++ ++ Q ++ ++ Sofort beenden ++
    ++ ++

    ++ Dar=C3=BCber hinaus gibt es die folgenden Bedien-Modi mit fester Tasta= turbelegung f=C3=BCr die entsprechenden Funktionen. Diese sind nicht durch = die Funktion DEFINE_KEY oder Eintr=C3=A4ge der keymap-Datei ver=C3=A4nderba= r. ++

    ++=20=20=20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
    ++ Funktion
    (interner Name) ++
    Tastenkombination ++ ++ Beschreibung ++
    ++

    Men=C3=BC-Auswahl-Modus

    ++
    ++ BUF:NEXT ++ j, C-n, DOWN ++ ++ N=C3=A4chster Eintrag ++
    BUF:PREV ++ ++ k, C-p, UP ++ ++ Vorheriger Eintrag ++
    ++ BUF:DELETE ++ D ++ ++ L=C3=B6sche Eintrag ++
    ++ BUF:GO ++ ++ SPC, RET, RIGHT ++ ++ W=C3=A4hle Eintrag aus ++
    ++

    Popup-Men=C3=BC-Modus

    ++
    ++MENU:SELECT ++ ++ SPC, RET, RIGHT ++ W=C3=A4hle Punkt aus ++
    ++MENU:CLOSE ++ C-c ++ ++ Schlie=C3=9Fe Men=C3=BC ++
    ++MENU:CANCEL ++ ++ LEFT, BKSPC, C-h ++ Einen Auswahlschritt zur=C3=BCck ++
    ++MENU:DOWN ++ j, C-n, DOWN ++ ++ Gehe zum n=C3=A4chsten Punkt ++
    ++MENU:UP ++ ++ k, C-p, UP ++ Gehe zum vorherigen Punkt ++
    ++MENU:LINE_UP ++ K ++ ++ Scrolle einen Punkt aufw=C3=A4rts ++
    ++MENU:LINE_DOWN ++ J ++ ++ Scrolle einen Punkt abw=C3=A4rts ++
    ++MENU:TOP ++ C-a ++ ++ Gehe zum ersten Punkt ++
    ++MENU:LAST ++ C-e ++ ++ Gehe zum letzten Punkt ++
    ++MENU:NEXT ++ C-v, C-f ++ Gehe zur n=C3=A4chsten Seite ++
    ++MENU:PREV ++ ESC v, C-b ++ ++ Gehe zur vorherigen Seite ++
    ++MENU:SEARCH_FORE ++ C-s, / ++ ++ Suche vorw=C3=A4rts ++
    ++MENU:SEARCH_BACK ++ ++ C-r, ? ++ Suche r=C3=BCckw=C3=A4rts ++
    ++MENU:SEARCH_NEXT ++ ++ n ++ Suche weitere =C3=9Cbereinstimmung
    ++MENU:SEARCH_PREV ++ ++ N ++ Suche fr=C3=BChere =C3=9Cbereinstimmung
    ++

    Eingabezeile-Bearbeitungs-Modus

    ++
    ++ LINEEDIT:FORWARD ++ ++ C-f, RIGHT ++ ++ Bewege Cursor vorw=C3=A4rts ++
    ++LINEEDIT:BACK ++ ++ C-b, LEFT ++ ++ Bewege Cursor r=C3=BCckw=C3=A4rts ++
    ++LINEEDIT:BS ++ ++ C-h, BKSPC ++ ++ Vorheriges Zeichen l=C3=B6schen ++
    ++LINEEDIT:DEL ++ ++ C-d ++ ++ Aktuelles Zeichen l=C3=B6schen ++
    ++LINEEDIT:KILL_AFTER ++ ++ C-k ++ ++ L=C3=B6sche alles nach dem Cursor ++
    ++LINEEDIT:KILL_BEFORE ++ ++ C-u ++ ++ L=C3=B6sche alles vor dem Cursor ++
    ++LINEEDIT:TOP ++ ++ C-a ++ ++ Gehe zum Zeilenanfang ++
    ++LINEEDIT:BOTTOM ++ ++ C-e ++ ++ Gehe zum Zeilenende ++
    ++LINEEDIT:PREV ++ ++ C-p, UP ++ ++ Hole den vorherigen Chronik-Eintrag ++
    ++LINEEDIT:NEXT ++ ++ C-n, DOWN ++ ++ Hole den n=C3=A4chsten Chronik-Eintrag ++
    ++LINEEDIT:COMPLETE ++ ++ TAB, SPC ++ ++ Versuche, den Dateinamen zu komplettieren ++
    ++LINEEDIT:EDITOR ++ ++ C-o ++ ++ Bearbeite mit externem Editor ++
    ++LINEEDIT:ACCEPT ++ ++ RET ++ ++ Eingabezeile =C3=BCbernehmen ++
    ++ ++ ++
    ++

    ++ Bedienung per Maus ++

    ++

    ++ Wenn w3m mit Mausfunktionen kompiliert wurde und Sie das Programm entw= eder in einer Konsole mit GPM oder in einem X-Terminal-Emulator starten, is= t ein Navigieren mit der Maus m=C3=B6glich. (Im Falle von rxvt m=C3=BCssen = Sie die Umgebungsvariable TERM mit xterm oder kxterm belegen.) ++

    ++

    Die Datei README.mouse erkl=C3=A4rt, w= ie die Bedienung per Maus an eigene Vorlieben angepasst werden kann. ++

    ++ ++ ++ ++ ++ ++ ++ ++ ++ =20=20=20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
    Handlung ++ Beschreibung ++
    ++ Linksklick ++ ++Zuerst:
    Der Cursor wird an die Mauszeigerposition versetzt. Dann:
    Dem Hyperlink, auf dem der Cursor momentan steht und auf= den sich der Mauszeiger richtet, wird gefolgt. ++
    ++ Mittelklick ++ ++ Zur=C3=BCck zum vorherigen Puffer. ++
    ++ Rechtsklick ++ ++ =C3=96ffne Men=C3=BC. Sie k=C3=B6nnen Men=C3=BCpunkte durch Anklicke= n ausw=C3=A4hlen. ++
    ++ Linksziehen ++ ++ Dokument scrollen. Standardm=C3=A4=C3=9Fig wird das Dokument im Fens= ter verschoben. Ein Verschieben des Fensters =C3=BCber dem stehenden Dokume= nt erreichen Sie =C3=BCber den Einstellungs-Dialog. ++
    ++
    ++

    ++ Lokale CGI-Skripte ++

    ++

    ++ w3m ist in der Lage, CGI-Skripte direkt laufen zu lassen. Dies bedeute= t, dass sich das Programm wie ein HTTP-Server verh=C3=A4lt und das CGI-Skri= pt ausf=C3=BChrt und dessen Ausgabe anzeigt. Beispielsweise wurden die Lese= zeichen-Registrierung und der Verzeichnis-Browser als lokale CGI-Skripte pr= ogrammiert. Dar=C3=BCber hinaus kann w3m durch solche Skripte als Schnittst= elle zum Einholen von Daten aller Art fungieren. ++

    ++

    ++ Aus Sicherheitsgr=C3=BCnden kommen f=C3=BCr von w3m benutzte CGI-Skrip= te nur folgende Verzeichnisse in Frage: ++

    ++
      ++
    • ++ Das Verzeichnis, in dem w3m-bezogene Dateien abgelegt sind (typischer= weise /usr/local/lib/w3m). Auf dieses Verzeichnis kann mit der Variblen $LI= B referenziert werden. ++
    • ++
    • ++ Das Verzeichnis /cgi-bin/. Sie k=C3=B6nnen /cgi-bin/ im Feld Verze= ichnis f=C3=BCr ausf=C3=BChrbare Skripte des Einstellungs-Dialogs jedem= gew=C3=BCnschten Verzeichnis zuordnen. Mehrere Pfade lassen sich durch Dop= pelpunkt getrennt angeben, also in der Form /usr/local= /cgi-bin:/home/aito/cgi-bin. Es wird davon abgeraten, das aktuelle V= erzeichnis hier mitaufzunehmen. Zum Zugriff auf Skripte im Verzeichnis /cgi= -bin/ erwartet w3m eine URL folgender Art: ++
    • ++
      ++ w3m -o cgi_bin=3D/path/to/cgi-bin file:/cgi-bin/script.cgi
      ++
      ++
    ++

    ++ Das CGI-Skript kann zur Steuerung von w3m die spezielle Kopfzeile w3m-control: enthalten. Darin k=C3=B6nnen alle Fun= kionen (siehe README.func) eingetragen sein. Di= e angegebene Funktion wird aufgerufen, nachdem das Dokument angezeigt wird.= Beispielsweise, wird eine Skriptausgabe ++

    ++
    ++Content-Type: text/plain
    W3m-control: BACK ++
    ++

    ++ eine leere Seite anzeigen und den Puffer sofort l=C3=B6schen. Dies ist= n=C3=BCtzlich, wenn es nicht gew=C3=BCnscht ist, die Seite nach Aufrufen d= es Skriptes anzuzeigen. Das n=C3=A4chste Beispiel ++

    ++
    ++Content-Type: text/plain
    W3m-control: DELETE_PREVBUF contents..... ++
    ++

    ++ f=C3=BChrt zum =C3=9Cbergehen des aktuellen Puffers. ++

    ++

    ++ Jede w3m-control-Kopfzeile kann nur eine = Funktion aufrufen. Jedoch k=C3=B6nnen Sie im Kopfteil einer HTTP-Kommunikat= ion mehr als eine w3m-control-Anweisung hinterl= egen. =C3=9Cberdies ist es m=C3=B6glich, die GOTO-Funktion mit einem Argume= nt aufzurufen: ++

    ++
    ++Content-Type: text/plain
    W3m-control: GOTO http://www.example.org/ ++
    ++

    ++ Sie bewirken damit das gleiche wie mit der Anweisung Location:= im Kopfteil: ++

    ++
    ++Content-Type: text/plain
    Location: http://www.example.org/ ++
    ++

    ++ Beachten Sie, dass diese Anweisung wirkungslos ist, wenn das CGI-Skrip= t durch einen HTTP-Server angesprochen wird. ++

    ++ ++ +diff --git a/doc-de/README.func b/doc-de/README.func +new file mode 100644 +index 0000000..72d7d45 +--- /dev/null ++++ b/doc-de/README.func +@@ -0,0 +1,146 @@ ++ABORT Sofort beenden ++ACCESSKEY =C3=96ffne Zugangstasten-Men=C3=BC ++ADD_BOOKMARK Lege f=C3=BCr aktuelle Seite Lesezeichen an ++ALARM Alarm einrichten ++BACK Schlie=C3=9Fe aktuellen Puffer und kehre zu dem im Stapel darunterl= iegenden zur=C3=BCck ++BEGIN Gehe zur ersten Zeile ++BOOKMARK Lesezeichen ansehen ++CENTER_H Um Cursor herum horizontal zentrieren ++CENTER_V Um Cursor herum vertikal zentrieren ++CHARSET =C3=84ndere die Zeichenkodierung f=C3=BCr das aktuelle Dokument ++CLOSE_TAB Schlie=C3=9Fe Reiter ++CLOSE_TAB_MOUSE Schlie=C3=9Fe Reiter bei Mauszeiger ++COMMAND Rufe w3m Funktion(en) auf ++COOKIE Cookie-Liste ansehen ++DEFAULT_CHARSET =C3=84ndere die Voreinstellung f=C3=BCr die Zeichenkodier= ung ++DEFINE_KEY Definiere eine Verbindung zwischen einer Tastenkombination und= einem Kommando ++DELETE_PREVBUF L=C3=B6sche vorherigen Puffer (haupts=C3=A4chlich f=C3=BCr= lokale CGI-Skripte) ++DICT_WORD F=C3=BChre eine W=C3=B6rterbuch-Funktion aus (siehe README.dict) ++DICT_WORD_AT Benutze W=C3=B6rterbuch f=C3=BCr Wort unter Cursor ++DISPLAY_IMAGE Starte das Laden und die Erstellung von Bildern erneut ++DOWN Scrolle den Anzeigebereich eine Zeile abw=C3=A4rts ++DOWNLOAD Dokument-Quellcode speichern ++DOWNLOAD_LIST Die =C3=9Cbersicht heruntergeladener Dateien zeigen ++EDIT Bearbeite lokales Quelldokument ++EDIT_SCREEN Bearbeite eine Kopie des verarbeiteten Dokuments ++END Gehe zur letzten Zeile ++EXEC_SHELL F=C3=BChre Shell-Befehl aus und zeige Ausgabe an ++EXIT Sofort beenden ++EXTERN Verwende externen Browser zur Anzeige ++EXTERN_LINK Verwende externen Browser zur Anzeige des Linkziels ++FRAME Wechsle zwischen Kennung und Umsetzung von HTML-Frames ++GOTO =C3=96ffne angegebenes Dokument in neuem Puffer ++GOTO_LINE Gehe zur angebenen Zeile ++GOTO_LINK Folge dem aktuellen Hyperlink in neuem Puffer ++GOTO_RELATIVE Gehe zu relativer Adresse ++HELP Zeige Hilfe-=C3=9Cbersicht ++HISTORY Chronik aufgesuchter Dokumente ++INFO Zeige Informationen =C3=BCber dieses Dokument ++INTERRUPT w3m zum Hintergrundprozess machen ++ISEARCH Inkrementelle Suche vorw=C3=A4rts ++ISEARCH_BACK Inkrementelle Suche r=C3=BCckw=C3=A4rts ++LEFT Anzeigebereich um eine Spalte nach links verschieben ++LINE_BEGIN Gehe zum Zeilenanfang ++LINE_END Gehe zum Zeilenende ++LINE_INFO Zeige aktuelle Position im Dokument an ++LINK_BEGIN Gehe zum ersten Hyperlink ++LINK_END Gehe zum letzten Hyperlink ++LINK_MENU =C3=96ffne Men=C3=BC mit den Link-Elementen ++LIST Zeige alle referenzierten URLs ++LIST_MENU =C3=96ffne Men=C3=BC mit aufsuchbaren Hyperlinks ++LOAD =C3=96ffne lokale Datei in einem neuen Puffer ++MAIN_MENU =C3=96ffne Men=C3=BC ++MARK Setze/L=C3=B6sche Markierung ++MARK_MID Wandle Nachrichten-ID-artige Zeichenketten um in Hyperlinks ++MARK_URL Wandle URL-artige Zeichenketten um in Hyperlinks ++MARK_WORD Wandle aktuelles Wort in Hyperlink um ++MENU =C3=96ffne Men=C3=BC ++MENU_MOUSE =C3=96ffne Men=C3=BC beim Mauszeiger ++MOUSE_TOGGLE Schalte Mausbedienung an oder ab ++MOVE_DOWN Cursor abw=C3=A4rts ++MOVE_DOWN1 Cursor abw=C3=A4rts; am Rand gleitend bewegen ++MOVE_LEFT Cursor nach links ++MOVE_LEFT1 Cursor nach links; am Rand gleitend bewegen ++MOVE_LIST_MENU =C3=96ffne Men=C3=BC mit vorhandenen Hyperlinks ++MOVE_MOUSE Cursor auf Mauszeigerposition setzen ++MOVE_RIGHT Cursor nach rechts ++MOVE_RIGHT1 Cursor nach rechts; am Rand gleitend bewegen ++MOVE_UP Cursor aufw=C3=A4rts ++MOVE_UP1 Cursor aufw=C3=A4rts; am Rand gleitend bewegen ++MSGS Zeige Fehlermeldungen an ++NEW_TAB =C3=96ffne neuen Reiter (mit aktuellem Dokument) ++NEXT Schalte zum n=C3=A4chsten Puffer ++NEXT_DOWN Gehe abw=C3=A4rts zum n=C3=A4chsten Hyperlink ++NEXT_HALF_PAGE Scrolle eine halbe Seite abw=C3=A4rts ++NEXT_LEFT Gehe zum n=C3=A4chsten Hyperlink links ++NEXT_LEFT_UP Gehe zum n=C3=A4chsten Hyperlink links oder oberhalb ++NEXT_LINK Gehe zum n=C3=A4chsten Hyperlink ++NEXT_MARK Gehe zur n=C3=A4chsten Markierung ++NEXT_PAGE Eine Seite abw=C3=A4rts ++NEXT_RIGHT Gehe zum n=C3=A4chsten Hyperlink rechts ++NEXT_RIGHT_DOWN Gehe zum n=C3=A4chsten Hyperlink rechts oder unterhalb ++NEXT_TAB Schalte zum n=C3=A4chsten Reiter ++NEXT_UP Gehe zum n=C3=A4chsten Hyperlink oberhalb ++NEXT_VISITED Gehe zum n=C3=A4chsten besuchten Hyperlink ++NEXT_WORD Gehe zum n=C3=A4chsten Wort ++NOTHING Tue nichts ++NULL Tue nichts ++OPTIONS Zeige Einstellungen f=C3=BCr =C3=84nderungen ++PEEK Zeige aktuelle Adresse an ++PEEK_IMG Zeige Adresse des Bildes ++PEEK_LINK Zeige Zieladresse ++PIPE_BUF Leite aktuellen Pufferinhalt einem Shell-Befehl zu und zeige Aus= gabe an ++PIPE_SHELL F=C3=BChre Shell-Befehl aus und zeige Ausgabe an ++PREV Schalte zum vorherigen Puffer ++PREV_HALF_PAGE Scrolle eine halbe Seite aufw=C3=A4rts ++PREV_LINK Gehe zum vorangegangen Hyperlink ++PREV_MARK Gehe zur vorherigen Markierung ++PREV_PAGE Eine Seite aufw=C3=A4rts ++PREV_TAB Schalte zum vorherigen Reiter ++PREV_VISITED Gehe zum vorherigen besuchten Hyperlink ++PREV_WORD Gehe zum vorherigen Wort ++PRINT Speichere verarbeitetes Dokument ++QUIT Mit Best=C3=A4tigungsfrage beenden ++READ_SHELL F=C3=BChre Shell-Befehl aus und zeige Ausgabe an ++REDO Den letzten R=C3=BCcknahmebefehl zur=C3=BCcknehmen ++REDRAW Bildschirmanzeige neu aufbauen ++REG_MARK Zu einem Muster passenden Zeichenfolgen =C3=BCberall markieren ++REINIT Konfigurationsdatei erneut laden ++RELOAD Aktuelles Dokument erneut laden ++RESHAPE Dokument nochmals verarbeiten ++RIGHT Anzeigebereich um eine Spalte nach rechts verschieben ++SAVE Dokument-Quellcode speichern ++SAVE_IMAGE Speichere Bild ++SAVE_LINK Speichere Ziel des Hyperlinks ++SAVE_SCREEN Speichere verarbeitetes Dokument ++SEARCH Suche vorw=C3=A4rts ++SEARCH_BACK Suche r=C3=BCckw=C3=A4rts ++SEARCH_FORE Suche vorw=C3=A4rts ++SEARCH_NEXT Setze Suche vorw=C3=A4rts fort ++SEARCH_PREV Setze Suche r=C3=BCckw=C3=A4rts fort ++SELECT Zeige Puffferstapel-=C3=9Cbersicht ++SELECT_MENU =C3=96ffne Puffferstapel-Men=C3=BC ++SETENV Setze Umgebungsvariable ++SET_OPTION Setze Option ++SHELL F=C3=BChre Shell-Befehl aus und zeige Ausgabe an ++SHIFT_LEFT Anzeigebereich nach links versetzen ++SHIFT_RIGHT Anzeigebereich nach rechts versetzen ++SOURCE Wechsle zwischen HTML-Wiedergabe und -Verarbeitung ++STOP_IMAGE Bilder nicht mehr laden und anzeigen ++SUBMIT Formular =C3=BCbermitteln ++SUSPEND w3m zum Hintergrundprozess machen ++TAB_GOTO =C3=96ffne das angegebene Dokument in einem neuen Reiter ++TAB_GOTO_RELATIVE =C3=96ffne relative Adresse in einem neuen Reiter ++TAB_LEFT Einen Reiter weiter nach links gehen ++TAB_LINK Folge dem aktuellen Hyperlink in einem neuen Reiter ++TAB_MENU =C3=96ffne das Reiter-Auswahl-Men=C3=BC ++TAB_MOUSE W=C3=A4hle per Maus Reiter aus ++TAB_RIGHT Einen Reiter weiter nach rechts gehen ++UNDO Nimm die letzte Cursorbewegung zur=C3=BCck ++UP Scrolle den Anzeigebereich eine Zeile aufw=C3=A4rts ++VERSION Zeige die Version von w3m an ++VIEW Wechsle zwischen HTML-Wiedergabe und -Verarbeitung ++VIEW_BOOKMARK Lesezeichen ansehen ++VIEW_IMAGE Zeige Bild in Betrachter ++WHEREIS Suche vorw=C3=A4rts ++WRAP_TOGGLE Wechsle zwischen umlaufendem und nicht-umlaufendem Suchen +diff --git a/doc-de/w3m.1 b/doc-de/w3m.1 +new file mode 100644 +index 0000000..7deb203 +--- /dev/null ++++ b/doc-de/w3m.1 +@@ -0,0 +1,334 @@ ++.nr N -1 ++.nr D 5 ++.\"******************************************************************* ++.\" ++.\" This file was generated with po4a. Translate the source file. ++.\" ++.\"******************************************************************* ++.TH W3M 1 2016\-08\-06 "w3m 0.5.3"=20 ++.SH NAME ++w3m \- Ein auf Texte ausgerichtetes Programme zur Anzeige von Dateien und ++Datenstr=C3=B6men sowie zum Browsen im Internet ++.SH SYNOPSIS ++w3m [OPTION]... [ \fIDatei\fP | \fIURL\fP ]... ++.SH BESCHREIBUNG ++.\" This defines appropriate quote strings for nroff and troff ++.ds lq " ++.ds rq " ++.if t .ds lq `` ++.if t .ds rq '' ++.if \nN=3D=3D0 .nr N 10 ++.\" Just in case these number registers aren't set yet... ++.if \nD=3D=3D0 .nr D 5 ++ ++\fIw3m\fP ist ein textorientierter Browser, der lokale oder im Internet ++liegende Seiten sowie andere Dokumente anzeigen kann. Er verarbeitet ++HTML\-Tabellen und Frames, nicht jedoch JavaScript und Cascading Style ++Sheets. \fIw3m\fP kann auch als Textbetrachter (Pager) dienen. Entspreche= nde ++Dateien werden beim Aufruf als Argument angegeben oder an der ++Standardeingabe als Datenstrom =C3=BCbernommen. Mit \fIw3m\fP kann sich d= er Benutzer ++=C3=BCberdies durch Verzeichnisb=C3=A4ume bewegen. ++ ++\fIw3m\fP arbeitet mit Reitern (Registerkarten, Tabs) und Puffern, was ei= nen ++einfachen Wechsel zwischen geladenen Inhalten erlaubt. Wenn die Erweiteru= ng ++w3m\-img installiert ist, zeigt \fIw3m\fP auch in die Seiten eingebundene ++Grafiken an. Wann immer die Umsetzung von HTML\-Inhalten durch \fIw3m\fP = Ihren ++Anspr=C3=BCchen nicht gen=C3=BCgt, reicht ein einzelnes Kommando, um die = Ziel\-URL ++einem grafischen Browser zu =C3=BCbergeben. ++ ++Um nach Start des Programms Hilfe zu den Optionen zu erhalten, dr=C3=BCck= en Sie ++\(lqH\(rq. ++ ++.SH ARGUMENTE ++ ++Wenn das Programm mit einem oder mehreren Argumenten aufgerufen wird, ++behandelt \fIw3m\fP diese Ziele je nach Typ des Inhalts. Bei Daten aus dem ++Internet verwertet \fIw3m\fP die Angabe in den HTTP\-Kopfzeilen. Bei rela= tiven ++oder absoluten Pfaden in Dateisystemen richtet sich \fIw3m\fP nach dem ++Dateinamen. ++ ++Ohne Argument aufgerufen, erwartet \fIw3m\fP unformatierte Daten aus der ++Standardeingabe, es sei denn, der Benutzer hat einen anderen MIME\-Typ ++angegeben. ++ ++Sollte \fIw3m\fP weder ein Zielobjekt vorliegen noch ein Ausweichen vorge= sehen ++sein (beispielsweise durch die Option \fB\-v\fP, siehe unten), gibt das P= rogramm ++nur Benutzungshinweise aus. ++.SH OPTIONEN ++Vor Befehlszeilen\-Optionen steht das \(lq\-\(rq Zeichen einzeln, ihnen k= ann ++ein Argument folgen. ++.SS "Allgemeine Optionen" ++.TP=20 ++\fB\-B\fP ++starte mit einer Ansicht aller Lesezeichen (wenn kein anderes Zielobjekt ++angegeben ist) ++.TP=20 ++\fB\-M\fP ++monochrome Anzeige ++.TP=20 ++\fB\-no\-mouse\fP ++Mausfunktion aus ++.TP=20 ++\fB\-num\fP ++zeige Zeilennummern an ++.TP=20 ++\fB\-N\fP ++verteile die =C3=BCbergebenen Argumente unter Reitern. Standardm=C3=A4=C3= =9Fig w=C3=BCrde ein ++Stapel von Puffern benutzt ++.TP=20=20 ++\fB\-ppc \fP\fInum\fP ++Weite von \fInum\fP Bildpunkten pro Zeichen, einstellbar von 4.0 bis 32.0, ++standardm=C3=A4=C3=9Fig 8.0. Gr=C3=B6=C3=9Fere Werte machen Tabellen enge= r. (Implementierung ++unklar) ++.TP=20 ++\fB\-ppl \fP\fInum\fP ++H=C3=B6he von \fInum\fP Bildpunkten pro Linie, einstellbar von 4.0 bis ++64.0. (Implementierung unklar) ++.TP=20 ++\fB\-title\fP, \fB\-title=3DTERM\fP ++verwende den Puffernamen auch als Titel des Terminalfensters. Soweit TERM ++eingegeben wurde, konfiguriert dieser Wert den Stil des Titels ++.TP=20 ++\fB\-v\fP ++begr=C3=BC=C3=9Fe den Benutzer mit einer eingebauten Seite (wenn kein and= eres ++Zielobjekt angegeben ist) ++.TP=20 ++\fB\-W\fP ++wechsle zwischen umlaufendem und nicht umlaufendem Suchen ++.TP=20 ++\fB\-X\fP ++initialisiere nach Verlassen des Programms das Terminal nicht neu ++.TP=20 ++\fB+\fP\fIZahl\fP ++gehe zu Zeile \fIZahl\fP; wirkt nur, wenn \fIZahl\fP gr=C3=B6=C3=9Fer ist= als die im ++Terminal verf=C3=BCgbare Zeilenzahl ++.SS Browser\-Optionen ++.TP=20 ++\fB\-cols \fP\fInum\fP ++bei f=C3=BCr die Standardausgabe bestimmten Inhalten, nimm bei der Umsetz= ung von ++HTML eine L=C3=A4nge von \fInum\fP Zeichen pro Zeile ++.TP=20 ++\fB\-cookie\fP, \fB\-no\-cookie\fP ++verwende gespeicherte Cookies und akzeptiere neue. Oder tue weder das eine ++noch das andere ++.TP=20 ++\fB\-F\fP ++verarbeite Frames ++.TP=20 ++\fB\-graph\fP, \fB\-no\-graph\fP ++bei der Umsetzung von Tabellen und Frames grafische Zeichen verwenden oder ++nicht verwenden ++.TP=20 ++\fB\-header \fP\fIZeichenkette\fP ++f=C3=BCge \fIZeichenkette\fP der HTTP(S)\-Anfrage an. Diese muss der Kopf= daten\-Syntax ++\f(CWVariable: Wert\fP entsprechen ++.TP=20 ++\fB\-m\fP ++stelle eine Usenet\-Nachricht entsprechend \(lqContent\-type\(rq in den ++Kopfdaten dar ++.TP=20 ++\fB\-no\-proxy\fP ++verwende keinen Proxy ++.TP=20 ++\fB\-post \fP\fIDatei\fP ++verwende die Methode POST, um in \fIDatei\fP hinterlegte Daten ++hochzuladen. Hierbei wird die Syntax \f(CWvar1=3Dwert1[&var2=3Dwert2]=E2= =80=A6\fP erwartet ++.TP=20 ++\fB\-4\fP ++nur IPv4. Entspricht dns_order=3D4 in der Konfigurationsdatei ++.TP=20 ++\fB\-6\fP ++nur IPv6. Entspricht dns_order=3D6 in der Konfigurationsdatei ++.SS Textbetrachter\-Optionen ++.TP=20 ++\fB\-l \fP\fInum\fP ++Anzahl der Zeilen, die zwischengespeichert werden, wenn Text per ++Standardeingabe =C3=BCbergeben wurde. (Voreinstellung ist 10000) ++.TP=20 ++\fB\-r\fP ++verarbeite spezielle Escape\-Zeichen (beispielsweise ANSI\-Escape\-Zeiche= n oder ++nroff\-R=C3=BCckw=C3=A4rtsschritte f=C3=BCr fette und unterstrichene Zeic= hen) nicht, sondern ++zeige sie stattdessen mittels Caret\-Notation. ++.TP=20 ++\fB\-s\fP ++mehrere leere Zeilen werden bis auf eine gel=C3=B6scht ++.TP=20 ++\fB\-t\fP \fInum\fP ++ber=C3=BCcksichtige Tab\-Zeichen so, dass Spalten mit einer Weite von \fI= num\fP ++Zeichen entstehen ++.SS "Datenart\- und Datenkodierungs\-Optionen" ++.TP=20 ++\fB\-I \fP\fIcharset\fP ++zu benutzende Zeichenkodierung f=C3=BCr erhaltene Daten ++.TP=20 ++\fB\-O \fP\fIcharset\fP ++zu benutzende Zeichenkodierung f=C3=BCr auszugebende Daten ++.TP=20 ++\fB\-T \fP\fITyp\fP ++zu benutzender MIME\-Typ f=C3=BCr erhaltenen Daten ++.SS "Optionen zur Datenausgabe, mit sofortigem Verlassen des Programms" ++.TP=20 ++\fB\-dump\fP ++leite die verarbeitete Seite der Standardausgabe zu. Die Option gilt als ++gesetzt, wenn der Aufruf beinhaltet, dass die Ausgabe in eine Datei ++umgeleitet oder einem weiteren Programm =C3=BCbergeben wird. ++.TP=20 ++\fB\-dump_source\fP ++leite den Seitenquelltext der Standardausgabe zu ++.TP=20 ++\fB\-dump_head\fP ++leite die Antwort einer HEAD\-Anfrage f=C3=BCr eine URL der Standardausga= be zu ++.TP=20 ++\fB\-dump_both\fP ++leite Antwort auf HEAD\-Anfrage und Seitenquelltext der Standardausgabe zu ++.TP=20 ++\fB\-dump_extra\fP ++leite Antwort auf HEAD\-Anfrage, Seitenquelltext und Extrainformation der ++Standardausgabe zu ++.TP=20 ++\fB\-help\fP ++zeige eine Zusammenfassung verf=C3=BCgbarer Funktionen und Befehlszeilen\= -Optionen ++.TP=20 ++\fB\-show\-option\fP ++zeige alle zur Konfiguration verf=C3=BCgbaren Optionen ++.TP=20 ++\fB\-version\fP ++gibt die Version von \fIw3m\fP aus ++.SS "Optionen, die Standards f=C3=BCr Einstellungen und Datenquellen au= =C3=9Fer Kraft setzen" ++.TP=20 ++\fB\-bookmark \fP\fIDatei\fP ++benutze anstelle der Standarddatei bookmark.html f=C3=BCr Lesezeichen die= Datei ++\fIDatei\fP ++.TP=20 ++\fB\-config \fP\fIDatei\fP ++benutze \fIDatei\fP anstelle der Standardkonfigurationsdatei ++.TP=20 ++\fB\-debug\fP ++BITTE NICHT BENUTZEN ++.TP=20 ++\fB\-o \fP\fIOption=3DWert\fP ++arbeite mit einer Konfiguration, bei der die Einstellung \fIOption\fP mit ++\fIWert\fP belegt ist. Ohne \fIOption=3DWert\fP gleichwertig mit \fB\-sho= w\-option\fP ++.TP=20 ++\fB\-reqlog\fP ++Protokolliere Header der HTTP\-Kommunikation in Datei \f(CW~/.w3m/request= .log\fP ++.SH BEISPIELE=09 ++.SS "Verwendung als Textbetrachter" ++.TP=20 ++zwei HTML\-Fragmente zusammengef=C3=BCgt anzeigen ++.EX ++$ cat header.html footer.html | w3m \-T text/html ++.EE ++.TP=20 ++zwei Dateien unter Reitern einander gegen=C3=BCberstellen ++.EX ++$ w3m \-N config.old config ++.EE ++.SS "browser\-artige Verwendung" ++.TP=20 ++zeige Internet\-Inhalt in monochromem Terminal ++.EX ++$ w3m \-M http://w3m.sourceforge.net ++.EE ++.TP=20 ++zeige eingebettete Grafiken an ++.EX ++$ w3m \-o auto_image=3DTRUE http://w3m.sourceforge.net ++.EE ++.TP=20 ++zeige Inhalt aus dem Usenet ++.EX ++$ w3m \-m nntp://news.aioe.org/comp.os.linux.networking ++.EE ++.TP=20 ++mit der POST\-Methode Daten f=C3=BCr eine URL hochladen=20 ++.EX ++$ w3m \-post \- http://example.com/form.php <<<'a=3D0&b=3D1' ++.EE ++.SS "filterartige Verwendung" ++.TP=20 ++konvertiere eine HTML\-Datei in reinen Text von bestimmter Zeilenl=C3=A4n= ge ++.EX ++$ w3m \-cols 40 foo.html > foo.txt ++.EE ++.TP=20 ++=C3=BCbergib den Bestand an Lesezeichen mit zugeh=C3=B6rigen Links als re= inen Text einer Datei. ++.EX ++$ w3m \-B \-o display_link_number=3D1 > out.txt ++.EE ++.TP=20 ++Konvertierung in ein anderes Dateiformat und eine andere Zeichenkodierung ++.EX ++$ w3m \-T text/html \-I EUC\-JP \-O UTF\-8 < foo.html > foo.txt ++.EE ++.SS "starte ohne Eingabedaten" ++.TP=20 ++begr=C3=BC=C3=9Fe den Benutzer mit einer eingebauten Seite ++.EX ++$ w3m \-v ++.EE ++.\".SH Errors ++.SH UMGEBUNGSVARIABLEN ++\fIw3m\fP weicht auf den Wert der Umgebungsvariablen WWW_HOME aus, wenn d= as ++Programm ohne Zielobjekt aufgerufen wurde. ++.SH DATEIEN ++.TP=20 ++\f(CW~/.w3m/bookmark.html\fP ++voreingestellte Datei f=C3=BCr Lesezeichen ++.TP=20 ++\f(CW~/.w3m/config\fP ++benutzerdefinierte Konfigurationsdatei; gegen=C3=BCber \f(CW/etc/w3m/conf= ig\fP ++vorrangig ++.TP=20 ++\f(CW~/.w3m/cookie\fP ++Ablageort f=C3=BCr Cookies; wird beim Verlassen des Programms geschrieben= und ++beim Aufruf gelesen ++.TP=20 ++\f(CW~/.w3m/history\fP ++Chronik besuchter Seiten und URLs ++.TP=20 ++\f(CW~/.w3m/keymap\fP ++benutzerdefinierte Tastaturbelegung, setzt standardm=C3=A4=C3=9Fige Beleg= ung au=C3=9Fer ++Kraft ++.TP=20 ++\f(CW~/.w3m/mailcap\fP ++Konfigurationsdatei f=C3=BCr Programme zur externen Anzeige ++.TP=20 ++\f(CW~/.w3m/menu\fP ++benutzerdefiniertes Men=C3=BC; vorrangig gegen=C3=BCber Standardmen=C3=BC ++.TP=20 ++\f(CW~/.w3m/mime.types\fP ++Datei mit MIME\-Typen ++.TP=20 ++\f(CW~/.w3m/mouse\fP ++benutzerdefinierte Mauseinstellungen ++.TP=20 ++\f(CW~/.w3m/passwd\fP ++Datei mit Nutzerkonto\-Passwort\-Liste ++.TP=20 ++\f(CW~/.w3m/pre_form\fP ++.\" .TP ++.\" .I $~/.w3m/urimethodmap ++.\" ??? ++enth=C3=A4lt vordefinierte Werte f=C3=BCr wiederkehrende HTML\-Formulare ++.SH "SIEHE AUCH" ++README und Beispieldateien finden Sie im Dokumentationsverzeichnis Ihrer ++\fIw3m\fP\-Installation. Aktuelle Informationen zu \fIw3m\fP finden Sie a= uf der ++Projektseite ++.UR http://w3m.sourceforge.net ++unter ++.UE ++.SH DANKSAGUNGEN ++In \fIw3m\fP ist Programmcode verschiedener Quellen eingeflossen. Benutzer ++haben mit Korrekturen (Patch\-Dateien) und Vorschl=C3=A4gen zur Verbesser= ung des ++Programms beigetragen. ++.SH AUTOR ++.UR aito@fw.ipsj.or.jp ++Akinori ITO ++.UE ++Die deutsche =C3=9Cbersetzung wurde 2016 von ++.UR markus.hiereth@freenet.de ++Markus Hiereth ++.UE ++erstellt. ++ +diff --git a/doc-jp/FAQ.html b/doc-jp/FAQ.html +index e16a986..86ef05a 100644 +--- a/doc-jp/FAQ.html ++++ b/doc-jp/FAQ.html +@@ -176,7 +176,7 @@ w3m + =CA=DD=C2=B8=A4=B7=A4=DE=A4=B9=A1=A5=B2=E8=C1=FC=A4=F2=CA=DD=C2=B8=A4=B9= =A4=EB=BE=EC=B9=E7=A4=CF ESC I =A4=C7=A4=B9=A1=A5 +

    +

    =A5=D7=A5=ED=A5=AD=A5=B7=A4=CE=C0=DF=C4=EA=A4=CF=A4=C9=A4=A6=A4=B9=A4= =EB=A4=CE=A1=A9 +-
    =B4=C4=B6=AD=CA=D1=BF=F4 HTTP_proxy =A4=F2=C0=DF=C4=EA=A4=B9=A4=EB=A4= =AB=A1=A4"o" =A5=B3=A5=DE=A5=F3=A5=C9=A4=CE=A5=AA=A5=D7=A5=B7=A5=E7=A5=F3= =C0=DF=C4=EA=A5=D1=A5=CD=A5=EB ++
    =B4=C4=B6=AD=CA=D1=BF=F4 HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY, FTP_P= ROXY =A4=F2=C0=DF=C4=EA=A4=B9=A4=EB=A4=AB=A1=A4"o" =A5=B3=A5=DE=A5=F3=A5=C9= =A4=CE=A5=AA=A5=D7=A5=B7=A5=E7=A5=F3=C0=DF=C4=EA=A5=D1=A5=CD=A5=EB + =A4=C7=C0=DF=C4=EA=A4=B7=A4=DE=A4=B9=A1=A5=CE=E3=A4=A8=A4=D0 proxy.hogege= .com =A4=C8=A4=A4=A4=A6=A5=DB=A5=B9=A5=C8=A4=CE 8000=C8=D6=A5=DD=A1=BC=A5= =C8=A4=F2 + =CD=F8=CD=D1=A4=B9=A4=EB=BE=EC=B9=E7=A1=A4 +

    +diff --git a/doc-jp/MANUAL.html b/doc-jp/MANUAL.html +index 41d70f1..66fdc6e 100644 +--- a/doc-jp/MANUAL.html ++++ b/doc-jp/MANUAL.html +@@ -51,15 +51,9 @@ w3m=20 +

    -l =B9=D4=BF=F4 +
    =C9=B8=BD=E0=C6=FE=CE=CF=A4=CE=C6=E2=CD=C6=A4=F2=C9=BD=BC=A8=A4=B9=A4= =EB=A4=C8=A4=AD=A4=CB=CA=DD=C2=B8=A4=B5=A4=EC=A4=EB=BA=C7=C2=E7=B9=D4=BF=F4= =A4=F2=BB=D8=C4=EA=A4=B9 + =A4=EB=A1=A5=A5=C7=A5=D5=A5=A9=A5=EB=A5=C8=A4=CF 10000=A1=A5 +-
    -s +-
    Shift_JIS =A5=B3=A1=BC=A5=C9=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 +-
    -e +-
    EUC =A5=B3=A1=BC=A5=C9=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 +-
    -j +-
    JIS(ISO-2022-JP) =A5=B3=A1=BC=A5=C9=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB=A1= =A5 +-
    -O e|s|j|N|m|n ++
    -O =CA=B8=BB=FA=A5=B3=A1=BC=A5=C9 +
    =C9=BD=BC=A8=A4=CB=CD=D1=A4=A4=A4=EB=CA=B8=BB=FA=A5=B3=A1=BC=A5=C9=A4= =F2=BB=D8=C4=EA=A4=B9=A4=EB=A1=A5 +-
    -I e|s ++
    -I =CA=B8=BB=FA=A5=B3=A1=BC=A5=C9 +
    =C6=FE=CE=CF=CA=B8=BD=F1=A4=CE=CA=B8=BB=FA=A5=B3=A1=BC=A5=C9=A4=F2=BB= =D8=C4=EA=A4=B9=A4=EB=A1=A5 +
    -T =A5=BF=A5=A4=A5=D7 +
    =C9=BD=BC=A8=A4=B9=A4=EB=CA=B8=BD=F1=A4=CE=A5=BF=A5=A4=A5=D7=A4=F2=BB= =D8=C4=EA=A4=B9=A4=EB=A1=A5=A4=B3=A4=CE=BB=D8=C4=EA=A4=AC=A4=CA=A4=A4=BE=EC= =B9=E7=A1=A4=A5=D5=A5=A1=A5=A4=A5=EB +@@ -89,7 +83,7 @@ HTML +
    =A5=AB=A5=E9=A1=BC=C9=BD=BC=A8=A4=F2=A4=B7=A4=CA=A4=A4=A1=A5 +
    -F +
    =A5=D5=A5=EC=A1=BC=A5=E0=A4=F2=BC=AB=C6=B0=C9=BD=BC=A8=A4=B9=A4=EB=A1= =A5 +-
    -S ++
    -s +
    =CF=A2=C2=B3=A4=B9=A4=EB=B6=F5=B9=D4=A4=F21=B9=D4=A4=CB=A4=DE=A4=C8= =A4=E1=A4=C6=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 +
    -X +
    w3m=BD=AA=CE=BB=BB=FE=A4=CB=A1=A4=B0=CA=C1=B0=A4=CE=B2=E8=CC=CC=A4=CB= =CC=E1=A4=E9=A4=CA=A4=A4=A1=A5 +@@ -211,9 +205,9 @@ HTML=CA=B8 + F<FRAMESET>=A4=F2=B4=DE=A4=E0=CA=B8=BD=F1=A4=F2=C9=BD= =BC=A8=A4=B7=A4=C6=A4=A4=A4=EB=A4=C8=A4=AD=A4=CB=A1=A4<FRAME> + =A5=BF=A5=B0=A4=CE=BB=D8=A4=B9=CA=A3=BF=F4=A4=CE=CA=B8=BD=F1=A4=F21=A4=C4= =A4=CE=CA=B8=BD=F1=A4=CB=CA=D1=B4=B9=A4=B7=A4=C6=C9=BD=BC=A8=A4=B7=A4=DE=A4= =B9=A1=A5 + M=B8=BD=BA=DF=B8=AB=A4=C6=A4=A4=A4=EB=A5=DA=A1=BC=A5=B8=A4=F2= =A1=A4=B3=B0=C9=F4=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC= =A8=A4=B7=A4=DE=A4=B9=A1=A5 +-2M, 3M =A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5= =B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++2M, 3M, ..., 9M =A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49=C8=D6=CC=DC= =A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 + ESC M=B8=BD=BA=DF=A4=CE=A5=EA=A5=F3=A5=AF=C0=E8=A4=F2=A1=A4= =B3=B0=C9=F4=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC=A8=A4= =B7=A4=DE=A4=B9=A1=A5 +-2ESC M, 3ESC M =A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9= =A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++2ESC M, 3ESC M, ..., 9ESC M =A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49= =C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1= =A5 + +=20 +

    =A5=D5=A5=A1=A5=A4=A5=EB=A4=C8URL=B4=D8=B7=B8=A4=CE=C1=E0=BA=EE

    +@@ -349,9 +343,9 @@ Lynx + F<FRAMESET>=A4=F2=B4=DE=A4=E0=CA=B8=BD=F1=A4=F2=C9=BD= =BC=A8=A4=B7=A4=C6=A4=A4=A4=EB=A4=C8=A4=AD=A4=CB=A1=A4<FRAME> + =A5=BF=A5=B0=A4=CE=BB=D8=A4=B9=CA=A3=BF=F4=A4=CE=CA=B8=BD=F1=A4=F21=A4=C4= =A4=CE=CA=B8=BD=F1=A4=CB=CA=D1=B4=B9=A4=B7=A4=C6=C9=BD=BC=A8=A4=B7=A4=DE=A4= =B9=A1=A5 + M=B8=BD=BA=DF=B8=AB=A4=C6=A4=A4=A4=EB=A5=DA=A1=BC=A5=B8=A4=F2= =A1=A4=B3=B0=C9=F4=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC= =A8=A4=B7=A4=DE=A4=B9=A1=A5 +-2M, 3M =A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5= =B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++2M, 3M, ..., 9M =A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49=C8=D6=CC=DC= =A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 + ESC M=B8=BD=BA=DF=A4=CE=A5=EA=A5=F3=A5=AF=C0=E8=A4=F2=A1=A4= =B3=B0=C9=F4=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC=A8=A4= =B7=A4=DE=A4=B9=A1=A5 +-2ESC M, 3ESC M =A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9= =A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++2ESC M, 3ESC M, ..., 9ESC M =A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49= =C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1= =A5 + +=20 +

    =A5=D5=A5=A1=A5=A4=A5=EB=A4=C8URL=B4=D8=B7=B8=A4=CE=C1=E0=BA=EE

    +@@ -489,8 +483,7 @@ w3m + w3m=A4=F2=BB=C8=A4=A8=A4=D0=A1=A4HTTP=A5=B5=A1=BC=A5=D0=A4=CA=A4=B7=A4=C7= CGI=A5=B9=A5=AF=A5=EA=A5=D7=A5=C8=A4=F2=B5=AF=C6=B0=A4=B9=A4=EB=A4=B3=A4=C8= =A4=AC=A4=C7=A4=AD=A4=DE=A4=B9=A1=A5 + =A4=B3=A4=CE=A4=C8=A4=AD=A1=A4w3m=A4=AC=A5=B5=A1=BC=A5=D0=A4=CE=A4=D5=A4= =EA=A4=F2=A4=B7=A4=C6=A5=B9=A5=AF=A5=EA=A5=D7=A5=C8=A4=F2=B5=AF=C6=B0=A4=B7= =A1=A4=A4=BD=A4=CE=BD=D0=CE=CF=A4=F2 + =C6=C9=A4=DF=A4=B3=A4=F3=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB=A4=EF=A4=B1=A4=C7= =A4=B9=A1=A5 +-=A5=D6=A5=C3=A5=AF=A5=DE=A1=BC= =A5=AF=A4=CE=C5=D0=CF=BF=A4=C8 +-=B3=B0=C9=F4=A5=D3= =A5=E5=A1=BC=A5=A2=A4=CE=CA=D4=BD=B8 ++=A5=D6=A5=C3=A5=AF=A5=DE=A1=BC=A5=AF=A4=CE=C5=D0=CF=BF=A4=C8=B3=B0=C9=F4= =A5=D3=A5=E5=A1=BC=A5=A2=A4=CE=CA=D4=BD=B8 + =A4=CF=A1=A4local CGI=A4=CE=A5=B9=A5=AF=A5=EA=A5=D7=A5=C8=A4=C8=A4=B7=A4= =C6=BC=C2=B8=BD=A4=B5=A4=EC=A4=C6=A4=A4=A4=DE=A4=B9=A1=A5 + local CGI=A4=F2=BB=C8=A4=A8=A4=D0=A1=A4w3m=A4=F2=C8=C6=CD=D1=A4=CE=A5=D5= =A5=A9=A1=BC=A5=E0=C6=FE=CE=CF=A5=A4=A5=F3=A5=BF=A5=D5=A5=A7=A1=BC=A5=B9=A4= =C8=A4=B7=A4=C6 + =BB=C8=A4=A6=A4=B3=A4=C8=A4=AC=A4=C7=A4=AD=A4=DE=A4=B9=A1=A5 +diff --git a/doc-jp/README b/doc-jp/README +index 074766f..e5e59b1 100644 +--- a/doc-jp/README ++++ b/doc-jp/README +@@ -122,7 +122,6 @@ w3m=20 + =C5=EC=CB=CC=C2=E7=B3=D8=C9=C2=B1=A1 + satodai@w3m.jp +=20 +-=A4=B4=B0=D5=B8=AB=A1=A4=A4=B4=B4=B6=C1=DB=A4=F2ML=A4=DE=A4=C7=A4=AA=B4= =F3=A4=BB=A4=AF=A4=C0=A4=B5=A4=A4=A1=A5 +- w3m-dev@sic.med.tohoku.ac.jp (=C6=FC=CB=DC=B8=EC) +- w3m-dev-en@sic.med.tohoku.ac.jp (=B1=D1=B8=EC) ++=A4=B4=B0=D5=B8=AB=A1=A4=A4=B4=B4=B6=C1=DB=A4=F2=A4=AA=B4=F3=A4=BB=A4=AF= =A4=C0=A4=B5=A4=A4=A1=A5 + http://w3m.sourceforge.net/ ++ https://sourceforge.net/projects/w3m/ +diff --git a/doc-jp/README.SSL b/doc-jp/README.SSL +index 4aedfde..47d5fd6 100644 +--- a/doc-jp/README.SSL ++++ b/doc-jp/README.SSL +@@ -25,9 +25,9 @@ SSL=20 +=20 + ssl_forbid_method + =BB=C8=A4=EF=A4=CA=A4=A4SSL=A5=E1=A5=BD=A5=C3=A5=C9=A4=CE=A5=EA= =A5=B9=A5=C8(2: SSLv2, 3: SSLv3, t: TLSv1) +- (=A5=C7=A5=D5=A5=A9=A5=EB=A5=C8=A4=CF). ++ (=A5=C7=A5=D5=A5=A9=A5=EB=A5=C8=A4=CF2, 3). + ssl_verify_server ON/OFF +- SSL=A4=CE=A5=B5=A1=BC=A5=D0=C7=A7=BE=DA=A4=F2=B9=D4=A4=A6(=A5=C7= =A5=D5=A5=A9=A5=EB=A5=C8=A4=CFOFF). ++ SSL=A4=CE=A5=B5=A1=BC=A5=D0=C7=A7=BE=DA=A4=F2=B9=D4=A4=A6(=A5=C7= =A5=D5=A5=A9=A5=EB=A5=C8=A4=CFON). + ssl_cert_file =A5=D5=A5=A1=A5=A4=A5=EB=CC=BE + SSL=A4=CE=A5=AF=A5=E9=A5=A4=A5=A2=A5=F3=A5=C8=CD=D1PEM=B7=C1=BC= =B0=BE=DA=CC=C0=BD=F1=A5=D5=A5=A1=A5=A4=A5=EB(=A5=C7=A5=D5=A5=A9=A5=EB=A5= =C8=A4=CF). + ssl_key_file =A5=D5=A5=A1=A5=A4=A5=EB=CC=BE +@@ -85,6 +85,9 @@ SSL=20 + # + # certdata2pem.rb +=20 ++if RUBY_VERSION>=3D"1.9" ++ Encoding.default_external=3D"UTF-8" ++end + while line =3D $stdin.gets + next if line =3D~ /^#/ + next if line =3D~ /^\s*$/ +diff --git a/doc-jp/README.func b/doc-jp/README.func +index 542aaa9..8a5f821 100644 +--- a/doc-jp/README.func ++++ b/doc-jp/README.func +@@ -1,7 +1,7 @@ + ABORT =B3=CE=C7=A7=A4=BB=A4=BA=A4=CBw3m=A4=F2=BD=AA=CE=BB=A4=B7=A4=DE=A4= =B9 + ACCESSKEY Accesskey =A5=E1=A5=CB=A5=E5=A1=BC=A4=F2=CE=A9=A4=C1=BE=E5=A4= =B2=A4=DE=A4=B9 +-ALARM =A5=A2=A5=E9=A1=BC=A5=E0=A4=F2=C0=DF=C4=EA=A4=B7=A4=DE=A4=B9 + ADD_BOOKMARK =B8=BD=BA=DF=B8=AB=A4=C6=A4=A4=A4=EB=A5=DA=A1=BC=A5=B8=A4=F2= =A5=D6=A5=C3=A5=AF=A5=DE=A1=BC=A5=AF=A4=CB=C4=C9=B2=C3=A4=B7=A4=DE=A4=B9 ++ALARM =A5=A2=A5=E9=A1=BC=A5=E0=A4=F2=C0=DF=C4=EA=A4=B7=A4=DE=A4=B9 + BACK =B0=EC=A4=C4=C1=B0=A4=CE=A5=D0=A5=C3=A5=D5=A5=A1=A4=F2=C9=BD=BC=A8= =A4=B7=A4=DE=A4=B9 + BEGIN =CA=B8=BD=F1=A4=CE=A4=A4=A4=C1=A4=D0=A4=F3=BE=E5=A4=CE=B9=D4=A4=CB= =B0=DC=C6=B0=A4=B7=A4=DE=A4=B9 + BOOKMARK =A5=D6=A5=C3=A5=AF=A5=DE=A1=BC=A5=AF=A4=F2=C6=C9=A4=DF=B9=FE=A4= =DF=A4=DE=A4=B9 +@@ -36,7 +36,6 @@ GOTO_RELATIVE=09 + HELP =A5=D8=A5=EB=A5=D7=A5=D5=A5=A1=A5=A4=A5=EB=A4=F2=C9=BD=BC=A8=A4=B7= =A4=DE=A4=B9 + HISTORY URL=CD=FA=CE=F2=A4=F2=C9=BD=BC=A8=A4=B7=A4=DE=A4=B9 + INFO =B8=BD=BA=DF=A4=CE=CA=B8=BD=F1=A4=CB=B4=D8=A4=B9=A4=EB=BE=F0=CA=F3= =A4=F2=C9=BD=BC=A8=A4=B7=A4=DE=A4=B9 +-INIT_MAILCAP mailcap =A4=F2=BA=C6=C6=C9=A4=DF=B9=FE=A4=DF=A4=B7=A4=DE= =A4=B9(=BC=E7=A4=CB local-CGI =CD=D1) + INTERRUPT =CA=B8=BD=F1=A4=CE=C6=C9=A4=DF=B9=FE=A4=DF=A4=F2=C3=E6=C3=C7=A4= =B7=A4=DE=A4=B9 + ISEARCH =A5=D5=A5=A1=A5=A4=A5=EB=A4=CE=CB=F6=C8=F8=A4=CB=A4=E0=A4=AB=A4= =C3=A4=C6=A5=A4=A5=F3=A5=AF=A5=EA=A5=E1=A5=F3=A5=BF=A5=EB=A5=B5=A1=BC=A5=C1= =A4=B7=A4=DE=A4=B9 + ISEARCH_BACK =A5=D5=A5=A1=A5=A4=A5=EB=A4=CE=C0=E8=C6=AC=A4=CB=A4=E0=A4=AB= =A4=C3=A4=C6=A5=A4=A5=F3=A5=AF=A5=EA=A5=E1=A5=F3=A5=BF=A5=EB=A5=B5=A1=BC=A5= =C1=A4=B7=A4=DE=A4=B9 +@@ -72,6 +71,7 @@ MSGS=20=20=20=20=20=20=20=20 + NEW_TAB =BF=B7=A4=B7=A4=A4=A5=BF=A5=D6=A4=F2=B3=AB=A4=AD=A4=DE=A4=B9 + NEXT =BC=A1=A4=CE=A5=D0=A5=C3=A5=D5=A5=A1=A4=F2=C9=BD=BC=A8=A4=B7=A4=DE= =A4=B9 + NEXT_DOWN =A5=AB=A1=BC=A5=BD=A5=EB=A4=CE=B2=BC=C2=A6=A4=CB=A4=A2=A4= =EB=A5=EA=A5=F3=A5=AF=A4=CB=B0=DC=C6=B0=A4=B7=A4=DE=A4=B9 ++NEXT_HALF_PAGE =C8=BE=A5=DA=A1=BC=A5=B8=B2=BC=A4=CB=A5=B9=A5=AF=A5=ED=A1= =BC=A5=EB=A4=B7=A4=DE=A4=B9 + NEXT_LEFT =A5=AB=A1=BC=A5=BD=A5=EB=A4=CE=BA=B8=C2=A6=A4=CB=A4=A2=A4= =EB=A5=EA=A5=F3=A5=AF=A4=CB=B0=DC=C6=B0=A4=B7=A4=DE=A4=B9 + NEXT_LEFT_UP =A5=AB=A1=BC=A5=BD=A5=EB=A4=CE=BA=B8=C2=A6(=CC=B5=A4=B1=A4= =EC=A4=D0=C1=B0=A4=CE=B9=D4=B0=CA=C1=B0)=A4=CB=A4=A2=A4=EB=A5=EA=A5=F3=A5= =AF=A4=CB=B0=DC=C6=B0=A4=B7=A4=DE=A4=B9 + NEXT_LINK =BC=A1=A4=CE=A5=EA=A5=F3=A5=AF=A4=CB=B0=DC=C6=B0=A4=B7=A4=DE=A4= =B9 +@@ -92,6 +92,7 @@ PEEK_LINK=20=20=20=20=20=20 + PIPE_BUF =A5=D0=A5=C3=A5=D5=A5=A1=A4=CE=C6=E2=CD=C6=A4=F2=A5=D1=A5= =A4=A5=D7=A4=CB=C5=CF=A4=B7=A4=DE=A4=B9 + PIPE_SHELL =A5=B3=A5=DE=A5=F3=A5=C9=A4=F2=BC=C2=B9=D4=A4=B7=A1=A4=B7=EB= =B2=CC=A4=F2=C6=C9=A4=DF=A4=B3=A4=DF=A4=CA=A4=AC=A4=E9=C9=BD=BC=A8=A4=B7=A4= =DE=A4=B9 + PREV =C1=B0=A4=CE=A5=D0=A5=C3=A5=D5=A5=A1=A4=F2=C9=BD=BC=A8=A4=B7=A4=DE= =A4=B9 ++PREV_HALF_PAGE =C8=BE=A5=DA=A1=BC=A5=B8=BE=E5=A4=CB=A5=B9=A5=AF=A5=ED=A1= =BC=A5=EB=A4=B7=A4=DE=A4=B9 + PREV_LINK =C1=B0=A4=CE=A5=EA=A5=F3=A5=AF=A4=CB=B0=DC=C6=B0=A4=B7=A4=DE=A4= =B9 + PREV_MARK =B0=EC=A4=C4=C1=B0=A4=CE=A5=DE=A1=BC=A5=AF=A4=CB=B0=DC=C6=B0=A4= =B7=A4=DE=A4=B9 + PREV_PAGE =C1=B0=A4=CE=A5=DA=A1=BC=A5=B8=A4=F2=C9=BD=BC=A8=A4=B7=A4=DE=A4= =B9 +diff --git a/doc-jp/README.siteconf b/doc-jp/README.siteconf +new file mode 100644 +index 0000000..90066f7 +--- /dev/null ++++ b/doc-jp/README.siteconf +@@ -0,0 +1,60 @@ ++siteconf: =A5=B5=A5=A4=A5=C8=CA=CC=A5=AB=A5=B9=A5=BF=A5=DE=A5=A4=A5=BA ++ ++siteconf =A4=CF=A1=A2 URL =A4=CE=A5=D1=A5=BF=A1=BC=A5=F3=A4=C8=A1=A2=A4= =BD=A4=EC=A4=CB=C9=B3=C9=D5=A4=B1=A4=E9=A4=EC=A4=BF=C0=DF=C4=EA=A4=AB=A4=E9= =C0=AE=A4=EA=A4=DE=A4=B9=A1=A3 ++siteconf =A4=F2=BB=C8=A4=A6=A4=C8=A1=A2=A5=B5=A5=A4=A5=C8=CB=E8=A4=CB=CA= =B8=BB=FA=A5=B3=A1=BC=A5=C9=A4=F2=BB=D8=C4=EA=A4=B7=A4=C6 "decode_url" ++=A4=CE=BD=D0=CE=CF=A4=F2=B2=FE=C1=B1=A4=B7=A4=BF=A4=EA=A1=A2 Google =A4= =CE=A5=EA=A5=C0=A5=A4=A5=EC=A5=AF=A5=BF=A4=F2=B1=AA=B2=F3=A4=B7=A4=C6=C0=AD= =C7=BD=A4=E4 ++=A5=D7=A5=E9=A5=A4=A5=D0=A5=B7=A1=BC=A4=F2=B8=FE=BE=E5=A4=B5=A4=BB=A4=BF= =A4=EA=A4=B9=A4=EB=A4=B3=A4=C8=A4=AC=A4=C7=A4=AD=A4=DE=A4=B9=A1=A3 ++ ++=A5=C7=A5=D5=A5=A9=A5=EB=A5=C8=A4=C7=A4=CF siteconf =A4=CF ~/.w3m/sitecon= f =A4=AB=A4=E9=C6=C9=A4=DF=B9=FE=A4=DE=A4=EC=A4=DE=A4=B9=A1=A3 ++ ++=3D=3D=3D=3D=3D =B9=BD=CA=B8 =3D=3D=3D=3D=3D ++ ++url |//|m@@i [exact] ++substitute_url "" ++url_charset ++no_referer_from on|off ++no_referer_to on|off ++ ++=B8=E5=A4=ED=A4=CE=CA=FD=A4=CB=BD=F1=A4=AB=A4=EC=A4=BF=A4=E2=A4=CE=A4=AC= =CD=A5=C0=E8=A4=B5=A4=EC=A4=DE=A4=B9=A1=A3 ++ ++=3D=3D=3D=3D=3D =CE=E3 =3D=3D=3D=3D=3D ++ ++url "https://twitter.com/" ++substitute_url "https://mobile.twitter.com/" ++ ++twitter.com =A4=F2=A5=E2=A5=D0=A5=A4=A5=EB=A5=B5=A5=A4=A5=C8=A4=CB=C5=BE= =C1=F7=A4=B7=A4=DE=A4=B9=A1=A3 ++ ++url "http://your.bookmark.net/" ++no_referer_from on ++ ++your.bookmark.net =A4=AB=A4=E9=C4=A5=A4=C3=A4=BF=A5=EA=A5=F3=A5=AF=A4=F2= =C3=A9=A4=EB=BA=DD=A4=CB=A1=A2 HTTP referer =A4=F2 ++=C1=F7=A4=E9=A4=CA=A4=A4=A4=E8=A4=A6=A4=CB=A4=B7=A4=DE=A4=B9=A1=A3 ++ ++url "http://www.google.com/url?" exact ++substitute_url "file:///cgi-bin/your-redirector.cgi?" ++ ++Google =A4=CE=A5=EA=A5=C0=A5=A4=A5=EC=A5=AF=A5=BF=A4=F2 local CGI =A4=CB= =C5=BE=C1=F7=A4=B7=A4=DE=A4=B9=A1=A3 ++ ++url /^http:\/\/[a-z]*\.wikipedia\.org\// ++url_charset utf-8 ++ ++=C6=B1=BB=FE=A4=CB "decode_url" =A5=AA=A5=D7=A5=B7=A5=E7=A5=F3=A4=F2=A5= =AA=A5=F3=A4=CB=A4=B9=A4=EB=A4=C8=A1=A2 Wikipedia =A4=D8=A4=CE ++=A5=EA=A5=F3=A5=AF=A4=F2 UTF-8 =A4=C8=A4=B7=A4=C6=A5=C7=A5=B3=A1=BC=A5=C9= =A4=B7=A4=C6=C9=BD=BC=A8=A4=B7=A4=DE=A4=B9=A1=A3 ++ ++=3D=3D=3D=3D=3D =C0=B5=B5=AC=C9=BD=B8=BD=A4=CB=A4=C4=A4=A4=A4=C6 =3D=3D= =3D=3D=3D ++ ++=BC=A1=A4=CE=C0=B5=B5=AC=C9=BD=B8=BD=A4=CF=A4=A4=A4=BA=A4=EC=A4=E2=C6=B1= =A4=B8=B0=D5=CC=A3=A4=F2=C9=BD=A4=B7=A4=DE=A4=B9=A1=A3 ++ ++/http:\/\/www\.example\.com\// ++m/http:\/\/www\.example\.com\// ++m@http://www\.example\.com/@ ++m!http://www\.example\.com/! ++ ++=BA=C7=B8=E5=A4=CB 'i' =BD=A4=BE=FE=BB=D2=A4=F2=C9=D5=A4=B1=A4=EB=A4=C8= =A1=A2=C2=E7=CA=B8=BB=FA=BE=AE=CA=B8=BB=FA=A4=F2=B6=E8=CA=CC=A4=BB=A4=BA=A4= =CB=BE=C8=B9=E7=A4=F2=B9=D4=A4=A4=A4=DE=A4=B9=A1=A3 ++=CE=E3=A4=A8=A4=D0=A1=A2 m@^http://www\.example\.com/abc/@i =A4=CF=B0=CA= =B2=BC=A4=CE=A4=A4=A4=BA=A4=EC=A4=C8=A4=E2=B0=EC=C3=D7=A4=B7=A4=DE=A4=B9=A1= =A3 ++ ++http://www.example.com/abc/ ++http://www.example.com/Abc/ ++http://www.example.com/ABC/ ++ ++=A4=BF=A4=C0=A4=B7=A1=A2=A5=DB=A5=B9=A5=C8=CC=BE=A4=CE=C9=F4=CA=AC=A4=CF= =BE=EF=A4=CB=BE=AE=CA=B8=BB=FA=A4=CB=CA=D1=B4=B9=A4=B7=A4=C6=A4=AB=A4=E9=C8= =E6=B3=D3=A4=B7=A4=DE=A4=B9=A1=A3 +diff --git a/doc-jp/keymap.lynx b/doc-jp/keymap.lynx +index 869c716..e4085c8 100644 +--- a/doc-jp/keymap.lynx ++++ b/doc-jp/keymap.lynx +@@ -46,7 +46,7 @@ keymap - PREV_PAGE + keymap . RIGHT + keymap / SEARCH + keymap : MARK_URL +-keymap ; MARK_WORD ++keymap ";" MARK_WORD + keymap < SHIFT_LEFT + keymap =3D INFO + keymap > SHIFT_RIGHT +diff --git a/doc-jp/w3m.1 b/doc-jp/w3m.1 +index 89aacb6..a54e078 100644 +--- a/doc-jp/w3m.1 ++++ b/doc-jp/w3m.1 +@@ -1,5 +1,5 @@ + .\" +-.TH W3M 1 "Jun 6 2000" "UNIX" ++.TH W3M 1 "2016-04-02" "w3m 0.5.3" + .SH NAME + .B w3m + \- text base pager/WWW browser +@@ -39,19 +39,10 @@ text/plain + =C9=B8=BD=E0=C6=FE=CE=CF=A4=CE=C6=E2=CD=C6=A4=F2=C9=BD=BC=A8=A4=B9=A4=EB= =A4=C8=A4=AD=A4=CB=CA=DD=C2=B8=A4=B5=A4=EC=A4=EB=BA=C7=C2=E7=B9=D4=BF=F4=A4= =F2=BB=D8=C4=EA=A4=B9=A4=EB=A1=A5 + =A5=C7=A5=D5=A5=A9=A5=EB=A5=C8=A4=CF10000=A1=A5 + .TP +-.B \-s +-Shift_JIS=A5=B3=A1=BC=A5=C9=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 +-.TP +-.B \-e +-EUC=A5=B3=A1=BC=A5=C9=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 +-.TP +-.B \-j +-JIS (ISO-2022-JP)=A5=B3=A1=BC=A5=C9=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 +-.TP +-.BI \-O\ e|s|j|N|m ++.BI \-O\ =CA=B8=BB=FA=A5=B3=A1=BC=A5=C9 + =C9=BD=BC=A8=A4=CB=BB=C8=A4=A6=CA=B8=BB=FA=A5=B3=A1=BC=A5=C9=A4=F2=BB=D8= =C4=EA=A4=B9=A4=EB. + .TP +-.BI \-I\ e|s ++.BI \-I\ =CA=B8=BB=FA=A5=B3=A1=BC=A5=C9 + =C6=FE=CE=CF=CA=B8=BD=F1=A4=CE=CA=B8=BB=FA=A5=B3=A1=BC=A5=C9=A4=F2=BB=D8= =C4=EA=A4=B9=A4=EB=A1=A5 + .TP + .BI \-T\ =A5=BF=A5=A4=A5=D7 +@@ -90,7 +81,7 @@ Bookmark=20 + .B \-F + =A5=D5=A5=EC=A1=BC=A5=E0=A4=F2=BC=AB=C6=B0=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 + .TP +-.B \-S ++.B \-s + =CF=A2=C2=B3=A4=B9=A4=EB=B6=F5=B9=D4=A4=F21=B9=D4=A4=CB=A4=DE=A4=C8=A4=E1= =A4=C6=C9=BD=BC=A8=A4=B9=A4=EB=A1=A5 + .TP + .B \-X +@@ -327,13 +318,13 @@ URL + .TP + .B M + =B8=BD=BA=DF=B8=AB=A4=C6=A4=A4=A4=EB=A5=DA=A1=BC=A5=B8=A4=F2=A1=A4=B3=B0= =C9=F4=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC=A8=A4=B7=A4= =DE=A4=B9=A1=A5 +-.B 2M, 3M +-=A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4= =F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++.B 2M, 3M, ..., 9M ++=A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49=C8=D6=CC=DC=A4=CE=A5=D6=A5= =E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 + .TP + .B "ESC M" + =B8=BD=BA=DF=A4=CE=A5=EA=A5=F3=A5=AF=C0=E8=A4=F2=A1=A4=B3=B0=C9=F4=A5=D6= =A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC=A8=A4=B7=A4=DE=A4=B9=A1= =A5 +-.B "2ESC M", "3ESC M" +-=A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4= =F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++.B "2ESC M", "3ESC M", ..., "9ESC M" ++=A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49=C8=D6=CC=DC=A4=CE=A5=D6=A5= =E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 + .SS =A5=D5=A5=A1=A5=A4=A5=EB=A4=C8URL=B4=D8=B7=B8=A4=CE=C1=E0=BA=EE + .TP + .B U +diff --git a/doc/FAQ.html b/doc/FAQ.html +index ed2a704..ca82c67 100644 +--- a/doc/FAQ.html ++++ b/doc/FAQ.html +@@ -1,291 +1,763 @@ +- +- +-W3M FAQ +- +- +-

      +-

    Frequently Asked Questions and Answers about w3m

    +-
    +-Akinori Ito
    +-aito@fw.ipsj.or.jp
    +-Corrected by Tom Berger <tom.be@gmx.net> +-
    +-

    +-

    Index +-

    +-
    +-

      +-
    • General Questions, How to Get It, Required E= nvironment

    • +-
        +-
      • How do I pronounce "w3m"?

        +-
      • Why is it called "w3m"?

        +-
      • On which platforms does w3m work?

        +-
      • Where can I get more information about w3m?

        +-
      • Is there a mailing list for w3m?

        +-
      • Are there any binary distributions?

        +-
      +-
      +-
    • Compile and Install

      +-
      +-
    • Options, Commands, Usage

      +-
        +-
      • w3m quits if started without parameters. What's wrong?

        +-
      • w3m starts with black characters on a black screen. How do I chan= ge this?

        +-
      • Does w3m support colours?

        +-
      • Does w3m support monochrome display?

        +-
      • How do I shift the display?

        +-
      • How do I move from anchor to anchor?

        +-
      • Netscape displays a word red, but w3m doesn't. Why?

        +-
      • How do I change the colour of anchor-/image-/form links?

        +-
      • w3m doesn't seem to use the variable EDITOR. Why?

        +-
      • How do I quit a search or URL text input?

        +-
      +-
      +-
    • Questions about WWW usage

      +-
        +-
      • How do I fill in forms with w3m?

        +-
      • Seems like w3m is slower than Netscape or Lynx. Why?

        +-
      • Loading time doesn't decrease when loading a previously seen page=

        +-
      • How do I download a linked file?

        +-
      • How do I specify a proxy server?

        +-
      • w3m freezes when I invoke an external browser.

        +-
      • How do I change the default image viewer?

        +-
      • How do I enter a URL?

        +-
      • w3m appends a URL to the former one despite of having cleared the= line with Ctrl-u. What to do?

        +-
      +-
      +-
    • Misc

      +-
        +-
      • What is w3m's configuration file?

        +-
      • What are these w3mxxxx files in my ~/.w3m directory for?

        +-
      +-
        +-
      +-

      General Questions, How to Get It, Required Env= ironment

      +-
      +-
      +-

      How do I pronounce "w3m"?

      +-
      It's "W-three-M". It doesn't rhyme with "pteranodon&qu= ot;. +-

      +-

      Why is it called "w3m"?

      +-
      It's an abbreviation of "WWW-wo-Miru", which is Japanese for +-"See the WWW". So in English the name of this browser would be +-something like "stw3". +-

      +-

      On which platforms does w3m work?

      +-
      It runs on various versions of Unix, since version 990226 on OS/2 and= since +-version 990303 also on MS-Windows with Cygwin32. +-
      +-Current versions have been confirmed to run on: +-
        +-
      • SunOS 4.1.x +-
      • HP-UX 9.x, 10.x +-
      • Solaris 2.5.x, 2.6, 8 +-
      • Linux 2.0.30 +-
      • FreeBSD 2.2.8, 3.1, 3.2, 4.6 +-
      • NetBSD/macppc, m68k +-
      • EWS4800 Rel.12.2 Rev.A +-
      • Digital UNIX: v3.2D, v4.0D +-
      • IRIX 5.3, IRIX 6.5 +-
      • OS/2 with emx +-
      • Windows 9x/NT with Cygwin32 b20.1 +-
      • MS-DOS with DJGPP and WATT32 packet driver +-
      • MacOS X Server +-
      • MacOS X 10.1, 10.2 +-
      +-

      Where can I get more information about w3m?

      +-
      At the English w= 3m home page. +-

      Is there a mailing list for w3m?

      +-
      There is a mailing list for developpers (w3m-dev-en). Please see +-w3m page +-for details. You may also mail your comments to the author. +-

      Are there any binary distributions?

      +-
      So far there are only binaries for the win/cygnus32 version. You can = get +-them from here. +-Contact the author if you want = to contribute binaries for other platforms. +-
      +-
      +-
      +-
      +-Up to index +-
      +-
      +-

      Compile and Install

      +-No problem :-) +-

      Options, Commands, Usage

      +-
      +-
      +-

      w3m quits if started without parameters. What's wrong?

      +-
      w3m is a pager. Therefore it just quits when invoked without a= ny +-arguments. Possible arguments are: +-
        +-
      1. A filename or an URL +-
      2. Pipe from standard input +-
      3. The -B option (Show bookmark file) +-
      4. The -v option (visual startup) +-
      5. From a specified HTTP_HOME or WWW_HOME variable +-
      +-

      +-

      w3m starts with black characters on black background. How do I ch= ange +-this?

      +-
      +-When compiled with colour support, w3m assumes a white background and the= refore +-displays black characters.=20 +-
      +-You may either change the background colour of your terminal (e.g. with t= he -bg +-option in a xterm) or take these steps: +-
        +-
      • invoke w3m with 'w3m -M' (for monochrome), +-
      • type 'o' for getting to the options screen +-
      • Mark 'Display with colour' as ON and choose an arbitrary colou= r. +-Click on [OK]. +-
      +-

      +-

      Does w3m support colours?

      +-
      Yes. When you run './configure', answer the question +-

      ++ ++ ++ ++ ++ ++ W3M FAQ ++ ++ ++

      ++ Frequently Asked Questions and Answers about w3m ++

      ++

      ++ Akinori Ito <aito@fw.ipsj.or.jp>
      ++ Corrected by Tom Berger <tom.be@gmx.net> ++

      ++

      ++ ++ Index ++ ++

      ++
        ++
      • ++ ++ ++ General Questions, How to Get It, Required Environment ++ ++ ++
      • ++
          ++
        • ++ ++ How do I pronounce w3m? ++ ++
        • ++
        • ++ ++ Why is it called w3m? ++ ++
        • ++
        • ++ ++ On which platforms does w3m work? ++ ++
        • ++
        • ++ ++ Where can I get more information about w3m? ++ ++
        • ++
        • ++ ++ Is there a mailing list for w3m? ++ ++
        • ++
        • ++ ++ Are there any binary distributions? ++ ++
        • ++
        ++
      • ++ ++ ++ Compile and Install ++ ++ ++
      • ++
      • ++ ++ ++ Options, Commands, Usage ++ ++ ++
      • ++
          ++
        • ++ ++ w3m quits if started without parameters. What's wrong? ++ ++
        • ++
        • ++ ++ w3m starts with black characters on a black background. How do ++ I change this? ++ ++
        • ++
        • ++ ++ Does w3m support colors? ++ ++
        • ++
        • ++ ++ Does w3m support monochrome displays? ++ ++
        • ++
        • ++ ++ How do I shift the display? ++ ++
        • ++
        • ++ ++ How do I move between hyperlinks? ++ ++
        • ++
        • ++ ++ Graphical browsers display a word red, but w3m doesn't. Why? ++ ++
        • ++
        • ++ ++ How do I change the colors for hyperlinks, images and form fields? ++ ++
        • ++
        • ++ ++ w3m doesn't seem to use the variable EDITOR. Why? ++ ++
        • ++
        • ++ ++ How do I quit a search or URL text input? ++ ++
        • ++
        ++
      • ++ ++ ++ Questions about WWW usage ++ ++ ++
      • ++
          ++
        • ++ ++ How do I fill in forms with w3m? ++ ++
        • ++
        • ++ ++ Seems like w3m is slower than some other browsers. Why? ++ ++
        • ++
        • ++ ++ Loading time doesn't decrease when loading a previously seen ++ page. ++ ++
        • ++
        • ++ ++ How do I download a linked file? ++ ++
        • ++
        • ++ ++ How do I specify a proxy server? ++ ++
        • ++ ++
        • ++ ++ How do I change the default image viewer? ++ ++
        • ++
        • ++ ++ How do I enter a URL? ++ ++
        • ++
        • ++ ++ w3m appends a URL to the former one even when I clear the line ++ with CTRL-u. What should I do? ++ ++
        • ++
        ++
      • ++ ++ ++ Miscellaneous ++ ++ ++
      • ++
          ++
        • ++ ++ What is w3m's configuration file? ++ ++
        • ++
        • ++ ++ What are these w3mxxxx files in my ~/.w3m directory for? ++ ++
        • ++
        ++
      ++

      ++ ++ General Questions, How to Get It, Required Environment ++ ++

      ++
      ++
      ++ ++ How do I pronounce w3m? ++ ++
      ++
      ++

      ++ It's W-three-M. It doesn't rhyme with pteranodon. ++

      ++
      ++
      ++ ++ Why is it called w3m? ++ ++
      ++
      ++

      ++ It's an abbreviation of WWW-wo-Miru, which is Japanese ++ for See the WWW. So in English the name of this browser ++ would be something like stw3. ++

      ++
      ++
      ++ ++ On which platforms does w3m work? ++ ++
      ++
      ++

      ++ It runs on various versions of Unix, since version 990226 on OS/2 ++ and since version 990303 also on MS-Windows with Cygwin32. ++

      ++

      ++ More recent versions have been confirmed to run on: ++

      ++
        ++
      • ++ SunOS 4.1.x ++
      • ++
      • ++ HP-UX 9.x, 10.x ++
      • ++
      • ++ Solaris 2.5.x, 2.6, 8 ++
      • ++
      • ++ Linux 2.0.1 to 3.17 ++
      • ++
      • ++ FreeBSD 2.2.8, 3.1, 3.2, 4.6 ++
      • ++
      • ++ NetBSD/macppc, m68k ++
      • ++
      • ++ EWS4800 Rel.12.2 Rev.A ++
      • ++
      • ++ Digital UNIX: v3.2D, v4.0D ++
      • ++
      • ++ IRIX 5.3, IRIX 6.5 ++
      • ++
      • ++ OS/2 with emx ++
      • ++
      • ++ Windows 9x/NT with Cygwin32 b20.1 ++
      • ++
      • ++ MS-DOS with DJGPP and WATT32 packet driver ++
      • ++
      • ++ MacOS X Server ++
      • ++
      • ++ MacOS X 10.1, 10.2 ++
      • ++
      ++
      ++
      ++ ++ Where can I get more information about w3m? ++ ++
      ++
      ++

      ++ At the ++ English w3m ++ home page. ++

      ++
      ++
      ++ ++ Is there a mailing list for w3m? ++ ++
      ++
      ++

      ++ There is a mailing list for developers (w3m-dev-en). Please see ++ the w3m home ++ page for details. You may also mail your comments to ++ the author. ++

      ++
      ++
      ++ ++ Are there any binary distributions? ++ ++
      ++
      ++

      ++ So far there are only binaries for the win/cygnus32 version. ++ ++ Contact the author if you ++ want to contribute binaries for other platforms. ++

      ++
      ++
      ++

      ++ ++ Up to index ++ ++

      ++

      ++ ++ Compile and Install ++ ++

      ++

      ++ No problem :-) ++

      ++

      ++ ++ Options, Commands, Usage ++ ++

      ++
      ++
      ++ ++ w3m quits if started without parameters. What's wrong? ++ ++
      ++
      ++

      ++ w3m is a pager. Therefore it just quits when invoked ++ without any arguments. It keeps running=20 ++

      ++
        ++
      • ++ with a filename or URL as argument ++
      • ++
      • ++ with data piped from standard input ++
      • ++
      • ++ when invoked with option -B to show the bookmark file ++
      • ++
      • ++ when invoked with option -v to welcome users with a built-in page ++
      • ++
      • ++ with specified HTTP_HOME or WWW_HOME variable ++
      • ++
      ++
      ++
      ++ ++ w3m starts with black characters on a black background. How do I ++ change this? ++ ++
      ++
      ++

      ++ When compiled with color support, w3m assumes a white background ++ and therefore displays black characters. ++

      ++

      ++ You may either change the background color of your terminal ++ (e.g. with the -bg option in a xterm) or take these steps ++

      ++
        ++
      1. ++ invoke monochrome mode of w3m with w3m -M ++
      2. ++
      3. ++ type o to get to the options setting panel ++
      4. ++
      5. ++ mark Display with color as YES and choose an ++ arbitrary color ++
      6. ++
      7. ++ click on [OK]. ++
      8. ++
      ++
      ++
      ++ ++ Does w3m support colors? ++ ++
      ++
      ++

      ++ Yes. When you run ./configure, answer the question ++

      +
      +-Let's do some configurations. Choose config option among the list."
      ++  Let's do some configurations. Choose config option among the list.
      +=20
      +-1 - Baby model    (no color, no menu, no mouse, no cookie, no SSL)
      +-2 - Little model  (color, menu, no mouse, no cookie, no SSL)
      +-3 - Mouse model   (color, menu, mouse, no cookie, no SSL)
      +-4 - Cookie model  (color, menu, mouse, cookie, no SSL)
      +-5 - Monster model (with everything; you need openSSL library)
      +-6 - Customize
      +-Which?=20
      ++  1 - Baby model    (no color, no menu, no mouse, no cookie, no SSL)
      ++  2 - Little model  (color, menu, no mouse, no cookie, no SSL)
      ++  3 - Mouse model   (color, menu, mouse, no cookie, no SSL)
      ++  4 - Cookie model  (color, menu, mouse, cookie, no SSL)
      ++  5 - Monster model (with everything; you need openSSL library)
      ++  6 - Customize
      ++  Which?
      + 
      +-

      +-with 2,3,4 or 5. +-

      +-

      Does w3m support monochrome display?

      +-
      Yes. You may either +-
        +-
      1. Answer the above mentioned 'configure' question with 1, or +-
      2. Invoke w3m with the -M option, or +-
      3. Type 'o' within w3m to enter the options screen and turn off colour d= isplay +-mode. +-
      +-

      How do I shift the display?

      +-
      You can shift the display by moving the cursor to the edge of the scr= een. You +-may also use the ">"/"<" or "."/"," keys. +-
      +-Another idea would be adjusting the xterm with the -geometry option (e.g. +-something like 'xterm -geometry 110x45 -bg white -name w3m -e w3m -B'). +-

      How do I move from anchor to anchor?

      +-
      You can move to the next anchor using TAB. ESC TAB moves cursor to th= e previous anchor. +-

      +-

      Netscape displays a word red, but w3m doesn't. Why?

      +-
      w3m doesn't support <FONT COLOR=3D".."> tags. It won't be impos= sible to implement this, but I think it would make the document more diffic= ult to read. +-

      +-

      How do I change the colour of anchor-/image-/form links?

      +-
      Type 'o' within w3m to get the 'options' screen. You can change these +-settings there. +-
      +-

      w3m doesn't seem to use the variable EDITOR. Why?

      +-
      Go to the 'options' screen using the "o" key. Any entry in the 'E= ditor' field will override the environment variable. +-
      +-If you want to use the editor specified by EDITOR blank the field and pus= h [OK]. +-

      +-

      How do I quit a search or URL text input?

      +-
      Clear input text using Ctrl-u and hit RETURN. +-
      +-
      +-
      +-
      +-Up to index +-
      +-
      +-

      Questions about WWW usage

      +-
      +-
      +-

      How do I fill in forms with w3m?

      +-
      Form input fields are displayed in red (or reverse). Move the cursor = to +-them and hit RETURN. Then, +-
        +-
      • if it is a text input field, put in your text on the bottom line, +-
      • if it is a radiobutton or checkbox, that item is selected, +-
      • if it is a textarea, an editor is spawned, +-
      • if it is 'submit' or 'reset', well, just do it. +-
      +-

      Seems like w3m is slower than Netscape or Lynx. Why?

      +-
      w3m renders a HTML document in two passes. Therefore it displays the = documentnot before having read the entire document. +-
      +-Netscape or Lynx display the document before having read the whole page, +-and therefore seem faster. +-

      +-

      Loading time doesn't decrease when loading a previously seen page=

      +-
      w3m doesn't have its own cache. Therefore, it reads the document +-from the server each time it accesses it. If possible, use a cache server= .=20 +-

      +-

      How do I download a linked file?

      +-
      Use 'a' (or 'd' with Lynx-like keybindings) or ESC RET. If you want t= o download an inline image, use ESC 'I'. +-

      +-

      How do I specify a proxy server?

      +-
      Set the environment variable HTTP_PROXY or use the option setting pan= el +-("o" key). For example, if you want to use port 8000 of proxy.hogege.com,= specify +-

      +-

      +-    http://proxy.hogege.com:8000/
      +-
      +-

      +-

      w3m freezes when I invoke an external browser.

      +-
      Enter w3m's option screen using the 'o' key and specify +-

      +-

      +-    netscape %s &
      +-
      +-

      +-(if you are using netscape). +-

      +-

      How do I change the default image viewer?

      +-
      By default w3m uses xv to view images. If you want to change it into,= let's say, 'display', add the following line to ~/.w3m/mailcap or /etc/mai= lcap. +-

      ++

      ++ with 2, 3, 4, or 5. ++

      ++
      ++
      ++ ++ Does w3m support monochrome displays? ++ ++
      ++
      ++

      ++ Yes. You may either ++

      ++
        ++
      • ++ Answer the above-mentioned configure question with 1, ++ or ++
      • ++
      • ++ Invoke w3m with the -M option, or ++
      • ++
      • ++ Type o within w3m to enter the options setting panel and turn ++ off color display mode. ++
      • ++
      ++
      ++
      ++ ++ How do I shift the display? ++ ++
      ++
      ++

      ++ You can shift the display by moving the cursor to the edge of ++ the screen. You may also use the following commands ++

      ++
        ++
      • SHIFT_LEFT and SHIFT_RIGHT, bound to the keys > and <
      • ++
      • SHIFT_LEFT1 and SHIFT_RIGHT1, bound to the keys . and ,
      • ++
      ++

      ++ Another idea would be adjusting the xterm with the -geometry ++ option e.g. something like ++

      ++
        xterm -geometry 110x45 -bg white -name w3m -e w3m -B
      ++
      ++
      ++ ++ How do I move between hyperlinks? ++ ++
      ++
      ++

      ++ ++ You can move to the next hyperlink ++ using TAB. ESC ++ TAB moves the cursor to the previous hyperlink. (see ++ Section ++ Functions and Key bindings of w3m's manual) ++ ++

      ++
      ++
      ++ ++ Graphical browsers display a word red, but w3m doesn't. Why? ++ ++
      ++
      ++

      ++ w3m doesn't support the attribute COLOR=3D"..." of HTML. It wouldn't ++ be impossible to implement this, but I think it would make ++ documents more difficult to read. ++

      ++
      ++
      ++ ++ How do I change the colors for hyperlinks, images and form fields? ++ ++
      ++
      ++

      ++ Type o within w3m to get the options panel. You ++ can change these settings there. ++

      ++
      ++
      ++ ++ w3m doesn't seem to use the variable EDITOR. Why? ++ ++
      ++
      ++

      ++ Go to the options setting panel using the o key. Any ++ entry in the Editor field overrides the environment ++ variable. ++

      ++

      ++ If you want to use the editor specified by EDITOR, blank the ++ field and save the settings using the button [OK]. ++

      ++
      ++
      ++ ++ How do I quit a search or URL text input? ++ ++
      ++
      ++

      ++ Clear input text using CTRL-u and hit RETURN. ++

      ++
      ++
      ++

      ++ ++ Up to index ++ ++

      ++

      ++ ++ Questions about WWW usage ++ ++

      ++
      ++
      ++ ++ How do I fill in forms with w3m? ++ ++
      ++
      ++

      ++ Form input fields are displayed in red (or reverse). Move the ++ cursor to them. Then, if it is ++

      ++
        ++
      • ++ a text input field, hit RETURN ++ put in your text on the bottom line. Press ++ RETURN again ++
      • ++
      • ++ a radiobutton or checkbox, pressing ++ RETURN changes or toggles the selection ++
      • ++
      • ++ a textarea, pressing ++ RETURN spawns an editor=20 ++
      • ++
      • ++ a submit or reset field, ++ the respective action is performed. ++
      • ++
      ++
      ++
      ++ ++ Seems like w3m is slower than some other browsers. Why? ++ ++
      ++
      ++

      ++ w3m renders a HTML document in two passes. Therefore it doesn't ++ start to display the document until it has finished reading it. ++

      ++

      ++ Most other browsers display the document before having read the ++ whole page, and therefore seem faster. ++

      ++
      ++
      ++ ++ Loading time doesn't decrease when loading a previously seen ++ page. ++ ++
      ++
      ++

      ++ w3m doesn't have its own cache. Therefore, it reads the document ++ from the server each time it accesses it. If possible, use a ++ cache server. ++

      ++
      ++
      ++ ++ How do I download a linked file? ++ ++
      ++
      ++

      ++ Use a (or d with Lynx-like keybindings) or ++ ESC RET. ++ If you want to download an inline image, use ++ ESC I. (see ++ Section ++ Functions and Key bindings of w3m's manual) ++

      ++
      ++
      ++ ++ How do I specify a proxy server? ++ ++
      ++
      ++

      ++ Set the environment variables HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY ++ and FTP_PROXY, or use the options setting panel (o key). For ++ example, if you want to use port 8000 of proxy.example.org, specify ++

      ++
        http://proxy.example.org:8000/
      ++
      ++ ++
      ++ ++ How do I change the default image viewer? ++ ++
      ++
      ++

      ++ By default w3m uses xv to view images. If you want to change it ++ into, let's say, display, add the following line to ++ ~/.w3m/mailcap or /etc/mailcap: ++

      +
      +-image/*; display %s
      ++  image/*; display %s
      + 
      +-

      +-You can specify external viewers of other file types as well: +-

      ++

      ++ You can specify external viewers of other file types as well: ++

      +
      +-image/*;                     display %s
      +-application/postscript;      ghostview %s
      +-application/x-dvi;           xdvi %s
      ++  image/*;                     display %s
      ++  application/postscript;      ghostview %s
      ++  application/x-dvi;           xdvi %s
      + 
      +-

      How do I enter a URL?

      +-
      Type SHIFT-U +-

      +-

      w3m appends a URL to the former one despite of having cleared the= line +-with Ctrl-u. What to do?

      +-
      Enter the complete adress, e.g. http://www.slashdot.org. +-
      +-
      +-
      +-
      +-Up to index +-
      +-
      +-

      Miscellaneous

      +-
      +-
      +-

      What is w3m's configuration file?

      +-
      It is ~/.w3m/config. +-With this file, you can adjust w3m's behavior by changing values of optio= ns +-that are described to be varied with the option setting panel. +-Each line contains setting for one option, which is a pair of an option n= ame +-and its value with a space as a separator. +-

      +-

      What are these w3mxxxx files in my ~/.w3m directory for?

      +-
      These are temporary files used by w3m when reading documents from a +-WWW server. They are not cache files and are usually deleted when w3m is= =20 +-terminated. If there remain any temp files, please remove them by yoursel= f. +-

      +-

      +-
      +-
      +-
      +-Up to index +-
      +-
      +- +- ++
      ++
      ++ ++ How do I enter a URL? ++ ++
      ++
      ++

      ++ Type U ++

      ++
      ++
      ++ ++ w3m appends a URL to the former one even when I clear the line ++ with CTRL-u. What should I do? ++ ++
      ++
      ++

      ++ Enter the complete address, e.g. http://www.slashdot.org. ++

      ++
      ++
      ++

      ++ ++ Up to index ++ ++

      ++

      ++ ++ Miscellaneous ++ ++

      ++
      ++
      ++ ++ What is w3m's configuration file? ++ ++
      ++
      ++

      ++ It is ~/.w3m/config. ++

      ++ ++

      ++ With this file, each user can adjust w3m's behavior by changing ++ the values of options whose effects are described in the options ++ setting panel. Each line contains one option setting, consisting ++ of an option name and its value with a space as a separator. ++

      ++=20=20=20=20 ++

      Without a user-specific configuration file, w3m honours ++ the system wide configuration file /etc/w3m/config. ++

      ++=20=20=20=20 ++
      ++
      ++ ++ What are these w3mxxxx files in my ~/.w3m directory for? ++ ++
      ++
      ++

      ++ These are temporary files used by w3m when reading documents ++ from a WWW server. They are not cache files and are usually ++ deleted when w3m is terminated. If any temp files are left ++ behind, please remove them yourself. ++

      ++
      ++
      ++

      ++ ++ Up to index ++ ++

      ++ ++ +diff --git a/doc/HISTORY b/doc/HISTORY +index b8f5b94..7f7ae2b 100644 +--- a/doc/HISTORY ++++ b/doc/HISTORY +@@ -588,7 +588,7 @@ From: Okabe Katsuya + * space characters in a buffer are mapped into 0x80-0x9f. + * unprintable characters (0x80-0xa0) are displayed as \xxx. +=20 +-From: Tsutomu Okada (=1B$B2,ED=1B(B =1B$BJY=1B(B) ++From: Tsutomu Okada + Subject: [w3m-dev 01354] minimize when #undef USE_GOPHER or USE_NNTP +=20 + 2000/11/16 +@@ -1422,7 +1422,7 @@ HTML4.0 ID attribute support. +=20 + From: Okabe Katsuya + table get weird when it contains . +-=1B$B=3D$@5!%=1B(B ++Fixed. +=20 + 2000.2.12 + From: Rogue Metal - Jake Moorman +@@ -1649,15 +1649,15 @@ From: patakuti + If an tag has no `name' attribute, + w3m adds it an inappropriate name attribute. +=20 +-From: =1B$B$d$^=1B(B ++From: Yama + Now w3m can handle a frameset that has both ROWS and COLS. +=20 + From: aito + Now bookmarking is done by a separate command w3mbookmark. +=20 +-C-s =1B$B$G2hLLI=3D<($,;_$^$C$F$$$?%P%0$N=3D$@5!%=1B(B ++Bug fix that C-s hangs. +=20 +-=1B$BJ8;zF~NO;~$K=1B(B C-g =1B$B$GCf;_$G$-$k$h$&$K$7$?!%=1B(B ++Enable C-g to quit for keyboard input. +=20 + From: hovav@cs.stanford.edu + When downloading a file, an attempt to save it to a non-exist +@@ -1699,7 +1699,7 @@ Menu behavior is changed. + * Clicking outside the menu causes cancellation of sub-menu. + * <, >, +, - abandoned +=20 +-From: =1B$B$*$+$@=1B(B ++From: Okada + Now C-a/C-e are bound to 'jump to the first/last item in menu.' +=20 + From: "OMAE, jun" +diff --git a/doc/MANUAL.html b/doc/MANUAL.html +index aff0189..f0710a7 100644 +--- a/doc/MANUAL.html ++++ b/doc/MANUAL.html +@@ -1,535 +1,2424 @@ +- ++ + +-w3m manual +- +- +-

      w3m MANUAL

      +-
      +-Akinori Ito
      +-aito@fw.ipsj.or.jp=20 +-
      +-

      Index

      +- +-
    • Introduction +-
    • Options +-
    • Document color +-
    • Key binding +-
    • Lynx-like key binding +-
    • Mouse operation +-
    • Key customization +-
    • Local CGI +-
    • +- +-
      +- +-

      Introduction

      +-w3m is a pager/text-based WWW browser. You can browse local documents and= /or=20 +-documents on the WWW using a terminal emulator. +- +-
      +- +-

      Options

      +- +-Command line usage is +-

      ++ ++ w3m manual ++ ++ ++ ++ ++ ++=20=20=20 ++

      w3m MANUAL

      ++
      ++ Akinori Ito
      ++ aito@fw.ipsj.or.jp ++
      ++

      Index

      ++ ++
      ++

      ++ Introduction ++

      ++

      ++ w3m is a pager/text-based WWW browser. You can browse local ++ documents and/or documents on the WWW using a terminal emulator. ++

      ++
      ++

      ++ Options ++

      ++

      ++ Command line usage is ++

      ++ +
      +-    w3m [options] [file|URL]
      ++  w3m [option]... [file|URL]...
      + 
      +-

      +-If you specify filenames/URLs on command line, these documents are displa= yed.=20 +-If you specify nothing, w3m reads a document from standard input and disp= lay it. +-If no filename and/or URLs are specified and standard input is tty, w3m t= erminates +-without displaying anything. ++

      ++ If you specify filenames/URLs on the command line, these documents ++ are displayed. If you specify nothing, w3m will read a document ++ from standard input and display it. If it doesn't find a document ++ there either then normally w3m will terminate. ++

      ++

      ++ Options include: ++

      ++
      ++

      General options

      ++
      ++ -B ++
      ++
      ++

      ++ ++ with no other target defined, use the bookmark page for startup ++

      ++
      ++
      ++ -M ++
      ++
      ++

      ++ ++ monochrome display ++

      ++
      ++
      ++ -no-mouse ++
      ++
      ++

      ++ deactivate mouse support. ++

      ++
      ++
      ++ -num ++
      ++
      ++

      ++ ++ display each line's number +=20 +-

      +-Options are as follows: +-

      +-
      +<line number> +-
      Move to the specified line. +-
      -t width +-
      Specify tab width. Default is 8. +-
      -r +-
      When displaying text/plain document, prohibit emphasis using backspac= e. +-If you don't specify this option,=20 +-``A^H_'' is interpreted as underlined character and ``A^HA'' as a bold ch= aracter. +-
      -l number +-
      Specify line number preserved internally when reading text/plain docu= ment +-fron standard input. Default is 10000. +-
      -s +-
      Display documents with Shift_JIS code. +-
      -e +-
      Display documents with EUC_JP code. +-
      -j +-
      Display documents with ISO-2022-JP code. +-
      -T type +-
      Specify document type. Without this option, document type +-is determined from extension of a file. If the determination +-fails, the document is regarded as text/plain. +-

      +-Example:
      +-Read HTML document from standard input and display it ++

      ++
      ++ ++
      ++ -v ++
      ++
      ++

      ++ ++ with no other target defined, welcome users with a built-in page ++

      ++
      ++
      ++ -W ++
      ++
      ++

      ++ ++ toggle wrapping mode in searches ++

      ++
      ++
      ++ -X ++
      ++
      ++

      ++ upon exit, do not reinitialize the terminal. ++

      ++
      ++
      ++ +num ++
      ++
      ++

      ++ go to line num; only effective for numbers larger ++ than the number of lines in the terminal ++

      ++
      ++

      Browser options

      ++
      ++ -cols num ++
      ++
      ++

      ++ ++ with stdout as destination; HTML is rendered to lines of num ++ characters ++

      ++
      ++
      ++ -cookie ++
      ++
      ++

      ++ ++ use stored cookies and accept new ones ++

      ++
      ++
      ++ -no-cookie ++
      ++
      ++

      ++ ++ neither use stored cookies nor accept new ones ++ ++

      ++
      ++
      ++ -F ++
      ++
      ++

      ++ ++ render frames ++

      ++
      ++
      ++ -no-graph ++
      ++
      ++

      ++ ++ do not use graphic characters for drawing HTML table and frame ++ borders ++

      ++
      ++
      ++ -header string ++
      ++
      ++

      ++ ++ append string to the HTTP(S) request. Expected to match ++ the header syntax "Variable: Value" ++

      ++
      ++
      ++ -m ++
      ++
      ++

      ++ display document using Internet message mode. With this ++ option, w3m determines document type from header information. ++ This is useful when reading e-mail or Usenet news posts. ++ ++

      ++
      ++
      ++ -no-proxy ++
      ++
      ++

      ++ ++ do not use proxy ++

      ++
      ++
      ++ -post file ++
      ++
      ++

      ++ use POST method to upload data defined in file. The ++ syntax to be used is "var1=3Dvalue1[&var2= =3Dvalue2]=E2=80=A6" ++

      ++
      ++

      Text pager options

      ++
      ++ -l num ++
      ++
      ++

      ++ ++ number of lines preserved internally when receiving plain text ++ from stdin (default 10,000) ++

      ++
      ++
      ++ -r ++
      ++
      ++

      ++ ++ use caret notation to display special escape characters (such as ++ ANSI escapes or nroff-style backspaces for bold and underlined ++ characters) instead of processing them ++

      ++
      ++
      ++ -s ++
      ++
      ++

      ++ ++ squeeze multiple blank lines into one ++

      ++
      ++=20=20 ++
      ++ -t num ++
      ++
      ++

      ++ set tab width to num columns. No effect= on stdout ++

      ++
      ++

      Data type/encoding options

      ++
      ++ -I charset ++
      ++
      ++

      ++ ++ user defined character encoding of input data ++

      ++
      ++
      ++ -O charset ++
      ++
      ++

      ++ ++ user defined character encoding of output data ++

      ++
      ++
      ++ -T type ++
      ++
      ++

      ++ ++ explicit characterization of input data by MIME type. Without ++ this option, document type is determined from the extension of a ++ file. If the determination fails, the document is regarded as ++ text/plain. For example: ++

      ++

      ++ Read HTML document from standard input and display it ++

      +
      +-   cat hoge.html | w3m -T text/html
      ++   cat example.html | w3m -T text/html
      + 
      +-

      +-Display HTML source ++

      ++ Display HTML source ++

      +
      +-   w3m -T text/plain hoge.html
      ++   w3m -T text/plain example.html
      + 
      +-
      -m +-
      Display document with Internet message mode. +-With this option, w3m determines document type from header information. +-It is useful when reading E-mail or NetNews messages. +-
      -v +-
      visual startup mode. +-
      -B +-
      Show the bookmark. +-
      -bookmark file +-
      Specify bookmark file. +-
      -M +-
      Monochrome display mode. +-
      -F +-
      Automatically render frame. +-
      -S +-
      Squeeze blank lines. +-
      -X +-
      Upon exit, do not display preserved screen. +-
      -W +-
      Toggle wrap search mode. +-
      -o option=3Dvalue +-
      Specify option. The option names and values are +-same as that appears in ~/.w3m/config. +-
      -cookie +-
      Process cookies. +-
      -no-cookie +-
      Don't process cookies. +-
      -num +-
      Show linenumber. +-
      -dump +-
      Read document specified by URL and dump formatted text into standard +-output. The width of the document become 80. This width can be overridden +-with -cols option. +-
      -cols width +-
      Specify document width. Used with -dump option. +-
      -ppc count +-
      Specify the number of pixels per character (default 8.0). Larger +- values will make tables narrower. +-
      -dump_source +-
      Read document specified by URL and dump the source. +-
      -dump_head +-
      Read document specified by URL and dump headers. +-
      -dump_both +-
      Read document specified by URL and dump headers and the source. +-
      -dump_extra +-
      Read document specified by URL and dump extra informations, headers a= nd the source. +-
      -post file +-
      use POST method with file content. +-
      -header string +-
      insert string as a header. +-
      -no-proxy +-
      Don't use proxy server. +-
      -no-graph +-
      Use ASCII character to draw frames. +-
      -no-mouse +-
      Don't activate mouse. +-
      -config file +-
      specify config file. +-
      +- +-
      +- +-

      Document color

      +- +-Links and images are displayed as follows. +-
      +- +- +- +- +- +-
       Color modeMonochrome mode
      linksblueunderline
      inline imagesgreenreverse
      form inputredreverse
      +-
      +-These colors can be customized using option setting command "o". +- +-
      +- +-

      Key binding

      +- +-After invocation, you can operate w3m by one-character commands from +-the keyboard. +-

      +-Here's the original key-binding table. If you are using Lynx-like key +-bindings, see the Lynx-like key binding. +- +-

      Page/Cursor motion

      +- +-
      SPC,C-vForward page +-
      b,ESC vBackward page +-
      l,C-fCursor right +-
      h,C-bCursor left +-
      j,C-nCursor down +-
      k,C-pCursor up +-
      JRoll up one line +-
      KRoll down one line +-
      ^,C-aGo to the beginning of line +-
      $,C-eGo to the end of line +-
      wGo to next word +-
      WGo to previous word +-
      >Shift screen right +-
      <Shift screen left +-
      .Shift screen one column right +-
      ,Shift screen one column left +-
      g,M-<Go to the first line +-
      G,M->Go to the last line +-
      ESC gGo to specified line +-
      ZMove to the center line +-
      zMove to the center column +-
      TABMove to next hyperlink +-
      C-u,ESC TABMove to previous hyperlink +-
      [Move to the first hyperlink +-
      ]Move to the last hyperlink +-
      +- +-

      Hyperlink operation

      +- +-
      RETFollow hyperlink +-
      a, ESC RETSave link to file +-
      uPeek link URL +-
      iPeek image URL +-
      IView inline image +-
      ESC ISave inline image to file +-
      :Mark URL-like strings as anchors +-
      ESC :Mark Message-ID-like strings as news anchors +-
      cPeek current URL +-
      =3DDisplay information about current document +-
      C-gShow current line number +-
      C-hView history of URL +-
      FRender frame +-
      MBrowse current document using external browser +-(use 2M and 3M to invoke second and third browser) +-
      ESC MBrowse link using external browser +-(use 2ESC M and 3ESC M to invoke second and third browser) +-
      +- +-

      File/Stream operation

      +- +-
      UOpen URL +-
      VView new file +-
      @Execute shell command and load +-
      #Execute shell command and browse +-
      +- +-

      Buffer operation

      +- +-
      BBack to the previous buffer +-
      vView HTML source +-
      sSelect buffer +-
      EEdit buffer source +-
      C-lRedraw screen +-
      RReload buffer +-
      SSave buffer +-
      ESC sSave source +-
      ESC eEdit buffer image +-
      +- +-

      Buffer selection mode

      +- +-
      k, C-pSelect previous buffer +-
      j, C-nSelect next buffer +-
      DDelect current buffer +-
      RETGo to the selected buffer +-
      +- +-

      Bookmark operation

      +- +-
      ESC bLoad bookmark +-
      ESC aAdd current to bookmark +-
      +- +-

      Search

      +- +-
      /,C-sSearch forward +-
      ?,C-rSearch backward +-
      nSearch next +-
      NSearch previous +-
      C-wToggle wrap search mode +-
      +- +-

      Mark operation

      +- +-
      C-SPCSet/unset mark +-
      ESC pGo to previous mark +-
      ESC nGo to next mark +-
      "Mark by regular expression +-
      +- +-

      Miscellany

      +- +-
      !Execute shell command +-
      HHelp (load this file) +-
      oSet option +-
      C-kShow cookie jar +-
      C-cStop +-
      C-zSuspend +-
      qQuit (with confirmation, if you like) +-
      QQuit without confirmation +-
      +- +-

      Line-edit mode

      +- +-
      C-fMove cursor forward +-
      C-bMove cursor backward +-
      C-hDelete previous character +-
      C-dDelete current character +-
      C-kKill everything after cursor +-
      C-uKill everything before cursor +-
      C-aMove to the top of line +-
      C-eMove to the bottom of line +-
      C-pFetch the previous string from the history list +-
      C-nFetch the next string from the history list +-
      TAB,SPCComplete filename +-
      RETURNAccept +-
      +- +-
      +- +-

      Lynx-like key binding

      +- +-If you have chosen `Lynx-like key binding' at the compile time, +-you can use the following key binding. +- +-

      Page/Cursor motion

      +- +-
      SPC,C-v,+Forward page +-
      b,ESC v,-Previous page +-
      lCursor right +-
      hCursor left +-
      jCursor down +-
      kCursor up +-
      JRoll up one line +-
      KRoll down one line +-
      ^Go to the beginning of line +-
      $Go to the end of line +-
      >Shift screen right +-
      <Shift screen left +-
      C-aGo to the first line +-
      C-eGo to the last line +-
      GGo to the specified line +-
      ZMove to the center line +-
      zMove to the center column +-
      TAB,C-n,Down arrowMove to next hyperlink +-
      ESC TAB,C-p,Up arrowMove to previous link +-
      C-gShow current page position +-
      +- ++
      ++

      Options for data output, followed by immediate exit

      ++
      ++ -dump ++
      ++
      ++

      ++ read document specified by URL and dump page rendered as text ++ into standard output. ++ ++ Is set implicitly when output is directed ++ to a file or pipe. A width of 80 columns is used unless option ++ -cols sets another value. ++

      ++
      ++
      ++ -dump_source ++
      ++
      ++

      ++ ++ dump the page's source code into stdout ++

      ++
      ++
      ++ -dump_head ++
      ++
      ++

      ++ ++ dump response of a HEAD request for a URL into stdout ++

      ++
      ++
      ++ -dump_both ++
      ++
      ++

      ++ ++ dump HEAD, and source code for a URL into stdout +=20 +-

      Hyperlink operation

      +- +-
      RET, C-f, Right arrowFollow hyperlink +-
      d, ESC RETSave link to file +-
      uPeek link URL +-
      iPeek image URL +-
      IView inline image +-
      ESC ISave inline image to file +-
      :Mark URL-like strings as anchors +-
      ESC :Mark Message-ID-like strings as news anchors +-
      cPeek current URL +-
      =3DDisplay information about current document +-
      C-hView history of URL +-
      FRender frame +-
      MBrowse current document using external browser +-(use 2M and 3M to invoke second and third browser) +-
      ESC MBrowse link using external browser +-(use 2ESC M and 3ESC M to invoke second and third browser) +-
      ++

      ++
      ++
      ++ -dump_extra ++
      ++
      ++

      ++ ++ dump HEAD, source code, and extra information for a URL into ++ stdout ++

      ++
      +=20 +-

      File/Stream operation

      +- +-
      g,UOpen URL +-
      VView new file +-
      @Execute shell command and load +-
      #Execute shell command and browse +-
      ++

      Options for overriding default settings and resources

      ++=20=20=20 ++
      ++ -bookmark file ++
      ++
      ++

      ++ ++ use file instead of the default bookmark.html file ++

      ++
      ++
      ++ -config file ++
      ++
      ++

      ++ =20=20=20=20=20=20 ++ use file instead of the default configuration file ++

      ++
      ++
      ++ -o option=3Dvalue ++
      ++
      ++

      ++ ++ modify one configuration item with an explicitly given value; witho= ut option=3Dvalue, equivalent to -show-option ++

      ++
      ++
      ++
      ++

      ++ Document Colors ++

      ++

      ++ Hyperlinks and images are displayed as follows. ++

      ++
      ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
      ++ ++ Color mode ++ ++ Monochrome mode ++
      ++ Hyperlinks ++ ++ blue ++ ++ underline ++
      ++ Inline images ++ ++ green ++ ++ reverse ++
      ++ Form input ++ ++ red ++ ++ reverse ++
      ++
      ++

      ++ These colors can be customized using the options setting command ++ o. ++

      ++
      ++

      ++ Functions and Key bindings ++

      ++=20=20 ++

      ++ After invocation, you can control w3m by typing in functions by name ++ or with keystroke combinations bound to a function. There are ++ default key bindings. ++ ++

      ++ ++

      ++ You can customize the key bindings (except those for menu ++ operations and line-editing) in a ~/.w3m/keymap file. For example, ++

      +=20 +-

      Buffer operation

      +- +-
      B, C-b, Left arrowBack to the previous buffer +-
      \View HTML source +-
      s, C-hSelect buffer +-
      EEdit buffer source +-
      C-l, C-wRedraw screen +-
      R, C-rReload buffer +-
      S, pSave buffer +-
      ESC sSave source +-
      ESC eEdit buffer image +-
      +- +-

      Buffer selection mode

      +- +-
      k, C-pSelect previous buffer +-
      j, C-nSelect next buffer +-
      DDelect current buffer +-
      RETGo to the selected buffer +-
      +- +-

      Bookmark operation

      +- +-
      v, ESC bLoad bookmark +-
      a, ESC aAdd current to bookmark +-
      +- +-

      Search

      +- +-
      /, C-sSearch forward +-
      nSearch next +-
      wToggle wrap search mode +-
      +- +-

      Mark operation

      +- +-
      C-SPCSet/unset mark +-
      PGo to previous mark +-
      NGo to next mark +-
      "Mark by regular expression +-
      +- +-

      Miscellany

      +- +-
      !Execute shell command +-
      H, ?Help (load this file) +-
      oSet option +-
      C-kShow cookie jar +-
      C-cStop +-
      C-zSuspend +-
      qQuit (with confirmation, if you like) +-
      QQuit without confirmation +-
      +- +-

      Line-edit mode

      +- +-
      C-fMove cursor forward +-
      C-bMove cursor backward +-
      C-hDelete previous character +-
      C-dDelete current character +-
      C-kKill everything after cursor +-
      C-uKill everything before cursor +-
      C-aMove to the top of line +-
      C-eMove to the bottom of line +-
      C-pFetch the previous string from the history list +-
      C-nFetch the next string from the history list +-
      TAB,SPCComplete filename +-
      RETURNAccept +-
      +- +-
      +- +-

      Mouse operation

      +-If w3m is compiled with mouse option and you are using +-xterm/kterm/rxvt (in this case, you have to set the TERM +-environment variable to `xterm' or `kterm'.) or GPM=20 +-environment, you can use mouse +-for the navigation.=20 +-

      +- +-
      left click +-Move the cursor to the place pointed by the mouse cursor. +-If you click the cursor and it is on an anchor, follow the anchor. +-
      middle click +-Back to the previous buffer. +-
      right click +-Open pop-up menu. You can choose an item by clicking it. +-
      left drag +-Scroll document. The default behavior is to grab the document +-and drag it. You can reverse the behavior (grab the window and drag it) +-with the option setting panel. +-
      +-

      ++

      ++   keymap C-o NEXT_PAGE
      ++
      +=20 ++

      ++ binds the command NEXT_PAGE (normally boun= d to SPC and C-v) ++ to control-o. See README.func for a list ++ of available functions. Original and Lynx-like keymap definitions ++ are provided as examples: keymap.default<= /a> ++ and keymap.lynx. ++

      +=20 +-
      +- +-

      Key customization

      +-You can customize the key binding (except line-editing keymap) +-by describing ~/.w3m/keymap. For example, +-
      ++   

      ++ Throughout, the C- and M- notations indicate the ++ modifiers control and meta. The ALT-key ++ replaces the latter whereas pressing the ESC-key toggles ++ between meta-modified and simple keystrokes. The minus ++ indicates pressing the keys simultaneously wheras a space ++ represents that one key is pressed after the other, i.e. 2 M ++ simply means 2 followed by M. ++

      +=20 +- keymap C-o NEXT_PAGE +=20 +-
      +-binds `NEXT_PAGE' function (normally bound to SPC and C-v) +-to control-o. See README.func for +-list of available functions. Original and Lynx-like keymap +-definitions are provided (keymap.default +-and keymap.lynx) as examples. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
      ++ Function ++ Key binding ++ ++ Description ++
      ++ Default ++ ++ Lynx-like ++
      ++

      In-page navigation

      ++
      ++ NEXT_PAGE ++ ++ SPC, C-v, +, PGDN ++ ++ SPC, C-v, + ++ ++ Scroll one page downwards ++
      ++ PREVIOUS_PAGE ++ ++ b, M-v, -, PGUP ++ ++ b, M-v, - ++ ++ Scroll one page upwards ++
      ++ MOVE_RIGHT ++ ++ l, C-f, RIGHT ++ ++ l ++ ++ Move cursor right (with a half-screen shift at the screen edge) ++
      ++ MOVE_LEFT ++ ++ h, C-b, LEFT ++ ++ h ++ ++ Move cursor left (with a half-screen shift at the screen edge) ++
      ++ MOVE_DOWN ++ ++ j, C-n, DOWN ++ ++ j ++ ++ Move cursor down (with a one-line scroll at the screen edge) ++
      ++ MOVE_UP ++ ++ k, C-p, UP ++ ++ k ++ ++ Move cursor up (with a one-line scroll at the screen edge) ++
      ++ UP ++ ++ J ++ ++ J ++ ++ Scroll the screen up one line ++
      ++ DOWN ++ ++ K ++ ++ K ++ ++ Scroll the screen down one line ++
      ++ LINE_BEGIN ++ ++ ^, C-a ++ ++ ^ ++ ++ Go to the beginning of the line ++
      ++ LINE_END ++ ++ $, C-e ++ ++ $ ++ ++ Go to the end of the line ++
      ++ NEXT_WORD ++ ++ w ++ ++ w ++ ++ Move to the next word ++
      ++ PREVIOUS_WORD ++ ++ W ++ ++ W ++ ++ Move to the previous word ++
      ++ SHIFT_RIGHT ++ ++ > ++ ++ > ++ ++ Shift screen right ++
      ++ SHIFT_LEFT ++ ++ < ++ ++ < ++ ++ Shift screen left ++
      ++ RIGHT ++ ++ . ++ ++ . ++ ++ Shift screen one column right ++
      ++ LEFT ++ ++ , ++ ++ , ++ ++ Shift screen one column left ++
      ++ BEGIN ++ ++ g, M-<, HOME ++ ++ C-a, M-< ++ ++ Go to the first line ++
      ++ END ++ ++ G, M->, END ++ ++ C-e, M-> ++ ++ Go to the last line ++
      ++ GOTO_LINE ++ ++ M-g ++ ++ G ++ ++ Go to the specified line ++
      ++ LINE_INFO ++ ++ C-g ++ ++ C-g ++ ++ Display current position in document ++
      ++ CENTER_H ++ ++ Z ++ ++ Z ++ ++ Center screen right and left of the cursor column ++
      ++ CENTER_V ++ ++ z ++ ++ z ++ ++ Center screen above and below the cursor line ++
      ++ NEXT_LINK ++ ++ TAB ++ ++ TAB, C-n, DOWN ++ ++ Move to the next hyperlink ++
      ++ PREVIOUS_LINK ++ ++ M-TAB, C-u=20 ++ ++ M-TAB, C-u, C-p, UP ++ ++ Move to the previous hyperlink ++
      ++ LINK_BEGIN ++ ++ [ ++ ++ [ ++ ++ Move to the first hyperlink ++
      ++ LINK_END ++ ++ ] ++ ++ ] ++ ++ Move to the last hyperlink ++
      MOVE_LIST_MENUM-mM-mPop up menu to navigate between hyperlinks
      ++

      Hyperlink Operations

      ++
      ++ GOTO_LINK ++ ++ C-j, C-m, RET ++ ++ C-f, C-j, C-m, RET, RIGHT ++ ++ Follow current hyperlink in a new buffer ++
      LIST_MENUM-lM-lPop up hyperlink menu and select one to be followed
      ++ SAVE_LINK ++ ++ a, M-RET ++ ++ d, M-RET ++ ++ Save the hyperlink target ++
      ++ PEEK_LINK ++ ++ u ++ ++ u ++ ++ Show target address ++
      ++ PEEK_IMG ++ ++ i ++ ++ i ++ ++ Show image address ++
      ++ VIEW_IMAGE ++ ++ I ++ ++ I ++ ++ Display image in viewer ++
      ++ SAVE_IMAGE ++ ++ M-I ++ ++ M-I ++ ++ Save inline image ++
      MARK_WORD;;Turn current word into hyperlink
      ++ MARK_URL ++ ++ : ++ ++ : ++ ++ Turn URL-like strings into hyperlinks ++
      ++ MARK_MID ++ ++ M-: ++ ++ M-: ++ ++=20 ++ Turn Message-ID-like strings into hyperlinks ++
      ++ PEEK ++ ++ c ++ ++ c ++ ++ Show current address ++
      ++ INFO ++ ++ =3D ++ ++ =3D ++ ++ Display information about the current document ++
      ++ HISTORY ++ ++ C-h ++ ++ C-h ++ ++ Show browsing history ++
      ++ EXTERN ++ ++ M ++ ++ M ++ ++ Browse current document using external browser (prefix 2, 3, ..., ++ or 9 to invoke alternate configured browsers, e.g. 3 M) ++
      ++ EXTERN_LINK ++ ++ M-M ++ ++ M-M ++ ++ Browse link using external browser (prefixed as above, e.g. ++ 3 M-M) ++
      ++

      Bookmark management

      ++
      ++ BOOKMARK ++ ++ M-b ++ ++ v, M-b ++ ++ View bookmarks ++
      ++ ADD_BOOKMARK ++ ++ M-a ++ ++ a, M-a ++ ++ Add current page to bookmarks ++
      ++

      File/Stream Operations

      ++
      ++ GOTO ++ ++ U ++ ++ g, U ++ ++ Open specified document in a new buffer ++
      GOTO_RELATIVEM-uM-uOpen relative address in a new buffer
      ++ LOAD ++ ++ V ++ ++ V ++ ++ Open local file in a new buffer ++
      ++ READ_SHELL ++ ++ @ ++ ++ @ ++ ++ ++ = =20 ++ Execute shell command and display output in a new buffer ++
      ++ PIPE_SHELL ++ ++ # ++ ++ # ++ ++ ++ = =20 ++ Execute shell command and display output in a new buffer ++
      ++

      Content Operations

      ++
      ++ VIEW ++ ++ v ++ ++ \ ++ ++ Toggle between source code and rendered view of the document ++
      LISTLLList link elements, hyperlinks and images
      ++ FRAME ++ ++ F ++ ++ F ++ ++ Toggle rendering HTML frames ++
      ++ REDRAW ++ ++ C-l ++ ++ C-l, C-w ++ ++ Draw the screen anew ++
      ++ RELOAD ++ ++ R ++ ++ R, C-r ++ ++ Load current document anew ++
      ++ EDIT ++ ++ E ++ ++ E ++ ++ Edit local source ++
      ++ EDIT_SCREEN ++ ++ M-e ++ ++ M-e ++ ++ Edit rendered copy of document ++
      PIPE_BUF||Pipe current buffer through a shell command and display output
      ++ DOWNLOAD ++ ++ M-s ++ ++ M-s ++ ++ Save document source ++
      ++ SAVE_SCREEN ++ ++ S ++ ++ S, p ++ ++ Save rendered document ++
      ++

      Buffer/Tab Navigation

      ++
      ++ BACK ++ ++ B ++ ++ B, C-b, LEFT ++ ++ Close current buffer and return to the one below in stack ++
      ++ SELECT_MENU ++ ++ s ++ ++ s, C-h ++ ++ Pop up buffer-stack menu ++
      ++ TAB_MENU ++ ++ M-t ++ ++ M-t ++ ++ Pop up tab selection menu ++
      ++ NEW_TAB ++ ++ T ++ ++ T ++ ++ Open a new tab (with current document) ++
      ++ TAB_LINK ++ ++ C-t ++ ++ C-t ++ ++ Follow current hyperlink in a new tab ++
      ++ NEXT_TAB ++ ++ } ++ ++ } ++ ++ Switch to the next tab ++
      ++ PREV_TAB ++ ++ { ++ ++ { ++ ++ Switch to the previous tab ++
      ++ CLOSE_TAB ++ ++ C-q ++ ++ C-q ++ ++ Close the current tab ++
      ++

      Searches

      ++
      ++ SEARCH ++ ++ / ++ ++ /, C-s ++ ++ Search forward ++
      ++ SEARCH_BACK ++ ++ ? ++ ++ ++ Search backward ++
      ++ ISEARCH ++ ++ C-s ++ ++ ++ Incremental search forward ++
      ++ ISEARCH_BACK ++ ++ C-r ++ ++ ++ Incremental search backward ++
      ++ SEARCH_NEXT ++ ++ n ++ ++ n ++ ++ Continue search forward ++
      ++ SEARCH_PREV ++ ++ N ++ ++ ++ Continue search backward ++
      ++ WRAP_TOGGLE ++ ++ C-w ++ ++ w ++ ++ Toggle wrapping mode in searches ++
      ++

      Mark Management

      ++
      ++ MARK ++ ++ C-SPC ++ ++ C-SPC ++ ++ Set/unset mark ++
      ++ PREV_MARK ++ ++ M-p ++ ++ P ++ ++ Go to the previous mark ++
      ++ NEXT_MARK ++ ++ M-n ++ ++ N ++ ++ Go to the next mark ++
      ++ REG_MARK ++ ++ " ++ ++ " ++ ++ Mark all occurrences of a pattern ++
      ++

      Miscellaneous

      ++
      ++ COMMAND ++ ++ M-c ++ ++ M-c ++ ++ Invoke one or more semicolon-separated w3m functions ++
      ++ HELP ++ ++ H ++ ++ H, ? ++ ++ Show help panel ++
      ++ OPTIONS ++ ++ o ++ ++ o ++ ++ Display options setting panel ++
      SET_OPTIONM-oM-oSet option
      DEFINE_KEYM-kM-kDefine a binding between a key stroke combination and a command
      MOUSE_TOGGLEmmToggle mouse support
      DOWNLOAD_LISTDDDisplay downloads panel
      ++ COOKIE ++ ++ C-k ++ ++ C-k ++ ++ Show cookie jar ++
      UNDO((Cancel the last cursor movement
      REDO))Cancel the last undo
      ++ EXEC_SHELL ++ ++ ! ++ ++ ! ++ ++ Execute shell command ++
      DICT_WORDM-wM-wExecute dictionary command (see README.dict)
      DICT_WORD_ATM-WM-WExecute dictionary command for word at cursor
      VERSIONrrDisplay the version of w3m
      ++ SUSPEND ++ ++ C-z ++ ++ C-z ++ ++ Suspend w3m to background. (To be withdrawn with shell ++ command fg.) ++
      ++ QUIT ++ ++ q ++ ++ q ++ ++ Quit with confirmation request ++
      ++ EXIT ++ ++ Q ++ ++ Q ++ ++ Quit at once ++
      +=20 +-
      +- +-

      Local CGI

      +-You can run CGI scripts using w3m, without any HTTP server. +-It means that w3m behaves like an HTTP server and activates CGI script, +-then w3m reads the output of the script and display it. The=20 +-bookmark registration +-and helper-app edito= r +-are realized as local CGI scripts. +-Using local CGI, w3m can be used as a general purpose form interface. +-

      +-For security reason, CGI scripts invoked by w3m must be in one of +-these directories. +-

        +-
      • The directory where w3m-related files are stored=20 +-(typically /usr/local/lib/w3m). This directory can be referred +-as $LIB. +-
      • /cgi-bin/ directory. You can map /cgi-bin/ to any directory you like +-with option setting panel (``Directory corresponds to /cgi-bin'' field). +-You can specify multiple paths separated by `:', like +-/usr/local/cgi-bin:/home/aito/cgi-bin. To use /cgi-bin/ directory, +-you must use file:/cgi-bin URL as follows: ++

        ++ There are the following operational modes with built-in key ++ bindings for relevant functions. These bindings are not subject to ++ the DEFINE_KEY function or entries in the file keymap. ++

        ++=20=20=20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
        ++ Function
        (internal name) ++
        Key binding ++ ++ Description ++
        ++

        Menu Selection Mode

        ++
        ++ BUF:NEXT ++ j, C-n, DOWN ++ ++ Next item ++
        BUF:PREV ++ ++ k, C-p, UP ++ ++ Previous item ++
        ++ BUF:DELETE ++ D ++ ++ Delete item ++
        ++ BUF:GO ++ ++ SPC, RET, RIGHT ++ ++ Select item ++
        ++

        Popup Menu Mode

        ++
        ++MENU:SELECT ++ ++ SPC, RET, RIGHT ++ Select ++
        ++MENU:CLOSE ++ C-c ++ ++ Close menu ++
        ++MENU:CANCEL ++ ++ LEFT, BKSPC, C-h ++ One selection step backward ++
        ++MENU:DOWN ++ j, C-n, DOWN ++ ++ Move to the next item ++
        ++MENU:UP ++ ++ k, C-p, UP ++ Move to the previous item ++
        ++MENU:LINE_UP ++ K ++ ++ Scroll up one item ++
        ++MENU:LINE_DOWN ++ J ++ ++ Scroll down one item ++
        ++MENU:TOP ++ C-a ++ ++ Move to the first item ++
        ++MENU:LAST ++ C-e ++ ++ Move to the final item ++
        ++MENU:NEXT ++ C-v, C-f ++ Go to the next page ++
        ++MENU:PREV ++ ESC v, C-b ++ ++ Go to the previous page ++
        ++MENU:SEARCH_FORE ++ C-s, / ++ ++ Search forward ++
        ++MENU:SEARCH_BACK ++ ++ C-r, ? ++ Search backward ++
        ++MENU:SEARCH_NEXT ++ ++ n ++ Search for the next match
        ++MENU:SEARCH_PREV ++ ++ N ++ Search for the previous match
        ++

        Line-editing Mode

        ++
        ++ LINEEDIT:FORWARD ++ ++ C-f, RIGHT ++ ++ Move cursor forward ++
        ++LINEEDIT:BACK ++ ++ C-b, LEFT ++ ++ Move cursor backward ++
        ++LINEEDIT:BS ++ ++ C-h, BKSPC ++ ++ Delete previous character ++
        ++LINEEDIT:DEL ++ ++ C-d ++ ++ Delete current character ++
        ++LINEEDIT:KILL_AFTER ++ ++ C-k ++ ++ Delete everything after cursor ++
        ++LINEEDIT:KILL_BEFORE ++ ++ C-u ++ ++ Delete everything before cursor ++
        ++LINEEDIT:TOP ++ ++ C-a ++ ++ Move to the beginning of the line ++
        ++LINEEDIT:BOTTOM ++ ++ C-e ++ ++ Move to the end of the line ++
        ++LINEEDIT:PREV ++ ++ C-p, UP ++ ++ Fetch the previous string from the history list ++
        ++LINEEDIT:NEXT ++ ++ C-n, DOWN ++ ++ Fetch the next string from the history list ++
        ++LINEEDIT:COMPLETE ++ ++ TAB, SPC ++ ++ Try to complete filename ++
        ++LINEEDIT:EDITOR ++ ++ C-o ++ ++ Edit with external editor ++
        ++LINEEDIT:ACCEPT ++ ++ RET ++ ++ Accept input line ++
        ++ ++ ++
        ++

        ++ Mouse Operation ++

        ++

        ++ If w3m is compiled with mouse support and you are invoking w3m ++ either from a console with GPM or from an X terminal emulator, you ++ can use the mouse for navigation (in the case of rxvt, you need to ++ set the TERM environment variable to xterm or kterm). ++

        ++

        An introduction to configure mouse actions is provided ++ with README.mouse. ++

        ++ ++ ++ ++ ++ ++ ++ ++ ++ =20=20=20 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
        Operation ++ Description ++
        ++ left click ++ ++First:
        ++Moves the cursor to the place indicated by the mouse pointer.
        ++Then:
        ++Follows a hyperlink the cursor is currently located and the mouse points = to. ++
        ++ middle click ++ ++ Back to the previous buffer. ++
        ++ right click ++ ++ Open pop-up menu. You can choose an item by clicking it. ++
        ++ left drag ++ ++ Scroll document. The default behavior is to grab the document ++ and drag it. You can reverse the behavior (grab the window and ++ drag it) with the options setting panel. ++
        ++
        ++

        ++ Local CGI scripts ++

        ++

        ++ You can run CGI scripts using w3m, without any HTTP server. ++ This means that w3m behaves like an HTTP server and runs the CGI ++ script, then reads the output of the script and displays it. For ++ example, the bookmark registration system and default directory ++ browser are realized as local CGI scripts. Moreover, such scripts ++ allow w3m to be used as a form interface to acquire all kinds of ++ data. ++

        ++

        ++ For security reason, CGI scripts invoked by w3m must be in one of ++ the following directories: ++

        ++
          ++
        • ++ The directory where w3m-related files are stored (typically ++ /usr/local/lib/w3m). This directory can be referenced as $LIB. ++
        • ++
        • ++ The /cgi-bin/ directory. You can map /cgi-bin/ to any directory you ++ like in the options setting panel (the Directory corresponds to ++ /cgi-bin field). You can specify multiple paths separated by ++ :, like /usr/local/cgi-bin:/home/aito/cgi-bin. It is not ++ recommended to include the current directory to this path. To use ++ a /cgi-bin/ directory, you must use a file:/cgi-bin URL as follows: ++
        • +
          +  w3m -o cgi_bin=3D/path/to/cgi-bin file:/cgi-bin/script.cgi
          + 
          +-It is not recommended to include current directory to this path. +-
        +-

        +-The CGI script can use special header `w3m-control:' to control w3m. +-This field can take any function (see README.func= ), +-and the specified function is invoked after the document is displayed. +-For example, The CGI output ++

      ++

      ++ The CGI script can use the special header ++ w3m-control: to ++ control w3m. This field can take any function (see ++ README.func), and the specified function ++ is invoked after the document is displayed. For example, the CGI ++ output ++

      +
      +-
      + Content-Type: text/plain
      + W3m-control: BACK
      +-
      + 
      +-will display blank page and delete that buffer immediately. +-This is useful when you don't want to display any page after +-the script is invoked. The next example ++

      ++ will display a blank page and delete that buffer immediately. ++ This is useful when you don't want to display any page after ++ the script is invoked. The next example ++

      +
      +-
      + Content-Type: text/plain
      + W3m-control: DELETE_PREVBUF
      +-
      + contents.....
      + 
      +-will override the current buffer. +-

      +-One w3m-control: header have to contain only one function, but you can +-include more than one w3m-control: lines in the HTTP header. +-In addition, you can specify an argument to GOTO function: ++

      ++ will override the current buffer. ++

      ++

      ++ Each header w3m-control: can ++ contain only one function, but you can ++ include more than one w3m-control: ++ line in the HTTP header. ++ In addition, you can specify an argument to the GOTO function: ++

      +
      +-
      + Content-Type: text/plain
      +-W3m-control: GOTO http://www.yahoo.com/
      +-
      ++W3m-control: GOTO http://www.example.org/
      + 
      +-This example works exactly the same way to the Location header:=20 ++

      ++ This example works exactly the same way as the Location header: ++

      +
      +-
      + Content-Type: text/plain
      +-Location: http://www.yahoo.com/
      +-
      ++Location: http://www.example.org/
      + 
      +-Note that this header has no effect when the CGI script is invoked +-through HTTP server. +- +- ++

      ++ Note that this header has no effect when the CGI script is invoked ++ through an HTTP server. ++

      ++ + +diff --git a/doc/README b/doc/README +index 324ea3e..60d6d19 100644 +--- a/doc/README ++++ b/doc/README +@@ -115,7 +115,6 @@ Current Maintainer + Tohoku University Hospital + satodai@w3m.jp +=20 +-Feel free to send your opinion to the w3m mailing-lists. +- w3m-dev@sic.med.tohoku.ac.jp (Japanese) +- w3m-dev-en@sic.med.tohoku.ac.jp (English) ++Feel free to send your opinion to: + http://w3m.sourceforge.net/ ++ https://sourceforge.net/projects/w3m/ +diff --git a/doc/README.cookie b/doc/README.cookie +index 56cca50..da16947 100644 +--- a/doc/README.cookie ++++ b/doc/README.cookie +@@ -37,7 +37,7 @@ cookie support of w3m + (HDN: host domain name) +=20 +=20 +- =A1=A6 If the number of "." in domain name is lesser than 2, it is ++ * If the number of "." in domain name is lesser than 2, it is + assumed as invalid cookie (cf. RFC 2109 4.3.2), however, you can + use cookie_avoid_wrong_number_of_dots to avoid this + restriction. You can set this in "Domains to avoid [wrong number +diff --git a/doc/README.func b/doc/README.func +index 0b2c034..a3ef3ac 100644 +--- a/doc/README.func ++++ b/doc/README.func +@@ -1,145 +1,146 @@ +-ABORT Quit w3m without confirmation +-ACCESSSKEY Popup acceskey menu +-ADD_BOOKMARK Add current page to bookmark ++ABORT Quit at once ++ACCESSKEY Pop up accesskey menu ++ADD_BOOKMARK Add current page to bookmarks + ALARM Set alarm +-BACK Back to previous buffer ++BACK Close current buffer and return to the one below in stack + BEGIN Go to the first line +-BOOKMARK Read bookmark +-CENTER_H Move to the center line +-CENTER_V Move to the center column +-CHARSET Change the current document charset +-CLOSE_TAB Close current tab +-CLOSE_TAB_MOUSE Close tab on mouse cursor (for mouse action) +-COMMAND Execute w3m command(s) ++BOOKMARK View bookmarks ++CENTER_H Center on cursor column ++CENTER_V Center on cursor line ++CHARSET Change the character encoding for the current document ++CLOSE_TAB Close tab ++CLOSE_TAB_MOUSE Close tab at mouse pointer ++COMMAND Invoke w3m function(s) + COOKIE View cookie list +-DEFAULT_CHARSET Change the default document charset +-DEFINE_KEY Define a binding between a key stroke and a user command +-DELETE_PREVBUF Delete previous buffer (mainly for local-CGI) ++DEFAULT_CHARSET Change the default character encoding ++DEFINE_KEY Define a binding between a key stroke combination and a command ++DELETE_PREVBUF Delete previous buffer (mainly for local CGI-scripts) + DICT_WORD Execute dictionary command (see README.dict) +-DICT_WORD_AT Execute dictionary command for word at cursor ++DICT_WORD_AT Execute dictionary command for word at cursor + DISPLAY_IMAGE Restart loading and drawing of images +-DOWN Scroll down one line +-DOWNLOAD Save document source to file +-DOWNLOAD_LIST Display download list panel +-EDIT Edit current document +-EDIT_SCREEN Edit currently rendered document ++DOWN Scroll the screen down one line ++DOWNLOAD Save document source ++DOWNLOAD_LIST Display downloads panel ++EDIT Edit local source ++EDIT_SCREEN Edit rendered copy of document + END Go to the last line +-EXEC_SHELL Execute shell command +-EXIT Quit w3m without confirmation +-EXTERN Execute external browser +-EXTERN_LINK View current link using external browser +-FRAME Render frame +-GOTO Go to URL +-GOTO_LINE Go to specified line +-GOTO_LINK Go to current link +-GOTO_RELATIVE Go to relative URL +-HELP View help +-HISTORY View history of URL +-INFO View info of current document +-INTERRUPT Stop loading document +-INIT_MAILCAP Reread mailcap (mainly for local-CGI) +-ISEARCH Incremental search forward ++EXEC_SHELL Execute shell command and display output ++EXIT Quit at once ++EXTERN Display using an external browser ++EXTERN_LINK Display target using an external browser ++FRAME Toggle rendering HTML frames ++GOTO Open specified document in a new buffer ++GOTO_LINE Go to the specified line ++GOTO_LINK Follow current hyperlink in a new buffer ++GOTO_RELATIVE Go to relative address ++HELP Show help panel ++HISTORY Show browsing history ++INFO Display information about the current document ++INTERRUPT Suspend w3m to background ++ISEARCH Incremental search forward + ISEARCH_BACK Incremental search backward +-LEFT Shift screen one column +-LINE_BEGIN Go to the beginning of line +-LINE_END Go to the end of line +-LINE_INFO Show current line number +-LINK_BEGIN Go to the first link +-LINK_END Go to the last link +-LINK_MENU Popup link element menu +-LIST Show all links and images +-LIST_MENU Popup link list menu and go to selected link +-LOAD Load local file +-MAIN_MENU Popup menu ++LEFT Shift screen one column left ++LINE_BEGIN Go to the beginning of the line ++LINE_END Go to the end of the line ++LINE_INFO Display current position in document ++LINK_BEGIN Move to the first hyperlink ++LINK_END Move to the last hyperlink ++LINK_MENU Pop up link element menu ++LIST Show all URLs referenced ++LIST_MENU Pop up menu for hyperlinks to browse to ++LOAD Open local file in a new buffer ++MAIN_MENU Pop up menu + MARK Set/unset mark +-MARK_MID Mark Message-ID-like strings as anchors +-MARK_URL Mark URL-like strings as anchors +-MARK_WORD Mark current word as anchor +-MENU Popup menu +-MENU_MOUSE Popup menu at mouse cursor (for mouse action) +-MOUSE_TOGGLE Toggle activity of mouse +-MOVE_DOWN Move cursor down (a half screen scroll at the end of scree= n) +-MOVE_DOWN1 Move cursor down (1 line scroll at the end of screen) +-MOVE_LEFT Move cursor left (a half screen shift at the left edge) +-MOVE_LEFT1 Move cursor left (1 columns shift at the left edge) +-MOVE_LIST_MENU Popup link list menu and move cursor to selected link +-MOVE_MOUSE Move cursor to mouse cursor (for mouse action) +-MOVE_RIGHT Move cursor right (a half screen shift at the right edge) +-MOVE_RIGHT1 Move cursor right (1 columns shift at the right edge) +-MOVE_UP Move cursor up (a half screen scroll at the top of= screen) +-MOVE_UP1 Move cursor up (1 line scrol at the top of screen) +-MSGS Display error messages +-NEW_TAB Open new tab +-NEXT Move to next buffer +-NEXT_DOWN Move to next downward link=20 +-NEXT_LEFT Move to next left link=20 +-NEXT_LEFT_UP Move to next left (or upward) link=20 +-NEXT_LINK Move to next link +-NEXT_MARK Move to next word +-NEXT_PAGE Move to next page +-NEXT_RIGHT Move to next right link=20 +-NEXT_RIGHT_DOWN Move to next right (or downward) link=20 +-NEXT_TAB Move to next tab +-NEXT_UP Move to next upward link=20 +-NEXT_VISITED Move to next visited link +-NEXT_WORD Move to next word +-NOTHING Do nothing ++MARK_MID Turn Message-ID-like strings into hyperlinks ++MARK_URL Turn URL-like strings into hyperlinks ++MARK_WORD Turn current word into hyperlink ++MENU Pop up menu ++MENU_MOUSE Pop up menu at mouse pointer ++MOUSE_TOGGLE Toggle mouse support ++MOVE_DOWN Cursor down ++MOVE_DOWN1 Cursor down. With edge touched, slide ++MOVE_LEFT Cursor left ++MOVE_LEFT1 Cursor left. With edge touched, slide ++MOVE_LIST_MENU Pop up menu to navigate between hyperlinks ++MOVE_MOUSE Move cursor to mouse pointer ++MOVE_RIGHT Cursor right ++MOVE_RIGHT1 Cursor right. With edge touched, slide ++MOVE_UP Cursor up ++MOVE_UP1 Cursor up. With edge touched, slide ++MSGS Display error messages ++NEW_TAB Open a new tab (with current document) ++NEXT Switch to the next buffer ++NEXT_DOWN Move downward to the next hyperlink ++NEXT_HALF_PAGE Scroll down half a page ++NEXT_LEFT Move left to the next hyperlink ++NEXT_LEFT_UP Move left or upward to the next hyperlink ++NEXT_LINK Move to the next hyperlink ++NEXT_MARK Go to the next mark ++NEXT_PAGE Scroll down one page ++NEXT_RIGHT Move right to the next hyperlink ++NEXT_RIGHT_DOWN Move right or downward to the next hyperlink ++NEXT_TAB Switch to the next tab ++NEXT_UP Move upward to the next hyperlink ++NEXT_VISITED Move to the next visited hyperlink ++NEXT_WORD Move to the next word ++NOTHING Do nothing + NULL Do nothing +-OPTIONS Option setting panel +-PEEK Peek current URL +-PEEK_IMG Peek image URL=20 +-PEEK_LINK Peek link URL +-PIPE_BUF Send rendered document to pipe +-PIPE_SHELL Execute shell command and browse +-PREV Move to previous buffer +-PREV_LINK Move to previous link +-PREV_MARK Move to previous mark +-PREV_PAGE Move to previous page +-PREV_TAB Move to previous tab +-PREV_VISITED Move to previous visited link +-PREV_WORD Move to previous word +-PRINT Save buffer to file +-QUIT Quit w3m +-READ_SHELL Execute shell command and load ++OPTIONS Display options setting panel ++PEEK Show current address ++PEEK_IMG Show image address ++PEEK_LINK Show target address ++PIPE_BUF Pipe current buffer through a shell command and display output ++PIPE_SHELL Execute shell command and display output ++PREV Switch to the previous buffer ++PREV_HALF_PAGE Scroll up half a page ++PREV_LINK Move to the previous hyperlink ++PREV_MARK Go to the previous mark ++PREV_PAGE Scroll up one page ++PREV_TAB Switch to the previous tab ++PREV_VISITED Move to the previous visited hyperlink ++PREV_WORD Move to the previous word ++PRINT Save rendered document ++QUIT Quit with confirmation request ++READ_SHELL Execute shell command and display output + REDO Cancel the last undo +-REDRAW Redraw screen +-REG_MARK Set mark using regexp +-REINIT Reload configuration files +-RELOAD Reload buffer +-RESHAPE Re-render buffer ++REDRAW Draw the screen anew ++REG_MARK Mark all occurences of a pattern ++REINIT Reload configuration file ++RELOAD Load current document anew ++RESHAPE Re-render document + RIGHT Shift screen one column right +-SAVE Save document source to file +-SAVE_IMAGE Save image to file +-SAVE_LINK Save link to file +-SAVE_SCREEN Save rendered document to file ++SAVE Save document source ++SAVE_IMAGE Save inline image ++SAVE_LINK Save hyperlink target ++SAVE_SCREEN Save rendered document + SEARCH Search forward + SEARCH_BACK Search backward + SEARCH_FORE Search forward +-SEARCH_NEXT Search next regexp +-SEARCH_PREV Search previous regexp +-SELECT Go to buffer selection panel +-SELECT_MENU Popup buffer selection menu +-SETENV Set environment variable +-SET_OPTION Set option +-SHELL Execute shell command ++SEARCH_NEXT Continue search forward ++SEARCH_PREV Continue search backward ++SELECT Display buffer-stack panel ++SELECT_MENU Pop up buffer-stack menu ++SETENV Set environment variable ++SET_OPTION Set option ++SHELL Execute shell command and display output + SHIFT_LEFT Shift screen left + SHIFT_RIGHT Shift screen right +-SOURCE View HTML source ++SOURCE Toggle between HTML shown or processed + STOP_IMAGE Stop loading and drawing of images + SUBMIT Submit form +-SUSPEND Stop loading document +-TAB_GOTO Open URL on new tab +-TAB_GOTO_RELATIVE Open relative URL on new tab +-TAB_LEFT Move current tab left +-TAB_LINK Open current link on new tab +-TAB_MENU Popup tab selection menu +-TAB_MOUSE Move to tab on mouse cursor (for mouse action) +-TAB_RIGHT Move current tab right ++SUSPEND Suspend w3m to background ++TAB_GOTO Open specified document in a new tab ++TAB_GOTO_RELATIVE Open relative address in a new tab ++TAB_LEFT Move left along the tab bar ++TAB_LINK Follow current hyperlink in a new tab ++TAB_MENU Pop up tab selection menu ++TAB_MOUSE Select tab by mouse action ++TAB_RIGHT Move right along the tab bar + UNDO Cancel the last cursor movement +-UP Scroll up one line +-VERSION Display version of w3m +-VIEW View HTML source +-VIEW_BOOKMARK View bookmark +-VIEW_IMAGE View image +-WHEREIS Search forward +-WRAP_TOGGLE Toggle wrap search mode ++UP Scroll the screen up one line ++VERSION Display the version of w3m ++VIEW Toggle between HTML shown or processed ++VIEW_BOOKMARK View bookmarks ++VIEW_IMAGE Display image in viewer ++WHEREIS Search forward ++WRAP_TOGGLE Toggle wrapping mode in searches +diff --git a/doc/README.img b/doc/README.img +index 0c10114..f11362f 100644 +--- a/doc/README.img ++++ b/doc/README.img +@@ -41,7 +41,7 @@ Key functions + Specify the following keymaps in ~/.w3m/keymap. + keymap X DISPLAY_IMAGE + keymap C-c STOP_IMAGE +- keyamp t SET_OPTION display_image=3Dtoggle ++ keymap t SET_OPTION display_image=3Dtoggle +=20 + Commandline options +=20 +diff --git a/doc/README.m17n b/doc/README.m17n +index c064d76..da5408b 100644 +--- a/doc/README.m17n ++++ b/doc/README.m17n +@@ -49,7 +49,7 @@ Supported encoding schemes (character set) + * Thai + TIS-620 (ISO-8859-11), CP874 + * Other +- US_ASCII, ISO-8859-1 =A1=C1 10, 13 =A1=C1 15, ++ US_ASCII, ISO-8859-1 - 10, 13 - 15, + KOI8-R, KOI8-U, NeXT, CP437, CP737, CP775, CP850, CP852, CP855, CP8= 56, + CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP869, CP10= 06, + CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256, CP1257 +diff --git a/doc/README.siteconf b/doc/README.siteconf +new file mode 100644 +index 0000000..39b1028 +--- /dev/null ++++ b/doc/README.siteconf +@@ -0,0 +1,60 @@ ++The siteconf: Site-specific preferences=20 ++ ++The siteconf consists of URL patterns and preferences associated to them. ++You can improve "decode_url" feature by giving charsets of URLs site by s= ite, ++or bypass Google's redirector for performance and your privacy. ++ ++The siteconf is read from ~/.w3m/siteconf by default. ++ ++=3D=3D=3D=3D=3D The syntax =3D=3D=3D=3D=3D ++ ++url |//|m@@i [exact] ++substitute_url "" ++url_charset ++no_referer_from on|off ++no_referer_to on|off ++ ++The last match wins. ++ ++=3D=3D=3D=3D=3D Examples =3D=3D=3D=3D=3D ++ ++url "https://twitter.com/" ++substitute_url "https://mobile.twitter.com/" ++ ++This forwards the twitter.com to its mobile site. ++ ++url "http://your.bookmark.net/" ++no_referer_from on ++ ++This prevents HTTP referers from being sent when you follow links ++at the your.bookmark.net. ++ ++url "http://www.google.com/url?" exact ++substitute_url "file:///cgi-bin/your-redirector.cgi?" ++ ++This forwards the Google's redirector to your local CGI. ++ ++url /^http:\/\/[a-z]*\.wikipedia\.org\// ++url_charset utf-8 ++ ++When combinated with "decode_url" option turned on, links to ++Wikipedia will be human-readable. ++ ++=3D=3D=3D=3D=3D Regular expressions notes =3D=3D=3D=3D=3D ++ ++Following expressions are all equivalent: ++ ++/http:\/\/www\.example\.com\// ++m/http:\/\/www\.example\.com\// ++m@http://www\.example\.com/@ ++m!http://www\.example\.com/! ++ ++With a trailing 'i' modifier, you can specify a case-insensitive match. ++For example, m@^http://www\.example\.com/abc/@i matches to: ++ ++http://www.example.com/abc/ ++http://www.example.com/Abc/ ++http://www.example.com/ABC/ ++ ++Hostnames, however, are always converted to lowercases before compared. ++ +diff --git a/doc/README.sixel b/doc/README.sixel +new file mode 100644 +index 0000000..588afc4 +--- /dev/null ++++ b/doc/README.sixel +@@ -0,0 +1,27 @@ ++Sixel support of w3m ++ 2014/11/05 ++ K. Araki ++ ++Introduction ++ ++ This is the extension for w3m to show inline images by sixel graphics. ++ ++Requirements ++ ++ Install 'img2sixel' command provided by libsixel project. ++ (https://github.com/saitoha/libsixel) ++ ++Build ++ ++ $ ./configure --enable-image ... ++ $ make ++ $ make install ++ ++Usage ++ ++ $ w3m -sixel http://... ++ ++ You can specify options of 'img2sixel' command by "W3M_IMG2SIXEL" ++ environmental variable. ++ ++ $ W3M_IMG2SIXEL=3D"img2sixel -d atkinson" w3m -sixel http://... +diff --git a/doc/keymap.lynx b/doc/keymap.lynx +index 869c716..e4085c8 100644 +--- a/doc/keymap.lynx ++++ b/doc/keymap.lynx +@@ -46,7 +46,7 @@ keymap - PREV_PAGE + keymap . RIGHT + keymap / SEARCH + keymap : MARK_URL +-keymap ; MARK_WORD ++keymap ";" MARK_WORD + keymap < SHIFT_LEFT + keymap =3D INFO + keymap > SHIFT_RIGHT +diff --git a/doc/menu.submenu b/doc/menu.submenu +index e55193d..e837f46 100644 +--- a/doc/menu.submenu ++++ b/doc/menu.submenu +@@ -39,6 +39,6 @@ menu Link + end +=20 + menu Bookmark +- func "Read bookmark (b)" BOOKMARK "bB" ++ func "View bookmarks (b)" BOOKMARK "bB" + func "Add page to bookmark(a)" ADD_BOOKMARK "aA" + end +diff --git a/doc/w3m.1 b/doc/w3m.1 +index 8f071c6..90488f3 100644 +--- a/doc/w3m.1 ++++ b/doc/w3m.1 +@@ -1,13 +1,10 @@ + .nr N -1 + .nr D 5 +-.TH W3M 1 Local +-.UC 4 ++.TH W3M 1 "2016-08-06" "w3m 0.5.3" + .SH NAME +-w3m \- a text based Web browser and pager ++w3m \- a text based web browser and pager + .SH SYNOPSIS +-.B w3m +-[options] [URL or filename] +-.PP ++w3m [OPTION]... [ \fIfile\fP | \fIURL\fP ]... + .SH DESCRIPTION + .\" This defines appropriate quote strings for nroff and troff + .ds lq \&" +@@ -17,234 +14,283 @@ w3m \- a text based Web browser and pager + .\" Just in case these number registers aren't set yet... + .if \nN=3D=3D0 .nr N 10 + .if \nD=3D=3D0 .nr D 5 +-.I +-w3m +-is a World Wide Web (WWW) text based client. It has English and +-Japanese help files and an option menu and can be configured to +-use either language. It will display hypertext markup language +-(HTML) documents containing links to files residing on the local +-system, as well as files residing on remote systems. It can +-display HTML tables and frames. +-In addition, it can be used as a "pager" in much the same manner +-as "more" or "less". +-Current versions of +-.I +-w3m +-run on +-Unix (Solaris, SunOS, HP-UX, Linux, FreeBSD, and EWS4800) +-and on +-Microsoft Windows 9x/NT. +-.PP ++ ++\fIw3m\fP is a text based browser which can display local or remote ++web pages as well as other documents. It is able to process HTML ++tables and frames but it ignores JavaScript and Cascading Style ++Sheets. \fIw3m\fP can also serve as a pager for text files named as ++arguments or passed on standard input, and as a general purpose ++directory browser. ++ ++\fIw3m\fP organizes its content in buffers or tabs, allowing easy ++navigation between them. With the w3m-img extension installed, \fIw3m\fP = can ++display inline graphics in web pages. And whenever \fIw3m\fP's HTML ++rendering capabilities do not meet your needs, the target URL can be ++handed over to a graphical browser with a single command. ++ ++For help with runtime options, press \(lqH\(rq while running \fIw3m\fP.=20 ++ ++.SH ARGUMENTS ++ ++When given one or more command line arguments, \fIw3m\fP will handle ++targets according to content type. For web, \fIw3m\fP gets this ++information from HTTP headers; for relative or absolute file system ++paths, it relies on filenames. ++ ++With no argument, \fIw3m\fP expects data from standard input and ++assumes \(lqtext/plain\(rq unless another MIME type is given by the user. ++ ++If provided with no target and no fallback target (see for instance ++option \fB\-v\fP below), \fIw3m\fP will exit with usage information. + .SH OPTIONS +-At start up, \fIw3m\fR will load any local +-file or remote URL specified at the command +-line. For help with runtime options, press \fB"H"\fR +-while running \fIw3m\fR. +-Command line options are: +-.PP ++Command line options are introduced with a single \(lq\-\(rq character and ++may take an argument. ++.SS General options + .TP +-.B -t tab +-set tab width ++\fB\-B\fP ++with no other target defined, use the bookmark page for startup + .TP +-.B -r +-ignore backspace effect +-.TP +-.B -l line +-# of preserved line (default 10000) +-.TP +-.B -I charset +-document charset +-.TP +-.B -O charset +-display/output charset ++\fB\-M\fP ++monochrome display + .TP +-.B -B +-load bookmark ++\fB\-no-mouse\fP ++deactivate mouse support + .TP +-.B -bookmark file +-specify bookmark file ++\fB\-num\fP ++display each line's number + .TP +-.B -T type +-specify content-type ++\fB\-N\fP ++distribute multiple command line arguments to tabs. By default, a ++stack of buffers is used ++.TP=20 ++\fB\-ppc \fInum\fR ++width of \fInum\fR pixels per character. Range of 4.0 to 32.0, default 8.= 0. ++Larger values will make tables narrower. (Implementation not verified) + .TP +-.B -m +-internet message mode ++\fB\-ppl \fInum\fR ++height of \fInum\fR pixels per line. Range of 4.0 to 64.0. (Implementatio= n not verified) + .TP +-.B -v +-visual startup mode ++\fB\-title\fP, \fB\-title=3DTERM\fP ++use the buffer name as terminal title string. With specified TERM, ++this sets the title configuration style accordingly + .TP +-.B -M +-monochrome display ++\fB\-v\fP ++with no other target defined, welcome users with a built-in page + .TP +-.B -N +-open URL of command line on each new tab ++\fB\-W\fP ++toggle wrapping mode in searches + .TP +-.B -F +-automatically render frame ++\fB\-X\fP ++do not initialize/deinitialize the terminal + .TP +-.B -dump +-dump formatted page into stdout ++\fB+\fInum\fR ++go to line \fInum\fR; only effective for \fInum\fR larger than the number= of lines in the terminal ++.SS Browser options + .TP +-.B -cols width +-specify column width (used with -dump) ++\fB\-cols \fInum\fR ++with stdout as destination; HTML is rendered to lines of \fInum\fR charac= ters + .TP +-.B -ppc count +-specify the number of pixels per character (4.0...32.0). +-Larger values will make tables narrower. [default 8.0] ++\fB\-cookie\fP, \fB\-no-cookie\fP ++use stored cookies and accept new ones, or do neither + .TP +-.B -ppl count +-specify the number of pixels per line (4.0...64.0) ++\fB\-F\fP ++render frames + .TP +-.B -dump_source +-dump page source into stdout ++\fB\-graph\fP, \fB\-no-graph\fP ++use or do not use graphic characters for drawing HTML table and frame bor= ders + .TP +-.B -dump_head +-dump response of HEAD request into stdout ++\fB\-header \fIstring\fR ++append \fIstring\fR to the HTTP(S) request. Expected to match the header = syntax \f(CWVariable: Value\fP + .TP +-.B -dump_both +-dump HEAD and source into stdout ++\fB\-m\fP ++Render the body of Usenet messages according to the header \(lqContent-ty= pe\(rq=20 + .TP +-.B -dump_extra +-dump HEAD, source, and extra information into stdout ++\fB\-no-proxy\fP ++do not use proxy + .TP +-.B -post file +-use POST method with file content ++\fB\-post \fIfile\fR ++use POST method to upload data defined in \fIfile\fR. The syntax to be us= ed ++is \f(CWvar1=3Dvalue1[&var2=3Dvalue2]...\fP + .TP +-.B -header string +-insert string as a header ++\fB\-4\fP ++IPv4 only. Corresponds to dns_order=3D4 in configuration files + .TP +-.B + +-goto line ++\fB\-6\fP ++IPv6 only. Corresponds to dns_order=3D6 in configuration files ++.SS Text pager options + .TP +-.B -num +-show line number ++\fB\-l \fInum\fR ++number of lines preserved internally when receiving plain text from ++stdin (default 10,000) + .TP +-.B -no-proxy +-don't use proxy ++\fB\-r\fP ++use caret notation to display special escape characters (such ++as ANSI escapes or nroff-style backspaces for bold and underlined ++characters) instead of processing them + .TP +-.B -4 +-IPv4 only (-o dns_order=3D4) ++\fB\-s\fP ++squeeze multiple blank lines into one + .TP +-.B -6 +-IPv6 only (-o dns_order=3D6) ++\fB\-t\fP \fInum\fP ++set tab width to \fInum\fR columns. No effect on stdout ++.SS Data type/encoding options + .TP +-.B -no-mouse +-don't use mouse ++\fB\-I \fIcharset\fR ++user defined character encoding of input data + .TP +-.B -cookie +-use cookie. ++\fB\-O \fIcharset\fR ++user defined character encoding of output data + .TP +-.B -no-cookie +-don't use cookie ++\fB\-T \fItype\fR ++explicit characterization of input data by MIME type ++.SS Options for data output, followed by immediate exit + .TP +-.B -graph +-use graphic character ++\fB\-dump\fP ++dump rendered page into stdout. Set implicitly when output is directed ++to a file or pipe + .TP +-.B -no-graph +-don't use graphic character ++\fB\-dump_source\fP ++dump the page's source code into stdout + .TP +-.B -S +-squeeze multiple blank lines ++\fB\-dump_head\fP ++dump response of a HEAD request for a URL into stdout + .TP +-.B -W +-toggle wrap search mode ++\fB\-dump_both\fP ++dump HEAD, and source code for a URL into stdout + .TP +-.B -X +-don't use termcap init/deinit ++\fB\-dump_extra\fP ++dump HEAD, source code, and extra information for a URL into stdout + .TP +-.B -title [=3DTERM] +-set buffer name to terminal title string.=20 +-If TERM is specified, use the TERM style title configuration. ++\fB\-help\fP ++show a summary of compiled-in features and command line options + .TP +-.B -o opt=3Dvalue +-assign value to config option ++\fB\-show-option\fP ++show all available configuration options + .TP +-.B -show-option +-show all available config option ++\fB\-version\fP ++show the version of \fIw3m\fP ++.SS Options for overriding default settings and resources + .TP +-.B -config file +-specify config file ++\fB\-bookmark \fIfile\fR ++use \fIfile\fR instead of the default bookmark.html file + .TP +-.B -help +-show usage ++\fB\-config \fIfile\fR ++use \fIfile\fR instead of the default configuration file + .TP +-.B -version +-show w3m version ++\fB\-debug\fP ++DO NOT USE + .TP +-.B -reqlog +-write request logfile ++\fB\-o \fIoption=3Dvalue\fR ++modify one configuration item with an explicitly given value; without \fI= option=3Dvalue\fR, equivalent to \fB-show-option\fR + .TP +-.B -debug +-DO NOT USE ++\fB\-reqlog\fP ++log headers of HTTP communication in file \f(CW~/.w3m/request.log\fP + .SH EXAMPLES ++.SS Pager-like usage=20 ++.TP ++Combine snippets of HTML code and preview the page=20 ++.EX ++$ cat header.html footer.html | w3m -T text/html ++.EE ++.TP ++Compare two files using tabs=20 ++.EX ++$ w3m -N config.old config ++.EE ++.SS Browser-like usage=20 ++.TP ++Display web content in monochrome terminal ++.EX ++$ w3m -M http://w3m.sourceforge.net ++.EE ++.TP ++Display embedded graphics ++.EX ++$ w3m -o auto_image=3DTRUE http://w3m.sourceforge.net ++.EE ++.TP ++Display content from Usenet ++.EX ++$ w3m -m nntp://news.aioe.org/comp.os.linux.networking ++.EE ++.TP ++Upload data for a URL using the POST method=20 ++.EX ++$ w3m -post - http://example.com/form.php <<<'a=3D0&b=3D1' ++.EE ++.SS Filter-like usage ++.TP ++Convert an HTML file to plain text with a defined line length ++.EX ++$ w3m -cols 40 foo.html > foo.txt ++.EE ++.TP ++Output the bookmarks page as text with an appended list of links ++.EX ++$ w3m -B -o display_link_number=3D1 > out.txt ++.EE ++.TP ++Conversion of file format and character encoding ++.EX ++$ w3m -T text/html -I EUC-JP -O UTF-8 < foo.html > foo.txt ++.EE ++.SS Start with no input ++.TP ++Welcome users with a built-in page ++.EX ++$ w3m -v ++.EE ++.\".SH Errors ++.SH ENVIRONMENT ++\fIw3m\fP recognises the environment variable WWW_HOME as defining a ++fallback target for use if it is invoked without one. ++.SH FILES + .TP +-To use w3m as a pager: +-.br +-$ ls | w3m +-.br +-.TP +-To use w3m to translate HTML files: +-.br +-$ cat foo.html | w3m -T text/html ++\f(CW~/.w3m/bookmark.html\fP ++default bookmark file=20 + .TP +-or +-.br +-$ cat foo.html | w3m -dump -T text/html >foo.txt +-.SH FILES ++\f(CW~/.w3m/config\fP ++user defined configuration file; overrides \f(CW/etc/w3m/config\fP + .TP +-.I ${HOME}/.w3m/config +-configuration file ++\f(CW~/.w3m/cookie\fP ++cookie jar; written on exit, read on launch=20=20=20 + .TP +-.I ${HOME}/.w3m/keymap +-key binding configuration file +-.\" .TP +-.\" .I ${HOME}/.w3m/menu +-.\" ??? ++\f(CW~/.w3m/history\fP ++browser history - visited files and URLs + .TP +-.I ${HOME}/.w3m/mouse +-mouse configuration file ++\f(CW~/.w3m/keymap\fP ++user defined key bindings; overrides default key bindings + .TP +-.I ${HOME}/.w3m/cookie +-cookie file ++\f(CW~/.w3m/mailcap\fP ++external viewer configuration file + .TP +-.I ${HOME}/.w3m/history +-history file ++\f(CW~/.w3m/menu\fP ++user defined menu; overrides default menu + .TP +-.I ${HOME}/.w3m/passwd +-passowrd and username file ++\f(CW~/.w3m/mime.types\fP ++MIME types file + .TP +-.I ${HOME}/.w3m/pre_form +-form parameters file ++\f(CW~/.w3m/mouse\fP ++user defined mouse settings + .TP +-.I ${HOME}/.w3m/mailcap +-external viewer configuration file ++\f(CW~/.w3m/passwd\fP ++password and username file + .TP +-.I ${HOME}/.w3m/mime.types +-MIME types file ++\f(CW~/.w3m/pre_form\fP ++contains predefined values to fill recurrent HTML forms + .\" .TP +-.\" .I ${HOME}/.w3m/urimethodmap ++.\" .I $~/.w3m/urimethodmap + .\" ??? +-.SH NOTES +-This is the +-.I +-w3m +-0.5.3 Release. +-.PP +-Please see the MANUAL.html file distributed with w3m for +-more detailed documentation. +- +-Additional information about +-.I +-w3m +-may be found on its Japanese language Web site located at: +- http://w3m.sourceforge.net/index.ja.html +-.br +-or on its English version of the site at: +- http://w3m.sourceforge.net/index.en.html ++.SH SEE ALSO ++README and example files are to be found in the doc directory of your \fI= w3m\fP installation. Recent information about \fIw3m\fP may be found on=20 ++.UR http://w3m.sourceforge.net ++the project's web pages at ++.UE + .SH ACKNOWLEDGMENTS +-.I +-w3m +-has incorporated code from several sources. ++\fIw3m\fP has incorporated code from several sources. + Users have contributed patches and suggestions over time. + .SH AUTHOR +-Akinori ITO ++.UR aito@fw.ipsj.or.jp ++Akinori ITO ++.UE ++ +diff --git a/entity.c b/entity.c +index fdd8f64..45dc95e 100644 +--- a/entity.c ++++ b/entity.c +@@ -44,6 +44,8 @@ conv_entity(unsigned int c) + return " "; + if (c =3D=3D 0xa0) + return NBSP; ++ if (c =3D=3D 0xad) /* SOFT HYPHEN */ ++ return ""; + if (c < 0x100) { /* Latin1 (ISO 8859-1) */ + if (UseAltEntity) + return alt_latin1[c - 0xa0]; +diff --git a/etc.c b/etc.c +index 8fe1215..dcc6edd 100644 +--- a/etc.c ++++ b/etc.c +@@ -1365,7 +1365,13 @@ setup_child(int child, int i, int f) + if (!child) + SETPGRP(); + #endif /* __MINGW32_VERSION */ ++ /* ++ * I don't know why but close_tty() sometimes interrupts loadGeneralF= ile() in loadImage() ++ * and corrupt image data can be cached in ~/.w3m. ++ */ ++#if 0 + close_tty(); ++#endif + close_all_fds_except(i, f); + QuietMessage =3D TRUE; + fmInitialized =3D FALSE; +diff --git a/file.c b/file.c +index 567d41e..b66f8c8 100644 +--- a/file.c ++++ b/file.c +@@ -26,6 +26,8 @@ + #define min(a,b) ((a) > (b) ? (b) : (a)) + #endif /* not min */ +=20 ++#define MAX_INPUT_SIZE 80 /* TODO - max should be screen line length */ ++ + static int frame_source =3D 0; +=20 + static char *guess_filename(char *file); +@@ -47,11 +49,11 @@ static JMP_BUF AbortLoading; + static struct table *tables[MAX_TABLE]; + static struct table_mode table_mode[MAX_TABLE]; +=20 +-#ifdef USE_IMAGE ++#if defined(USE_M17N) || defined(USE_IMAGE) + static ParsedURL *cur_baseURL =3D NULL; +-#ifdef USE_M17N +-static char cur_document_charset; + #endif ++#ifdef USE_M17N ++static wc_ces cur_document_charset =3D 0; + #endif +=20 + static Str cur_title; +@@ -67,7 +69,7 @@ static int cur_status; + #ifdef MENU_SELECT + /* menu based \n"); ++ fclose(f); + } + printf(bkmark_src2, html_quote(url), html_quote(title)); + } +@@ -99,7 +100,7 @@ create_new_bookmark(char *bmark, char *section, char *t= itle, char *url, + fprintf(f, "\n

      Bookmarks

      \n"); + fprintf(f, "

      %s

      \n
        \n", section); + fprintf(f, "
      • %s\n", url, title); +- fprintf(f, end_section); ++ fprintf(f, "%s", end_section); + fprintf(f, "
      \n\n\n"); + fclose(f); + } +@@ -168,7 +169,10 @@ insert_bookmark(char *bmark, struct parsed_tagarg *da= ta) + /* In this case, a new bookmark is appeneded after the bookmark file */ + return create_new_bookmark(bmark, section, title, url, "a"); + } +- f =3D fopen(bmark, "w"); ++ if ((f =3D fopen(bmark, "w")) =3D=3D NULL) { ++ printf("\nCannot open bookmark %s\n", bmark); ++ return FALSE; ++ } + while (tl->nitem) { + fputs(popText(tl), f); + } +diff --git a/w3mhelp-lynx_en.html.in b/w3mhelp-lynx_en.html.in +index 7448877..d073b0f 100644 +--- a/w3mhelp-lynx_en.html.in ++++ b/w3mhelp-lynx_en.html.in +@@ -43,20 +43,20 @@ w3m + +
      RET, C-f, Right arrowFollow hyperlink +
      d, ESC RETSave link to file +-
      uPeek link URL +-
      iPeek image URL ++
      uPeek at link URL ++
      iPeek at image URL +
      IView inline image +
      ESC ISave inline image to file +-
      :Mark URL-like strings as anchors +-
      ESC :Mark Message-ID-like strings as news anchors +-
      cPeek current URL ++
      :Mark URL-like strings as links ++
      ESC :Mark Message-ID-like strings as links ++
      cPeek at current URL +
      =3DDisplay information about current document +-
      C-hView history of URL +-
      FRender frame ++
      C-hView browser history ++
      FRender frames +
      MBrowse current document using external browser +-(use 2M and 3M to invoke second and third browser) ++(prefix 2, 3, ..., or 9 to invoke alternate configured browsers, e.g. 3 M) +
      ESC MBrowse link using external browser +-(use 2ESC M and 3ESC M to invoke second and third browser) ++(prefixed as above, e.g. 3ESC M) +
      +=20 +

      File/Stream operation

      +@@ -98,7 +98,7 @@ w3m + +
      /, C-sSearch forward +
      nSearch next +-
      wToggle wrap search mode ++
      wToggle search wrap mode +
      +=20 +

      Mark operation

      +@@ -121,7 +121,7 @@ w3m + QQuit without confirmation + +=20 +-

      Line-edit mode

      ++

      Line-editing mode

      + +
      C-fMove cursor forward +
      C-bMove cursor backward +diff --git a/w3mhelp-lynx_ja.html.in b/w3mhelp-lynx_ja.html.in +index d160984..828b5a3 100644 +--- a/w3mhelp-lynx_ja.html.in ++++ b/w3mhelp-lynx_ja.html.in +@@ -58,9 +58,9 @@ +
      F<FRAMESET>=A4=F2=B4=DE=A4=E0=CA=B8=BD=F1=A4=F2=C9=BD= =BC=A8=A4=B7=A4=C6=A4=A4=A4=EB=A4=C8=A4=AD=A4=CB=A1=A4<FRAME> + =A5=BF=A5=B0=A4=CE=BB=D8=A4=B9=CA=A3=BF=F4=A4=CE=CA=B8=BD=F1=A4=F21=A4=C4= =A4=CE=CA=B8=BD=F1=A4=CB=CA=D1=B4=B9=A4=B7=A4=C6=C9=BD=BC=A8=A4=B7=A4=DE=A4= =B9=A1=A5 +
      M=B8=BD=BA=DF=B8=AB=A4=C6=A4=A4=A4=EB=A5=DA=A1=BC=A5=B8=A4=F2= =A1=A4=B3=B0=C9=F4=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC= =A8=A4=B7=A4=DE=A4=B9=A1=A5 +-2M, 3M =A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5= =B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++2M, 3M, ..., 9M =A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49=C8=D6=CC=DC= =A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 +
      ESC M=B8=BD=BA=DF=A4=CE=A5=EA=A5=F3=A5=AF=C0=E8=A4=F2=A1=A4= =B3=B0=C9=F4=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=C3=A4=C6=C9=BD=BC=A8=A4= =B7=A4=DE=A4=B9=A1=A5 +-2ESC M, 3ESC M =A4=C72=C8=D6=CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9= =A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1=A5 ++2ESC M, 3ESC M, ..., 9ESC M =A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49= =C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=BB=C8=A4=A4=A4=DE=A4=B9=A1= =A5 +
      +=20 +

      =A5=D5=A5=A1=A5=A4=A5=EB=A4=C8URL=B4=D8=B7=B8=A4=CE=C1=E0=BA=EE

      +diff --git a/w3mhelp-w3m_en.html.in b/w3mhelp-w3m_en.html.in +index eb46e8a..a692142 100644 +--- a/w3mhelp-w3m_en.html.in ++++ b/w3mhelp-w3m_en.html.in +@@ -47,21 +47,21 @@ w3m + +
      RETFollow hyperlink +
      a, ESC RETSave link to file +-
      uPeek link URL +-
      iPeek image URL ++
      uPeek at link URL ++
      iPeek at image URL +
      IView inline image +
      ESC ISave inline image to file +-
      :Mark URL-like strings as anchors +-
      ESC :Mark Message-ID-like strings as news anchors +-
      cPeek current URL ++
      :Mark URL-like strings as links ++
      ESC :Mark Message-ID-like strings as links ++
      cPeek at current URL +
      =3DDisplay information about current document +
      C-gShow current line number +-
      C-hView history of URL +-
      FRender frame ++
      C-hView browser history ++
      FRender frames +
      MBrowse current document using external browser +-(use 2M and 3M to invoke second and third browser) ++(prefix 2, 3, ..., or 9 to invoke alternate configured browsers, e.g. 3 M) +
      ESC MBrowse link using external browser +-(use 2ESC M and 3ESC M to invoke second and third browser) ++(prefixed as above, e.g. 3ESC M) +
      +=20 +

      File/Stream operation

      +@@ -105,7 +105,7 @@ w3m + ?,C-rSearch backward + nSearch next + NSearch previous +-C-wToggle wrap search mode ++C-wToggle search wrap mode + +=20 +

      Dictionary look-up

      +@@ -134,7 +134,7 @@ w3m + QQuit without confirmation + +=20 +-

      Line-edit mode

      ++

      Line-editing mode

      + + + + +- +- ++ ++ +
      C-fMove cursor forward +
      C-bMove cursor backward +diff --git a/w3mhelp-w3m_ja.html.in b/w3mhelp-w3m_ja.html.in +index 95464ab..72cb849 100644 +--- a/w3mhelp-w3m_ja.html.in ++++ b/w3mhelp-w3m_ja.html.in +@@ -61,8 +61,8 @@ +
      C-g =A5=DA=A1=BC=A5=B8=C3=E6=A4=C7=A4=CE=B8=BD=BA=DF= =B0=CC=C3=D6=A4=F2=C9=BD=BC=A8
      C-h URL=CD=FA=CE=F2=A4=F2=C9=BD=BC=A8
      F =A5=D5=A5=EC=A1=BC=A5=E0=A4=F2=C9=BD=BC=A8=A4=B9=A4= =EB
      M =B8=BD=A5=DA=A1=BC=A5=B8=A4=F2=B3=B0=C9=F4=A5=D6=A5= =E9=A5=A6=A5=B6=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB(2M,3M=A4=C72=C8=D6=CC=DC=A4= =C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=B8=C6=A4=D3=A4=C0=A4= =B9)
      ESC M =A5=EA=A5=F3=A5=AF=C0=E8=A4=F2=B3=B0=C9=F4=A5=D6= =A5=E9=A5=A6=A5=B6=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB(2ESC M,3ESC M=A4=C72=C8=D6= =CC=DC=A4=C83=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6=A4=F2=B8=C6=A4=D3= =A4=C0=A4=B9)
      M =B8=BD=A5=DA=A1=BC=A5=B8=A4=F2=B3=B0=C9=F4=A5=D6=A5= =E9=A5=A6=A5=B6=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB(2M, 3M, ..., 9M =A4=C72=C8=D6= =CC=DC=A1=A43=C8=D6=CC=DC=A1=A49=C8=D6=CC=DC=A4=CE=A5=D6=A5=E9=A5=A6=A5=B6= =A4=F2=B8=C6=A4=D3=A4=C0=A4=B9)
      ESC M =A5=EA=A5=F3=A5=AF=C0=E8=A4=F2=B3=B0=C9=F4=A5=D6= =A5=E9=A5=A6=A5=B6=A4=C7=C9=BD=BC=A8=A4=B9=A4=EB(2ESC M, 3ESC M, ..., 9ESC = M =A4=C72=C8=D6=CC=DC=A1=A43=C8=D6=CC=DC=A1=A49=C8=D6=CC=DC=A4=CE=A5=D6=A5= =E9=A5=A6=A5=B6=A4=F2=B8=C6=A4=D3=A4=C0=A4=B9)
      +=20 +

      =A5=D5=A5=A1=A5=A4=A5=EB/=A5=B9=A5=C8=A5=EA=A1=BC=A5=E0=C1=E0=BA=EE +diff --git a/w3mhelperpanel.c b/w3mhelperpanel.c +index 110794b..96b60a0 100644 +--- a/w3mhelperpanel.c ++++ b/w3mhelperpanel.c +@@ -115,6 +115,7 @@ printMailcapPanel(char *mailcap) + printf("\n\= n\n\ + \n\n", + MSG_DOIT); ++ fclose(f); + } +=20 + void +diff --git a/w3mimg/Makefile.in b/w3mimg/Makefile.in +index dfc550c..8e2ad73 100644 +--- a/w3mimg/Makefile.in ++++ b/w3mimg/Makefile.in +@@ -16,9 +16,9 @@ IMGCFLAGS=3D@IMGX11CFLAGS@ @IMGFBCFLAGS@ @IMGWINCFLAGS@ + IMGOBJS=3D@IMGOBJS@ +=20 + .PHONY: $(SUBDIRS) +-all: @IMGTARGETS@ w3mimg.a ++all: w3mimg.a +=20 +-w3mimg.a: $(IMGOBJS) ++w3mimg.a: w3mimg.o @IMGTARGETS@ + $(AR) rv $@ $(IMGOBJS) + $(RANLIB) $@ +=20 +diff --git a/w3mimg/fb/fb.c b/w3mimg/fb/fb.c +index cd11128..7960584 100644 +--- a/w3mimg/fb/fb.c ++++ b/w3mimg/fb/fb.c +@@ -12,12 +12,24 @@ + #include + #include + #include ++#if defined(__linux__) + #include ++#elif defined(__FreeBSD__) ++#include =20 ++#endif ++#if defined(__FreeBSD__) ++#include ++#include ++#endif +=20 + #include "fb.h" +=20 + #define FB_ENV "FRAMEBUFFER" ++#if defined(__linux__) + #define FB_DEFDEV "/dev/fb0" ++#elif defined(__FreeBSD__) ++#define FB_DEFDEV "/dev/ttyv0" ++#endif +=20 + #define MONO_OFFSET_8BIT 0x40 + #define COLORS_MONO_8BIT 0x40 +@@ -38,22 +50,65 @@ +=20 + #define IMAGE_SIZE_MAX 10000 +=20 ++#if defined(__linux__) + static struct fb_cmap *fb_cmap_create(struct fb_fix_screeninfo *, + struct fb_var_screeninfo *); ++#elif defined(__FreeBSD__) ++static video_color_palette_t *fb_cmap_create(video_info_t *video_info, ++ video_adapter_info_t *video_adapter_info); ++#endif ++#if defined(__linux__) + static void fb_cmap_destroy(struct fb_cmap *cmap); ++#elif defined(__FreeBSD__) ++static void fb_cmap_destroy(video_color_palette_t *cmap); ++#endif ++#if defined(__linux__) + static int fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *scinfo); ++#endif ++#if defined(__linux__) + static void *fb_mmap(int fbfp, struct fb_fix_screeninfo *scinfo); ++#elif defined(__FreeBSD__) ++static void *fb_mmap(int fbfp, video_adapter_info_t *video_adapter_info); ++#endif ++#if defined(__linux__) + static int fb_munmap(void *buf, struct fb_fix_screeninfo *scinfo); ++#elif defined(__FreeBSD__) ++static int fb_munmap(void *buf, video_adapter_info_t *video_adapter_info); ++#endif ++#if defined(__linux__) + static int fb_vscrn_get(int fbfp, struct fb_var_screeninfo *scinfo); ++#endif ++#if defined(__linux__) + static int fb_cmap_set(int fbfp, struct fb_cmap *cmap); ++#elif defined(__FreeBSD__) ++static int fb_cmap_set(int fbfp, video_color_palette_t *cmap); ++#endif ++#if defined(__linux__) + static int fb_cmap_get(int fbfp, struct fb_cmap *cmap); ++#elif defined(__FreeBSD__) ++static int fb_cmap_get(int fbfp, video_color_palette_t *cmap); ++#endif + static int fb_cmap_init(void); + static int fb_get_cmap_index(int r, int g, int b); + static unsigned long fb_get_packed_color(int r, int g, int b); ++#if defined(__FreeBSD__) ++static int fb_video_mode_get(int fbfp, int *video_mode); ++static int fb_video_info_get(int fbfp, video_info_t *video_info); ++static int fb_video_adapter_info_get(int fbfp, video_adapter_info_t *vide= o_adapter_info); ++#endif +=20 ++#if defined(__linux__) + static struct fb_fix_screeninfo fscinfo; + static struct fb_var_screeninfo vscinfo; ++#elif defined(__FreeBSD__) ++static video_info_t video_info; ++static video_adapter_info_t video_adapter_info; ++#endif ++#if defined(__linux__) + static struct fb_cmap *cmap =3D NULL, *cmap_org =3D NULL; ++#elif defined(__FreeBSD__) ++static video_color_palette_t *cmap =3D NULL, *cmap_org =3D NULL; ++#endif + static int is_open =3D FALSE; + static int fbfp =3D -1; + static size_t pixel_size =3D 0; +@@ -63,6 +118,9 @@ int + fb_open(void) + { + char *fbdev =3D { FB_DEFDEV }; ++#if defined(__FreeBSD__) ++ int video_mode; ++#endif +=20 + if (is_open =3D=3D TRUE) + return 1; +@@ -76,6 +134,7 @@ fb_open(void) + goto ERR_END; + } +=20 ++#if defined(__linux__) + if (fb_fscrn_get(fbfp, &fscinfo)) { + goto ERR_END; + } +@@ -83,22 +142,69 @@ fb_open(void) + if (fb_vscrn_get(fbfp, &vscinfo)) { + goto ERR_END; + } ++#elif defined(__FreeBSD__) ++ if (fb_video_mode_get(fbfp, &video_mode)) { ++ goto ERR_END; ++ } ++ video_info.vi_mode =3D video_mode; ++ ++ if (fb_video_info_get(fbfp, &video_info)) { ++ goto ERR_END; ++ } +=20 ++ if (fb_video_adapter_info_get(fbfp, &video_adapter_info)) { ++ goto ERR_END; ++ } ++ if (!(video_info.vi_flags & V_INFO_GRAPHICS) || ++ !(video_info.vi_flags & V_INFO_LINEAR)) { ++ goto ERR_END; ++ } ++#endif ++ ++#if defined(__linux__) + if ((cmap =3D fb_cmap_create(&fscinfo, &vscinfo)) =3D=3D (struct fb_c= map *)-1) { + goto ERR_END; + } ++#elif defined(__FreeBSD__) ++ if ((cmap =3D fb_cmap_create(&video_info, &video_adapter_info)) =3D= =3D (video_color_palette_t *)-1) { ++ goto ERR_END; ++ } ++#endif +=20 ++#if defined(__linux__) + if (!(buf =3D fb_mmap(fbfp, &fscinfo))) { + fprintf(stderr, "Can't allocate memory.\n"); + goto ERR_END; + } ++#elif defined(__FreeBSD__) ++ if (!(buf =3D fb_mmap(fbfp, &video_adapter_info))) { ++ fprintf(stderr, "Can't allocate memory.\n"); ++ goto ERR_END; ++ } ++#endif +=20 ++#if defined(__linux__) + if (fscinfo.type !=3D FB_TYPE_PACKED_PIXELS) { + fprintf(stderr, "This type of framebuffer is not supported.\n"); + goto ERR_END; + } ++#elif defined(__FreeBSD__) ++ if (!(video_info.vi_mem_model =3D=3D V_INFO_MM_PACKED ||=20 ++ video_info.vi_mem_model =3D=3D V_INFO_MM_DIRECT)) { ++ fprintf(stderr, "This type of framebuffer is not supported.\n"); ++ goto ERR_END; ++ } ++#endif +=20 ++#if defined(__linux__) + if (fscinfo.visual =3D=3D FB_VISUAL_PSEUDOCOLOR && vscinfo.bits_per_p= ixel =3D=3D 8) { ++#elif defined(__FreeBSD__) ++ if (video_adapter_info.va_flags & V_ADP_PALETTE && ++ video_info.vi_mem_model =3D=3D V_INFO_MM_PACKED && ++ video_info.vi_depth =3D=3D 8) { ++#else ++ if (0) { ++#endif + if (fb_cmap_get(fbfp, cmap)) { + fprintf(stderr, "Can't get color map.\n"); + fb_cmap_destroy(cmap); +@@ -111,6 +217,7 @@ fb_open(void) +=20 + pixel_size =3D 1; + } ++#if defined(__linux__) + else if ((fscinfo.visual =3D=3D FB_VISUAL_TRUECOLOR || + fscinfo.visual =3D=3D FB_VISUAL_DIRECTCOLOR) && + (vscinfo.bits_per_pixel =3D=3D 15 || +@@ -118,6 +225,14 @@ fb_open(void) + vscinfo.bits_per_pixel =3D=3D 24 || vscinfo.bits_per_pixel =3D=3D = 32)) { + pixel_size =3D (vscinfo.bits_per_pixel + 7) / CHAR_BIT; + } ++#elif defined(__FreeBSD__) ++ else if (video_info.vi_mem_model =3D=3D V_INFO_MM_DIRECT && ++ (video_info.vi_depth =3D=3D 15 || ++ video_info.vi_depth =3D=3D 16 || ++ video_info.vi_depth =3D=3D 24 || video_info.vi_depth =3D=3D 32)) { ++ pixel_size =3D (video_info.vi_depth + 7) / CHAR_BIT; ++ } ++#endif + else { + fprintf(stderr, "This type of framebuffer is not supported.\n"); + goto ERR_END; +@@ -147,7 +262,11 @@ fb_close(void) + cmap =3D NULL; + } + if (buf !=3D NULL) { ++#if defined(__linux__) + fb_munmap(buf, &fscinfo); ++#elif defined(__FreeBSD__) ++ fb_munmap(buf, &video_adapter_info); ++#endif + buf =3D NULL; + } +=20 +@@ -259,11 +378,19 @@ fb_image_draw(FB_IMAGE * image, int x, int y, int sx= , int sy, int width, + if (y + height > fb_height()) + height =3D fb_height() - y; +=20 ++#if defined(__linux__) + offset_fb =3D fscinfo.line_length * y + pixel_size * x; ++#elif defined(__FreeBSD__) ++ offset_fb =3D video_adapter_info.va_line_width * y + pixel_size * x; ++#endif + offset_img =3D image->rowstride * sy + pixel_size * sx; + for (i =3D 0; i < height; i++) { + memcpy(buf + offset_fb, image->data + offset_img, pixel_size * width); ++#if defined(__linux__) + offset_fb +=3D fscinfo.line_length; ++#elif defined(__FreeBSD__) ++ offset_fb +=3D video_adapter_info.va_line_width; ++#endif + offset_img +=3D image->rowstride; + } +=20 +@@ -336,7 +463,11 @@ fb_width(void) + if (is_open !=3D TRUE) + return 0; +=20 ++#if defined(__linux__) + return vscinfo.xres; ++#elif defined(__FreeBSD__) ++ return video_info.vi_width; ++#endif + } +=20 + int +@@ -345,7 +476,11 @@ fb_height(void) + if (is_open !=3D TRUE) + return 0; +=20 ++#if defined(__linux__) + return vscinfo.yres; ++#elif defined(__FreeBSD__) ++ return video_info.vi_height; ++#endif + } +=20 + int +@@ -369,7 +504,11 @@ fb_clear(int x, int y, int w, int h, int r, int g, in= t b) + h =3D fb_height() - y; +=20 + if (tmp =3D=3D NULL) { ++#if defined(__linux__) + tmp =3D malloc(fscinfo.line_length); ++#elif defined(__FreeBSD__) ++ tmp =3D malloc(video_adapter_info.va_line_width); ++#endif + if (tmp =3D=3D NULL) + return 1; + } +@@ -384,10 +523,18 @@ fb_clear(int x, int y, int w, int h, int r, int g, i= nt b) + gg =3D g; + bb =3D b; + } ++#if defined(__linux__) + offset_fb =3D fscinfo.line_length * y + pixel_size * x; ++#elif defined(__FreeBSD__) ++ offset_fb =3D video_adapter_info.va_line_width * y + pixel_size * x; ++#endif + for (i =3D 0; i < h; i++) { + memcpy(buf + offset_fb, tmp, pixel_size * w); ++#if defined(__linux__) + offset_fb +=3D fscinfo.line_length; ++#elif defined(__FreeBSD__) ++ offset_fb +=3D video_adapter_info.va_line_width; ++#endif + } + return 0; + } +@@ -400,11 +547,21 @@ fb_get_packed_color(int r, int g, int b) + return fb_get_cmap_index(r, g, b); + } + else { ++#if defined(__linux__) + return + ((r >> (CHAR_BIT - vscinfo.red.length)) << vscinfo.red.offset) + + ((g >> (CHAR_BIT - vscinfo.green.length)) << vscinfo.green. + offset) + + ((b >> (CHAR_BIT - vscinfo.blue.length)) << vscinfo.blue.offset); ++#elif defined(__FreeBSD__) ++ return ++ ((r >> (CHAR_BIT - video_info.vi_pixel_fsizes[0])) << ++ video_info.vi_pixel_fields[0]) + ++ ((g >> (CHAR_BIT - video_info.vi_pixel_fsizes[1])) << ++ video_info.vi_pixel_fields[1]) + ++ ((b >> (CHAR_BIT - video_info.vi_pixel_fsizes[2])) << ++ video_info.vi_pixel_fields[2]); ++#endif + } + } +=20 +@@ -433,16 +590,31 @@ fb_cmap_init(void) + if (cmap =3D=3D NULL) + return 1; +=20 ++#if defined(__linux__) + if (cmap->len < COLOR_OFFSET_8BIT + COLORS_8BIT) { + fprintf(stderr, "Can't allocate enough color.\n"); + return 1; + } ++#elif defined(__FreeBSD__) ++ if (cmap->count < COLOR_OFFSET_8BIT + COLORS_8BIT) { ++ fprintf(stderr, "Can't allocate enough color.\n"); ++ return 1; ++ } ++#endif +=20 + if (cmap_org =3D=3D NULL) { ++#if defined(__linux__) + if ((cmap_org =3D + fb_cmap_create(&fscinfo, &vscinfo)) =3D=3D (struct fb_cmap *)-1) { + return 1; + } ++#elif defined(__FreeBSD__) ++ if ((cmap_org =3D ++ fb_cmap_create(&video_info, &video_adapter_info)) =3D=3D ++ (video_color_palette_t *)-1) { ++ return 1; ++ } ++#endif +=20 + if (fb_cmap_get(fbfp, cmap_org)) { + fprintf(stderr, "Can't get color map.\n"); +@@ -452,8 +624,13 @@ fb_cmap_init(void) + } + } +=20 ++#if defined(__linux__) + cmap->start =3D MONO_OFFSET_8BIT; + cmap->len =3D COLORS_8BIT + COLORS_MONO_8BIT; ++#elif defined(__FreeBSD__) ++ cmap->index =3D MONO_OFFSET_8BIT; ++ cmap->count =3D COLORS_8BIT + COLORS_MONO_8BIT; ++#endif +=20 + for (lp =3D 0; lp < COLORS_MONO_8BIT; lp++) { + int c; +@@ -506,73 +683,223 @@ fb_cmap_init(void) +=20 + #define LUT_MAX (256) +=20 ++#if defined(__linux__) + static struct fb_cmap * + fb_cmap_create(struct fb_fix_screeninfo *fscinfo, + struct fb_var_screeninfo *vscinfo) ++#elif defined(__FreeBSD__) ++static video_color_palette_t * ++fb_cmap_create(video_info_t *video_info, ++ video_adapter_info_t *video_adapter_info) ++#endif + { ++#if defined(__linux__) + struct fb_cmap *cmap; ++#elif defined(__FreeBSD__) ++ video_color_palette_t *cmap; ++#endif + int cmaplen =3D LUT_MAX; +=20 + /* check the existence of colormap */ ++#if defined(__linux__) + if (fscinfo->visual =3D=3D FB_VISUAL_MONO01 || + fscinfo->visual =3D=3D FB_VISUAL_MONO10 || + fscinfo->visual =3D=3D FB_VISUAL_TRUECOLOR) + return NULL; ++#elif defined(__FreeBSD__) ++ if (!(video_adapter_info->va_flags & V_ADP_PALETTE)) ++ return NULL; ++#endif +=20 ++#if defined(__linux__) + cmap =3D (struct fb_cmap *)malloc(sizeof(struct fb_cmap)); ++#elif defined(__FreeBSD__) ++ cmap =3D (video_color_palette_t *)malloc(sizeof(video_color_palette_t= )); ++#endif + if (!cmap) { + perror("cmap malloc error\n"); ++#if defined(__linux__) + return (struct fb_cmap *)-1; ++#elif defined(__FreeBSD__) ++ return (video_color_palette_t *)-1; ++#endif + } ++#if defined(__linux__) + memset(cmap, 0, sizeof(struct fb_cmap)); ++#elif defined(__FreeBSD__) ++ memset(cmap, 0, sizeof(video_color_palette_t)); ++#endif ++ ++#if defined(__FreeBSD__) ++ if (video_info->vi_mem_model =3D=3D V_INFO_MM_PACKED) { ++ cmap->red =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++ if (!cmap->red) { ++ perror("red lut malloc error\n"); ++ return (video_color_palette_t *)-1; ++ } ++ cmap->green =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++ if (!cmap->green) { ++ perror("green lut malloc error\n"); ++ free(cmap->red); ++ return (video_color_palette_t *)-1; ++ } ++ cmap->blue =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++ if (!cmap->blue) { ++ perror("blue lut malloc error\n"); ++ free(cmap->red); ++ free(cmap->green); ++ return (video_color_palette_t *)-1; ++ } ++ cmap->transparent =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++ if (!cmap->transparent) { ++ perror("transparent lut malloc error\n"); ++ free(cmap->red); ++ free(cmap->green); ++ free(cmap->blue); ++ return (video_color_palette_t *)-1; ++ } ++ cmap->count =3D cmaplen; ++ return cmap; ++ } ++#endif +=20 + /* Allocates memory for a colormap */ ++#if defined(__linux__) + if (vscinfo->red.length) { + cmap->red =3D (__u16 *) malloc(sizeof(__u16) * cmaplen); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[0]) { ++ cmap->red =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++#else ++ if (0) { ++#endif + if (!cmap->red) { + perror("red lut malloc error\n"); ++#if defined(__linux__) + return (struct fb_cmap *)-1; ++#elif defined(__FreeBSD__) ++ return (video_color_palette_t *)-1; ++#endif + } + } ++#if defined(__linux__) + if (vscinfo->green.length) { + cmap->green =3D (__u16 *) malloc(sizeof(__u16) * cmaplen); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[1]) { ++ cmap->green =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++#else ++ if (0) { ++#endif + if (!cmap->green) { ++#if defined(__linux__) + if (vscinfo->red.length) + free(cmap->red); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[0]) ++ free(cmap->red); ++#endif + perror("green lut malloc error\n"); ++#if defined(__linux__) + return (struct fb_cmap *)-1; ++#elif defined(__FreeBSD__) ++ return (video_color_palette_t *)-1; ++#endif + } + } ++#if defined(__linux__) + if (vscinfo->blue.length) { + cmap->blue =3D (__u16 *) malloc(sizeof(__u16) * cmaplen); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[2]) { ++ cmap->blue =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++#else ++ if (0) { ++#endif + if (!cmap->blue) { ++#if defined(__linux__) + if (vscinfo->red.length) + free(cmap->red); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[0]) ++ free(cmap->red); ++#endif ++#if defined(__linux__) + if (vscinfo->green.length) + free(cmap->green); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[1]) ++ free(cmap->green); ++#endif + perror("blue lut malloc error\n"); ++#if defined(__linux__) + return (struct fb_cmap *)-1; ++#elif defined(__FreeBSD__) ++ return (video_color_palette_t *)-1; ++#endif + } + } ++#if defined(__linux__) + if (vscinfo->transp.length) { + cmap->transp =3D (__u16 *) malloc(sizeof(__u16) * cmaplen); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[3]) { ++ cmap->transparent =3D (u_char *) malloc(sizeof(u_char) * cmaplen); ++#else ++ if (0) { ++#endif ++#if defined(__linux__) + if (!cmap->transp) { ++#elif defined(__FreeBSD__) ++ if (!cmap->transparent) { ++#else ++ if (0) { ++#endif ++#if defined(__linux__) + if (vscinfo->red.length) + free(cmap->red); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[0]) ++ free(cmap->red); ++#endif ++#if defined(__linux__) + if (vscinfo->green.length) + free(cmap->green); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[1]) ++ free(cmap->green); ++#endif ++#if defined(__linux__) + if (vscinfo->blue.length) + free(cmap->blue); + perror("transp lut malloc error\n"); ++#elif defined(__FreeBSD__) ++ if (video_info->vi_pixel_fsizes[2]) ++ free(cmap->blue); ++ perror("transparent lut malloc error\n"); ++#endif ++#if defined(__linux__) + return (struct fb_cmap *)-1; ++#elif defined(__FreeBSD__) ++ return (video_color_palette_t *)-1; ++#endif + } + } ++#if defined(__linux__) + cmap->len =3D cmaplen; ++#elif defined(__FreeBSD__) ++ cmap->count =3D cmaplen; ++#endif + return cmap; + } +=20 ++#if defined(__linux__) + static void + fb_cmap_destroy(struct fb_cmap *cmap) ++#elif defined(__FreeBSD__) ++static void ++fb_cmap_destroy(video_color_palette_t *cmap) ++#endif + { + if (cmap->red) + free(cmap->red); +@@ -580,28 +907,57 @@ fb_cmap_destroy(struct fb_cmap *cmap) + free(cmap->green); + if (cmap->blue) + free(cmap->blue); ++#if defined(__linux__) + if (cmap->transp) + free(cmap->transp); ++#elif defined(__FreeBSD__) ++ if (cmap->transparent) ++ free(cmap->transparent); ++#endif + free(cmap); + } +=20 ++#if defined(__linux__) + static int + fb_cmap_get(int fbfp, struct fb_cmap *cmap) ++#elif defined(__FreeBSD__) ++static int ++fb_cmap_get(int fbfp, video_color_palette_t *cmap) ++#endif + { ++#if defined(__linux__) + if (ioctl(fbfp, FBIOGETCMAP, cmap)) { + perror("ioctl FBIOGETCMAP error\n"); + return -1; + } ++#elif defined(__FreeBSD__) ++ if (ioctl(fbfp, FBIO_GETPALETTE, cmap) =3D=3D -1) { ++ perror("ioctl FBIO_GETPALETTE error\n"); ++ return -1; ++ } ++#endif + return 0; + } +=20 ++#if defined(__linux__) + static int + fb_cmap_set(int fbfp, struct fb_cmap *cmap) ++#elif defined(__FreeBSD__) ++static int ++fb_cmap_set(int fbfp, video_color_palette_t *cmap) ++#endif + { ++#if defined(__linux__) + if (ioctl(fbfp, FBIOPUTCMAP, cmap)) { + perror("ioctl FBIOPUTCMAP error\n"); + return -1; + } ++#elif defined(__FreeBSD__) ++ if (ioctl(fbfp, FBIO_SETPALETTE, cmap) =3D=3D -1) { ++ perror("ioctl FBIO_SETPALETTE error\n"); ++ return -1; ++ } ++#endif + return 0; + } +=20 +@@ -612,10 +968,16 @@ fb_cmap_set(int fbfp, struct fb_cmap *cmap) + * fb_munmap() deletes the mappings + */ +=20 ++#if defined(__linux__) + static void * + fb_mmap(int fbfp, struct fb_fix_screeninfo *scinfo) ++#elif defined(__FreeBSD__) ++static void * ++fb_mmap(int fbfp, video_adapter_info_t *video_adapter_info) ++#endif + { + void *buf; ++#if defined(__linux__) + if ((buf =3D (unsigned char *) + mmap(NULL, scinfo->smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fbfp, + (off_t) 0)) +@@ -623,13 +985,41 @@ fb_mmap(int fbfp, struct fb_fix_screeninfo *scinfo) + perror("mmap error"); + return NULL; + } ++#elif defined(__FreeBSD__) ++ size_t mmap_offset; ++ size_t mmap_length; ++ mmap_offset =3D (size_t)(video_adapter_info->va_window) & (PAGE_MASK); ++ mmap_length =3D (size_t)(video_adapter_info->va_window_size + ++ mmap_offset + PAGE_MASK) & (~PAGE_MASK); ++ if ((buf =3D (unsigned char *) ++ mmap(NULL, mmap_length, PROT_READ | PROT_WRITE, MAP_SHARED, fbfp, ++ (off_t) 0)) ++ =3D=3D MAP_FAILED) { ++ perror("mmap error"); ++ return NULL; ++ } ++#endif + return buf; + } +=20 ++#if defined(__linux__) + static int + fb_munmap(void *buf, struct fb_fix_screeninfo *scinfo) ++#elif defined(__FreeBSD__) ++static int ++fb_munmap(void *buf, video_adapter_info_t *video_adapter_info) ++#endif + { ++#if defined(__linux__) + return munmap(buf, scinfo->smem_len); ++#elif defined(__FreeBSD__) ++ size_t mmap_offset; ++ size_t mmap_length; ++ mmap_offset =3D (size_t)(video_adapter_info->va_window) & (PAGE_MASK); ++ mmap_length =3D (size_t)(video_adapter_info->va_window_size + ++ mmap_offset + PAGE_MASK) & (~PAGE_MASK); ++ return munmap((void *)((u_long)buf & (~PAGE_MASK)), mmap_length); ++#endif + } +=20 + /* +@@ -637,6 +1027,7 @@ fb_munmap(void *buf, struct fb_fix_screeninfo *scinfo) + *=20 + * fb_fscrn_get() get information + */ ++#if defined(__linux__) + static int + fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *scinfo) + { +@@ -646,12 +1037,14 @@ fb_fscrn_get(int fbfp, struct fb_fix_screeninfo *sc= info) + } + return 0; + } ++#endif +=20 + /* + * (struct fb_var_screeninfo) device independent variable information + *=20 + * fb_vscrn_get() get information + */ ++#if defined(__linux__) + static int + fb_vscrn_get(int fbfp, struct fb_var_screeninfo *scinfo) + { +@@ -661,3 +1054,41 @@ fb_vscrn_get(int fbfp, struct fb_var_screeninfo *sci= nfo) + } + return 0; + } ++#endif ++ ++#if defined(__FreeBSD__) ++static int ++fb_video_mode_get(int fbfp, int *video_mode) ++{ ++ if (ioctl(fbfp, FBIO_GETMODE, video_mode) =3D=3D -1) { ++ perror("ioctl FBIO_GETMODE error\n"); ++ return -1; ++ } ++ return 0; ++} ++#endif ++ ++#if defined(__FreeBSD__) ++static int ++fb_video_info_get(int fbfp, video_info_t *video_info) ++{ ++ if (ioctl(fbfp, FBIO_MODEINFO, video_info) =3D=3D -1) { ++ perror("ioctl FBIO_MODEINFO error\n"); ++ return -1; ++ } ++ return 0; ++} ++#endif ++ ++#if defined(__FreeBSD__) ++static int ++fb_video_adapter_info_get(int fbfp, video_adapter_info_t *video_adapter_i= nfo) ++{ ++ if (ioctl(fbfp, FBIO_ADPINFO, video_adapter_info) =3D=3D -1) { ++ perror("ioctl FBIO_ADPINFO error\n"); ++ return -1; ++ } ++ return 0; ++} ++#endif ++ +diff --git a/w3mimg/fb/fb.h b/w3mimg/fb/fb.h +index 1138bb0..5d86454 100644 +--- a/w3mimg/fb/fb.h ++++ b/w3mimg/fb/fb.h +@@ -1,7 +1,11 @@ + /* $Id: fb.h,v 1.7 2003/07/07 15:48:17 ukai Exp $ */ + #ifndef fb_header + #define fb_header ++#if defined(__linux__) + #include ++#elif defined(__FreeBSD__) ++#include =20 ++#endif +=20 + typedef struct { + int num; +diff --git a/w3mimg/fb/fb_gdkpixbuf.c b/w3mimg/fb/fb_gdkpixbuf.c +index 36e3b62..f1e8d97 100644 +--- a/w3mimg/fb/fb_gdkpixbuf.c ++++ b/w3mimg/fb/fb_gdkpixbuf.c +@@ -6,7 +6,7 @@ + #include "config.h" + #if defined(USE_GTK2) + #include +-#include ++#include + #endif + #include + #include "fb.h" +diff --git a/w3mimg/fb/fb_w3mimg.c b/w3mimg/fb/fb_w3mimg.c +index d3ae5a9..fb323f5 100644 +--- a/w3mimg/fb/fb_w3mimg.c ++++ b/w3mimg/fb/fb_w3mimg.c +@@ -153,10 +153,15 @@ check_tty_console(char *tty) + return 0; + if (strncmp(tty, "/dev/", 5) =3D=3D 0) + tty +=3D 5; ++#if defined(__linux__) + if (strncmp(tty, "tty", 3) =3D=3D 0 && isdigit(*(tty + 3))) + return 1; + if (strncmp(tty, "vc/", 3) =3D=3D 0 && isdigit(*(tty + 3))) + return 1; ++#elif defined(__FreeBSD__) ++ if (strncmp(tty, "ttyv", 4) =3D=3D 0 && isxdigit(*(tty + 4))) ++ return 1; ++#endif + return 0; + } + #else +@@ -172,7 +177,9 @@ w3mimg_fbopen() + return NULL; + memset(wop, 0, sizeof(w3mimg_op)); +=20 +- if (!check_tty_console(getenv("W3M_TTY")) && strcmp("jfbterm", getenv= ("TERM")) !=3D 0) { ++ if (!check_tty_console(getenv("W3M_TTY")) && ++ strcmp("jfbterm", getenv("TERM")) !=3D 0 && ++ strncmp("jfbterm-", getenv("TERM"), 8) !=3D 0) { + fprintf(stderr, "w3mimgdisplay/fb: tty is not console\n"); + goto error; + } +diff --git a/w3mimg/x11/x11_w3mimg.c b/w3mimg/x11/x11_w3mimg.c +index f5be4a8..9a539de 100644 +--- a/w3mimg/x11/x11_w3mimg.c ++++ b/w3mimg/x11/x11_w3mimg.c +@@ -14,7 +14,7 @@ + #elif defined(USE_GDKPIXBUF) + #if defined(USE_GTK2) + #include +-#include ++#include + #include + #else + #include +@@ -121,24 +121,32 @@ x11_init(w3mimg_op * self) + if (self =3D=3D NULL) + return 0; + xi =3D (struct x11_info *)self->priv; ++#if defined(USE_IMLIB) + if (xi =3D=3D NULL) + return 0; +-#if defined(USE_IMLIB) + if (!xi->id) { + xi->id =3D Imlib_init(xi->display); + if (!xi->id) + return 0; + } + #elif defined(USE_GDKPIXBUF) +- if (!xi->init_flag) { ++ if (!xi) { ++#if defined(USE_GTK2) ++ g_type_init(); ++#endif ++ } ++ else if (!xi->init_flag) { ++ XWindowAttributes attr; + #if defined(USE_GTK2) + g_type_init(); + #endif +- gdk_pixbuf_xlib_init(xi->display, 0); ++ XGetWindowAttributes(xi->display, xi->parent, &attr); ++ /* gdk_pixbuf_xlib_init_with_depth() ignores depth, sigh... */ ++ gdk_pixbuf_xlib_init_with_depth(xi->display, 0, attr.depth); + xi->init_flag =3D TRUE; + } + #endif +- if (!xi->imageGC) { ++ if (xi && !xi->imageGC) { + xi->imageGC =3D XCreateGC(xi->display, xi->parent, 0, NULL); + if (!xi->imageGC) + return 0; +@@ -200,14 +208,16 @@ x11_set_background(w3mimg_op * self, char *backgroun= d) + { + XColor screen_def, exact_def; + struct x11_info *xi; ++ XWindowAttributes attr; + if (self =3D=3D NULL) + return; + xi =3D (struct x11_info *)self->priv; + if (xi =3D=3D NULL) + return; +=20 ++ XGetWindowAttributes(xi->display, xi->window, &attr); + if (background && +- XAllocNamedColor(xi->display, DefaultColormap(xi->display, 0), ++ XAllocNamedColor(xi->display, attr.colormap, + background, &screen_def, &exact_def)) + xi->background_pixel =3D screen_def.pixel; + else { +@@ -216,7 +226,7 @@ x11_set_background(w3mimg_op * self, char *background) + XImage *i; +=20 + p =3D XCreatePixmap(xi->display, xi->window, 1, 1, +- DefaultDepth(xi->display, 0)); ++ attr.depth); + gc =3D XCreateGC(xi->display, xi->window, 0, NULL); + if (!p || !gc) + exit(1); /* XXX */ +@@ -258,6 +268,7 @@ x11_img_new(struct x11_info *xi, int w, int h, int n) + { + struct x11_image *img =3D NULL; + int i; ++ XWindowAttributes attr; +=20 + img =3D malloc(sizeof(*img)); + if (!img) +@@ -267,9 +278,10 @@ x11_img_new(struct x11_info *xi, int w, int h, int n) + if (!img->pixmap) + goto ERROR; +=20 ++ XGetWindowAttributes(xi->display, xi->window, &attr); + for (i =3D 0; i < n; i++) { + img->pixmap[i] =3D XCreatePixmap(xi->display, xi->parent, w, h, +- DefaultDepth(xi->display, 0)); ++ attr.depth); + if (!img->pixmap[i]) + goto ERROR; +=20 +@@ -318,6 +330,41 @@ resize_image(GdkPixbuf * pixbuf, int width, int heigh= t) + return NULL; + return resized_pixbuf; + } ++ ++#if defined(USE_GTK2) ++static void ++render_pixbuf_to_pixmap_32(Display *display, GC gc, Pixmap pixmap, GdkPix= buf * pixbuf) ++{ ++ unsigned int x, y, width, height, rowstride, bytes_per_pixel; ++ unsigned char *line; ++ XImage *image; ++ ++ width =3D gdk_pixbuf_get_width(pixbuf) ; ++ height =3D gdk_pixbuf_get_height(pixbuf) ; ++ ++ if (!(image =3D XGetImage(display, pixmap, 0, 0, width, height, AllPl= anes, ZPixmap))) ++ return ; ++ ++ bytes_per_pixel =3D (gdk_pixbuf_get_has_alpha(pixbuf)) ? 4 : 3; ++ rowstride =3D gdk_pixbuf_get_rowstride(pixbuf); ++ line =3D gdk_pixbuf_get_pixels(pixbuf); ++ ++ for (y =3D 0; y < height; y++) { ++ u_char *pixel; ++ ++ pixel =3D line; ++ for (x =3D 0; x < width; x++) { ++ XPutPixel(image, x, y, ++ (pixel[0] <<16) | (pixel[1] <<8) | pixel[2] | 0xff000000); ++ pixel +=3D bytes_per_pixel; ++ } ++ line +=3D rowstride; ++ } ++ ++ XPutImage(display, pixmap, gc, image, 0, 0, 0, 0, width, height); ++ XDestroyImage(image); ++} ++#endif + #endif +=20 + static int +@@ -342,6 +389,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char = *fname, int w, int h) + GList *frames; + #endif + #endif ++ XWindowAttributes attr; +=20 + if (self =3D=3D NULL) + return 0; +@@ -349,6 +397,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char = *fname, int w, int h) + if (xi =3D=3D NULL) + return 0; +=20 ++ XGetWindowAttributes(xi->display, xi->window, &attr); + #if defined(USE_IMLIB) + im =3D Imlib_load_image(xi->id, fname); + if (!im) +@@ -358,7 +407,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char = *fname, int w, int h) + if (h <=3D 0) + h =3D im->rgb_height; + img->pixmap =3D (void *)XCreatePixmap(xi->display, xi->parent, w, h, +- DefaultDepth(xi->display, 0)); ++ attr.depth); + if (!img->pixmap) + return 0; + XSetForeground(xi->display, xi->imageGC, xi->background_pixel); +@@ -374,17 +423,21 @@ x11_load_image(w3mimg_op * self, W3MImage * img, cha= r *fname, int w, int h) + w =3D imlib_image_get_width(); + if (h <=3D 0) + h =3D imlib_image_get_height(); ++ ++ im =3D imlib_create_cropped_scaled_image(0, 0, imlib_image_get_width(= ), imlib_image_get_height(), w, h); ++ imlib_context_set_image(im); ++ + img->pixmap =3D (void *)XCreatePixmap(xi->display, xi->parent, w, h, +- DefaultDepth(xi->display, 0)); ++ attr.depth); + if (!img->pixmap) + return 0; + XSetForeground(xi->display, xi->imageGC, xi->background_pixel); + XFillRectangle(xi->display, (Pixmap) img->pixmap, xi->imageGC, 0, 0, = w, h); + imlib_context_set_display(xi->display); +- imlib_context_set_visual(DefaultVisual(xi->display, 0)); +- imlib_context_set_colormap(DefaultColormap(xi->display, 0)); ++ imlib_context_set_visual(attr.visual); ++ imlib_context_set_colormap(attr.colormap); + imlib_context_set_drawable((Drawable) img->pixmap); +- imlib_render_image_on_drawable_at_size(0, 0, w, h); ++ imlib_render_image_on_drawable(0, 0); + imlib_free_image(); + #elif defined(USE_GDKPIXBUF) + max_anim =3D self->max_anim; +@@ -416,7 +469,7 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char = *fname, int w, int h) + ratio_h =3D 1.0 * h / ih; + } + tmp_pixmap =3D XCreatePixmap(xi->display, xi->parent, w, h, +- DefaultDepth(xi->display, 0)); ++ attr.depth); + XSetForeground(xi->display, xi->imageGC, xi->background_pixel); + XFillRectangle(xi->display, (Pixmap) tmp_pixmap, xi->imageGC, 0, 0, w= , h); + if (!tmp_pixmap) { +@@ -459,7 +512,10 @@ x11_load_image(w3mimg_op * self, W3MImage * img, char= *fname, int w, int h) + if (delay > ximg->delay) + ximg->delay =3D delay; +=20 +- gdk_pixbuf_xlib_render_to_drawable_alpha(pixbuf, ++ if (attr.depth =3D=3D 32) ++ render_pixbuf_to_pixmap_32(xi->display, xi->imageGC, ximg->pixmap[j]= , pixbuf); ++ else ++ gdk_pixbuf_xlib_render_to_drawable_alpha(pixbuf, + (Drawable) ximg->pixmap[j], 0, + 0, 0, 0, w, h, + GDK_PIXBUF_ALPHA_BILEVEL, 1, +@@ -653,9 +709,11 @@ x11_get_image_size(w3mimg_op * self, W3MImage * img, = char *fname, int *w, +=20 + if (self =3D=3D NULL) + return 0; ++#if defined(USE_IMLIB) && defined(USE_IMLIB2) + xi =3D (struct x11_info *)self->priv; + if (xi =3D=3D NULL) + return 0; ++#endif +=20 + #if defined(USE_IMLIB) + im =3D Imlib_load_image(xi->id, fname); +@@ -755,6 +813,9 @@ w3mimg_x11open() + return NULL; + memset(wop, 0, sizeof(w3mimg_op)); +=20 ++ if (getenv("W3M_USE_REMOTE_IMAGE")) ++ goto end; ++ + xi =3D (struct x11_info *)malloc(sizeof(struct x11_info)); + if (xi =3D=3D NULL) + goto error; +@@ -807,6 +868,7 @@ w3mimg_x11open() +=20 + wop->priv =3D xi; +=20 ++ end: + wop->init =3D x11_init; + wop->finish =3D x11_finish; + wop->active =3D x11_active; +diff --git a/w3mimgdisplay.c b/w3mimgdisplay.c +index 5486a47..ccfa373 100644 +--- a/w3mimgdisplay.c ++++ b/w3mimgdisplay.c +@@ -281,6 +281,10 @@ DrawImage(char *buf, int redraw) + maxImage =3D n + 1; + imageBuf =3D (W3MImage *) realloc((void *)imageBuf, + sizeof(W3MImage) * maxImage); ++ if (imageBuf =3D=3D NULL) { ++ fprintf(stderr, "Out of memory\n"); ++ exit(1); ++ } + for (; i < maxImage; i++) + imageBuf[i].pixmap =3D NULL; + } diff --git a/gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch b/gnu/p= ackages/patches/w3m-disable-sslv2-and-sslv3.patch deleted file mode 100644 index 5b78f2d..0000000 =2D-- a/gnu/packages/patches/w3m-disable-sslv2-and-sslv3.patch +++ /dev/null @@ -1,24 +0,0 @@ =2DSubject: Disable SSLv2 and SSLv3. =2D =2DThe only remaining methods are TLSv1.* (the code never distinguishes =2Dbetween TLSv1.0, TLSv1.1, and TLSv1.2). =2D--- =2D fm.h | 2 +- =2D 1 file changed, 1 insertion(+), 1 deletion(-) =2D =2Ddiff --git a/fm.h b/fm.h =2Dindex 320906c..ddcd4fc 100644 =2D--- a/fm.h =2D+++ b/fm.h =2D@@ -1144,7 +1144,7 @@ global int ssl_path_modified init(FALSE); =2D #endif /* defined(USE_SSL) && =2D * defined(USE_SSL_VERIFY) */ =2D #ifdef USE_SSL =2D-global char *ssl_forbid_method init(NULL); =2D+global char *ssl_forbid_method init("2, 3"); =2D #endif =2D=20 =2D global int is_redisplay init(FALSE); =2D--=20 =2D2.6.4 =2D diff --git a/gnu/packages/patches/w3m-disable-weak-ciphers.patch b/gnu/pack= ages/patches/w3m-disable-weak-ciphers.patch deleted file mode 100644 index 4780d54..0000000 =2D-- a/gnu/packages/patches/w3m-disable-weak-ciphers.patch +++ /dev/null @@ -1,24 +0,0 @@ =2DSubject: Disable weak ciphers =2D =2DDisable RC4, "export ciphers", and all keys < 128 bits. =2D =2DBug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/1325674 =2D--- =2D url.c | 1 + =2D 1 file changed, 1 insertion(+) =2D =2Ddiff --git a/url.c b/url.c =2Dindex ed6062e..e86b1f3 100644 =2D--- a/url.c =2D+++ b/url.c =2D@@ -326,6 +326,7 @@ openSSLHandle(int sock, char *hostname, char **p_cer= t) =2D SSL_load_error_strings(); =2D if (!(ssl_ctx =3D SSL_CTX_new(SSLv23_client_method()))) =2D goto eend; =2D+ SSL_CTX_set_cipher_list(ssl_ctx, "DEFAULT:!LOW:!RC4:!EXP"); =2D option =3D SSL_OP_ALL; =2D if (ssl_forbid_method) { =2D if (strchr(ssl_forbid_method, '2')) =2D--=20 =2D2.6.4 =2D diff --git a/gnu/packages/patches/w3m-force-ssl_verify_server-on.patch b/gn= u/packages/patches/w3m-force-ssl_verify_server-on.patch deleted file mode 100644 index dc9f117..0000000 =2D-- a/gnu/packages/patches/w3m-force-ssl_verify_server-on.patch +++ /dev/null @@ -1,24 +0,0 @@ =2DSubject: Force ssl_verify_server on. =2D =2DBy default, SSL/TLS certificates are not verified. This enables the =2Dverification. =2D--- =2D fm.h | 2 +- =2D 1 file changed, 1 insertion(+), 1 deletion(-) =2D =2Ddiff --git a/fm.h b/fm.h =2Dindex 8378939..320906c 100644 =2D--- a/fm.h =2D+++ b/fm.h =2D@@ -1135,7 +1135,7 @@ global int view_unseenobject init(TRUE); =2D #endif =2D=20 =2D #if defined(USE_SSL) && defined(USE_SSL_VERIFY) =2D-global int ssl_verify_server init(FALSE); =2D+global int ssl_verify_server init(TRUE); =2D global char *ssl_cert_file init(NULL); =2D global char *ssl_key_file init(NULL); =2D global char *ssl_ca_path init(NULL); =2D--=20 =2D2.6.4 =2D diff --git a/gnu/packages/patches/w3m-libgc.patch b/gnu/packages/patches/w3= m-libgc.patch deleted file mode 100644 index 0dc6a40..0000000 =2D-- a/gnu/packages/patches/w3m-libgc.patch +++ /dev/null @@ -1,28 +0,0 @@ =2DThis patch fixes w3m compilation with libgc > 7.2. =2D =2DReported: =2Dhttps://bugs.archlinux.org/task/33397 =2D =2DPatch with explanation: =2Dhttp://anonscm.debian.org/cgit/collab-maint/w3m.git/commit/?id=3D770eec8= 304bdbe458 =2D--- =2D main.c | 3 ++- =2D 1 file changed, 2 insertions(+), 1 deletion(-) =2D =2Ddiff --git a/main.c b/main.c =2Dindex b421943..249eb1a 100644 =2D--- a/main.c =2D+++ b/main.c =2D@@ -833,7 +833,8 @@ main(int argc, char **argv, char **envp) =2D mySignal(SIGPIPE, SigPipe); =2D #endif =2D=20 =2D- orig_GC_warn_proc =3D GC_set_warn_proc(wrap_GC_warn_proc); =2D+ orig_GC_warn_proc =3D GC_get_warn_proc(); =2D+ GC_set_warn_proc(wrap_GC_warn_proc); =2D err_msg =3D Strnew(); =2D if (load_argc =3D=3D 0) { =2D /* no URL specified */ =2D--=20 =2D2.6.4 =2D diff --git a/gnu/packages/patches/w3m-upstream-20120522.patch b/gnu/package= s/patches/w3m-upstream-20120522.patch new file mode 100644 index 0000000..64e089d =2D-- /dev/null +++ b/gnu/packages/patches/w3m-upstream-20120522.patch @@ -0,0 +1,157 @@ +Description: Upstream development snapshot on 2012-05-22 +Origin: upstream, http://w3m.cvs.sourceforge.net/viewvc/w3m/w3m/ + +diff -urN w3m-0.5.3/ChangeLog w3m/ChangeLog +--- w3m-0.5.3/ChangeLog 2011-01-15 16:52:48.000000000 +0900 ++++ w3m/ChangeLog 2012-05-22 22:11:44.000000000 +0900 +@@ -1,12 +1,31 @@ ++2012-05-22 Tatsuya Kinoshita ++ ++ * [w3m-dev 04451] w3m/entity.h should be removed when `make clean' ++ * Makefile.in: add entity.h to "make clean" target. ++ ++2012-05-22 Tatsuya Kinoshita ++ ++ * [w3m-dev 04452] Re: w3m on macosx 10.6.6 ++ * doc/w3m.1, doc/STORY.html, doc-jp/STORY.html:=20 ++ delete words about formerly included Boehm GC library. ++ ++2012-05-22 Enu ++ ++ * file.c, HTML.c: parse META CHARSET. ++ ++2011-01-17 Dai Sato ++ ++ * correction: ChangeLog of 2011-01-15 (0.5.2 -> 0.5.3) ++ + 2011-01-15 Dai Sato +=20 +- * w3m 0.5.2 ++ * w3m 0.5.3 + * version.c.in: update +- * doc/README: version 0.5.2, release date, maintainer ++ * doc/README: version 0.5.3, release date, maintainer + * doc-jp/README: ditto + * po/w3m.pot, ja.po: ditto + * NEWS: update +- * configure.ac: version 0.5.2 ++ * configure.ac: version 0.5.3 + * configure: regenerated +=20 + 2011-01-05 SAKAI Kiyotaka +@@ -9300,4 +9319,4 @@ + * release-0-2-1 + * import w3m-0.2.1 +=20 +-$Id: ChangeLog,v 1.1050 2011/01/15 07:52:48 inu Exp $ ++$Id: ChangeLog,v 1.1055 2012/05/22 10:20:45 inu Exp $ +diff -urN w3m-0.5.3/Makefile.in w3m/Makefile.in +--- w3m-0.5.3/Makefile.in 2011-01-04 18:22:18.000000000 +0900 ++++ w3m/Makefile.in 2012-05-22 22:11:44.000000000 +0900 +@@ -288,7 +288,7 @@ + clean: sweep + -$(RM) -f *.o *.a $(TARGETS) mktable$(EXT) + -$(RM) -f funcname.tab +- -$(RM) -f funcname.c funcname1.h funcname2.h tagtable.c functable.c ++ -$(RM) -f entity.h funcname.c funcname1.h funcname2.h tagtable.c functab= le.c + -for dir in w3mimg libwc; \ + do \ + (cd $$dir && $(MAKE) clean RM=3D"$(RM)"); \ +diff -urN w3m-0.5.3/doc/STORY.html w3m/doc/STORY.html +--- w3m-0.5.3/doc/STORY.html 2001-11-21 13:29:14.000000000 +0900 ++++ w3m/doc/STORY.html 2012-05-22 22:11:44.000000000 +0900 +@@ -182,6 +182,10 @@ + I could distribute w3m without this library because one can + get the library separately, but I decided to contain it in the + w3m distribution for the convenience of an installer. ++

      ++# Boehm GC library is no longer included into w3m packages ++# after w3m-0.4.2. ++

      + W3m doesn't use libwww. +

      + Boehm GC is a garbage collector for C and C++. I began to use this +diff -urN w3m-0.5.3/doc/w3m.1 w3m/doc/w3m.1 +--- w3m-0.5.3/doc/w3m.1 2011-01-15 15:37:24.000000000 +0900 ++++ w3m/doc/w3m.1 2012-05-22 22:11:44.000000000 +0900 +@@ -245,8 +245,6 @@ + .I + w3m + has incorporated code from several sources. +-Hans J. Boehm, Alan J. Demers, Xerox Corp. and Silicon Graphics +-have the copyright of the GC library comes with w3m package. + Users have contributed patches and suggestions over time. + .SH AUTHOR + Akinori ITO +diff -urN w3m-0.5.3/doc-jp/STORY.html w3m/doc-jp/STORY.html +--- w3m-0.5.3/doc-jp/STORY.html 2003-05-14 02:17:54.000000000 +0900 ++++ w3m/doc-jp/STORY.html 2012-05-22 22:11:44.000000000 +0900 +@@ -158,6 +158,9 @@ + Boehm GC + =A4=C8=A4=A4=A4=A6=A5=E9=A5=A4=A5=D6=A5=E9=A5=EA=A4=F2=CD=F8=CD=D1=A4=B7= =A4=C6=A4=A4=A4=EB=A1=A5=A4=B3=A4=EC=A4=CF=BB=E4=A4=AC=BD=F1=A4=A4=A4=BF=A4= =E2=A4=CE=A4=C7=A4=CF=A4=CA=A4=A4=A4=AC=A1=A4 + =A5=B3=A5=F3=A5=D1=A5=A4=A5=EB=BB=FE=A4=CE=CA=D8=B5=B9=A4=F2=B9=CD=A4=A8= =A4=C6=C7=DB=C9=DB=A5=D1=A5=C3=A5=B1=A1=BC=A5=B8=A4=CB=B4=DE=A4=E1=A4=C6=A4= =A4=A4=EB=A1=A5 ++

      ++# Boehm GC =A4=CF=A1=A2w3m-0.4.2 =B0=CA=B9=DF=A4=CE=A5=D1=A5=C3=A5=B1=A1= =BC=A5=B8=A4=CB=A4=CF=B4=DE=A4=DE=A4=EC=A4=C6=A4=A4=A4=DE=A4=BB=A4=F3=A1=A3 ++

      + =A4=CA=A4=AA=A1=A4libwww =A4=CF=BB=C8=A4=C3=A4=C6=A4=A4=A4=CA=A4=A4=A1=A5 +

      + Boehm GC=A4=CF=A1=A4C=A4=AB=A4=E9=BB=C8=A4=A8=A4=EB=A5=AC=A5=D9=A1=BC=A5= =B8=A5=B3=A5=EC=A5=AF=A5=BF=A4=C0=A1=A5table =A4=F2=BC=C2=C1=F5=A4=B7=A4=BF= =A4=A2=A4=BF=A4=EA=A4=CB=A4=B3=A4=EC=A4=F2 +diff -urN w3m-0.5.3/file.c w3m/file.c +--- w3m-0.5.3/file.c 2011-01-04 18:22:21.000000000 +0900 ++++ w3m/file.c 2012-05-22 22:11:44.000000000 +0900 +@@ -1,4 +1,4 @@ +-/* $Id: file.c,v 1.265 2010/12/15 10:50:24 htrb Exp $ */ ++/* $Id: file.c,v 1.266 2012/05/22 09:45:56 inu Exp $ */ + #include "fm.h" + #include + #include "myctype.h" +@@ -5020,10 +5020,17 @@ + HTMLlineproc1(tmp->ptr, h_env); + return 1; + case HTML_META: +- p =3D q =3D NULL; ++ p =3D q =3D r =3D NULL; + parsedtag_get_value(tag, ATTR_HTTP_EQUIV, &p); + parsedtag_get_value(tag, ATTR_CONTENT, &q); + #ifdef USE_M17N ++ parsedtag_get_value(tag, ATTR_CHARSET, &r); ++ if (r) { ++ /* */ ++ SKIP_BLANKS(r); ++ meta_charset =3D wc_guess_charset(r, 0); ++ } ++ else + if (p && q && !strcasecmp(p, "Content-Type") && + (q =3D strcasestr(q, "charset")) !=3D NULL) { + q +=3D 7; +diff -urN w3m-0.5.3/html.c w3m/html.c +--- w3m-0.5.3/html.c 2011-01-04 18:22:21.000000000 +0900 ++++ w3m/html.c 2012-05-22 22:11:44.000000000 +0900 +@@ -1,4 +1,4 @@ +-/* $Id: html.c,v 1.32 2010/08/14 01:29:40 htrb Exp $ */ ++/* $Id: html.c,v 1.33 2012/05/22 09:45:56 inu Exp $ */ + #include "html.h" +=20 + /* Define HTML Tag Infomation Table */ +@@ -37,8 +37,8 @@ + ATTR_CELLPADDING, ATTR_VSPACE, ATTR_CORE + }; + #define MAXA_TABLE MAXA_CORE + 6 +-unsigned char ALST_META[] =3D { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CORE = }; +-#define MAXA_META MAXA_CORE + 2 ++unsigned char ALST_META[] =3D { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CHARS= ET, ATTR_CORE }; ++#define MAXA_META MAXA_CORE + 3 + unsigned char ALST_FRAME[] =3D { ATTR_SRC, ATTR_NAME, ATTR_CORE }; + #define MAXA_FRAME MAXA_CORE + 2 + unsigned char ALST_FRAMESET[] =3D { ATTR_COLS, ATTR_ROWS, ATTR_CORE }; +diff -urN w3m-0.5.3/version.c.in w3m/version.c.in +--- w3m-0.5.3/version.c.in 2011-01-15 16:52:48.000000000 +0900 ++++ w3m/version.c.in 2012-05-22 22:11:44.000000000 +0900 +@@ -1,5 +1,5 @@ +-/* $Id: version.c.in,v 1.48 2011/01/15 07:52:48 inu Exp $ */ +-#define CURRENT_VERSION "w3m/0.5.3" ++/* $Id: version.c.in,v 1.49 2012/05/22 09:45:56 inu Exp $ */ ++#define CURRENT_VERSION "w3m/0.5.3+cvs" +=20 + #ifndef FM_H + char *w3m_version =3D CURRENT_VERSION; diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm index e7dd583..466958a 100644 =2D-- a/gnu/packages/w3m.scm +++ b/gnu/packages/w3m.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2013 Nikita Karetnikov ;;; Copyright =C2=A9 2016 Leo Famulari +;;; Copyright =C2=A9 2016 Kei Kebreau ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,33 +37,17 @@ (name "w3m") (version "0.5.3") (source (origin =2D (method url-fetch) =2D (uri (string-append "mirror://sourceforge/" name "/" name "= /" =2D name "-" version "/" =2D name "-" version ".tar.gz")) =2D (sha256 =2D (base32 =2D "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579")) =2D =2D ;; cf. https://bugs.archlinux.org/task/33397 =2D (patches (search-patches "w3m-libgc.patch" =2D "w3m-force-ssl_verify_server-on.pa= tch" =2D "w3m-disable-sslv2-and-sslv3.patch" =2D "w3m-disable-weak-ciphers.patch"))= )) + (method url-fetch) + ;; Debian's fork of w3m is the only one that is still mainta= ined. + (uri (string-append "mirror://debian/pool/main/w/w3m/w3m_" + version ".orig.tar.gz")) + (sha256 + (base32 + "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579")) + (patches (search-patches "w3m-upstream-20120522.patch" + "w3m-debian-updates.patch")))) (build-system gnu-build-system) =2D (arguments `(#:tests? #f ; no check target =2D #:phases (alist-cons-before =2D 'configure 'fix-perl =2D (lambda _ =2D ;; https://launchpad.net/bugs/935540 =2D ;; 'struct file_handle' is used by 'glibc' =2D (substitute* '("istream.c" "istream.h") =2D (("struct[[:blank:]]+file_handle") =2D "struct w3m_file_handle")) =2D (substitute* '("scripts/w3mmail.cgi.in" =2D "scripts/dirlist.cgi.in") =2D (("@PERL@") (which "perl")))) =2D %standard-phases))) + (arguments `(#:tests? #f)) ; no check target (inputs `(("libgc" ,libgc) ("ncurses" ,ncurses) =2D-=20 2.10.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJYG7VYAAoJEOal7jwZRnoNcMgP/jn8IHoAcsAyqVpU0bRCQXAE qB2jkG1i1jXN4IMipMVtcWbuc2F2aEHMrD71kY057ORO7kyimmyzEA0tF0Wpuqar SrB4y12Q3xyAeyIOEsF5E9/fKpuTO6W2rxslSGCmbbzYZvgQbnnE6VJIg2QIRnrK 2zpRK8h0GRrBmogOdqNQo17ygz/bd9zr4w3ghiXgf3XMCDFx87hddrurAdK/LQsm gLQLQww21ZB6kBpeFHPY9wE7n/l6UsYl0i+p1OTdBCHgva6Nzg50Tnabs3tkEi1N IZiPQhJIlPN07ET6/cS0HszX4VhklR2r80X33wvfIX/q4YeYGgFRQWMZsN4uGKVy kU261jDbA2RNhcYbXsxcbg+7m1QmNce2SavfWRWvdzPUe8nKm4qRSfYGzdOWc0Qd fZ5vGoePccnFGfjNk7Ol2zRZOINwxSW2hEOJwL+r+IUlKT8T6jxuMA+i4fd/JTzK kNiBC9h6J6HNlb+PjTQqTZCO8iXyTvuphBeb6U1mv/VCkjJjVddOOXg7ktBmPRVH AmrOVv3A/ImT1RHbqRteb7vnt74WVj6xuxW3+VI4+Fs6XNznYoEpVugkSZXb6E/c oQrveZc9DjuEYrMmOnLJd8Gq0Y+Bys8tiD+DVzeH4yNj4jgCfT4xkKIo5McbmN9s 04YwBLNF3QRIwl2JEsYB =z9oP -----END PGP SIGNATURE----- --==-=-=--