25042812 Update w3m to version 0.5.3-31 s11u3-sru
authorRich Burridge <rich.burridge@oracle.com>
Mon, 07 Nov 2016 13:42:00 -0800
branchs11u3-sru
changeset 7256 c523ba6bf5f1
parent 7255 c7815ed3b336
child 7259 39b1b8abc92d
25042812 Update w3m to version 0.5.3-31 25042780 problem in UTILITY/W3M
components/w3m/Makefile
components/w3m/patches/01-libgc.patch
components/w3m/patches/02-autobits.patch
components/w3m/patches/03-istream.patch
components/w3m/patches/04-get_warn_proc.patch
components/w3m/patches/05-init-openssl.patch
components/w3m/patches/10-upstream.patch
components/w3m/patches/20-debian.patch
components/w3m/w3m.p5m
--- a/components/w3m/Makefile	Tue Oct 25 14:43:21 2016 -0700
+++ b/components/w3m/Makefile	Mon Nov 07 13:42:00 2016 -0800
@@ -18,30 +18,29 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 COMPILER = gcc
 
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		w3m
-COMPONENT_VERSION=	0.5.2
-COMPONENT_PROJECT_URL=	http://w3m.sourceforge.net/
+COMPONENT_VERSION=	0.5.3
+HUMAN_VERSION=		0.5.3-31
+COMPONENT_PROJECT_URL=	https://packages.qa.debian.org/w/w3m.html
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
-COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE=	$(COMPONENT_NAME)_$(COMPONENT_VERSION).orig.tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:5ff3e5a1f50a4a8e6ddbfdeefbe13d3a7f63538595a8e29f5da504ea46eda646
-COMPONENT_ARCHIVE_URL=	http://sourceforge.net/projects/$(COMPONENT_NAME)/files/$(COMPONENT_NAME)/$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)/download
+    sha256:e994d263f2fd2c22febfbe45103526e00145a7674a0fda79c822b97c2770a9e3
+COMPONENT_ARCHIVE_URL=	http://http.debian.net/debian/pool/main/w/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/w3m
 
-TPNO=			9364
+TPNO=			21998
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/configure.mk
 include $(WS_MAKE_RULES)/ips.mk
 
-COMPONENT_PREP_ACTION = (cd $(@D) ; aclocal-1.11 ; autoconf)
-
 # install the bits in /usr/bin and /usr/lib
 CONFIGURE_BINDIR.64 = $(CONFIGURE_BINDIR.32)
 CONFIGURE_LIBDIR.64 = $(CONFIGURE_LIBDIR.32)
--- a/components/w3m/patches/01-libgc.patch	Tue Oct 25 14:43:21 2016 -0700
+++ b/components/w3m/patches/01-libgc.patch	Mon Nov 07 13:42:00 2016 -0800
@@ -3,31 +3,41 @@
 #
 # This patch needs to be evaluated to see if it needs to be passed upstream.
 
---- w3m-0.5.2.orig/acinclude.m4	Fri Apr  7 08:21:11 2006
-+++ w3m-0.5.2/acinclude.m4	Thu Dec  4 09:32:08 2014
[email protected]@ -426,6 +426,7 @@
- # ----------------------------------------------------------------
- AC_DEFUN([AC_W3M_GC],
- [AC_MSG_CHECKING(GC library exists)
-+AC_SUBST(LIBGC)
- AC_ARG_WITH(gc,
-  [  --with-gc[=PREFIX]	  	libgc PREFIX],
-  [test x"$with_gc" = xno && AC_MSG_ERROR([You can not build w3m without gc])],
[email protected]@ -456,7 +457,7 @@
-    fi
-  fi
-  unset ac_cv_lib_gc_GC_init
-- AC_CHECK_LIB(gc, GC_init, [LIBS="$LIBS -lgc"])
-+ AC_CHECK_LIB(gc, GC_init, [LIBS="$LIBS `pkg-config --libs bdw-gc`"])
+--- w3m-0.5.3/configure.orig	2016-11-03 12:07:41.143467587 +0000
++++ w3m-0.5.3/configure	2016-11-03 12:11:03.646007132 +0000
[email protected]@ -8209,7 +8209,7 @@
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgc  $LIBS"
++LIBS="`pkg-config --libs bdw-gc` $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
[email protected]@ -8240,7 +8240,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_init" >&5
+ $as_echo "$ac_cv_lib_gc_GC_init" >&6; }
+ if test "x$ac_cv_lib_gc_GC_init" = x""yes; then :
+-  LIBGC="-lgc"
++  LIBGC="`pkg-config --libs bdw-gc`"
+ fi
+ 
   if test x"$ac_cv_lib_gc_GC_init" = xno; then
-     AC_MSG_CHECKING(GC library location)
-     AC_MSG_RESULT($with_gc)
[email protected]@ -466,7 +467,7 @@
-       LDFLAGS="$LDFLAGS -L$dir/lib"
-       AC_MSG_CHECKING($dir)
-       unset ac_cv_lib_gc_GC_init
--      AC_CHECK_LIB(gc, GC_init, [gclibdir="$dir/lib"; LIBS="$LIBS -L$dir/lib -lgc"; break])
-+      AC_CHECK_LIB(bgc, GC_init, [gclibdir="$dir/lib"; LIBS="$LIBS -L$dir/lib `pkg-config --libs bdw-gc`"; break])
[email protected]@ -8261,7 +8261,7 @@
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgc  $LIBS"
++LIBS="`pkg-config --libs bdw-gc` $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
[email protected]@ -8292,7 +8292,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_init" >&5
+ $as_echo "$ac_cv_lib_gc_GC_init" >&6; }
+ if test "x$ac_cv_lib_gc_GC_init" = x""yes; then :
+-  gclibdir="$dir/lib"; LIBGC="-L$dir/lib -lgc"; break
++  gclibdir="$dir/lib"; LIBGC="-L$dir/lib `pkg-config --libs bdw-gc`"; break
+ fi
+ 
        LDFLAGS="$ldflags"
-     done
-     if test x"$gclibdir" = xno; then
--- a/components/w3m/patches/02-autobits.patch	Tue Oct 25 14:43:21 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#
-# Use AC_W3M_SSL and AC_W3M_DIGEST_AUTH from acinclude.m4 instead of the
-# combined version in aclocal.m4, which gets overwritten when aclocal is run.
-#
-# Check for floor() instead of sqrt() to decide if we need libm
-#
-# use $(INSTALL) -d instead of @[email protected] in po/Makefile...
-#
-# This patch needs to be evaluated to see if it needs to be passed upstream.
-
---- w3m-0.5.2.orig/configure.ac	Thu May 31 07:17:05 2007
-+++ w3m-0.5.2/configure.ac	Thu Dec  4 09:51:48 2014
[email protected]@ -88,10 +88,11 @@
- done
- 
- AC_W3M_IPv6
--AC_W3M_SSL_DIGEST_AUTH
-+AC_W3M_SSL
-+AC_W3M_DIGEST_AUTH
- 
- dnl Checks for libraries.
--AC_CHECK_FUNC(sqrt,,[AC_CHECK_LIB(m, sqrt)])
-+AC_CHECK_FUNC(floor,,[AC_CHECK_LIB(m, floor)])
- if test x"$enable_mouse" = xyes; then
-  AC_SUBST(USE_W3M)
-  AC_CHECK_LIB(gpm, Gpm_Open, [AC_DEFINE(USE_GPM)
-
-
---- w3m-0.5.2.orig/po/Makefile.in.in	Tue May 29 22:15:13 2007
-+++ w3m-0.5.2/po/Makefile.in.in	Thu Dec  4 09:57:40 2014
[email protected]@ -27,8 +27,7 @@
- 
- INSTALL = @[email protected]
- INSTALL_DATA = @[email protected]
--MKINSTALLDIRS = @[email protected]
--mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
-+mkinstalldirs = $(INSTALL) -d
- 
- GMSGFMT = @[email protected]
- MSGFMT = @[email protected]
--- a/components/w3m/patches/03-istream.patch	Tue Oct 25 14:43:21 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-# Copied over from the desktop consolidation, which has the comment:
-# date:2011-02-16 owner:liyuan type bug bugster:7008664
-# Bugster CR #7008664 is now BugDB CR #15688660
-# 15688660 SUNBT7008664-SOLARIS_11 CVE-2010-2074 w3m problems handling x.509 data
-#
-# This patch needs to be evaluated to see if it needs to be passed upstream.
-
---- w3m-0.5.2/istream.c	2007-05-23 23:06:05.000000000 +0800
-+++ w3m-0.5.3/istream.c	2011-01-04 17:22:22.000000000 +0800
[email protected]@ -1,4 +1,4 @@
--/* $Id: istream.c,v 1.26 2007/05/23 15:06:05 inu Exp $ */
-+/* $Id: istream.c,v 1.27 2010/07/18 13:43:23 htrb Exp $ */
- #include "fm.h"
- #include "myctype.h"
- #include "istream.h"
[email protected]@ -447,8 +447,17 @@
- 
- 		    if (!seen_dnsname)
- 			seen_dnsname = Strnew();
-+		    /* replace \0 to make full string visible to user */
-+		    if (sl != strlen(sn)) {
-+			int i;
-+			for (i = 0; i < sl; ++i) {
-+			    if (!sn[i])
-+				sn[i] = '!';
-+			}
-+		    }
- 		    Strcat_m_charp(seen_dnsname, sn, " ", NULL);
--		    if (ssl_match_cert_ident(sn, sl, hostname))
-+		    if (sl == strlen(sn) /* catch \0 in SAN */
-+			&& ssl_match_cert_ident(sn, sl, hostname))
- 			break;
- 		}
- 	    }
[email protected]@ -466,16 +475,27 @@
-     if (match_ident == FALSE && ret == NULL) {
- 	X509_NAME *xn;
- 	char buf[2048];
-+	int slen;
- 
- 	xn = X509_get_subject_name(x);
- 
--	if (X509_NAME_get_text_by_NID(xn, NID_commonName,
--				      buf, sizeof(buf)) == -1)
-+	slen = X509_NAME_get_text_by_NID(xn, NID_commonName, buf, sizeof(buf));
-+	if ( slen == -1)
- 	    /* FIXME: gettextize? */
- 	    ret = Strnew_charp("Unable to get common name from peer cert");
--	else if (!ssl_match_cert_ident(buf, strlen(buf), hostname))
-+	else if (slen != strlen(buf)
-+		|| !ssl_match_cert_ident(buf, strlen(buf), hostname)) {
-+	    /* replace \0 to make full string visible to user */
-+	    if (slen != strlen(buf)) {
-+		int i;
-+		for (i = 0; i < slen; ++i) {
-+		    if (!buf[i])
-+			buf[i] = '!';
-+		}
-+	    }
- 	    /* FIXME: gettextize? */
- 	    ret = Sprintf("Bad cert ident %s from %s", buf, hostname);
-+	}
- 	else
- 	    match_ident = TRUE;
-     }
--- a/components/w3m/patches/04-get_warn_proc.patch	Tue Oct 25 14:43:21 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-# Copied over from the desktop consolidation, which has the comment:
-# date:2012-08-09 owner:davelam type bug bugster:555467
-# Unfortunately there is no such bug in BugDB
-#
-# This patch needs to be evaluated to see if it needs to be passed upstream.
-
---- w3m-0.5.2/main.c.ori	2012-08-09 10:33:36.510910856 +0800
-+++ w3m-0.5.2/main.c	2012-08-09 10:34:03.817856620 +0800
[email protected]@ -842,7 +842,9 @@
-     mySignal(SIGPIPE, SigPipe);
- #endif
- 
--    orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
-+    orig_GC_warn_proc = GC_get_warn_proc();
-+    GC_set_warn_proc(wrap_GC_warn_proc);
-+
-     err_msg = Strnew();
-     if (load_argc == 0) {
- 	/* no URL specified */
--- a/components/w3m/patches/05-init-openssl.patch	Tue Oct 25 14:43:21 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-Disable SSLv2 and SSLv3 in w3m to "mitigate POODLE vulnerability".
-
-This change has been passed upstream.
-
---- w3m-0.5.2/url.c.orig	2015-01-29 08:37:04.156739107 -0800
-+++ w3m-0.5.2/url.c	2015-01-29 08:48:24.055383389 -0800
[email protected]@ -337,6 +337,8 @@
- 		option |= SSL_OP_NO_TLSv1;
- 	}
- 	SSL_CTX_set_options(ssl_ctx, option);
-+	/* Always disable SSLv2 & SSLv3 to "mitigate POODLE vulnerability". */
-+	SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
- #ifdef USE_SSL_VERIFY
- 	/* derived from openssl-0.9.5/apps/s_{client,cb}.c */
- #if 1				/* use SSL_get_verify_result() to verify cert */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/w3m/patches/10-upstream.patch	Mon Nov 07 13:42:00 2016 -0800
@@ -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
[email protected]@ -1,12 +1,31 @@
++2012-05-22  Tatsuya Kinoshita <[email protected]>
++
++	* [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 <[email protected]>
++
++	* [w3m-dev 04452] Re: w3m on macosx 10.6.6
++	* doc/w3m.1, doc/STORY.html, doc-jp/STORY.html: 
++	  delete words about formerly included Boehm GC library.
++
++2012-05-22  Enu <[email protected]>
++
++	* file.c, HTML.c: parse META CHARSET.
++
++2011-01-17  Dai Sato <[email protected]>
++
++	* correction: ChangeLog of 2011-01-15 (0.5.2 -> 0.5.3)
++
+ 2011-01-15  Dai Sato <satod[email protected]>
+ 
+-	* 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
+ 
+ 2011-01-05  SAKAI Kiyotaka <[email protected]>
[email protected]@ -9300,4 +9319,4 @@
+ 	* release-0-2-1
+ 	* import w3m-0.2.1
+ 
+-$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
[email protected]@ -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 functable.c
+ 	-for dir in w3mimg libwc; \
+ 	do \
+ 		(cd $$dir && $(MAKE) clean RM="$(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
[email protected]@ -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.
++<P>
++# Boehm GC library is no longer included into w3m packages
++# after w3m-0.4.2.
++<P>
+ W3m doesn't use libwww.
+ <P>
+ 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
[email protected]@ -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 <[email protected]>
+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
[email protected]@ -158,6 +158,9 @@
+ <a href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">Boehm GC</a>
+ というライブラリを利用している.これは私が書いたものではないが,
+ コンパイル時の便宜を考えて配布パッケージに含めている.
++<P>
++# Boehm GC は、w3m-0.4.2 以降のパッケージには含まれていません。
++<P>
+ なお,libwww は使っていない.
+ <P>
+ Boehm GCは,Cから使えるガベージコレクタだ.table を実装したあたりにこれを
+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
[email protected]@ -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 <sys/types.h>
+ #include "myctype.h"
[email protected]@ -5020,10 +5020,17 @@
+ 	HTMLlineproc1(tmp->ptr, h_env);
+ 	return 1;
+     case HTML_META:
+-	p = q = NULL;
++	p = q = r = 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) {
++	    /* <meta charset=""> */
++	    SKIP_BLANKS(r);
++	    meta_charset = wc_guess_charset(r, 0);
++	}
++	else
+ 	if (p && q && !strcasecmp(p, "Content-Type") &&
+ 	    (q = strcasestr(q, "charset")) != NULL) {
+ 	    q += 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
[email protected]@ -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"
+ 
+ /* Define HTML Tag Infomation Table */
[email protected]@ -37,8 +37,8 @@
+     ATTR_CELLPADDING, ATTR_VSPACE, ATTR_CORE
+ };
+ #define MAXA_TABLE	MAXA_CORE + 6
+-unsigned char ALST_META[] = { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CORE };
+-#define MAXA_META	MAXA_CORE + 2
++unsigned char ALST_META[] = { ATTR_HTTP_EQUIV, ATTR_CONTENT, ATTR_CHARSET, ATTR_CORE };
++#define MAXA_META	MAXA_CORE + 3
+ unsigned char ALST_FRAME[] = { ATTR_SRC, ATTR_NAME, ATTR_CORE };
+ #define MAXA_FRAME	MAXA_CORE + 2
+ unsigned char ALST_FRAMESET[] = { 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
[email protected]@ -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"
+ 
+ #ifndef FM_H
+ char *w3m_version = CURRENT_VERSION;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/w3m/patches/20-debian.patch	Mon Nov 07 13:42:00 2016 -0800
@@ -0,0 +1,28481 @@
+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
[email protected]@ -1,14 +1,20 @@
+ #!/usr/bin/perl
+ 
+ # ~/.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
+ 
+-use NKF;
+-#$mode = 0; # substring
+-$mode = 1;  # perfect match
+-#$mode = 3; # search body text
++use Encode;
++use Encode::Guess qw/euc-jp utf8/;
+ $url = "http://dictionary.goo.ne.jp";
+ $_ = $ENV{"QUERY_STRING"};
+ if (/^e:/) {
[email protected]@ -17,14 +23,22 @@ if (/^e:/) {
+     $kind = 'je';
+ } elsif (/^j:/) {
+     $kind = 'jn';
++} elsif (/^a:/) {
++    $kind = 'all'
++}
[email protected]^[ewja]:@@ && [email protected]^//@@ && [email protected]/[email protected]@;
++if (/^([01236]):/) {
++    $mode=$1;
++    s/^[01236]://;
++}else{
++    $mode="1";
+ }
[email protected]^[ewjs]:@@ && [email protected]^//@@ && [email protected]/[email protected]@;
+ if ($_) {
+ 	s/\+/ /g;
+ 	s/%([\da-f][\da-f])/pack('C', hex($1))/egi;
+-	$_ = nkf("-e", $_);
++	$_ = encode("utf8", decode("Guess", $_));
+ 	s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg;
+-	$url .= "/search.php?MT=$_&kind=$kind&mode=$mode";
++	$url .= "/srch/$kind/$_/m$mode"."u/";
+ } else {
+ 	$input = "w3m-control: GOTO_LINK";
+ }
+diff --git a/ChangeLog b/ChangeLog
+index 88358ef..f9e988e 100644
+--- a/ChangeLog
++++ b/ChangeLog
[email protected]@ -1,3 +1,1176 @@
++2016-10-09  Tatsuya Kinoshita  <[email protected]>
++
++	* form.c:
++	Fix incorrect dereference in formUpdateBuffer when MENU_SELECT.
++	cf. https://github.com/tats/w3m/commit/ec9eb22e008a69ea9dc21fdca4b9b836679965ee
++
++2016-10-08  Tatsuya Kinoshita  <[email protected]>
++
++	* 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=838952
++
++	* 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  <[email protected]>
++
++	* Str.c: Fix potential heap buffer corruption due to Strgrow.
++	Origin: https://github.com/tats/w3m/pull/27
++
++2016-08-29  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* file.c, parsetagx.c: Fix uninitialised values for <i> and <dd>.
++	Bug-Debian: https://github.com/tats/w3m/issues/16
++
++	* file.c, parsetagx.c:
++	Revert "Fix uninitialised values for <i> and <dd>".
++	This reverts commit 0fba2f1a6eb6861206ad120a02af2643938082cd.
++	cf. https://github.com/tats/w3m/commit/0fba2f1a6eb6861206ad120a02af2643938082cd#commitcomment-18703355
++
++2016-08-19  Tatsuya Kinoshita  <[email protected]>
++
++	* file.c, parsetagx.c: Fix uninitialised values for <i> and <dd>.
++	Bug-Debian: https://github.com/tats/w3m/issues/16
++
++2016-08-18  Kuang-che Wu  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* file.c: Truncate large values of table attributes.
++	Bug-Debian: https://github.com/tats/w3m/issues/11
++
++2016-08-15  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* file.c: Prevent segfault with malformed input type.
++	Bug-Debian: https://github.com/tats/w3m/issues/7
++
++2016-08-08  Tatsuya Kinoshita  <[email protected]>
++
++	* Makefile.in, configure, configure.ac, scripts/w3mman/Makefile.in:
++	Install German manpages.
++
++2016-08-08  Markus Hiereth  <[email protected]>
++
++	* doc-de/MANUAL.html, doc/MANUAL.html:
++	Update MANUAL.html in English and German.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#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=772341#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=772341#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=772341#75
++
++2016-07-18  Tatsuya Kinoshita  <[email protected]>
++
++	* NEWS: Update NEWS.
++
++	* fm.h: Set default_url to 1 by default.
++
++2016-06-20  Tatsuya Kinoshita  <[email protected]>
++
++	* doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in:
++	Trim trailing spaces.
++
++2016-06-20  Markus Hiereth  <[email protected]>
++
++	* doc-de/README.func, scripts/w3mhelp-funcdesc.de.pl.in:
++	Update German help messages.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682#47
++
++2016-06-19  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* doc-de/README.func, doc/README.func:
++	Update description of SOURCE and VIEW.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765682#37
++
++2016-06-19  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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=765682
++
++	* doc/README.func, scripts/w3mhelp-funcdesc.en.pl.in:
++	* scripts/w3mhelp.cgi.in: Update English help messages.
++
++2016-05-11  Tatsuya Kinoshita  <[email protected]>
++
++	* config.guess, config.sub:
++	Update config.* with autotools-dev 20160430.1.
++
++2016-04-14  Tatsuya Kinoshita  <[email protected]>
++
++	* 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=820902
++
++	* NEWS: Update NEWS.
++
++2016-04-08  Tatsuya Kinoshita  <[email protected]>
++
++	* libwc/johab.c: Fix segfault on bogus text for wc_N_to_johab1.
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=820373
++
++2016-04-07  Tatsuya Kinoshita  <[email protected]>
++
++	* 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=820162
++
++2016-04-03  Tatsuya Kinoshita  <[email protected]>
++
++	* doc/FAQ.html, doc/MANUAL.html: Update English documents.
++
++2016-04-03  Markus Hiereth  <[email protected]>
++
++	* doc/FAQ.html, doc/MANUAL.html: Update English documents.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772341#25
++
++2016-04-02  Tatsuya Kinoshita  <[email protected]>
++
++	* 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=765682
++
++	* 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  <[email protected]>
++
++	* 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=772341#15
++	Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00002.html
++	Origin: https://lists.debian.org/debian-l10n-english/2014/12/msg00030.html
++	Origin: https://lists.debian.org/debian-l10n-english/2015/02/msg00011.html
++
++2016-03-30  Leo Famulari  <[email protected]>
++
++	* url.c: Disable RC4.
++	Origin: http://git.savannah.gnu.org/cgit/guix.git/commit/?id=62339e2d493bf87a3aabe12e45458581e9705d83
++
++2016-03-29  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* rc.c: Fix reverse ordered config parameters.
++
++2016-03-19  Tatsuya Kinoshita  <[email protected]>
++
++	* doc/FAQ.html: Update FAQ for extbrowser.
++
++2016-03-14  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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=%s && printf %s "$url" | xsel && printf %s "$url" | xsel -b
++	- extbrowser9 mpv %s &
++	cf. https://github.com/spcmd/w3m
++
++2016-02-28  Tatsuya Kinoshita  <[email protected]>
++
++	* menu.c: Fix SIGFPE for ACCESSKEY.
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779092
++
++	* doc/README.func, main.c: Typo fix for ACCESSKEY.
++	cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779092#5
++
++2015-12-20  Franz Thoma  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* w3mimg/x11/x11_w3mimg.c:
++	Wrap render_pixbuf_to_pixmap_32() in USE_GTK2.
++
++2015-12-17  Araki Ken  <[email protected]>
++
++	* w3mimg/x11/x11_w3mimg.c:
++	w3mimgdisplay supports 32 bit depth screen. (e.g. gnome-terminal)
++	Origin: https://bitbucket.org/arakiken/w3m/commits/f9c22db8cfd1aaba9bb7301ef9ba51ed88d8bb40
++
++2015-12-17  Tatsuya Kinoshita  <[email protected]>
++
++	* w3mimg/x11/x11_w3mimg.c:
++	Revert "Fix handling visuals and colormaps incorrectly".
++	This reverts commit e24b4064daf3e022e370788a8c7267db40c37dda.
++
++2015-11-19  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* config.guess, config.sub:
++	Update config.* with autotools-dev 20150820.1.
++
++2015-11-11  Mingye Wang (Arthur2e5)  <[email protected]>
++
++	* 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=804732#10
++
++2015-10-24  BwackNinja  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* cookie.c: Remove incomplete special_domain tests.
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=385702
++
++2015-10-04  Gaetan Bisson  <[email protected]>
++
++	* scripts/w3mhelp.cgi.in: Do not use defined(%hash).
++	Origin: https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/w3m&id=d9e0a4f0b461c9e2177cd9e64a10581386650503
++	Bug-Arch: https://bugs.archlinux.org/task/45608
++
++2015-09-06  Tatsuya Kinoshita  <[email protected]>
++
++	* file.c: Do not use C99-style comments.
++
++2015-09-06  David Crosby  <[email protected]>
++
++	* 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  <[email protected]ebian.org>
++
++	* 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  <[email protected]>
++
++	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  <[email protected]>
++
++	* url.c (HTTPrequest):
++	- Use Content-Type instead of Content-type.
++	- Use Content-Length instead of Content-length.
++	Origin: https://github.com/acg/w3m/commit/5946c2784d4eae46ec06e52390e43a874b3395fc
++
++2015-08-09  Egmont Koblinger  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* keybind_lynx.c: Support sgrmouse for Lynx-like key binding.
++	cf. https://sourceforge.net/p/w3m/patches/65/
++
++2015-08-09  IWAMOTO Kouichi  <[email protected]>
++
++	* 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  <[email protected]>
++
++	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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* README: Add short description.
++
++	* doc-jp/FAQ.html, doc/FAQ.html: Mention GOPHER_PROXY and FTP_PROXY.
++
++2015-07-05  Tatsuya Kinoshita  <[email protected]>
++
++	* doc-jp/FAQ.html, doc/FAQ.html: Mention HTTPS_PROXY.
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=791425
++
++2015-06-27  yshl  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* terms.c: Wrap the functions used by image.c in USE_IMAGE.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789539
++
++2015-05-09  Tatsuya Kinoshita  <[email protected]>
++
++	* doc-jp/README.siteconf, doc/README.siteconf:
++	Update examples of siteconf for twitter.com.
++
++2015-05-03  Tatsuya Kinoshita  <[email protected]>
++
++	* main.c: Correct GC version confirmation.
++
++2015-05-02  yshl  <[email protected]>
++
++	* main.c: Correct GC version confirmation.
++	Origin: https://github.com/tats/w3m/pull/2
++
++2015-04-29  Markus Hiereth  <[email protected]>
++
++	* po/de.po: Update German translation.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=783383
++
++2015-04-29  Tatsuya Kinoshita  <[email protected]>
++
++	* po/Makevars, po/de.po, po/ja.po, po/w3m.pot, rc.c:
++	Update PO strings for display_borders.
++
++2015-04-26  yshl  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* po/de.po, po/ja.po, po/w3m.pot: Update PO.
++
++2015-02-02  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* acinclude.m4, configure, version.c.in:
++	Update to 0.5.3+gitYYYYMMDD (generate from ChangeLog).
++
++2015-01-15  Tatsuya Kinoshita  <[email protected]>
++
++	* alloc.h, main.c: Drop C99 features.
++
++2015-01-15  Scarlett  <[email protected]>
++
++	Add overflow detection.
++	Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2
++	* 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  <[email protected]>
++
++	* Str.c, cookie.c, map.c:
++	Do not use C99 printf format specifiers and asprintf.
++
++2015-01-15  Scarlett  <[email protected]>
++
++	Correct printf arguments and use asprintf.
++	Origin: http://marc.info/?l=openbsd-ports&m=142090828929750&w=2
++	* 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  <[email protected]>
++
++	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=sixel 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
++	<img> 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  <[email protected]>
++
++	* parsetagx.c: Fix crash in parse_tag() during every start.
++	Origin: https://build.opensuse.org/package/view_file/openSUSE:Factory/w3m/w3m-parsetagx-crash.patch?expand=1
++
++	* fm.h: Change the default to alt_entity=0.
++	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/w3m/w3m-0.5.1-no-ASCII-equivalents-by-default.patch?expand=1
++	Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=247397
++
++	* 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/w3m/w3m-uninitialized.patch?expand=1
++
++2014-12-06  Peter Poeml  <[email protected]>
++
++	* 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/w3m/w3m-0.4.1-textarea-segfault.dif?expand=1
++
++2014-12-04  Tatsuya Kinoshita  <[email protected]>
++
++	* acinclude.m4: Follow updated configure.
++
++2014-12-03  Yusuke Baba  <[email protected]>
++
++	* 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=122673
++
++2014-12-02  Naohiro Aota  <[email protected]>
++
++	* 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-client/w3m/files/w3m-0.5.3-gdk-pixbuf.patch?revision=1.1
++
++2014-12-02  Jeroen Roovers  <[email protected]>
++
++	* acinclude.m4, configure: Add tinfo to with_termlib.
++	Fix building against sys-libs/ncurses[tinfo].
++	Origin: https://504588.bugs.gentoo.org/attachment.cgi?id=372650
++	Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=504588
++
++2014-12-01  OBATA Akio  <[email protected]>
++
++	* 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=1.13&content-type=text/x-cvsweb-markup
++	Origin: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/w3m/patches/patch-ak?rev=1.1&content-type=text/x-cvsweb-markup
++
++2014-12-01  Vsevolod Stakhov  <[email protected]>
++
++	* 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=144635
++	Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191852
++	Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191956
++
++2014-12-01  zimous  <[email protected]>
++
++	* po/ja.po: Set Language tag properly for Japanese translation.
++	Origin: https://512722.bugs.gentoo.org/attachment.cgi?id=378452
++	Bug-Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=512722
++
++2014-11-30  Tatsuya Kinoshita  <[email protected]>
++
++	* doc/w3m.1: Typo fix.
++
++2014-11-30  Markus Hiereth  <[email protected]>
++
++	* doc/w3m.1: Miscellaneous changes to improve English manpage.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30
++
++2014-11-29  Markus Hiereth  <[email protected]>
++
++	* doc/w3m.1: Improve FILES.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=403634
++
++	* doc/w3m.1: Improve EXAMPLES.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=380560
++
++	* doc/w3m.1: Improve explanation about option -N.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=345084
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530468
++
++	* doc/w3m.1: Note that -cols only affects when HTML is rendered.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=285251
++
++	* doc/w3m.1: Add more info on configuration.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#30
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=268211
++
++2014-11-29  Justin B Rye  <[email protected]>
++
++	* scripts/w3mman/w3mman.1.in: Tweak for W3MMAN_W3M.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771003#5
++
++	* scripts/w3mman/w3mman.1.in: English fixes.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=766550#25
++
++2014-11-29  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-19+.
++
++2014-11-29  Justin B Rye  <[email protected]>
++
++	* scripts/w3mman/w3mman2html.cgi.in: Fix Perl warnings.
++	Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771004
++
++2014-10-21  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-19
++
++	* po/LINGUAS: Correct LINGUAS to a whitespace separated list
++
++2014-10-21  Markus Hiereth  <[email protected]>
++
++	* po/LINGUAS, po/de.po: Add German translation
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763964
++
++2014-10-15  Tatsuya Kinoshita  <[email protected]>
++
++	* 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-the-end-of-ssl-3-0/
++
++2014-10-15  Ludwig Nussel  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-17+
++
++2014-10-04  Tatsuya Kinoshita  <[email protected]>
++
++	* libwc/ambwidth_map.awk, libwc/map/ucs_ambwidth.map:
++	Fix incorrect generation of ucs_ambwidth_map
++
++2014-08-22  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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=5;filename=080_gc72.patch;att=1;bug=758831
++	Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758831
++	Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=555467
++	Bug: http://sourceforge.net/p/w3m/patches/63/
++	Bug: http://sourceforge.net/p/w3m/patches/59/
++
++2014-08-22  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-15
++
++2014-01-03  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* doc-jp/MANUAL.html, doc/MANUAL.html:
++	Cleanup unusable links in MANUAL.html
++	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517315
++
++	* version.c.in: Update to 0.5.3+debian-13+
++
++2013-12-17  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-13
++
++2013-12-14  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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/w3m/w3m-closedir.patch
++	Bug-Novell: https://bugzilla.novell.com/show_bug.cgi?id=531675
++
++2013-12-07  AIDA Shinra  <[email protected]>
++
++	* main.c: Fix crash after SEARCH_NEXT.
++	Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-search-next.patch>,
++	[w3m-dev:04473] on 2013-12-07.
++
++2013-11-11  Paul Boekholt  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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=362249
++
++	* w3mimg/Makefile.in:
++	Avoid prerequisite $(IMGOBJS) to fix parallel make issue of w3mimg
++	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726188
++
++	* 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  <[email protected]>
++
++	* url.c: Define schemeNumToName() to fix scheme bug.
++	Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-schemebug.patch>,
++	[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 <http://www.j10n.org/files/w3m-cvs-1.1055-win64gc.patch>,
++	[w3m-dev:04469] on 2013-10-14.
++
++2013-10-14  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-12+
++
++2013-10-14  Jarek Czekalski  <[email protected]>
++
++	* terms.c: Fix paren in check_cygwin_console()
++	Bug: https://sourceforge.net/p/w3m/patches/66/
++
++2013-10-13  Tatsuya Kinoshita  <[email protected]>
++
++	* 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=75527
++
++	* 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  <[email protected]>
++
++	* table.h: Bump MAXCOL to 256
++	Bug: https://sourceforge.net/p/w3m/feature-requests/24/
++
++2013-10-12  Laurence Richert  <[email protected]>
++
++	* 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=724028
++
++2013-10-12  Tatsuya Kinoshita  <[email protected]>
++
++	* doc-jp/README, doc/README:
++	Mention project page rather than unavailable mailing lists
++
++2013-10-09  Rafael Laboissiere  <[email protected]>
++
++	* doc/README.img: Fix typo
++	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725892
++
++2013-08-12  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-11+
++
++	* ChangeLog: Update ChangeLog to use contributor's name
++
++2013-08-08  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-11
++
++2013-08-04  Tatsuya Kinoshita  <[email protected]>
++
++	* 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=718612
++
++2013-08-02  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-10
++
++2013-08-02  Piotr P. Karwasz <[email protected]>
++
++	* scripts/w3mman/w3mman2html.cgi.in:
++	Correct underline processing and more UTF-8 support for w3mman2html.cgi.
++	Patch from <https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/680202>
++	on 2010-11-23.
++
++2013-08-01  Hilko Bengen  <[email protected]>
++
++	* entity.c: Ignore SOFT HYPHEN to prevent drawing hyphens everywhere.
++	Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441934>
++	on 2011-03-01.
++
++2013-08-01  Tatsuya Kinoshita  <[email protected]>
++
++	* doc-jp/README, doc/README: Update contact list in README
++	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696209
++
++2013-07-30  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* main.c: Sort anchors by sequence number in -dump.
++	Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657666>
++	on 2012-01-27.
++
++2013-07-30  Tatsuya Kinoshita  <[email protected]>
++
++	* version.c.in: Update to 0.5.3+debian-9+
++
++2013-07-29  Tatsuya Kinoshita  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* file.c: Fix segfault of process_button()
++
++2013-04-08  AIDA Shinra  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* 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  <[email protected]>
++
++	* form.c: Assume "text" if an input type is unknown.
++	Patch from <http://bugs.debian.org/615843> on 2011-03-01.
++
++2012-05-19  Simon Ruderich  <[email protected]>
++
++	* Makefile.in: Use $(CPPFLAGS) with $(CPP).
++	Patch from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665491>
++	on 2012-03-24.
++
++2012-05-03  Miroslav ulc  <[email protected]>
++
++	* w3mimg/Makefile.in: Fix parallel make issue.
++	Patch from Gentoo
++	<http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.3-parallel-make.patch?revision=1.1&view=markup>
++	<https://bugs.gentoo.org/show_bug.cgi?id=353390> on 2011-02-01.
++
++2012-05-03  MATSUU Takuto  <[email protected]>
++
++	* main.c: Support Boehm GC 7.2.
++	Patch from Gentoo
++	<http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-client/w3m/files/w3m-0.5.2-gc72.patch?revision=1.1&view=markup>
++	on 2009-12-13.
++
++2012-05-02  Reinhard Tartler  <[email protected]>
++
++	* istream.c, istream.h:
++	Fix that struct file_handle conflicts with glibc 2.14.
++	Patch from <https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/935540>
++	on 2012-02-19.
++
++2011-10-30  Colin Watson  <[email protected]>
++
++	* acinclude.m4, configure, w3mbookmark.c:
++	Appease gcc -Werror=format-security.
++	Patch from 0.5.3-3ubuntu1 on 2011-10-23.
++	Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646321
++
++2011-06-19  Martin Pitt  <[email protected]>
++
++	* 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=605761
++
++2011-06-19  Fumitoshi UKAI  <[email protected]>
++
++	* 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=75527
++
++2011-06-19  Hiroyuki Ito  <[email protected]>
++
++	* 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=136810
++	Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/w3m/+bug/628755
++
+ 2012-05-22  Tatsuya Kinoshita <[email protected]>
+ 
+ 	* [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
[email protected]@ -111,6 +111,7 @@ IMGDISPLAY=w3mimgdisplay$(EXT)
+ MAN1_TARGET=$(PACKAGE).1
+ MAN1=$(top_srcdir)/doc/w3m.1
+ MAN1_JA=$(top_srcdir)/doc-jp/w3m.1
++MAN1_DE=$(top_srcdir)/doc-de/w3m.1
+ 
+ LIB_TARGETS=$(BOOKMARKER) $(HELPER)
+ [email protected][email protected]
[email protected]@ -150,7 +151,7 @@ parsetagx.o: html.c
+ 
+ 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=2;i<=NF;i++) { print $$i, $$1} \
+ 	 }' > [email protected]
[email protected]@ -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="$(AUXBIN_TARGETS)"; for file in $$targets; \
+ 	do \
+ 		case $$file in \
[email protected]@ -250,7 +253,7 @@ install-po:
+ 	 (cd $$subdir && $(MAKE) install); \
+ 	done
+ 
+-all-scripts:
++all-scripts: funcname.tab
+ 	for dir in $(SCRIPTSUBDIRS);	\
+ 	do	\
+ 		(cd $$dir && $(MAKE) $(MAKE_ARGS)); \
[email protected]@ -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..c55e929 100644
+--- a/NEWS
++++ b/NEWS
[email protected]@ -1,3 +1,39 @@
++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=format-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 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
+ 
+ * security fix
+diff --git a/README b/README
+index 8778d80..765c996 100644
+--- a/README
++++ b/README
[email protected]@ -1,3 +1,9 @@
++w3m: WWW wo Miru Tool
++=====================
++
++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
[email protected]@ -56,7 +56,7 @@ Strnew_size(int n)
+ }
+ 
+ Str
+-Strnew_charp(char *p)
++Strnew_charp(const char *p)
+ {
+     Str x;
+     int n;
[email protected]@ -73,7 +73,7 @@ Strnew_charp(char *p)
+ }
+ 
+ Str
+-Strnew_m_charp(char *p, ...)
++Strnew_m_charp(const char *p, ...)
+ {
+     va_list ap;
+     Str r = Strnew();
[email protected]@ -87,7 +87,7 @@ Strnew_m_charp(char *p, ...)
+ }
+ 
+ Str
+-Strnew_charp_n(char *p, int n)
++Strnew_charp_n(const char *p, int n)
+ {
+     Str x;
+ 
[email protected]@ -140,7 +140,7 @@ Strcopy(Str x, Str y)
+ }
+ 
+ void
+-Strcopy_charp(Str x, char *y)
++Strcopy_charp(Str x, const char *y)
+ {
+     int len;
+ 
[email protected]@ -160,7 +160,7 @@ Strcopy_charp(Str x, char *y)
+ }
+ 
+ void
+-Strcopy_charp_n(Str x, char *y, int n)
++Strcopy_charp_n(Str x, const char *y, int n)
+ {
+     int len = n;
+ 
[email protected]@ -180,7 +180,7 @@ Strcopy_charp_n(Str x, char *y, int n)
+ }
+ 
+ void
+-Strcat_charp_n(Str x, char *y, int n)
++Strcat_charp_n(Str x, const char *y, int n)
+ {
+     int newlen;
+ 
[email protected]@ -209,7 +209,7 @@ Strcat(Str x, Str y)
+ }
+ 
+ void
+-Strcat_charp(Str x, char *y)
++Strcat_charp(Str x, const char *y)
+ {
+     if (y == NULL)
+ 	return;
[email protected]@ -232,8 +232,8 @@ Strgrow(Str x)
+ {
+     char *old = x->ptr;
+     int newlen;
+-    newlen = x->length * 6 / 5;
+-    if (newlen == x->length)
++    newlen = x->area_size * 6 / 5;
++    if (newlen == x->area_size)
+ 	newlen += 2;
+     x->ptr = GC_MALLOC_ATOMIC(newlen);
+     x->area_size = newlen;
[email protected]@ -278,8 +278,8 @@ void
+ Strchop(Str s)
+ {
+     STR_LENGTH_CHECK(s);
+-    while ((s->ptr[s->length - 1] == '\n' || s->ptr[s->length - 1] == '\r') &&
+-	   s->length > 0) {
++    while (s->length > 0 &&
++	   (s->ptr[s->length - 1] == '\n' || s->ptr[s->length - 1] == '\r')) {
+ 	s->length--;
+     }
+     s->ptr[s->length] = '\0';
[email protected]@ -301,7 +301,7 @@ Strinsert_char(Str s, int pos, char c)
+ }
+ 
+ void
+-Strinsert_charp(Str s, int pos, char *p)
++Strinsert_charp(Str s, int pos, const char *p)
+ {
+     STR_LENGTH_CHECK(s);
+     while (*p)
[email protected]@ -530,11 +530,8 @@ Str
+ Strfgets(FILE * f)
+ {
+     Str s = Strnew();
+-    char c;
+-    while (1) {
+-	c = fgetc(f);
+-	if (feof(f) || ferror(f))
+-	    break;
++    int c;
++    while ((c = fgetc(f)) != EOF) {
+ 	Strcat_char(s, c);
+ 	if (c == '\n')
+ 	    break;
[email protected]@ -546,11 +543,8 @@ Str
+ Strfgetall(FILE * f)
+ {
+     Str s = Strnew();
+-    char c;
+-    while (1) {
+-	c = fgetc(f);
+-	if (feof(f) || ferror(f))
+-	    break;
++    int c;
++    while ((c = fgetc(f)) != 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
[email protected]@ -30,22 +30,22 @@ typedef struct _Str {
+ 
+ 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
[email protected]@ -6,7 +6,8 @@ dnl w3m autoconf macros
+ AC_DEFUN([AC_W3M_VERSION],
+ [AC_SUBST(CURRENT_VERSION)
+  cvsver=`$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=`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=`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/\1/p' version.c`])
+ #
+ # ----------------------------------------------------------------
[email protected]@ -330,10 +331,10 @@ AC_DEFINE_UNQUOTED(DEF_MAILER, "$w3m_mailer")])
+ # ----------------------------------------------------------------
+ AC_DEFUN([AC_W3M_EXT_BROWSER],
+ [AC_SUBST(DEF_EXT_BROWSER)
+-w3m_browser="/usr/bin/mozilla"
++w3m_browser="/usr/bin/firefox"
+ AC_MSG_CHECKING(which external browser is used by default)
+ AC_ARG_WITH(browser,
+- [  --with-browser=BROWSER	default browser (/usr/bin/mozilla)],
++ [  --with-browser=BROWSER	default browser (/usr/bin/firefox)],
+  [w3m_browser="$with_browser"])
+ AC_MSG_RESULT($w3m_browser)
+ AC_DEFINE_UNQUOTED(DEF_EXT_BROWSER, "$w3m_browser")])
[email protected]@ -400,10 +401,10 @@ AC_DEFUN([AC_W3M_TERMLIB],
+ AC_ARG_WITH(termlib,
+  [  --with-termlib[=LIBS]		terminal library
+ 				LIBS is space separated list of:
+-				  terminfo mytinfo termcap ncurses curses],,
++				  terminfo mytinfo termcap tinfo ncurses curses],,
+  [with_termlib="yes"])
+  AC_MSG_RESULT($with_termlib)
+- test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap ncurses curses"
++ test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap tinfo ncurses curses"
+  for lib in $with_termlib; do
+    AC_CHECK_LIB($lib, tgetent, [W3M_LIBS="$W3M_LIBS -l$lib"; break])
+  done
[email protected]@ -600,7 +601,7 @@ AC_DEFUN([AC_W3M_IMAGE],
+   if test x"$enable_image" = xyes; then
+     enable_image=x11
+     case "`uname -s`" in
+-    Linux|linux|LINUX) 
++    Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD) 
+ 	if test -c /dev/fb0; then
+ 	  enable_image=x11,fb
+         fi;;
[email protected]@ -649,6 +650,9 @@ AC_DEFUN([AC_W3M_IMAGE],
+      fi;;
+    imlib2)
+      with_imlib2="yes"
++     if test x"$PKG_CONFIG" = x; then
++       PKG_CONFIG=pkg-config
++     fi
+      if test x"$IMLIB2_CONFIG" = x; then
+        IMLIB2_CONFIG=imlib2-config
+      fi;;
[email protected]@ -661,8 +665,6 @@ AC_DEFUN([AC_W3M_IMAGE],
+      with_gtk2="yes"
+      if test x"$PKG_CONFIG" = x; then
+        PKG_CONFIG=pkg-config
+-     else
+-       PKG_CONFIG=:
+      fi;;
+    esac
+   done
[email protected]@ -705,8 +707,8 @@ AC_DEFUN([AC_W3M_IMAGE],
+      IMGTARGETS="x11"    
+      AC_DEFINE(USE_GDKPIXBUF)
+      AC_DEFINE(USE_GTK2)
+-     IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"
+-     IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"
++     IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`"
++     IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`"
+    elif test x"$have_gdkpixbuf" = xyes; then
+      AC_DEFINE(USE_W3MIMG_X11)
+      IMGOBJS="$IMGOBJS x11/x11_w3mimg.o"
[email protected]@ -728,7 +730,7 @@ AC_DEFUN([AC_W3M_IMAGE],
+      IMGTARGETS="x11"    
+      AC_DEFINE(USE_IMLIB2)
+      IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`"
+-     IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`"
++     IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs imlib2`"
+    else
+      AC_MSG_WARN([unable to build w3mimgdisplay with X11 support])
+    fi
[email protected]@ -740,8 +742,8 @@ AC_DEFUN([AC_W3M_IMAGE],
+      IMGTARGETS="${IMGTARGETS} fb"
+      AC_DEFINE(USE_GDKPIXBUF)
+      AC_DEFINE(USE_GTK2)
+-     IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`"
+-     IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`"
++     IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`"
++     IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0`"
+    elif test x"$have_gdkpixbuf" = xyes; then
+      AC_DEFINE(USE_W3MIMG_FB)
+      IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o"
[email protected]@ -756,7 +758,7 @@ AC_DEFUN([AC_W3M_IMAGE],
+      AC_DEFINE(USE_IMLIB2)
+      IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o"
+      IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`"
+-     IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`"
++     IMGFBLDFLAGS="`${PKG_CONFIG} --libs imlib2`"
+    else
+      AC_MSG_WARN([unable to build w3mimgdisplay with FB support])
+    fi
[email protected]@ -866,7 +868,7 @@ AC_MSG_CHECKING(for sys_errlist)
+ AC_TRY_COMPILE(
+ changequote(<<,>>)dnl
+ <<extern char *sys_errlist[];>>,
+-<<printf(sys_errlist[0]);>>,
++<<printf("%s", sys_errlist[0]);>>,
+ changequote([,])dnl
+ [have_sys_errlist="yes"; AC_DEFINE(HAVE_SYS_ERRLIST)],
+ [have_sys_errlist="no"])
+diff --git a/alloc.h b/alloc.h
+new file mode 100644
+index 0000000..fa0d391
+--- /dev/null
++++ b/alloc.h
[email protected]@ -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 <gc.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <limits.h>
++
++static inline size_t
++z_mult_no_oflow_(size_t n, size_t size)
++{
++	if (size != 0 && n > ULONG_MAX / size) {
++		fprintf(stderr,
++		    "w3m: overflow in malloc, %lu*%lu\n", (unsigned long)n, (unsigned long)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
[email protected]@ -11,7 +11,7 @@ putAnchor(AnchorList *al, char *url, char *target, Anchor **anchor_return,
+ {
+     int n, i, j;
+     Anchor *a;
+-    BufferPoint bp;
++    BufferPoint bp = { 0 };
+     if (al == NULL) {
+ 	al = New(AnchorList);
+ 	al->anchors = NULL;
[email protected]@ -200,10 +200,11 @@ _put_anchor_news(Buffer *buf, char *p1, char *p2, int line, int pos)
+ 	if (*(p2 - 1) == '>')
+ 	    p2--;
+     }
+-    tmp = wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset,
+-			     buf->document_charset);
+-    tmp = Sprintf("news:%s", file_quote(tmp->ptr));
+-    return registerHref(buf, tmp->ptr, NULL, NO_REFERER, NULL, '\0', line,
++    tmp = 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 */
[email protected]@ -213,9 +214,10 @@ _put_anchor_all(Buffer *buf, char *p1, char *p2, int line, int pos)
+ {
+     Str tmp;
+ 
+-    tmp = 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 = 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);
+ }
+ 
[email protected]@ -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;
+ 
+     if (al == NULL || al->nanchor == 0)
[email protected]@ -668,7 +669,6 @@ addMultirowsForm(Buffer *buf, AnchorList *al)
+ 	    if (!ls)
+ 		continue;
+ 	}
+-	fi = (FormItemList *)a_form.url;
+ 	col = COLPOS(ls, a_form.start.pos);
+ 	ecol = COLPOS(ls, a_form.end.pos);
+ 	for (j = 0; l && j < a_form.rows; l = l->next, j++) {
[email protected]@ -685,6 +685,8 @@ addMultirowsForm(Buffer *buf, AnchorList *al)
+ 	    a->hseq = a_form.hseq;
+ 	    a->y = a_form.y;
+ 	    a->end.pos = pos + ecol - col;
++	    if (pos < 1 || a->end.pos >= l->size)
++		continue;
+ 	    l->lineBuf[pos - 1] = '[';
+ 	    l->lineBuf[a->end.pos] = ']';
+ 	    for (k = pos; k < a->end.pos; k++)
[email protected]@ -756,7 +758,7 @@ link_list_panel(Buffer *buf)
+ 		p = parsedURL2Str(&pu)->ptr;
+ 		u = html_quote(p);
+ 		if (DecodeURL)
+-		    p = html_quote(url_unquote_conv(p, buf->document_charset));
++		    p = html_quote(url_decode2(p, buf));
+ 		else
+ 		    p = u;
+ 	    }
[email protected]@ -787,7 +789,7 @@ link_list_panel(Buffer *buf)
+ 	    p = parsedURL2Str(&pu)->ptr;
+ 	    u = html_quote(p);
+ 	    if (DecodeURL)
+-		p = html_quote(url_unquote_conv(p, buf->document_charset));
++		p = html_quote(url_decode2(p, buf));
+ 	    else
+ 		p = u;
+ 	    t = getAnchorText(buf, al, a);
[email protected]@ -809,16 +811,13 @@ link_list_panel(Buffer *buf)
+ 	    p = parsedURL2Str(&pu)->ptr;
+ 	    u = html_quote(p);
+ 	    if (DecodeURL)
+-		p = html_quote(url_unquote_conv(p, buf->document_charset));
++		p = html_quote(url_decode2(p, buf));
+ 	    else
+ 		p = u;
+ 	    if (a->title && *a->title)
+ 		t = html_quote(a->title);
+-	    else if (DecodeURL)
+-		t = html_quote(url_unquote_conv
+-			       (a->url, buf->document_charset));
+ 	    else
+-		t = html_quote(a->url);
++		t = html_quote(url_decode2(a->url, buf));
+ 	    Strcat_m_charp(tmp, "<li><a href=\"", u, "\">", t, "</a><br>", p,
+ 			   "\n", NULL);
+ 	    a = retrieveAnchor(buf->formitem, a->start.line, a->start.pos);
[email protected]@ -842,19 +841,13 @@ link_list_panel(Buffer *buf)
+ 		    p = parsedURL2Str(&pu)->ptr;
+ 		    u = html_quote(p);
+ 		    if (DecodeURL)
+-			p = html_quote(url_unquote_conv(p,
+-							buf->
+-							document_charset));
++			p = html_quote(url_decode2(p, buf));
+ 		    else
+ 			p = u;
+ 		    if (m->alt && *m->alt)
+ 			t = html_quote(m->alt);
+-		    else if (DecodeURL)
+-			t = html_quote(url_unquote_conv(m->url,
+-							buf->
+-							document_charset));
+ 		    else
+-			t = html_quote(m->url);
++			t = html_quote(url_decode2(m->url, buf));
+ 		    Strcat_m_charp(tmp, "<li><a href=\"", u, "\">", t,
+ 				   "</a><br>", p, "\n", NULL);
+ 		}
+diff --git a/buffer.c b/buffer.c
+index 5afc26a..3b2352a 100644
+--- a/buffer.c
++++ b/buffer.c
[email protected]@ -705,6 +705,7 @@ readBufferCache(Buffer *buf)
+ 
+     cache = fopen(buf->savecache, "r");
+     if (cache == NULL || fread1(clnum, cache) || fread1(tlnum, cache)) {
++	fclose(cache);
+ 	buf->savecache = NULL;
+ 	return -1;
+     }
[email protected]@ -760,8 +761,10 @@ readBufferCache(Buffer *buf)
+ 	}
+ #endif
+     }
+-    buf->lastLine = prevl;
+-    buf->lastLine->next = NULL;
++    if (prevl) {
++	    buf->lastLine = prevl;
++	    buf->lastLine->next = NULL;
++    }
+     fclose(cache);
+     unlink(buf->savecache);
+     buf->savecache = NULL;
+diff --git a/config.guess b/config.guess
+index 51fab47..0967f2a 100755
+--- a/config.guess
++++ b/config.guess
[email protected]@ -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.
+ 
+-timestamp='2004-03-12'
++timestamp='2016-04-02'
+ 
+ # 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
[email protected]@ -16,24 +15,22 @@ timestamp='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, USA.
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+ #
+ # 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 <[email protected]>.
+-# Please send patches to <[email protected]>.  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 Elliston.
+ #
+-# 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=config.git;a=blob_plain;f=config.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 <[email protected]>.
++
+ 
+ me=`echo "$0" | sed -e 's,.*/,,'`
+ 
[email protected]@ -53,8 +50,7 @@ version="\
+ GNU config.guess ($timestamp)
+ 
+ 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.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
[email protected]@ -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.
[email protected]@ -104,7 +100,7 @@ set_cc_for_build='
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+ : ${TMPDIR=/tmp} ;
+- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
[email protected]@ -123,7 +119,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
+ 	;;
+  ,,*)   CC_FOR_BUILD=$CC ;;
+  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+-esac ;'
++esac ; set_cc_for_build= ;'
+ 
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+ # ([email protected] 1994-08-24)
[email protected]@ -136,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+ 
++case "${UNAME_SYSTEM}" in
++Linux|GNU|GNU/*)
++	# If the system lacks a compiler, then just pick glibc.
++	# We could probably try harder.
++	LIBC=gnu
++
++	eval $set_cc_for_build
++	cat <<-EOF > $dummy.c
++	#include <features.h>
++	#if defined(__UCLIBC__)
++	LIBC=uclibc
++	#elif defined(__dietlibc__)
++	LIBC=dietlibc
++	#else
++	LIBC=gnu
++	#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.
+ 
+ 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
[email protected]@ -151,22 +168,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ 	# Note: NetBSD doesn't particularly care about the vendor
+ 	# portion of the name.  We always set it to "unknown".
+ 	sysctl="sysctl -n hw.machine_arch"
+-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
++	UNAME_MACHINE_ARCH=`(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=armeb-unknown ;;
+ 	    arm*) machine=arm-unknown ;;
+ 	    sh3el) machine=shl-unknown ;;
+ 	    sh3eb) machine=sh-unknown ;;
++	    sh5el) machine=sh5le-unknown ;;
++	    earmv*)
++		arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
++		endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
++		machine=${arch}${endian}-unknown
++		;;
+ 	    *) machine=${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 (netbsdaout).
+ 		    # Return netbsd for either.  FIX?
[email protected]@ -176,7 +201,14 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ 		fi
+ 		;;
+ 	    *)
+-	        os=netbsd
++		os=netbsd
++		;;
++	esac
++	# Determine ABI tags.
++	case "${UNAME_MACHINE_ARCH}" in
++	    earm*)
++		expr='s/^earmv[0-9]/-eabi/;s/eb$//'
++		abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ 		;;
+ 	esac
+ 	# The OS release
[email protected]@ -189,78 +221,48 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ 		release='-gnu'
+ 		;;
+ 	    *)
+-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++		release=`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=`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=`arch | sed 's/OpenBSD.//'`
++	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
++	exit ;;
++    *:LibertyBSD:*:*)
++	UNAME_MACHINE_ARCH=`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=`/usr/sbin/sizer -v | awk '{print $3}'`
+ 		;;
+ 	*5.*)
+-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ 		;;
+ 	esac
+ 	# According to Compaq, /usr/sbin/psrinfo has been available on
[email protected]@ -270,76 +272,82 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ 	ALPHA_CPU_TYPE=`/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="alpha" ;;
++		UNAME_MACHINE=alpha ;;
+ 	    "EV4.5 (21064)")
+-		UNAME_MACHINE="alpha" ;;
++		UNAME_MACHINE=alpha ;;
+ 	    "LCA4 (21066/21068)")
+-		UNAME_MACHINE="alpha" ;;
++		UNAME_MACHINE=alpha ;;
+ 	    "EV5 (21164)")
+-		UNAME_MACHINE="alphaev5" ;;
++		UNAME_MACHINE=alphaev5 ;;
+ 	    "EV5.6 (21164A)")
+-		UNAME_MACHINE="alphaev56" ;;
++		UNAME_MACHINE=alphaev56 ;;
+ 	    "EV5.6 (21164PC)")
+-		UNAME_MACHINE="alphapca56" ;;
++		UNAME_MACHINE=alphapca56 ;;
+ 	    "EV5.7 (21164PC)")
+-		UNAME_MACHINE="alphapca57" ;;
++		UNAME_MACHINE=alphapca57 ;;
+ 	    "EV6 (21264)")
+-		UNAME_MACHINE="alphaev6" ;;
++		UNAME_MACHINE=alphaev6 ;;
+ 	    "EV6.7 (21264A)")
+-		UNAME_MACHINE="alphaev67" ;;
++		UNAME_MACHINE=alphaev67 ;;
+ 	    "EV6.8CB (21264C)")
+-		UNAME_MACHINE="alphaev68" ;;
++		UNAME_MACHINE=alphaev68 ;;
+ 	    "EV6.8AL (21264B)")
+-		UNAME_MACHINE="alphaev68" ;;
++		UNAME_MACHINE=alphaev68 ;;
+ 	    "EV6.8CX (21264D)")
+-		UNAME_MACHINE="alphaev68" ;;
++		UNAME_MACHINE=alphaev68 ;;
+ 	    "EV6.9A (21264/EV69A)")
+-		UNAME_MACHINE="alphaev69" ;;
++		UNAME_MACHINE=alphaev69 ;;
+ 	    "EV7 (21364)")
+-		UNAME_MACHINE="alphaev7" ;;
++		UNAME_MACHINE=alphaev7 ;;
+ 	    "EV7.9 (21364A)")
+-		UNAME_MACHINE="alphaev79" ;;
++		UNAME_MACHINE=alphaev79 ;;
+ 	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=$?
++	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*:*:*)
+ 	# [email protected] (Earle F. Ake) contributed MIS and NILE.
+ 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
[email protected]@ -347,32 +355,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${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=i386
++	# 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" != no_compiler_found ]; then
++	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
++		grep IS_64BIT_ARCH >/dev/null
++	    then
++		SUN_ARCH=x86_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*)
[email protected]@ -381,13 +408,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${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=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
++	test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
+ 	case "`/bin/arch`" in
+ 	    sun3)
+ 		echo m68k-sun-sunos${UNAME_RELEASE}
[email protected]@ -396,10 +423,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${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
[email protected]@ -409,41 +436,41 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${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
[email protected]@ -467,35 +494,36 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${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=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
++	  SYSTEM_NAME=`$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=`/usr/bin/uname -p`
++	# DG/UX returns AViiON for all architectures
++	UNAME_PROCESSOR=`/usr/bin/uname -p`
+ 	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ 	then
+ 	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[email protected]@ -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=`/usr/bin/oslevel`
[email protected]@ -538,7 +566,7 @@ EOF
+ 		IBM_REV=${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
[email protected]@ -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=`$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=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ 		IBM_ARCH=rs6000
+ 	else
+ 		IBM_ARCH=powerpc
+ 	fi
+-	if [ -x /usr/bin/oslevel ] ; then
+-		IBM_REV=`/usr/bin/oslevel`
++	if [ -x /usr/bin/lslpp ] ; then
++		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
++			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ 	else
+ 		IBM_REV=${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=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ 	case "${UNAME_MACHINE}" in
[email protected]@ -604,74 +637,84 @@ EOF
+ 	    9000/[678][0-9][0-9])
+ 		if [ -x /usr/bin/getconf ]; then
+ 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+-                    case "${sc_cpu_version}" in
+-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+-                      532)                      # CPU_PA_RISC2_0
+-                        case "${sc_kernel_bits}" in
+-                          32) HP_ARCH="hppa2.0n" ;;
+-                          64) HP_ARCH="hppa2.0w" ;;
+-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+-                        esac ;;
+-                    esac
++		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++		    case "${sc_cpu_version}" in
++		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
++		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
++		      532)                      # CPU_PA_RISC2_0
++			case "${sc_kernel_bits}" in
++			  32) HP_ARCH=hppa2.0n ;;
++			  64) HP_ARCH=hppa2.0w ;;
++			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
++			esac ;;
++		    esac
+ 		fi
+ 		if [ "${HP_ARCH}" = "" ]; then
+ 		    eval $set_cc_for_build
+-		    sed 's/^              //' << EOF >$dummy.c
++		    sed 's/^		//' << EOF >$dummy.c
+ 
+-              #define _HPUX_SOURCE
+-              #include <stdlib.h>
+-              #include <unistd.h>
++		#define _HPUX_SOURCE
++		#include <stdlib.h>
++		#include <unistd.h>
+ 
+-              int main ()
+-              {
+-              #if defined(_SC_KERNEL_BITS)
+-                  long bits = sysconf(_SC_KERNEL_BITS);
+-              #endif
+-                  long cpu  = sysconf (_SC_CPU_VERSION);
++		int main ()
++		{
++		#if defined(_SC_KERNEL_BITS)
++		    long bits = sysconf(_SC_KERNEL_BITS);
++		#endif
++		    long cpu  = sysconf (_SC_CPU_VERSION);
+ 
+-                  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= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++		    (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ 		    test -z "$HP_ARCH" && HP_ARCH=hppa
+ 		fi ;;
+ 	esac
+-	if [ ${HP_ARCH} = "hppa2.0w" ]
++	if [ ${HP_ARCH} = 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= $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=cc ./config.guess
++	    # => hppa2.0w-hp-hpux11.23
++	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++	    # => hppa64-hp-hpux11.23
++
++	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
++		grep -q __LP64__
+ 	    then
+-		HP_ARCH="hppa2.0w"
++		HP_ARCH=hppa2.0w
+ 	    else
+-		HP_ARCH="hppa64"
++		HP_ARCH=hppa64
+ 	    fi
+ 	fi
+ 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+-	exit 0 ;;
++	exit ;;
+     ia64:HP-UX:*:*)
+ 	HPUX_REV=`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
[email protected]@ -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=`$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=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+-        exit 0 ;;
++	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
++	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
++	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
++	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++	exit ;;
+     5000:UNIX_System_V:4.*:*)
+-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+-	exit 0 ;;
++	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
++	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | 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 <features.h>
+-	#if __GLIBC__ >= 2
+-	LIBC=gnu
+-	#else
+-	LIBC=
+-	#endif
+-EOF
+-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+-	# 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='k' ;; esac
+-	echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+-	exit 0 ;;
++	UNAME_PROCESSOR=`/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 ${UNAME_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=aarch64_be
++	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++	exit ;;
++    alpha:Linux:*:*)
++	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++	  EV5)   UNAME_MACHINE=alphaev5 ;;
++	  EV56)  UNAME_MACHINE=alphaev56 ;;
++	  PCA56) UNAME_MACHINE=alphapca56 ;;
++	  PCA57) UNAME_MACHINE=alphapca56 ;;
++	  EV6)   UNAME_MACHINE=alphaev6 ;;
++	  EV67)  UNAME_MACHINE=alphaev67 ;;
++	  EV68*) UNAME_MACHINE=alphaev68 ;;
++	esac
++	objdump --private-headers /bin/sh | grep -q ld.so.1
++	if test "$?" = 0 ; then LIBC=gnulibc1 ; 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) || defined(MIPSEL)
+-	CPU=mipsel
++	CPU=${UNAME_MACHINE}el
+ 	#else
+ 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+-	CPU=mips
++	CPU=${UNAME_MACHINE}
+ 	#else
+ 	CPU=
+ 	#endif
+ 	#endif
+ EOF
+-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
++	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
++	test x"${CPU}" != 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) || defined(MIPSEL)
+-	CPU=mips64el
+-	#else
+-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+-	CPU=mips64
+-	#else
+-	CPU=
+-	#endif
+-	#endif
+-EOF
+-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+-	test x"${CPU}" != 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=alphaev5 ;;
+-	  EV56)  UNAME_MACHINE=alphaev56 ;;
+-	  PCA56) UNAME_MACHINE=alphapca56 ;;
+-	  PCA57) UNAME_MACHINE=alphapca56 ;;
+-	  EV6)   UNAME_MACHINE=alphaev6 ;;
+-	  EV67)  UNAME_MACHINE=alphaev67 ;;
+-	  EV68*) UNAME_MACHINE=alphaev68 ;;
+-        esac
+-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; 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=C to ensure ld outputs messages in English.
+-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+-			 | sed -ne '/supported targets:/!d
+-				    s/[ 	][ 	]*/ /g
+-				    s/.*supported targets: *//
+-				    s/ .*//
+-				    p'`
+-        case "$ld_supported_targets" in
+-	  elf32-i386)
+-		TENTATIVE="${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 <features.h>
+-	#ifdef __ELF__
+-	# ifdef __GLIBC__
+-	#  if __GLIBC__ >= 2
+-	LIBC=gnu
+-	#  else
+-	LIBC=gnulibc1
+-	#  endif
+-	# else
+-	LIBC=gnulibc1
+-	# endif
+-	#else
+-	#ifdef __INTEL_COMPILER
+-	LIBC=gnu
+-	#else
+-	LIBC=gnuaout
+-	#endif
+-	#endif
+-	#ifdef __dietlibc__
+-	LIBC=dietlibc
+-	#endif
+-EOF
+-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+-	test x"${TENTATIVE}" != 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=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
[email protected]@ -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=i486 ;;
+ 	    *Pentium)	     UNAME_MACHINE=i586 ;;
+ 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ 	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=`sed -n 's/.*Version //p' </usr/options/cb.name`
[email protected]@ -1066,73 +1121,86 @@ EOF
+ 	else
+ 		echo ${UNAME_MACHINE}-pc-sysv32
+ 	fi
+-	exit 0 ;;
++	exit ;;
+     pc:*:*:*)
+ 	# Left here for compatibility:
+-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+-        # the processor, so we play safe by assuming i386.
+-	echo i386-pc-msdosdjgpp
+-        exit 0 ;;
++	# uname -m prints for DJGPP always 'pc', but it prints nothing about
++	# the processor, so we play safe by assuming i586.
++	# Note: whatever this is, it MUST be the same as what config.sub
++	# prints for the "djgpp" host, or else GDB configure will decide that
++	# this is a cross-build.
++	echo i586-pc-msdosdjgpp
++	exit ;;
+     Intel:Mach:3*:*)
+ 	echo i386-pc-mach3
+-	exit 0 ;;
++	exit ;;
+     paragon:*:*:*)
+ 	echo i860-intel-osf1
+-	exit 0 ;;
++	exit ;;
+     i860:*:4.*:*) # i860-SVR4
+ 	if grep Stardent /usr/include/sys/uadmin.h >/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=''
+ 	test -r /etc/.relid \
+ 	&& OS_REL=.`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='.3'
++	test -r /etc/.relid \
++	    && OS_REL=.`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; }
++	/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.[02]*:*)
+ 	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=`(uname -p) 2>/dev/null`
[email protected]@ -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 <[email protected]>
+-        echo i586-unisys-sysv4
+-        exit 0 ;;
++	exit ;;
++    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++			# says <[email protected]>
++	echo i586-unisys-sysv4
++	exit ;;
+     *:UNIX_System_V:4*:FTX*)
+ 	# From Gerald Hewes <[email protected]>.
+ 	# How about differentiating between stratus architectures? -djm
+ 	echo hppa1.1-stratus-sysv4
+-	exit 0 ;;
++	exit ;;
+     *:*:*:FTX*)
+ 	# From [email protected]
+ 	echo i860-stratus-sysv4
+-	exit 0 ;;
++	exit ;;
++    i*86:VOS:*:*)
++	# From [email protected]
++	echo ${UNAME_MACHINE}-stratus-vos
++	exit ;;
+     *:VOS:*:*)
+ 	# From [email protected]
+ 	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=i686 ;;
+-	    powerpc) UNAME_PROCESSOR=powerpc ;;
+-	esac
++	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
++	eval $set_cc_for_build
++	if test "$UNAME_PROCESSOR" = unknown ; then
++	    UNAME_PROCESSOR=powerpc
++	fi
++	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
++	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
++		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++		    (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
++		    grep IS_64BIT_ARCH >/dev/null
++		then
++		    case $UNAME_PROCESSOR in
++			i386) UNAME_PROCESSOR=x86_64 ;;
++			powerpc) UNAME_PROCESSOR=powerpc64 ;;
++		    esac
++		fi
++	    fi
++	elif test "$UNAME_PROCESSOR" = 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=x86_64
++	fi
+ 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+-	exit 0 ;;
++	exit ;;
+     *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ 	UNAME_PROCESSOR=`uname -p`
+-	if test "$UNAME_PROCESSOR" = "x86"; then
++	if test "$UNAME_PROCESSOR" = x86; then
+ 		UNAME_PROCESSOR=i386
+ 		UNAME_MACHINE=pc
+ 	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" = "386"; then
++	if test "$cputype" = 386; then
+ 	    UNAME_MACHINE=i386
+ 	else
+ 	    UNAME_MACHINE="$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=`(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
+ 
+-#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 <<EOF
+-#ifdef _SEQUENT_
+-# include <sys/types.h>
+-# include <sys/utsname.h>
+-#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 <sys/param.h>
+-  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=`(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) == 0) {
+-	printf ("i386-sequent-ptx2\n"); exit (0);
+-    }
+-    if (strncmp(un.version, "V1", 2) == 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 <sys/param.h>
+-#  if defined (BSD)
+-#   if BSD == 43
+-      printf ("vax-dec-bsd4.3\n"); exit (0);
+-#   else
+-#    if BSD == 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 <<EOF
+ $0: unable to guess system type
+ 
[email protected]@ -1419,7 +1412,9 @@ This script, last modified $timestamp, has failed to recognize
+ the operating system you are using. It is advised that you
+ download the most up to date version of the config scripts from
+ 
+-    ftp://ftp.gnu.org/pub/gnu/config/
++  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
++and
++  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ 
+ If the version you run ($0) is already up to date, please
+ send the following data and any information you think might be
+diff --git a/config.h.in b/config.h.in
+index 2f41eed..3b575e4 100644
+--- a/config.h.in
++++ b/config.h.in
[email protected]@ -25,6 +25,7 @@
+ 
+ #define PASSWD_FILE	RC_DIR "/passwd"
+ #define PRE_FORM_FILE	RC_DIR "/pre_form"
++#define SITECONF_FILE	RC_DIR "/siteconf"
+ #define USER_MAILCAP	RC_DIR "/mailcap"
+ #define SYS_MAILCAP	CONF_DIR "/mailcap"
+ #define USER_MIMETYPES	"~/.mime.types"
[email protected]@ -84,7 +85,7 @@
+ #undef INET6
+ #undef HAVE_SOCKLEN_T
+ #undef HAVE_OLD_SS_FAMILY
+-#define USE_EGD
++#undef USE_EGD
+ #define ENABLE_REMOVE_TRAILINGSPACES
+ #undef MENU_THIN_FRAME
+ #undef USE_RAW_SCROLL
[email protected]@ -209,6 +210,10 @@ typedef RETSIGTYPE MySignalHandler;
+ #define SUPPORT_WIN9X_CONSOLE_MBCS 1
+ #endif
+ 
++#if defined(__CYGWIN__) && defined(__x86_64__)
++#define DONT_CALL_GC_AFTER_FORK
++#endif
++
+ #if defined(__DJGPP__)
+ #define DEFAULT_TERM	"dosansi"
+ #else
+diff --git a/config.sub b/config.sub
+index ba33103..8d39c4b 100755
+--- a/config.sub
++++ b/config.sub
[email protected]@ -1,42 +1,40 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-#   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.
+ 
+-timestamp='2004-03-12'
++timestamp='2016-03-30'
+ 
+-# This file is (in principle) common to ALL GNU software.
+-# The presence of a machine in this file suggests that SOME GNU software
+-# can handle that machine.  It does not imply ALL GNU software can.
+-#
+-# 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
++# 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 3 of the License, or
+ # (at your option) any later version.
+ #
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++# 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, USA.
+-
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
++#
+ # 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").
+ 
+-# Please send patches to <[email protected]>.  Submit a context
+-# diff and a properly formatted ChangeLog entry.
++
++# Please send patches to <[email protected]>.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+ # If it is invalid, we print an error message on stderr and exit with code 1.
+ # Otherwise, we print the canonical config type on stdout and succeed.
+ 
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.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.
[email protected]@ -55,8 +53,7 @@ timestamp='2004-03-12'
+ me=`echo "$0" | sed -e 's,.*/,,'`
+ 
+ usage="\
+-Usage: $0 [OPTION] CPU-MFR-OPSYS
+-       $0 [OPTION] ALIAS
++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+ 
+ Canonicalize a configuration name.
+ 
[email protected]@ -70,8 +67,7 @@ Report bugs and patches to <[email protected]>."
+ version="\
+ GNU config.sub ($timestamp)
+ 
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+-Free Software Foundation, Inc.
++Copyright 1992-2016 Free Software Foundation, Inc.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
[email protected]@ -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.
[email protected]@ -99,7 +95,7 @@ while test $# -gt 0 ; do
+     *local*)
+        # First pass through any local machine types.
+        echo $1
+-       exit 0;;
++       exit ;;
+ 
+     * )
+        break ;;
[email protected]@ -118,11 +114,18 @@ esac
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`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=-$maybe_os
+     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+     ;;
++  android-linux)
++    os=-linux-android
++    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
++    ;;
+   *)
+     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+     if [ $basic_machine != $1 ]
[email protected]@ -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=
+ 		basic_machine=$1
+ 		;;
++	-bluegene*)
++		os=-cnk
++		;;
+ 	-sim | -cisco | -oki | -wec | -winbond)
+ 		os=
+ 		basic_machine=$1
[email protected]@ -163,13 +169,17 @@ case $os in
+ 		os=-chorusos
+ 		basic_machine=$1
+ 		;;
+- 	-chorusrdb)
+- 		os=-chorusrdb
++	-chorusrdb)
++		os=-chorusrdb
+ 		basic_machine=$1
+- 		;;
++		;;
+ 	-hiux*)
+ 		os=-hiuxwe2
+ 		;;
++	-sco6)
++		os=-sco5v6
++		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++		;;
+ 	-sco5)
+ 		os=-sco3.2v5
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
[email protected]@ -186,6 +196,10 @@ case $os in
+ 		# Don't forget version if it is 3.2v4 or newer.
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
++	-sco5v6*)
++		# Don't forget version if it is 3.2v4 or newer.
++		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++		;;
+ 	-sco*)
+ 		os=-sco3.2v2
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
[email protected]@ -203,6 +217,12 @@ case $os in
+ 	-isc*)
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
++	-lynx*178)
++		os=-lynxos178
++		;;
++	-lynx*5)
++		os=-lynxos5
++		;;
+ 	-lynx*)
+ 		os=-lynxos
+ 		;;
[email protected]@ -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 | shbe | 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 | sparclite \
++	| 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=$basic_machine-unknown
+ 		;;
+-	m6811 | m68hc11 | m6812 | m68hc12)
+-		# Motorola 68HC11/12.
++	c54x)
++		basic_machine=tic54x-unknown
++		;;
++	c55x)
++		basic_machine=tic55x-unknown
++		;;
++	c6x)
++		basic_machine=tic6x-unknown
++		;;
++	leon|leon[3-9])
++		basic_machine=sparc-$basic_machine
++		;;
++	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+ 		basic_machine=$basic_machine-unknown
+ 		os=-none
+ 		;;
+ 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ 		;;
++	ms1)
++		basic_machine=mt-unknown
++		;;
++
++	strongarm | thumb | xscale)
++		basic_machine=arm-unknown
++		;;
++	xgate)
++		basic_machine=$basic_machine-unknown
++		os=-none
++		;;
++	xscaleeb)
++		basic_machine=armeb-unknown
++		;;
++
++	xscaleel)
++		basic_machine=armel-unknown
++		;;
+ 
+ 	# We use `pc' rather than `unknown'
+ 	# because (1) that's what they normally are, and
[email protected]@ -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=$basic_machine-unknown
+ 		;;
+ 	# Recognize the various machine names and aliases which stand
+ 	# for a CPU type and a company and sometimes even an OS.
[email protected]@ -363,7 +470,7 @@ case $basic_machine in
+ 		basic_machine=a29k-amd
+ 		os=-udi
+ 		;;
+-    	abacus)
++	abacus)
+ 		basic_machine=abacus-unknown
+ 		;;
+ 	adobe68k)
[email protected]@ -409,6 +516,13 @@ case $basic_machine in
+ 		basic_machine=m68k-apollo
+ 		os=-bsd
+ 		;;
++	aros)
++		basic_machine=i386-pc
++		os=-aros
++		;;
++	asmjs)
++		basic_machine=asmjs-unknown
++		;;
+ 	aux)
+ 		basic_machine=m68k-apple
+ 		os=-aux
[email protected]@ -417,10 +531,35 @@ case $basic_machine in
+ 		basic_machine=ns32k-sequent
+ 		os=-dynix
+ 		;;
++	blackfin)
++		basic_machine=bfin-unknown
++		os=-linux
++		;;
++	blackfin-*)
++		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
++		os=-linux
++		;;
++	bluegene*)
++		basic_machine=powerpc-ibm
++		os=-cnk
++		;;
++	c54x-*)
++		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
++		;;
++	c55x-*)
++		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
++		;;
++	c6x-*)
++		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
++		;;
+ 	c90)
+ 		basic_machine=c90-cray
+ 		os=-unicos
+ 		;;
++	cegcc)
++		basic_machine=arm-unknown
++		os=-cegcc
++		;;
+ 	convex-c1)
+ 		basic_machine=c1-convex
+ 		os=-bsd
[email protected]@ -445,13 +584,20 @@ case $basic_machine in
+ 		basic_machine=j90-cray
+ 		os=-unicos
+ 		;;
+-	cr16c)
+-		basic_machine=cr16c-unknown
++	craynv)
++		basic_machine=craynv-cray
++		os=-unicosmp
++		;;
++	cr16 | cr16-*)
++		basic_machine=cr16-unknown
+ 		os=-elf
+ 		;;
+ 	crds | unos)
+ 		basic_machine=m68k-crds
+ 		;;
++	crisv32 | crisv32-* | etraxfs*)
++		basic_machine=crisv32-axis
++		;;
+ 	cris | cris-* | etrax*)
+ 		basic_machine=cris-axis
+ 		;;
[email protected]@ -481,6 +627,14 @@ case $basic_machine in
+ 		basic_machine=m88k-motorola
+ 		os=-sysv3
+ 		;;
++	dicos)
++		basic_machine=i686-pc
++		os=-dicos
++		;;
++	djgpp)
++		basic_machine=i586-pc
++		os=-msdosdjgpp
++		;;
+ 	dpx20 | dpx20-*)
+ 		basic_machine=rs6000-bull
+ 		os=-bosx
[email protected]@ -592,7 +746,6 @@ case $basic_machine in
+ 	i370-ibm* | ibm*)
+ 		basic_machine=i370-ibm
+ 		;;
+-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+ 	i*86v32)
+ 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ 		os=-sysv32
[email protected]@ -631,6 +784,17 @@ case $basic_machine in
+ 		basic_machine=m68k-isi
+ 		os=-sysv
+ 		;;
++	leon-*|leon[3-9]-*)
++		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
++		;;
++	m68knommu)
++		basic_machine=m68k-unknown
++		os=-linux
++		;;
++	m68knommu-*)
++		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
++		os=-linux
++		;;
+ 	m88k-omron*)
+ 		basic_machine=m88k-omron
+ 		;;
[email protected]@ -642,10 +806,21 @@ case $basic_machine in
+ 		basic_machine=ns32k-utek
+ 		os=-sysv
+ 		;;
++	microblaze*)
++		basic_machine=microblaze-xilinx
++		;;
++	mingw64)
++		basic_machine=x86_64-pc
++		os=-mingw64
++		;;
+ 	mingw32)
+-		basic_machine=i386-pc
++		basic_machine=i686-pc
+ 		os=-mingw32
+ 		;;
++	mingw32ce)
++		basic_machine=arm-unknown
++		os=-mingw32ce
++		;;
+ 	miniframe)
+ 		basic_machine=m68000-convergent
+ 		;;
[email protected]@ -659,10 +834,6 @@ case $basic_machine in
+ 	mips3*)
+ 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ 		;;
+-	mmix*)
+-		basic_machine=mmix-knuth
+-		os=-mmixware
+-		;;
+ 	monitor)
+ 		basic_machine=m68k-rom68k
+ 		os=-coff
[email protected]@ -671,14 +842,29 @@ case $basic_machine in
+ 		basic_machine=powerpc-unknown
+ 		os=-morphos
+ 		;;
++	moxiebox)
++		basic_machine=moxie-unknown
++		os=-moxiebox
++		;;
+ 	msdos)
+ 		basic_machine=i386-pc
+ 		os=-msdos
+ 		;;
++	ms1-*)
++		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
++		;;
++	msys)
++		basic_machine=i686-pc
++		os=-msys
++		;;
+ 	mvs)
+ 		basic_machine=i370-ibm
+ 		os=-mvs
+ 		;;
++	nacl)
++		basic_machine=le32-unknown
++		os=-nacl
++		;;
+ 	ncr3000)
+ 		basic_machine=i486-ncr
+ 		os=-sysv4
[email protected]@ -743,9 +929,11 @@ case $basic_machine in
+ 	np1)
+ 		basic_machine=np1-gould
+ 		;;
+-	nv1)
+-		basic_machine=nv1-cray
+-		os=-unicosmp
++	neo-tandem)
++		basic_machine=neo-tandem
++		;;
++	nse-tandem)
++		basic_machine=nse-tandem
+ 		;;
+ 	nsr-tandem)
+ 		basic_machine=nsr-tandem
[email protected]@ -754,9 +942,8 @@ case $basic_machine in
+ 		basic_machine=hppa1.1-oki
+ 		os=-proelf
+ 		;;
+-	or32 | or32-*)
++	openrisc | openrisc-*)
+ 		basic_machine=or32-unknown
+-		os=-coff
+ 		;;
+ 	os400)
+ 		basic_machine=powerpc-ibm
[email protected]@ -778,6 +965,14 @@ case $basic_machine in
+ 		basic_machine=i860-intel
+ 		os=-osf
+ 		;;
++	parisc)
++		basic_machine=hppa-unknown
++		os=-linux
++		;;
++	parisc-*)
++		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
++		os=-linux
++		;;
+ 	pbd)
+ 		basic_machine=sparc-tti
+ 		;;
[email protected]@ -787,6 +982,12 @@ case $basic_machine in
+ 	pc532 | pc532-*)
+ 		basic_machine=ns32k-pc532
+ 		;;
++	pc98)
++		basic_machine=i386-pc
++		;;
++	pc98-*)
++		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
++		;;
+ 	pentium | p5 | k5 | k6 | nexgen | viac3)
+ 		basic_machine=i586-pc
+ 		;;
[email protected]@ -816,9 +1017,10 @@ case $basic_machine in
+ 		;;
+ 	power)	basic_machine=power-ibm
+ 		;;
+-	ppc)	basic_machine=powerpc-unknown
++	ppc | ppcbe)	basic_machine=powerpc-unknown
+ 		;;
+-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++	ppc-* | ppcbe-*)
++		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	ppcle | powerpclittle | ppc-le | powerpc-little)
+ 		basic_machine=powerpcle-unknown
[email protected]@ -843,6 +1045,14 @@ case $basic_machine in
+ 		basic_machine=i586-unknown
+ 		os=-pw32
+ 		;;
++	rdos | rdos64)
++		basic_machine=x86_64-pc
++		os=-rdos
++		;;
++	rdos32)
++		basic_machine=i386-pc
++		os=-rdos
++		;;
+ 	rom68k)
+ 		basic_machine=m68k-rom68k
+ 		os=-coff
[email protected]@ -869,6 +1079,10 @@ case $basic_machine in
+ 	sb1el)
+ 		basic_machine=mipsisa64sb1el-unknown
+ 		;;
++	sde)
++		basic_machine=mipsisa32-sde
++		os=-elf
++		;;
+ 	sei)
+ 		basic_machine=mips-sei
+ 		os=-seiux
[email protected]@ -880,6 +1094,9 @@ case $basic_machine in
+ 		basic_machine=sh-hitachi
+ 		os=-hms
+ 		;;
++	sh5el)
++		basic_machine=sh5le-unknown
++		;;
+ 	sh64)
+ 		basic_machine=sh64-unknown
+ 		;;
[email protected]@ -901,6 +1118,9 @@ case $basic_machine in
+ 		basic_machine=i860-stratus
+ 		os=-sysv4
+ 		;;
++	strongarm-* | thumb-*)
++		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++		;;
+ 	sun2)
+ 		basic_machine=m68000-sun
+ 		;;
[email protected]@ -957,17 +1177,9 @@ case $basic_machine in
+ 		basic_machine=t90-cray
+ 		os=-unicos
+ 		;;
+-	tic54x | c54x*)
+-		basic_machine=tic54x-unknown
+-		os=-coff
+-		;;
+-	tic55x | c55x*)
+-		basic_machine=tic55x-unknown
+-		os=-coff
+-		;;
+-	tic6x | c6x*)
+-		basic_machine=tic6x-unknown
+-		os=-coff
++	tile*)
++		basic_machine=$basic_machine-unknown
++		os=-linux-gnu
+ 		;;
+ 	tx39)
+ 		basic_machine=mipstx39-unknown
[email protected]@ -1029,9 +1241,16 @@ case $basic_machine in
+ 		basic_machine=hppa1.1-winbond
+ 		os=-proelf
+ 		;;
++	xbox)
++		basic_machine=i686-pc
++		os=-mingw32
++		;;
+ 	xps | xps100)
+ 		basic_machine=xps100-honeywell
+ 		;;
++	xscale-* | xscalee[bl]-*)
++		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++		;;
+ 	ymp)
+ 		basic_machine=ymp-cray
+ 		os=-unicos
[email protected]@ -1040,6 +1259,10 @@ case $basic_machine in
+ 		basic_machine=z8k-unknown
+ 		os=-sim
+ 		;;
++	z80-*-coff)
++		basic_machine=z80-unknown
++		os=-sim
++		;;
+ 	none)
+ 		basic_machine=none-none
+ 		os=-none
[email protected]@ -1059,6 +1282,9 @@ case $basic_machine in
+ 	romp)
+ 		basic_machine=romp-ibm
+ 		;;
++	mmix)
++		basic_machine=mmix-knuth
++		;;
+ 	rs6000)
+ 		basic_machine=rs6000-ibm
+ 		;;
[email protected]@ -1075,13 +1301,10 @@ case $basic_machine in
+ 	we32k)
+ 		basic_machine=we32k-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=sh-unknown
+ 		;;
+-	sh64)
+-		basic_machine=sh64-unknown
+-		;;
+-	sparc | sparcv8 | sparcv9 | sparcv9b)
++	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ 		basic_machine=sparc-sun
+ 		;;
+ 	cydra)
[email protected]@ -1125,9 +1348,12 @@ esac
+ if [ x"$os" != 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=-auroraux
++		;;
+ 	-solaris1 | -solaris1.*)
+ 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ 		;;
[email protected]@ -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 | -sunos[34]*\
++	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
++	      | -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* | -mpeix* | -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*)
[email protected]@ -1185,7 +1417,7 @@ case $os in
+ 		os=`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*)
[email protected]@ -1206,7 +1438,7 @@ case $os in
+ 	-opened*)
+ 		os=-openedition
+ 		;;
+-        -os400*)
++	-os400*)
+ 		os=-os400
+ 		;;
+ 	-wince*)
[email protected]@ -1255,7 +1487,7 @@ case $os in
+ 	-sinix*)
+ 		os=-sysv4
+ 		;;
+-        -tpf*)
++	-tpf*)
+ 		os=-tpf
+ 		;;
+ 	-triton*)
[email protected]@ -1291,8 +1523,15 @@ case $os in
+ 	-aros*)
+ 		os=-aros
+ 		;;
+-	-kaos*)
+-		os=-kaos
++	-zvmoe)
++		os=-zvmoe
++		;;
++	-dicos*)
++		os=-dicos
++		;;
++	-nacl*)
++		;;
++	-ios)
+ 		;;
+ 	-none)
+ 		;;
[email protected]@ -1316,6 +1555,12 @@ else
+ # system, and we'll never get to this point.
+ 
+ case $basic_machine in
++	score-*)
++		os=-elf
++		;;
++	spu-*)
++		os=-elf
++		;;
+ 	*-acorn)
+ 		os=-riscix1.2
+ 		;;
[email protected]@ -1325,9 +1570,24 @@ case $basic_machine in
+ 	arm*-semi)
+ 		os=-aout
+ 		;;
+-    c4x-* | tic4x-*)
+-        os=-coff
+-        ;;
++	c4x-* | tic4x-*)
++		os=-coff
++		;;
++	c8051-*)
++		os=-elf
++		;;
++	hexagon-*)
++		os=-elf
++		;;
++	tic54x-*)
++		os=-coff
++		;;
++	tic55x-*)
++		os=-coff
++		;;
++	tic6x-*)
++		os=-coff
++		;;
+ 	# This must come before the *-dec entry.
+ 	pdp10-*)
+ 		os=-tops20
[email protected]@ -1346,13 +1606,13 @@ case $basic_machine in
+ 		;;
+ 	m68000-sun)
+ 		os=-sunos3
+-		# This also exists in the configure program, but was not the
+-		# default.
+-		# os=-sunos4
+ 		;;
+ 	m68*-cisco)
+ 		os=-aout
+ 		;;
++	mep-*)
++		os=-elf
++		;;
+ 	mips*-cisco)
+ 		os=-elf
+ 		;;
[email protected]@ -1371,9 +1631,15 @@ case $basic_machine in
+ 	*-be)
+ 		os=-beos
+ 		;;
++	*-haiku)
++		os=-haiku
++		;;
+ 	*-ibm)
+ 		os=-aix
+ 		;;
++	*-knuth)
++		os=-mmixware
++		;;
+ 	*-wec)
+ 		os=-proelf
+ 		;;
[email protected]@ -1476,7 +1742,7 @@ case $basic_machine in
+ 			-sunos*)
+ 				vendor=sun
+ 				;;
+-			-aix*)
++			-cnk*|-aix*)
+ 				vendor=ibm
+ 				;;
+ 			-beos*)
[email protected]@ -1539,7 +1805,7 @@ case $basic_machine in
+ esac
+ 
+ echo $basic_machine$os
+-exit 0
++exit
+ 
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+diff --git a/configure b/configure
+index 4c1bc06..140f050 100755
+--- a/configure
++++ b/configure
[email protected]@ -1486,11 +1486,11 @@ Optional Packages:
+   --with-migemo=MIGEMO_COMMAND	migemo command
+   --with-editor=EDITOR		default editor (/usr/bin/vi)
+   --with-mailer=MAILER		default mailer (/usr/bin/mail)
+-  --with-browser=BROWSER	default browser (/usr/bin/mozilla)
++  --with-browser=BROWSER	default browser (/usr/bin/firefox)
+   --with-ssl=PREFIX		support https protocol
+   --with-termlib=LIBS		terminal library
+ 				LIBS is space separated list of:
+-				  terminfo mytinfo termcap ncurses curses
++				  terminfo mytinfo termcap tinfo ncurses curses
+   --with-gc=PREFIX	  	libgc PREFIX
+ 
+ Some influential environment variables:
[email protected]@ -6755,7 +6755,7 @@ $as_echo "$enable_image" >&6; }
+   if test x"$enable_image" = xyes; then
+     enable_image=x11
+     case "`uname -s`" in
+-    Linux|linux|LINUX)
++    Linux|linux|LINUX|FreeBSD|freebsd|FREEBSD)
+ 	if test -c /dev/fb0; then
+ 	  enable_image=x11,fb
+         fi;;
[email protected]@ -6811,6 +6811,9 @@ $as_echo "$with_imagelib" >&6; }
+      fi;;
+    imlib2)
+      with_imlib2="yes"
++     if test x"$PKG_CONFIG" = x; then
++       PKG_CONFIG=pkg-config
++     fi
+      if test x"$IMLIB2_CONFIG" = x; then
+        IMLIB2_CONFIG=imlib2-config
+      fi;;
[email protected]@ -6823,8 +6826,6 @@ $as_echo "$with_imagelib" >&6; }
+      with_gtk2="yes"
+      if test x"$PKG_CONFIG" = x; then
+        PKG_CONFIG=pkg-config
+-     else
+-       PKG_CONFIG=:
+      fi;;
+    esac
+   done
[email protected]@ -6926,8 +6927,8 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed.  Install Imlib2 (version >=
+ 
+      $as_echo "#define USE_GTK2 1" >>confdefs.h
+ 
+-     IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"
+-     IMGX11LDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0 gtk+-2.0`"
++     IMGX11CFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`"
++     IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0`"
+    elif test x"$have_gdkpixbuf" = xyes; then
+      $as_echo "#define USE_W3MIMG_X11 1" >>confdefs.h
+ 
[email protected]@ -6955,7 +6956,7 @@ $as_echo "$as_me: WARNING: Imlib2 is not installed.  Install Imlib2 (version >=
+      $as_echo "#define USE_IMLIB2 1" >>confdefs.h
+ 
+      IMGX11CFLAGS="`${IMLIB2_CONFIG} --cflags`"
+-     IMGX11LDFLAGS="`${IMLIB2_CONFIG} --libs`"
++     IMGX11LDFLAGS="-lX11 `${PKG_CONFIG} --libs imlib2`"
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3mimgdisplay with X11 support" >&5
+ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;}
[email protected]@ -6971,8 +6972,8 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;}
+ 
+      $as_echo "#define USE_GTK2 1" >>confdefs.h
+ 
+-     IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0 gtk+-2.0`"
+-     IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0 gtk+-2.0`"
++     IMGFBCFLAGS="`${PKG_CONFIG} --cflags gdk-pixbuf-2.0`"
++     IMGFBLDFLAGS="`${PKG_CONFIG} --libs gdk-pixbuf-2.0`"
+    elif test x"$have_gdkpixbuf" = xyes; then
+      $as_echo "#define USE_W3MIMG_FB 1" >>confdefs.h
+ 
[email protected]@ -6991,7 +6992,7 @@ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with X11 support" >&2;}
+ 
+      IMGOBJS="$IMGOBJS fb/fb_w3mimg.o fb/fb.o fb/fb_img.o"
+      IMGFBCFLAGS="`${IMLIB2_CONFIG} --cflags`"
+-     IMGFBLDFLAGS="`${IMLIB2_CONFIG} --libs`"
++     IMGFBLDFLAGS="`${PKG_CONFIG} --libs imlib2`"
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to build w3mimgdisplay with FB support" >&5
+ $as_echo "$as_me: WARNING: unable to build w3mimgdisplay with FB support" >&2;}
[email protected]@ -7344,7 +7345,7 @@ cat >>confdefs.h <<_ACEOF
+ _ACEOF
+ 
+ 
+-w3m_browser="/usr/bin/mozilla"
++w3m_browser="/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; }
+ 
[email protected]@ -7977,7 +7978,7 @@ fi
+ 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_termlib" >&5
+ $as_echo "$with_termlib" >&6; }
+- test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap ncurses curses"
++ test x"$with_termlib" = xyes && with_termlib="terminfo mytinfo termlib termcap tinfo ncurses curses"
+  for lib in $with_termlib; do
+    as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_tgetent" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -l$lib" >&5
[email protected]@ -8986,7 +8987,7 @@ extern char *sys_errlist[];
+ int
+ main ()
+ {
+-printf(sys_errlist[0]);
++printf("%s", sys_errlist[0]);
+   ;
+   return 0;
+ }
[email protected]@ -9076,7 +9077,7 @@ RC_DIR="~/.$PACKAGE"
+ $as_echo "#define RC_DIR \"\$RC_DIR\"" >>confdefs.h
+ 
+ 
+-DOCDIRS="doc:en_English doc-jp:ja_Japanese"
++DOCDIRS="doc:en_English doc-jp:ja_Japanese doc-de:de_German"
+ cat >>confdefs.h <<_ACEOF
+ #define DOCDIRS "$DOCDIRS"
+ _ACEOF
[email protected]@ -9084,9 +9085,10 @@ _ACEOF
+ 
+ 
+  cvsver=`$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=`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=`sed -n 's/.*define CURRENT_VERSION *"w3m\/\(.*\)".*$/\1/p' version.c`
+-ac_config_files="$ac_config_files Makefile posubst po/Makefile.in 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/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="$ac_config_files Makefile posubst po/Makefile.in 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/w3mman.de.1 scripts/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"
+ 
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
[email protected]@ -9810,6 +9812,7 @@ do
+     "scripts/w3mman/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/Makefile" ;;
+     "scripts/w3mman/w3mman") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman" ;;
+     "scripts/w3mman/w3mman.1") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman.1" ;;
++    "scripts/w3mman/w3mman.de.1") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman.de.1" ;;
+     "scripts/w3mman/w3mman2html.cgi") CONFIG_FILES="$CONFIG_FILES scripts/w3mman/w3mman2html.cgi" ;;
+     "libwc/Makefile") CONFIG_FILES="$CONFIG_FILES libwc/Makefile" ;;
+     "w3mimg/Makefile") CONFIG_FILES="$CONFIG_FILES w3mimg/Makefile" ;;
+diff --git a/configure.ac b/configure.ac
+index 7308fc6..320a6e2 100644
+--- a/configure.ac
++++ b/configure.ac
[email protected]@ -172,7 +172,7 @@ AC_SUBST(RC_DIR)
+ RC_DIR="~/.$PACKAGE"
+ AC_DEFINE(RC_DIR, "$RC_DIR")
+ AC_SUBST(DOCDIRS)
+-DOCDIRS="doc:en_English doc-jp:ja_Japanese"
++DOCDIRS="doc:en_English doc-jp:ja_Japanese doc-de:de_German"
+ AC_DEFINE_UNQUOTED(DOCDIRS, "$DOCDIRS")
+ 
+ AC_W3M_VERSION
[email protected]@ -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/Makefile \
+diff --git a/cookie.c b/cookie.c
+index 8020f6d..705e277 100644
+--- a/cookie.c
++++ b/cookie.c
[email protected]@ -22,10 +22,10 @@ static int is_saved = 1;
+ 
+ #define contain_no_dots(p, ep) (total_dot_number((p),(ep),1)==0)
+ 
+-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 = 0;
++    unsigned int count = 0;
+     if (!ep)
+ 	ep = p + strlen(p);
+ 
[email protected]@ -105,6 +105,7 @@ make_portlist(Str port)
+ 	pl->next = first;
+ 	first = pl;
+     }
++    Strfree(tmp);
+     return first;
+ }
+ 
[email protected]@ -247,16 +248,12 @@ find_cookie(ParsedURL *pu)
+ 		Strcat(tmp, Sprintf("; $Domain=\"%s\"", p1->domain->ptr));
+ 	    if (p1->portl)
+ 		Strcat(tmp,
+-		       Sprintf("; $Port=\"%s\"", portlist2str(p1->portl)));
++		       Sprintf("; $Port=\"%s\"", portlist2str(p1->portl)->ptr));
+ 	}
+     }
+     return tmp;
+ }
+ 
+-char *special_domain[] = {
+-    ".com", ".edu", ".gov", ".mil", ".net", ".org", ".int", NULL
+-};
+-
+ int
+ check_avoid_wrong_number_of_dots_domain( Str domain )
+ {
[email protected]@ -324,7 +321,7 @@ add_cookie(ParsedURL *pu, Str name, Str value,
+ 
+ 	if (version == 0) {
+ 	    /* [NETSCAPE] rule */
+-	    int n = total_dot_number(domain->ptr,
++	    unsigned int n = total_dot_number(domain->ptr,
+ 				     domain->ptr + domain->length,
+ 				     3);
+ 	    if (n < 2) {
[email protected]@ -332,19 +329,6 @@ add_cookie(ParsedURL *pu, Str name, Str value,
+ 		    COOKIE_ERROR(COO_ESPECIAL);
+ 		}
+ 	    }
+-	    else if (n == 2) {
+-		char **sdomain;
+-		int ok = 0;
+-		for (sdomain = special_domain; !ok && *sdomain; sdomain++) {
+-		    int offset = domain->length - strlen(*sdomain);
+-		    if (offset >= 0 &&
+-			strcasecmp(*sdomain, &domain->ptr[offset]) == 0)
+-			ok = 1;
+-		}
+-		if (!ok && ! check_avoid_wrong_number_of_dots_domain(domain)) {
+-		    COOKIE_ERROR(COO_ESPECIAL);
+-		}
+-	    }
+ 	}
+ 	else {
+ 	    /* [DRAFT 12] s. 4.3.2 case 2 */
[email protected]@ -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 : "",
[email protected]@ -517,36 +501,36 @@ load_cookies(void)
+ 	cookie->commentURL = NULL;
+ 	parseURL(readcol(&str)->ptr, &cookie->url, NULL);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->name = readcol(&str);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->value = readcol(&str);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->expires = (time_t) atol(readcol(&str)->ptr);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->domain = readcol(&str);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->path = readcol(&str);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->flag = atoi(readcol(&str)->ptr);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->version = atoi(readcol(&str)->ptr);
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->comment = readcol(&str);
+ 	if (cookie->comment->length == 0)
+ 	    cookie->comment = NULL;
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->portl = make_portlist(readcol(&str));
+ 	if (!*str)
+-	    return;
++	    break;
+ 	cookie->commentURL = readcol(&str);
+ 	if (cookie->commentURL->length == 0)
+ 	    cookie->commentURL = NULL;
+diff --git a/display.c b/display.c
+index e00eb0c..d4f336a 100644
+--- a/display.c
++++ b/display.c
[email protected]@ -257,7 +257,7 @@ make_lastline_link(Buffer *buf, char *title, char *url)
+     parseURL2(url, &pu, baseURL(buf));
+     u = parsedURL2Str(&pu);
+     if (DecodeURL)
+-	u = Strnew_charp(url_unquote_conv(u->ptr, buf->document_charset));
++	u = Strnew_charp(url_decode2(u->ptr, buf));
+ #ifdef USE_M17N
+     u = checkType(u, &pr, NULL);
+ #endif
[email protected]@ -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
[email protected]@ -521,7 +521,15 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hseq, int prevhseq,
+ 		break;
+ 	}
+ 	if (hseq >= 0 && an->hseq == hseq) {
++	    int start_pos = an->start.pos;
++	    int end_pos = an->end.pos;
+ 	    for (i = an->start.pos; i < an->end.pos; i++) {
++	        if (enable_inline_image && (l->propBuf[i] & PE_IMAGE)) {
++		    if (start_pos == i)
++			start_pos = i + 1;
++		    else if (end_pos == an->end.pos)
++		        end_pos = i - 1;
++		}
+ 		if (l->propBuf[i] & (PE_IMAGE | PE_ANCHOR | PE_FORM)) {
+ 		    if (active)
+ 			l->propBuf[i] |= PE_ACTIVE;
[email protected]@ -529,9 +537,9 @@ drawAnchorCursor0(Buffer *buf, AnchorList *al, int hseq, int prevhseq,
+ 			l->propBuf[i] &= ~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 >= 0 && an->hseq == prevhseq) {
+ 	    if (active)
[email protected]@ -855,14 +863,16 @@ redrawLineImage(Buffer *buf, Line *l, int i)
+ 		y = (int)(i * pixel_per_line);
+ 		sx = (int)((rcol - COLPOS(l, a->start.pos)) * pixel_per_char);
+ 		sy = (int)((l->linenumber - image->y) * pixel_per_line);
+-		if (sx == 0 && x + image->xoffset >= 0)
+-		    x += image->xoffset;
+-		else
+-		    sx -= image->xoffset;
+-		if (sy == 0 && y + image->yoffset >= 0)
+-		    y += image->yoffset;
+-		else
+-		    sy -= image->yoffset;
++		if (! enable_inline_image) {
++		    if (sx == 0 && x + image->xoffset >= 0)
++			x += image->xoffset;
++		    else
++			sx -= image->xoffset;
++		    if (sy == 0 && y + image->yoffset >= 0)
++			y += image->yoffset;
++		    else
++			sy -= image->yoffset;
++		}
+ 		if (image->width > 0)
+ 		    w = 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
[email protected]@ -0,0 +1,691 @@
++
++<html>
++ <head>
++   <style>
++      span.mono {
++        font-family:mono;
++      }
++    </style>
++   <meta http-equiv="content-type" content="text/html;charset=UTF-8">
++  <title>W3M FAQ</title>
++ </head>
++ <body>
++  <h1 align="center">
++   H辰ufig gestellte Fragen zu w3m
++  </h1>
++  <p align="right">
++   Akinori Ito &lt;[email protected]&gt; <br>korrigiert von Tom Berger &lt;[email protected]&gt;
++  </p>
++  <h2 id="index">
++   <u>
++    bersicht
++   </u>
++  </h2>
++  <ul>
++   <li>
++    <a href="#general">
++     <b>
++      Allgemeine Fragen; wie bekomme ich das Programm, welche Arbeitsumgebung wird ben旦tigt?
++     </b>
++    </a>
++   </li>
++    <ul>
++     <li>
++      <b>
++       Wie wird <q>w3m</q> ausgesprochen?
++      </b>
++     </li>
++     <li>
++      <b>
++       Warum hat man es <q>w3m</q> genannt?
++      </b>
++     </li>
++     <li>
++      <b>
++       Auf welchen Plattformen l辰uft es?
++      </b>
++     </li>
++     <li>
++      <b>
++       Wo bekomme ich mehr Informationen 端ber w3m?
++      </b>
++     </li>
++     <li>
++      <b>
++       Gibt es eine Mailingliste f端r w3m?
++      </b>
++     </li>
++     <li>
++      <b>
++       Gibt es das Programm fertig kompiliert?
++      </b>
++     </li>
++    </ul>
++   <li>
++    <a href="#install">
++     <b>
++      Kompilierung und Installation
++     </b>
++    </a>
++   </li>
++   <li>
++    <a href="#command">
++     <b>
++      Optionen, Befehle und Verwendung
++     </b>
++    </a>
++   </li>
++    <ul>
++     <li>
++      <b>
++       w3m beendet sich von selbst, wenn es ohne Argumente aufgerufen wurde. Was l辰uft hier falsch?
++      </b>
++     </li>
++     <li>
++      <b>
++       w3m startet mit schwarzen Zeichen vor schwarzem Hintergrund. Wie kann ich das 辰ndern?
++      </b>
++     </li>
++     <li>
++      <b>
++       Kann w3m Dinge in Farbe darstellen? 
++      </b>
++     </li>
++     <li>
++      <b>
++       Kann w3m mit monochromen Bildschirmen benutzt werden? 
++      </b>
++     </li>
++     <li>
++      <b>
++       Wie kann ich den angezeigten Bereich verschieben?
++      </b>
++     </li>
++     <li>
++      <b>
++       Wie komme ich von einem zum anderen Hyperlink?
++      </b>
++     </li>
++     <li>
++      <b>
++       Grafische Browser stellen ein Wort rot dar, w3m hingegen nicht. Warum?
++      </b>
++     </li>
++     <li>
++      <b>
++        Wie 辰ndere ich die f端r Hyperlinks, Bilder und Formularfelder benutzten Farben?
++      </b>
++     </li>
++     <li>
++      <b>
++       w3m scheint die Umgebungsvariable EDITOR zu ignorieren. Weshalb?
++      </b>
++     </li>
++     <li>
++      <b>
++       Wie breche ich eine Suche oder die Eingabe einer URL ab?
++      </b>
++     </li>
++    </ul>
++   <li>
++    <a href="#www">
++     <b>
++      Fragen zur Benutzung als Internetbrowser
++     </b>
++    </a>
++   </li>
++    <ul>
++     <li>
++      <b>
++       Wie f端lle ich mit w3m Formulare aus?
++      </b>
++     </li>
++     <li>
++      <b>
++       w3m scheint langsamer als einige andere Browser zu sein. Warum?
++      </b>
++     </li>
++     <li>
++      <b>
++       Die Zeit zum Laden einer Seite wird nicht geringer, wenn diese Seite schon einmal angezeigt wurde.
++      </b>
++     </li>
++     <li>
++      <b>
++       Wie lade ich eine Datei herunter, auf die verlinkt wird?
++      </b>
++     </li>
++     <li>
++      <b>
++       Wie gebe ich einen Proxy-Server vor?
++      </b>
++     </li>
++<!-- deleted, see mail dated Mon, 04 Apr 2016 20:50:27 +0900 (JST)
++from Tatsuya Kinoshita <[email protected]>
++     <li>
++      <b>
++       w3m freezes when I invoke an external browser.
++      </b>
++     </li>
++-->
++     <li>
++      <b>
++       Wie w辰hle ich den standardm辰ig verwendeten Bildbetrachter aus?
++      </b>
++     </li>
++     <li>
++      <b>
++       Wie wird eine URL eingegeben? 
++      </b>
++     </li>
++     <li>
++       <b>
++	 w3m h辰ngt eine URL an die vorherige an, obwohl die Zeile mit <span class="mono">STRG-u</span> gel旦scht worden war. Was ist zu tun?
++      </b>
++     </li>
++    </ul>
++   <li>
++    <a href="#other">
++     <b>
++      Verschiedenes
++     </b>
++    </a>
++   </li>
++    <ul>
++     <li>
++      <b>
++       Ich suche die Konfigurationsdatei von w3m.
++      </b>
++     </li>
++     <li>
++      <b>
++       Wof端r sind die w3mxxxx Dateien in meinem ~/.w3m Verzeichnis gut?
++      </b>
++     </li>
++    </ul>
++  </ul>
++  <h2 id="general">
++   <u>
++    Allgemeine Fragen; wie bekomme ich das Programm, welche Arbeitsumgebung wird ben旦tigt?
++   </u>
++  </h2>
++  <dl>
++   <dt>
++    <b>
++     Wie wird <q>w3m</q> ausgesprochen?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Der Name wird englisch ausgesprochen <q>W-three-M</q> und reimt sich nicht auf <q>pteranodon</q>.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Warum hat man es <q>w3m</q> genannt?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Darin steckt der japanische Satz <q>WWW-wo-Miru</q>, was <q>Sichte das weltweite Netz</q> bedeutet. Dieser Browser k旦nnte also auf deutsch <q>Sdw2N</q> heien. 
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Auf welchen Plattformen l辰uft es?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Das Programm l辰uft auf verschiedenen Unices, seit der Version 990226 auf OS/2 und seit Version 990303 auch auf Microsoft-Windows mit Cygwin32.
++    </p>
++    <p>
++     Es wurde best辰tigt, dass neuere Versionen laufen auf: 
++    </p>
++    <ul>
++     <li>
++      SunOS 4.1.x
++     </li>
++     <li>
++      HP-UX 9.x, 10.x
++     </li>
++     <li>
++      Solaris 2.5.x, 2.6, 8
++     </li>
++     <li>
++      Linux 2.0.1 bis 3.17
++     </li>
++     <li>
++      FreeBSD 2.2.8, 3.1, 3.2, 4.6
++     </li>
++     <li>
++      NetBSD/macppc, m68k
++     </li>
++     <li>
++      EWS4800 Rel.12.2 Rev.A
++     </li>
++     <li>
++      Digital UNIX: v3.2D, v4.0D
++     </li>
++     <li>
++      IRIX 5.3, IRIX 6.5
++     </li>
++     <li>
++      OS/2 mit emx
++      </li>
++     <li>
++      Windows 9x/NT mit Cygwin32 b20.1
++     </li>
++     <li>
++      MS-DOS mit DJGPP und WATT32 Pakettreiber
++     </li>
++     <li>
++      MacOS X Server
++     </li>
++     <li>
++      MacOS X 10.1, 10.2
++     </li>
++    </ul>
++   </dd>
++   <dt>
++    <b>
++     Wo bekomme ich mehr Informationen 端ber w3m?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Auf der englischen <a href="http://w3m.sourceforge.net/index.en.html">Homepage</a> des w3m-Projekts.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Gibt es eine Mailingliste f端r w3m?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Es gibt eine Mailingliste f端r Entwickler (w3m-dev-en). Einzelheiten dazu finden Sie auf der <a href="http://w3m.sourceforge.net/index.en.html">Homepage</a> des w3m-Projekts. Sie k旦nnen Ihre Anmerkungen auch dem <a href="mailto:[email protected]">Autor</a> schicken.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Gibt es das Programm fertig kompiliert?
++    </b>
++   </dt>
++   <dd>
++    <!--
++     You can get them from
++     <a href="http://prdownloads.sourceforge.net/w3m/">here</a>.
++!--><p>
++     Bis jetzt wurde das Programm nur f端r Windows /Cygnus32 kompiliert. Sollten Sie dies f端r andere Plattformen durchgef端hrt haben und m旦chten Ihre Bin辰rversion der Allgemeinheit zur Verf端gung stellen, kontaktieren Sie den <a href="mailto:[email protected]">Autor</a>.
++    </p>
++   </dd>
++  </dl>
++  <p align="right">
++   <i>
++    Zur端ck zur <a href="#index">bersicht</a>
++   </i>
++  </p>
++  <h2 id="install">
++   <u>
++    Kompilierung und Installation
++   </u>
++  </h2>
++  <p>
++   Kein Problem :-)
++  </p>
++  <h2 id="command">
++   <u>
++    Optionen, Befehle und Verwendung
++   </u>
++  </h2>
++  <dl>
++   <dt>
++    <b>
++     w3m beendet sich von selbst, wenn es ohne Argumente aufgerufen wurde. Was l辰uft hier falsch?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     w3m ist ein <b>Textbetrachter</b>. Deshalb schliet sich das Programm von selbst, wenn es ohne ein Argument aufgerufen wird. Es l辰uft weiter 
++    </p>
++    <ul>
++     <li>
++      mit einem Dateinamen oder einer Adresse als Argument
++     </li>
++     <li>
++      mit aus der Standardeingabe eingehenden Daten
++     </li>
++     <li>
++      nach Aufruf mit der Option -B, woraufhin die Lesezeichendatei gezeigt wird
++     </li>
++     <li>
++      nach Aufruf mit der Option -v, woraufhin eine Begr端ungsseite angezeigt wird
++     </li>
++     <li>
++      wenn die Variablen HTTP_HOME oder WWW_HOME spezifiziert wurden
++     </li>
++    </ul>
++   </dd>
++   <dt>
++    <b>
++     w3m startet mit schwarzen Zeichen vor schwarzem Hintergrund. Wie kann ich das 辰ndern?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Wenn w3m f端r den Farbmodus kompiliert wurde, geht das Programm von weiem Hintergrund aus und zeigt die Buchstaben in schwarz.
++    </p>
++    <p>
++     Sie k旦nnen entweder die Hintergrundfarbe Ihres Terminals 辰ndern (bei xterm z.B. mit der Option -bg) oder so vorgehen
++    </p>
++    <ol>
++     <li>
++      Mit <span class="mono">w3m -M</span> den Monochrom-Modus von w3m starten
++     </li>
++     <li>
++      <q>o</q> eintippen, was Sie in den Einstellungs-Dialog bringt
++     </li>
++     <li>
++      <q>YES</q> neben <q>in Farbe anzeigen</q> markieren und irgendeine Farbe ausw辰hlen.
++     </li>
++     <li>
++      auf [OK] klicken
++     </li>
++    </ol>
++   </dd>
++   <dt>
++    <b>
++     Kann w3m Dinge in Farbe darstellen? 
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Ja. Wenn Sie <q>./configure</q> durchf端hren, werden Ihnen folgende M旦glichkeiten angeboten:
++    </p>
++<pre>
++  Let's do some configurations. Choose config option among the list. <br>  1 - Baby model (no color, no menu, no mouse, no cookie, no SSL) <br>  2 - Little model (color, menu, no mouse, no cookie, no SSL) <br>  3 - Mouse model (color, menu, mouse, no cookie, no SSL) <br>  4 - Cookie model (color, menu, mouse, cookie, no SSL)<br>  5 - Monster model (with everything; you need openSSL library) <br>  6 - Customize Which?
++</pre>
++    <p>
++     Sie entscheiden sich f端r 2, 3, 4, oder 5.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Kann w3m mit monochromen Bildschirmen benutzt werden? 
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Ja, Sie k旦nnen entweder
++    </p>
++    <ul>
++     <li>
++      obige Frage bei <q>./configure</q> mit 1 beantworten, oder
++     </li>
++     <li>
++      w3m mit der Option -M starten, oder
++     </li>
++     <li>
++      innerhalb von w3m die Taste <q>o</q> bet辰tigen, was den Einstellungs-Dialog 旦ffnet, in dem Sie <q>in Farbe anzeigen</q> abschalten k旦nnen.
++     </li>
++    </ul>
++   </dd>
++   <dt>
++    <b>
++     Wie kann ich den angezeigten Bereich verschieben?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Indem Sie den Cursor an den Rand des Bildschirmes bewegen. Auerdem k旦nnen Sie die folgenden Kommmandos nutzen
++    </p>
++     <ul>
++       <li>SHIFT_LEFT und SHIFT_RIGHT, denen die Tasten <span class="mono">&gt;</span> und <span class="mono">&lt;</span> zugeordnet sind</li>
++       <li>SHIFT_LEFT1 und SHIFT_RIGHT1, denen die Tasten <span class="mono">.</span> und <span class="mono">,</span> zugeordnet sind</li>
++     </ul>
++    <p>
++     Ein weiterer Weg w辰re, mit der Option -geometry des Terminalprogramms den zur Anzeige verf端gbaren Platz anzupassen, beispielsweise mit einer Eingabe der Art
++    </p>
++     <pre>  xterm -geometry 110x45 -bg white -name w3m -e w3m -B</pre>
++   </dd>
++   <dt>
++    <b>
++     Wie komme ich von einem zum anderen Hyperlink?
++    </b>
++   </dt>
++   <dd>
++    <p>
++
++      Sie erreichen den n辰chsten Hyperlink mit der TAB-Taste. Zum vorhergehenden springt der Cursor, wenn die ESC-Taste vor der TAB-Taste gedr端ckt wurde. (Mehr zu <a href="MANUAL.html#Functions" target="_blank"> Funktionen und Tastaturbelegung</a> im Handbuch von w3m)
++
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Grafische Browser stellen ein Wort rot dar, w3m hingegen nicht. Warum?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     w3m ignoriert das Attribut COLOR="..." in HTML. Dessen Ber端cksichtigung zu implementieren, w辰re m旦glich, aber ich denke, die Dokumente w辰ren am Ende schwerer lesbar.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Wie 辰ndere ich die f端r Hyperlinks, Bilder und Formularfelder benutzten Farben?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Tippen Sie in w3m <q>o</q> ein und gelangen damit in den Einstellungs-Dialog. Dort k旦nnen Sie die Farben 辰ndern.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     w3m scheint die Umgebungsvariable EDITOR zu ignorieren. Weshalb?
++    </b>
++   </dt>
++    <dd>
++     <p>
++     Tippen Sie in w3m <q>o</q> ein und gelangen damit in den Einstellungs-Dialog. Jeglicher Eintrag im Feld <q>Editor</q> hat Vorrang gegen端ber der Umgebungsvariablen.
++    </p>
++    <p>
++     Wenn Sie also das durch EDITOR angegebene Textbearbeitungsprogramm verwenden m旦chten, l旦schen Sie den Eintrag und dr端cken [OK].
++     </p>
++   </dd>
++   <dt>
++    <b>
++     Wie breche ich eine Suche oder die Eingabe einer URL ab?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     L旦schen Sie den eingegebenen Text mit <span class="mono">STRG-u</span> und dr端cken Sie die Eingabetaste.
++    </p>
++   </dd>
++  </dl>
++  <p align="right">
++   <i>
++    Zur端ck zur <a href="#index">bersicht</a>
++   </i>
++  </p>
++  <h2 id="www">
++   <u>
++    Fragen zur Benutzung als Internetbrowser
++   </u>
++  </h2>
++  <dl>
++   <dt>
++    <b>
++     Wie f端lle ich mit w3m Formulare aus?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Formular-Eingabefelder werden in rot (oder invertiert) angezeigt. Bewegen Sie den Cursor dorthin. Wenn es
++    </p>
++    <ul>
++     <li>
++       ein Texteingabefeld ist, dr端cken Sie die Eingabetaste, schreiben den Text unten in die Eingabezeile und dr端cken die Eingabetaste nochmals,
++     </li>
++     <li>
++       sich um einen Radiobutton oder eine Checkbox handelt, wird bei Dr端cken der Eingabetaste die Auswahl ver辰ndert oder neu getroffen 
++     </li>
++     <li>
++       sich um einen Texteingabebereich handelt, wird durch Dr端cken der Eingabetaste ein Editor gestartet 
++     </li>
++     <li>
++       sich um eine Schaltfl辰chen f端r <q>bermitteln</q> oder <q>Zur端cksetzen</q> handelt, wird die entsprechende Aktion ausgef端hrt.
++     </li>
++    </ul>
++   </dd>
++   <dt>
++    <b>
++     w3m scheint langsamer als einige andere Browser zu sein. Warum?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     HTML-Dokumente werden in zwei Schritten verarbeitet. Erst nachdem ein Dokument vollst辰ndig vorliegt, baut w3m die Anzeige auf. 
++    </p>
++    <p>
++     Da die meisten anderen Browser die Seite aufbauen, ehe sie komplett ist, scheinen sie schneller.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Die Zeit zum Laden einer Seite wird nicht geringer, wenn diese Seite schon einmal angezeigt wurde.
++    </b>
++   </dt>
++   <dd>
++    <p>
++     w3m nutzt keinen eigenen Zwischenspeicher. Es liest daher Dokumente jedesmal neu vom Server ein. Wenn m旦glich, verwenden Sie einen Server f端r die Zwischenspeicherung.
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Wie lade ich eine Datei herunter, auf die verlinkt wird?
++    </b>
++   </dt>
++   <dd>
++    <p>
++      Verwenden Sie <q>a</q> (oder <q>d</q> bei lynx-artiger Tastaturbelegung) oder <span class="mono">ESC RET</span>. Wenn Sie ein eingebundenes Bild herunterladen m旦chten, dr端cken Sie <span class="mono">ESC I</span>. (Mehr zu <a href="MANUAL.html#Functions" target="_blank"> Funktionen und Tastaturbelegung</a> im Handbuch von w3m)
++    </p>
++   </dd>
++   <dt>
++    <b>
++     Wie gebe ich einen Proxy-Server vor?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Setzen Sie die Umgebungsvariablen HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY und FTP_PROXY oder 旦ffnen mit <q>o</q> den Einstellungs-Dialog. Um beispielsweise den Port 8000 von proxy.example.org zu benutzen, geben Sie ein
++    </p>
++    <pre>  http://proxy.example.org:8000/</pre>
++   </dd>
++<!-- deleted, see mail dated Mon, 04 Apr 2016 20:50:27 +0900 (JST)
++from Tatsuya Kinoshita <[email protected]>
++   <dt>
++    <b>
++     w3m freezes when I invoke an external browser.
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Enter w3m's option screen using the <q>o</q> key and specify
++    </p>
++    <pre>  firefox %s &</pre>
++    <p>
++     (if you are using Firefox). Note that %s is replaced with the URL
++     when invoking.
++    </p>
++   </dd>
++   -->
++   <dt>
++    <b>
++     Wie w辰hle ich den standardm辰ig verwendeten Bildbetrachter aus?
++    </b>
++    </dt>
++    <dd>
++     <p>
++      Standardm辰ig benutzt w3m den Bildbetrachter xv. Wenn Sie beispielsweise <q>display</q> vorziehen, erg辰nzen Sie ~/.w3m/mailcap oder /etc/mailcap um die Zeile:
++     </p>
++<pre>
++  image/*; display %s
++</pre>
++     <p>
++      Ebenso k旦nnen Sie f端r andere Dateitypen externe Anzeigeprogramme festlegen:
++     </p>
++<pre>
++  image/*; display %s <br>application/postscript; ghostview %s <br>application/x-dvi; xdvi %s
++</pre>
++    </dd>
++    <dt>
++     <b>
++      Wie wird eine URL eingegeben? 
++     </b>
++   </dt>
++   <dd>
++    <p>
++     Dr端cken Sie <span class="mono">U</span>
++    </p>
++   </dd>
++   <dt>
++    <b>
++     w3m h辰ngt eine URL an die vorherige an, obwohl die Zeile mit <span class="mono">STRG-u</span> gel旦scht worden war. Was ist zu tun?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Geben Sie die <i>komplette</i> Adresse ein, z.B. http://www.slashdot.org.
++    </p>
++   </dd>
++  </dl>
++  <p align="right">
++   <i>
++    Zur端ck zur <a href="#index">bersicht</a>
++   </i>
++  </p>
++  <h2 id="other">
++   <u>
++    Verschiedenes
++   </u>
++  </h2>
++  <dl>
++   <dt>
++    <b>
++     Ich suche die Konfigurationsdatei von w3m.
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Es ist ~/.w3m/config.
++    </p>
++
++    <p>
++     In dieser Datei kann jeder Benutzer das Verhalten von w3m anpassen. Sie finden dort zeilenweise die Variablen zu den im Einstellungs-Dialog beschriebenen Optionen. Den Namen und die Belegung einer Variable trennt ein Leerzeichen.
++    </p>
++    
++    <p>Ohne eine benutzerspezifische Konfigurationsdatei richtet sich w3m nach der systemweiten Konfigurationsdatei /etc/w3m/config.
++    </p>
++    
++   </dd>
++   <dt>
++    <b>
++     Wof端r sind die w3mxxxx Dateien in meinem ~/.w3m Verzeichnis gut?
++    </b>
++   </dt>
++   <dd>
++    <p>
++     Es handelt sich um tempor辰re Dateien, die w3m beim Lesen anlegt. Sie dienen nicht zur Zwischenspeicherung und werden beim Verlassen des Programms normalerweise gel旦scht. Wenn welche zur端ckbleiben, l旦schen Sie sie einfach selbst.
++    </p>
++   </dd>
++  </dl>
++  <p align="right">
++   <i>
++    Zur端ck zur <a href="#index">bersicht</a>
++   </i>
++  </p>
++ </body>
++</html>
+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
[email protected]@ -0,0 +1,2340 @@
++
++<html>
++  <head>
++  <title>w3m Handbuch</title>
++    <style>
++      span.mono {
++        font-family:mono;
++      }
++    </style>
++    <meta http-equiv="content-type" content="text/html;charset=UTF-8">
++  </head>
++  <body>
++   <!--
++insertions tagged with "mh 2016-03-29" and "mh 2016-06-11" come from the latest version of manual page w3m (1) 
++   -->
++   
++   <h1>w3m HANDBUCH</h1>
++  <div align="right">
++   Akinori Ito<br> [email protected]
++  </div>
++  <h2>bersicht</h2>
++  <ul>
++   <li>
++    <a href="#Einf端hrung">
++     Einf端hrung
++    </a>
++   </li>
++   <li>
++    <a href="#Einstellungen">
++     Einstellungen
++    </a>
++   </li>
++   <li>
++    <a href="#Color">
++     Farbzuordnung im Dokument
++    </a>
++   </li>
++   <li>
++    <a href="#Functions">
++     Funktionen und Tastaturbelegung
++    </a>
++   </li>
++<!-- mh 2016-06-13 obsolete
++   <li>
++    <a href="#Key:lynx">
++     Lynx-like key bindings
++    </a>
++   </li>
++-->
++   <li>
++    <a href="#Mouse">
++     Bedienung per Maus
++    </a>
++   </li>
++<!-- mh 2016-06-13 obsolete
++   <li>
++    <a href="#Key:custom">
++     Key customization
++    </a>
++   </li>
++   -->
++   <li>
++    <a href="#LocalCGI">
++     Lokale CGI-Skripte
++    </a>
++   </li>
++  </ul>
++  <hr>
++  <h2 id="Einf端hrung">
++   Einf端hrung
++  </h2>
++  <p>
++   w3m ist ein textorientierter Browser und Textbetrachter (Pager). In einem Terminalemulator k旦nnen Sie damit lokale und andere Dokumente anzeigen lassen und Verkn端pfungen (Hyperlinks) weiterverfolgen.
++  </p>
++  <hr>
++  <h2 id="Einstellungen">
++   Einstellungen
++  </h2>
++  <p>
++   Der Aufruf per Befehlszeile lautet
++  </p>
++<!-- mh 2016-08-06 invocation adapted to w3m(1). w3m accepts several options and several targets -->
++<pre>
++  w3m [Option] [Datei|Adresse]
++</pre>
++  <p>
++   Wenn Sie Dateinamen oder Adressen in der Befehlszeile angeben, werden diese Dokumente angezeigt. Fehlen entsprechende Argumente, wird w3m ein Dokument aus der Standardeingabe erwarten und anzeigen. Erh辰lt das Programm auch hier keine Daten, beendet es sich normalerweise selbstst辰ndig.
++  </p>
++  <p>
++   Optionen sind unter anderem:
++  </p>
++  <dl>
++<h3>Allgemeine Optionen</h3>
++    <dt>
++    -B
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++    
++     starte mit einer Ansicht aller Lesezeichen (wenn kein anderes Zielobjekt angegeben ist)
++    </p>
++   </dd>
++   <dt>
++    -M
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++    
++    monochrome Anzeige
++    </p>
++   </dd>
++   <dt>
++    -no-mouse
++   </dt>
++   <dd>
++    <p>
++     Mausfunktion aus
++    </p>
++   </dd>
++   <dt>
++    -num
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      zeige Zeilennummern an
++
++    </p>
++   </dd>
++<!-- mh 2016-08-06 commented out. As implementation is not verified.
++   <dt>
++    -ppc <i>num</i>
++   </dt>
++   <dd>
++    <p>
++    width of <i>num</i> pixels per character. Range of 4.0 to 32.0,
++    default 8.0. Larger values will make tables
++    narrower. (Implementation not verified)
++    </p>
++   </dd>
++-->
++   <dt>
++    -v
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++    
++      begr端e den Benutzer mit einer eingebauten Seite (wenn kein anderes Zielobjekt angegeben ist)
++    </p>
++   </dd>
++   <dt>
++    -W
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      wechsle zwischen umlaufendem und nicht umlaufendem Suchen
++    </p>
++   </dd>
++   <dt>
++    -X
++   </dt>
++   <dd>
++    <p>
++     nach Beenden des Programms das Terminal nicht neu initialisieren.
++    </p>
++   </dd>
++   <dt>
++    +<i>Zahl</i>
++   </dt>
++   <dd>
++     <!--mh 2016-06-11 --><p>
++       gehe zu Zeile <i>Zahl</i>. Wirkt nur, wenn <i>Zahl</i> gr旦er ist als die im Terminal verf端gbare Zeilenzahl
++    </p>
++   </dd>
++<h3>Browser-Optionen</h3>
++   <dt>
++    -cols <i>Zahl</i>
++   </dt>
++   <dd>
++    <!-- mh 2016-06-11 --><p>
++      
++      bei f端r die Standardausgabe bestimmten Inhalten, nimm bei zur Umsetzung von HTML eine L辰nge von <i>num</i> Zeichen pro Zeile
++    </p>
++   </dd>
++   <dt>
++    -cookie
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      verwende gespeicherte Cookies und akzeptiere neue
++    </p>
++   </dd>
++   <dt>
++    -no-cookie
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++     
++     verwende weder gespeicherte Cookies noch akzeptiere neue
++
++    </p>
++   </dd>
++   <dt>
++    -F
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      verarbeite Frames
++    </p>
++   </dd>
++   <dt>
++    -no-graph
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      verwende bei der Umsetzung von Tabellen und Frames keine grafischen Zeichen
++    </p>
++   </dd>
++   <dt>
++    -header <i>Zeichenkette</i>
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      f端ge der HTTP(S)-Anfrage <i>Zeichenkette</i> an. Diese muss der Kopfdaten-Syntax <span class="mono">"Variable: Wert"</span> entsprechen
++    </p>
++   </dd>
++   <dt>
++    -m
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29
++Render the body of Usenet messages according to the header <q>Content-type</q>
++--><p>
++     arbeite im <q>Internetnachrichten-Modus</q>. Mit dieser Option entnimmt w3m den Typ eines Dokumentes dessen Kopfdaten. Dies ist n端tzlich beim Lesen von Mails und Usenet-Nachrichten.
++
++    </p>
++   </dd>
++   <dt>
++    -no-proxy
++   </dt>
++   <dd>
++    <!-- mh 2016-06-11--><p>
++      
++      verwende keinen Proxy
++   </p>
++   </dd>
++   <dt>
++    -post <i>Datei</i>
++   </dt>
++   <dd>
++    <!--funktionierend 2016-06-28T08:22>--><p>
++      verwende die Methode POST, um in <i>Datei</i> hinterlegte Daten hochzuladen. Hierbei wird die Syntax <span class="mono">"var1=wert1[&amp;var2=wert2]&hellip;"</span> erwartet
++    </p>
++   </dd>
++<h3>Textbetrachter-Optionen</h3>
++   <dt>
++    -l <i>Zahl</i>
++   </dt>
++   <dd>
++    <!-- mh2016-06-11--><p>
++      
++      Anzahl der Zeilen, die zwischengespeichert werden, wenn Text per Standardeingabe 端bergeben wurde. (Voreinstellung ist 10000)
++    </p>
++   </dd>
++   <dt>
++    -r
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29 --><p>
++      
++      verarbeite spezielle Escape-Zeichen (beispielsweise ANSI-Escape-Zeichen oder nroff-R端ckw辰rtsschritte f端r fette und unterstrichene Zeichen) nicht, sondern zeige sie stattdessen mittels Caret-Notation.
++    </p>
++   </dd>
++   <dt>
++    -s
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      mehrere leere Zeilen werden bis auf eine gel旦scht
++    </p>
++   </dd>
++  
++  <!--mh 2016-03-29 --><dt>
++     -t <i>Zahl</i>
++   </dt>
++   <dd>
++    <!--mh 2016-03-29--><p>
++       Tab-Zeichen so verwerten, dass Spalten mit einer Weite von <i>Zahl</i> Zeichen entstehen. Wirkt nicht auf Standardausgabe
++    </p>
++   </dd>
++<h3>Datenart- und Datenkodierungs-Optionen</h3>
++   <dt>
++    -I <i>Zeichenkodierung</i>
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      zu benutzende Zeichenkodierung f端r erhaltene Daten 
++    </p>
++   </dd>
++   <dt>
++    -O <i>Zeichenkodierung</i>
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29 --><p>
++      
++      zu benutzende Zeichenkodierung f端r auszugebende Daten 
++    </p>
++   </dd>
++   <dt>
++    -T <i>Typ</i>
++   </dt>
++   <dd>
++     <!-- mh 2016-06-11--><p>
++       
++      legt den MIME-Typ erhaltener Daten fest. Ohne diese Option bestimmt ihn das Programm anhand der Dateinamen-Erweiterung. Wenn dies fehlschl辰gt, wird text/plain als Typ angenommen. Zum Beispiel:
++     </p>
++    <p>
++     bernimm HTML-Dokument von der Standardeingabe und zeige es an
++    </p>
++<pre>
++   cat beispiel.html | w3m -T text/html
++</pre>
++   <p>
++    Zeige HTML-Quelltext an
++   </p>
++<pre>
++   w3m -T text/plain beispiel.html
++</pre>
++   </dd>
++<h3>Optionen zur Datenausgabe, mit sofortigem Verlassen des Programms</h3>
++   <dt>
++    -dump
++   </dt>
++   <dd>
++     <!-- mh 2016-03-29 --><p>
++      lies das per URL angegebene Dokument und leite es verarbeitet der Standardausgabe zu. Wenn mit der Option -cols nichts anderes eingestellt ist, erh辰lt es eine Breite von 80 Zeichen
++      </p>
++   </dd>
++   <dt>
++    -dump_source
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      leite den Seitenquelltext der Standardausgabe zu
++    </p>
++   </dd>
++   <dt>
++    -dump_head
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      leite die Antwort einer HEAD-Anfrage f端r eine URL der Standardausgabe zu
++    </p>
++   </dd>
++   <dt>
++    -dump_both
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++      leite Antwort auf HEAD-Anfrage und Seitenquelltext der Standardausgabe zu
++
++    </p>
++   </dd>
++   <dt>
++    -dump_extra
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++      
++     leite Antwort auf HEAD-Anfrage, Seitenquelltext und Extrainformation der Standardausgabe zu
++    </p>
++   </dd>
++
++<h3>Optionen, die Standards f端r Einstellungen und Datenquellen auer Kraft setzen</h3>
++   
++   <dt>
++    -bookmark <i>Datei</i>
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++    
++     benutze anstelle der Standarddatei bookmark.html f端r Lesezeichen die Datei <i>Datei</i>
++    </p>
++   </dd>
++   <dt>
++    -config <i>Datei</i>
++   </dt>
++   <dd>
++    <!--mh 2016-06-11--><p>
++            
++      benutze <i>Datei</i> anstelle der Standard-Konfigurationsdatei 
++    </p>
++   </dd>
++   <dt>
++    -o <i>Option</i>=<i>Wert</i>
++   </dt>
++   <dd>
++    <!-- mh 2016-03-29--><p>
++     
++      arbeite mit einer Konfiguration, bei der die Einstellung <i>Option</i> mit <i>Wert</i> belegt ist. Ohne <i>Option=Wert</i> gleichwertig mit <i>-show-option</i>
++    </p>
++   </dd>
++  </dl>
++  <hr>
++  <h2 id="Color">
++   Farbzuordnung im Dokument
++  </h2>
++  <p>
++   Links und Bildelemente werden wie folgt angezeigt:
++  </p>
++  <div align="center"> <table border="1"> <tr>
++     <th>
++     </th>
++     <th>
++      Farbmodus
++     </th>
++     <th>
++      Monochrom-Modus
++     </th>
++    </tr>
++    <tr>
++     <td>
++      Hyperlinks
++     </td>
++     <td>
++      blau
++     </td>
++     <td>
++      unterstrichen
++     </td>
++    </tr>
++    <tr>
++     <td>
++      Bilder
++     </td>
++     <td>
++      gr端n
++     </td>
++     <td>
++      invertiert
++     </td>
++    </tr>
++    <tr>
++     <td>
++      Formular-Eingabefelder
++     </td>
++     <td>
++      rot
++     </td>
++     <td>
++      invertiert
++     </td>
++    </tr>
++   </table>
++  </div>
++  <p>
++   Diese Farben k旦nnen nach Eingabe von <q>o</q> im Einstellungs-Dialog anders zugeordnet werden.
++  </p>
++  <hr>
++  <h2 id="Functions">
++   Funktionen und Tastaturbelegung
++  </h2>
++  
++  <!-- mh 2016-06-13 obsolete
++   If you prefer using Lynx-like
++   key bindings, make w3m start with the respective keymap file keymap.lynx. (see w3m (1)).--><p>
++   Wenn w3m l辰uft, bedienen Sie das Programm, indem Sie Funktionen anhand ihres Namens oder der ihr zugeordneten Tastenkombination aufrufen. Es gibt voreingestellte Tastaturbelegungen.
++
++  </p>
++<!--
++  <h2 id="Key:custom">
++   Key customization
++  </h2>
++-->
++  <p>
++   Sie k旦nnen die Tastaturbelegungen (abgesehen von jenen des Men端- und des Texteingabe-Modus) in einer Datei ~/.w3m/keymap anpassen. Beispielsweise bindet
++  </p>
++
++<pre>
++   keymap C-o NEXT_PAGE
++</pre>
++
++  <p>
++   die Funktion <span class="mono">NEXT_PAGE</span> (die normalerweise mit SPC und C-v verkn端pft ist) mit C-o. Siehe die Liste verf端gbarer Funktionen in <a href="README.func">README.func</a>. Original- und Lynx-artige Tastaturbelegungen enthalten die Beispieldateien <a href="keymap.default">keymap.default</a> und <a href="keymap.lynx">keymap.lynx</a>.
++  </p>
++
++   <p>
++   Im Folgenden stehen <i>C-</i> und <i>M-</i> f端r die Eingabe-Modifikationen mit der <i>Steuerungs-</i> und der <i>Meta-Taste</i>. Die letztere ersetzt die <i>ALT-Taste</i>, wohingegen Dr端cken der <i>ESC</i>-Taste zwischen <i>Meta</i>-modifiziertem und einfachen Tastendruck wechselt. Das Minus-Zeichen bedeutet das gleichzeitige Dr端cken von Tasten; der Leerraum dagegen steht daf端r, dass eine Taste nach der anderen gedr端ckt wird. Mit <i>2 M</i> ist also gemeint, die <i>2</i> und dann <i>M</i> zu dr端cken.
++  </p>
++
++
++  <table border="1" width="100%">
++    <colgroup>
++      <col width="20%">
++      <col width="20%">
++      <col width="20%">
++      <col width="40%">
++    </colgroup>
++    <tr>
++      <th rowspan="2">
++	Funktion
++     </th>
++    <th colspan="2">Tastenkombination
++    </th>
++    <th rowspan="2">
++      Beschreibung
++    </th>
++   </tr>
++    <tr>
++    <th>
++     Standard
++    </th>
++    <th>
++     Lynx-辰hnlich
++    </th>
++   </tr>
++    <tr>
++      <td colspan="4">
++      <h3>Navigation innerhalb von Seiten</h3>
++</td>
++    </tr>
++    <tr>
++     <td>
++       NEXT_PAGE
++     </td>
++    <td>
++     SPC, C-v, +, PGDN
++    </td>
++    <td>
++     SPC, C-v, +
++    </td>
++    <td>
++     Scrolle eine Seite abw辰rts
++    </td>
++   </tr>
++   <tr>
++     <td>
++       PREVIOUS_PAGE
++     </td>
++    <td>
++     b, M-v, -, PGUP
++    </td>
++    <td>
++     b, M-v, -
++    </td>
++    <td>
++     Scrolle eine Seite aufw辰rts
++    </td>
++   </tr>
++   <tr>
++     <td>
++       MOVE_RIGHT
++     </td>
++    <td>
++     l, C-f, RIGHT
++    </td>
++    <td>
++     l
++    </td>
++    <td>
++     Bewege Cursor nach rechts (mit Verschiebung um halbe Bildschirmbreite an dessen Rand)
++    </td>
++   </tr>
++   <tr>
++     <td>
++       C-b, LEFT
++     </td>
++    <td>
++     h, C-b, LEFT
++    </td>
++    <td>
++     h
++    </td>
++    <td>
++     Bewege Cursor nach links (mit Verschiebung um halbe Bildschirmbreite an dessen Rand)
++    </td>
++   </tr>
++   <tr>
++     <td>
++       MOVE_DOWN
++     </td>
++    <td>
++     j, C-n, DOWN
++    </td>
++    <td>
++     j
++    </td>
++    <td>
++     Bewege Cursor abw辰rts (scrolle eine Zeile am Bildschirmrand)
++    </td>
++   </tr>
++   <tr>
++     <td>
++       MOVE_UP
++     </td>
++    <td>
++     k, C-p, UP
++    </td>
++    <td>
++     k
++    </td>
++    <td>
++     Bewege Cursor aufw辰rts (scrolle eine Zeile am Bildschirmrand)
++    </td>
++   </tr>
++   <tr>
++     <td>
++       UP
++     </td>
++    <td>
++     J
++    </td>
++    <td>
++     J
++    </td>
++    <td>
++     Scrolle den Anzeigebereich eine Zeile aufw辰rts
++    </td>
++   </tr>
++   <tr>
++     <td>
++       DOWN
++     </td>
++    <td>
++     K
++    </td>
++    <td>
++     K
++    </td>
++    <td>
++     Scrolle den Anzeigebereich eine Zeile abw辰rts
++    </td>
++   </tr>
++   <tr>
++     <td>
++       LINE_BEGIN
++     </td>
++    <td>
++     ^, C-a
++    </td>
++    <td>
++     ^
++    </td>
++    <td>
++     Gehe zum Zeilenanfang
++    </td>
++   </tr>
++   <tr>
++     <td>
++       LINE_END
++     </td>
++    <td>
++     $, C-e
++    </td>
++    <td>
++     $
++    </td>
++    <td>
++     Gehe zum Zeilenende
++    </td>
++   </tr>
++   <tr>
++     <td>
++       NEXT_WORD
++     </td>
++    <td>
++     w
++    </td>
++    <td>
++     w
++    </td>
++    <td>
++     Gehe zum n辰chsten Wort
++    </td>
++   </tr>
++   <tr>
++     <td>
++       PREVIOUS_WORD
++     </td>
++    <td>
++     W
++    </td>
++    <td>
++     W
++    </td>
++    <td>
++     Gehe zum vorherigen Wort
++    </td>
++   </tr>
++   <tr>
++     <td>
++       SHIFT_RIGHT
++     </td>
++    <td>
++     >
++    </td>
++    <td>
++     >
++    </td>
++    <td>
++     Anzeigebereich nach rechts versetzen
++    </td>
++   </tr>
++   <tr>
++     <td>
++       SHIFT_LEFT
++     </td>
++    <td>
++     <
++    </td>
++    <td>
++     <
++    </td>
++    <td>
++     Anzeigebereich nach links versetzen
++    </td>
++   </tr>
++   <tr>
++     <td>
++       RIGHT
++     </td>
++    <td>
++     .
++    </td>
++    <td>
++     .
++    </td>
++    <td>
++     Anzeigebereich um eine Spalte nach rechts verschieben
++    </td>
++   </tr>
++   <tr>
++     <td>
++       LEFT
++     </td>
++    <td>
++     ,
++    </td>
++    <td>
++     ,
++    </td>
++    <td>
++     Anzeigebereich um eine Spalte nach links verschieben
++    </td>
++   </tr>
++   <tr>
++     <td>
++       BEGIN
++     </td>
++    <td>
++     g, M-<, HOME
++    </td>
++    <td>
++     C-a, M-<
++    </td>
++    <td>
++     Gehe zur ersten Zeile
++    </td>
++   </tr>
++   <tr>
++     <td>
++       END
++     </td>
++    <td>
++     G, M->, END
++    </td>
++    <td>
++     C-e, M->
++    </td>
++    <td>
++     Gehe zur letzten Zeile
++    </td>
++   </tr>
++   <tr>
++     <td>
++       GOTO_LINE
++     </td>
++    <td>
++     M-g
++    </td>
++    <td>
++     G
++    </td>
++    <td>
++     Gehe zur angegebenen Zeile
++    </td>
++   </tr>
++   <tr>
++     <td>
++       LINE_INFO
++     </td>
++    <td>
++     C-g
++    </td>
++    <td>
++     C-g
++    </td>
++    <td>
++     Zeige aktuelle Position im Dokument an
++    </td>
++   </tr>
++   <tr>
++     <td>
++       CENTER_H
++     </td>
++    <td>
++     Z
++    </td>
++<!--Correction by mh 2014-04-06 
++Description for keybinding of z and Z had been mingled
++-->
++    <td>
++     Z
++    </td>
++    <td>
++     Bildschirm rechts und links des Cursors zentrieren
++    </td>
++   </tr>
++   <tr>
++     <td>
++       CENTER_V
++     </td>
++    <td>
++     z
++    </td>
++    <td>
++     z
++    </td>
++    <td>
++     Bildschirm ober- und unterhalb des Cursors zentrieren
++    </td>
++   </tr>
++   <tr>
++     <td>
++       NEXT_LINK
++     </td>
++    <td>
++     TAB
++    </td>
++    <td>
++     TAB, C-n, DOWN
++    </td>
++    <td>
++     Gehe zum n辰chsten Hyperlink
++    </td>
++   </tr>
++   <tr>
++     <td>
++       PREVIOUS_LINK
++     </td>
++    <td>
++     M-TAB, C-u 
++    </td>
++    <td>
++     M-TAB, C-u, C-p, UP
++    </td>
++    <td>
++     Gehe zum vorangegangen Hyperlink
++    </td>
++<!-- Annotion mh 2016-04-06
++Keybinding description for C-g had been moved as it did not fit to "Hyperlink operation" and position in the default and lynx-like series differed 
++  -->
++   </tr>
++   <tr>
++     <td>
++       LINK_BEGIN
++     </td>
++    <td>
++     [
++    </td>
++    <td>
++     [
++    </td>
++    <td>
++     Gehe zum ersten Hyperlink
++    </td>
++   </tr>
++   <tr>
++     <td>
++       LINK_END
++     </td>
++    <td>
++     ]
++    </td>
++    <td>
++     ]
++    </td>
++    <td>
++     Gehe zum letzten Hyperlink
++    </td>
++   </tr>
++<tr>
++<td>MOVE_LIST_MENU</td>
++<td>M-m</td>
++<td>M-m</td>
++<td>ffne Men端 mit vorhandenen Hyperlinks</td>
++</tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Umgang mit Hyperlinks</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++   <tr>
++     <td>
++       GOTO_LINK
++     </td>
++    <td>
++     C-j, C-m, RET
++    </td>
++    <td width="100">
++     C-f, C-j, C-m, RET, RIGHT
++    </td>
++    <td>
++     Folge dem aktuellen Hyperlink in neuem Puffer
++    </td>
++   </tr>
++<tr>
++<td>LIST_MENU</td>
++<td>M-l</td>
++<td>M-l</td>
++<td>ffne Men端 mit Hyperlinks und folge dem ausgew辰hlten</td>
++</tr>
++   <tr>
++     <td>
++       SAVE_LINK
++     </td>
++    <td>
++     a, M-RET
++    </td>
++    <td>
++     d, M-RET
++    </td>
++    <td>
++     Speichere Ziel des Hyperlinks
++    </td>
++   </tr>
++   <tr>
++     <td>
++       PEEK_LINK
++     </td>
++    <td>
++     u
++    </td>
++    <td>
++     u
++    </td>
++    <td>
++     Zeige Zieladresse
++    </td>
++   </tr>
++   <tr>
++     <td>
++       PEEK_IMG
++     </td>
++    <td>
++     i
++    </td>
++    <td>
++     i
++    </td>
++    <td>
++     Zeige Adresse des Bildes
++    </td>
++   </tr>
++   <tr>
++     <td>
++       VIEW_IMAGE
++     </td>
++    <td>
++     I
++    </td>
++    <td>
++     I
++    </td>
++    <td>
++     Zeige Bild in Betrachter
++    </td>
++   </tr>
++   <tr>
++     <td>
++       SAVE_IMAGE
++     </td>
++    <td>
++     M-I
++    </td>
++    <td>
++     M-I
++    </td>
++    <td>
++     Speichere Bild
++    </td>
++   </tr>
++<tr>
++<td>MARK_WORD</td>
++<td>;</td>
++<td>;</td>
++<td>Wandle aktuelles Wort in Hyperlink um</td>
++</tr>
++   <tr>
++     <td>
++       MARK_URL
++     </td>
++    <td>
++     :
++    </td>
++    <td>
++     :
++    </td>
++    <td>
++     Wandle URL-artige Zeichenketten um in Hyperlinks
++    </td>
++   </tr>
++   <tr>
++     <td>
++       MARK_MID
++     </td>
++    <td>
++     M-:
++    </td>
++    <td>
++     M-:
++    </td>
++    <!-- changed due to mail dated Mon, 04 Apr 2016 00:47:09 +0900 (JST)
++from Tatsuya Kinoshita --><td>
++ 
++     Wandle Nachrichten-ID-artige Zeichenketten um in Hyperlinks
++    </td>
++   </tr>
++   <tr>
++     <td>
++       PEEK
++     </td>
++    <td>
++     c
++    </td>
++    <td>
++     c
++    </td>
++    <td>
++     Zeige aktuelle Adresse an
++    </td>
++   </tr>
++   <tr>
++     <td>
++       INFO
++     </td>
++    <td>
++     =
++    </td>
++    <td>
++     =
++    </td>
++    <td>
++      Zeige Informationen 端ber dieses Dokument
++    </td>
++   </tr>
++   <tr>
++     <td>
++       HISTORY
++     </td>
++    <td>
++     C-h
++    </td>
++    <td>
++     C-h
++    </td>
++    <td>
++     Chronik aufgesuchter Dokumente
++    </td>
++   </tr>
++   <tr>
++     <td>
++       EXTERN
++     </td>
++    <td>
++     M
++    </td>
++    <td>
++     M
++    </td>
++    <td>
++     Zeige das aktuelle Dokument mit einem externen Browser (wird eine Taste von 2 bis 9 gedr端ckt, also beispielsweise 3 M, eingegeben, kommt ein anderer, in der Konfiguration hinterlegter Browser zum Einsatz)
++    </td>
++   </tr>
++   <tr>
++     <td>
++       EXTERN_LINK
++     </td>
++    <td>
++     M-M
++    </td>
++    <td>
++     M-M
++    </td>
++    <td>
++     Bringe das Linkziel mit einem externen Browser zur Anzeige (vorangestellte Zahlen wirken sich wie oben beschrieben aus)
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Verwalten von Lesezeichen</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++    <tr>
++      <td>
++	BOOKMARK
++      </td>
++    <td>
++     M-b
++    </td>
++    <td>
++     v, M-b
++    </td>
++    <td>
++     Lesezeichen ansehen
++    </td>
++   </tr>
++   <tr>
++      <td>
++	ADD_BOOKMARK
++      </td>
++    <td>
++     M-a
++    </td>
++    <td>
++     a, M-a
++    </td>
++    <td>
++     Lege f端r aktuelle Seite Lesezeichen an
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Umgang mit Dateien und Datenstr旦men</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++	<td>
++	  GOTO
++     </td>
++    <td>
++     U
++    </td>
++    <td>
++     g, U
++    </td>
++    <td>
++     ffne angegebenes Dokument in neuem Puffer
++    </td>
++   </tr>
++<tr>
++<td>GOTO_RELATIVE</td>
++<td>M-u</td>
++<td>M-u</td>
++<td>ffne relative Adresse in neuem Puffer</td>
++</tr>
++      <tr>
++     <td>
++       LOAD
++     </td>
++    <td>
++     V
++    </td>
++    <td>
++     V
++    </td>
++    <td>
++     ffne lokale Datei in einem neuen Puffer
++    </td>
++   </tr>
++      <tr>
++     <td>
++       READ_SHELL
++     </td>
++    <td>
++     @
++    </td>
++    <td>
++     @
++    </td>
++    <!--Execute shell command and view output--><!--mh 2016-06-13 No difference to PIPE_SHELL could be discerned--><td>
++      
++       
++      F端hre einen Shell-Befehl aus und zeige Ausgabe in einem neuen Puffer
++    </td>
++   </tr>
++      <tr>
++     <td>
++       PIPE_SHELL
++     </td>
++    <td>
++     #
++    </td>
++    <td>
++     #
++    </td>
++    <!--Execute shell command and browse output--><!--mh 2016-06-13 No difference to READ_SHELL could be discerned--><td>
++      
++       
++      F端hre einen Shell-Befehl aus und zeige Ausgabe in einem neuen Puffer
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Arbeit an Seiteninhalten</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++     <!-- is an alias to SOURCE --><td>
++       VIEW 
++     </td>
++    <td>
++     v
++    </td>
++    <td>
++     \
++    </td>
++    <td>
++     Wechsle zwischen HTML-Quellcode und verarbeitetem Dokument
++    </td>
++   </tr>
++<tr>
++<td>LIST</td>
++<td>L</td>
++<td>L</td>
++<td>Liste Link-Elemente, Hyperlinks und Bilder auf</td>
++</tr>
++      <tr>
++     <td>
++       FRAME
++     </td>
++    <td>
++     F
++    </td>
++    <td>
++     F
++    </td>
++    <td>
++     Wechsle zwischen Kennung und Umsetzung von HTML-Frames
++    </td>
++   </tr>
++      <tr>
++     <td>
++       REDRAW
++     </td>
++    <td>
++     C-l
++    </td>
++    <td>
++     C-l, C-w
++    </td>
++    <td>
++     Bildschirmanzeige neu aufbauen
++    </td>
++   </tr>
++      <tr>
++     <td>
++       RELOAD
++     </td>
++    <td>
++     R
++    </td>
++    <td>
++     R, C-r
++    </td>
++    <td>
++     Aktuelles Dokument erneut laden
++    </td>
++   </tr>
++      <tr>
++     <td>
++       EDIT
++     </td>
++    <td>
++     E
++    </td>
++    <td>
++     E
++    </td>
++    <td>
++     Bearbeite lokales Quelldokument
++    </td>
++   </tr>
++      <tr>
++     <td>
++       EDIT_SCREEN
++     </td>
++    <td>
++     M-e
++    </td>
++    <td>
++     M-e
++    </td>
++    <td>
++     Bearbeite eine Kopie des verarbeiteten Dokuments
++    </td>
++   </tr>
++<tr>
++<td>PIPE_BUF</td>
++<td>|</td>
++<td>|</td>
++<td>Leite aktuellen Pufferinhalt einem Shell-Befehl zu und zeige Ausgabe an</td>
++</tr>
++      <tr>
++     <!-- is an alias to SAVE --><td>
++       DOWNLOAD 
++     </td>
++    <td>
++     M-s
++    </td>
++    <td>
++     M-s
++    </td>
++    <td>
++     Dokument-Quellcode speichern
++    </td>
++   </tr>
++      <tr>
++     <td>
++       SAVE_SCREEN
++     </td>
++    <td>
++     S
++    </td>
++    <td>
++     S, p
++    </td>
++    <td>
++     Speichere verarbeitetes Dokument
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Navigation zwischen Puffern und Reitern</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++     <td>
++       BACK
++     </td>
++    <td>
++     B
++    </td>
++     <td>
++     B, C-b, LEFT
++    </td>
++    <td>
++     Schliee aktuellen Puffer und kehre zu dem im Stapel darunterliegenden zur端ck
++    </td>
++   </tr>
++      <tr>
++     <td>
++       SELECT_MENU
++     </td>
++    <td>
++     s
++    </td>
++    <td>
++     s, C-h
++    </td>
++    <td>
++     ffne Pufferstapel-Men端
++    </td>
++   </tr>
++      <tr>
++     <td>
++       TAB_MENU
++     </td>
++    <td>
++     M-t
++    </td>
++    <td>
++     M-t
++    </td>
++    <td>
++     ffne das Reiter-Auswahl-Men端
++    </td>
++   </tr>
++      <tr>
++     <td>
++       NEW_TAB
++     </td>
++    <td>
++     T
++    </td>
++    <td>
++     T
++    </td>
++    <td>
++     ffne neuen Reiter (mit aktuellem Dokument)
++    </td>
++   </tr>
++      <tr>
++     <td>
++       TAB_LINK
++     </td>
++    <td>
++     C-t
++    </td>
++    <td>
++     C-t
++    </td>
++    <td>
++     Folge dem aktuellen Hyperlink in einem neuen Reiter
++    </td>
++   </tr>
++      <tr>
++     <td>
++       NEXT_TAB
++     </td>
++    <td>
++     }
++    </td>
++    <td>
++     }
++    </td>
++    <td>
++     Schalte zum n辰chsten Reiter
++    </td>
++   </tr>
++      <tr>
++     <td>
++       PREV_TAB
++     </td>
++    <td>
++     {
++    </td>
++    <td>
++     {
++    </td>
++    <td>
++     Schalte zum vorherigen Reiter
++    </td>
++   </tr>
++      <tr>
++     <td>
++       CLOSE_TAB
++     </td>
++    <td>
++     C-q
++    </td>
++    <td>
++     C-q
++    </td>
++    <td>
++     Schliee aktuellen Reiter
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Suchfunktionen</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++     <td>
++       SEARCH
++     </td>
++    <td>
++     /
++    </td>
++    <td>
++     /, C-s
++    </td>
++    <td>
++     Suche vorw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++       SEARCH_BACK
++     </td>
++    <td>
++     ?
++    </td>
++     <td>
++     </td>
++    <td>
++     Suche r端ckw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++       ISEARCH
++     </td>
++    <td>
++     C-s
++    </td>
++     <td>
++     </td>
++    <td>
++     Inkrementelle Suche vorw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++       ISEARCH_BACK
++     </td>
++    <td>
++     C-r
++    </td>
++     <td>
++     </td>
++    <td>
++     Inkrementelle Suche r端ckw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++       SEARCH_NEXT
++     </td>
++    <td>
++     n
++    </td>
++    <td>
++     n
++    </td>
++    <td>
++     Setze Suche vorw辰rts fort
++    </td>
++   </tr>
++      <tr>
++     <td>
++       SEARCH_PREV
++     </td>
++    <td>
++     N
++    </td>
++     <td>
++     </td>
++    <td>
++     Setze Suche r端ckw辰rts fort
++    </td>
++   </tr>
++      <tr>
++     <td>
++       WRAP_TOGGLE
++     </td>
++    <td>
++     C-w
++    </td>
++    <td>
++     w
++    </td>
++    <td>
++     Wechsle zwischen umlaufendem und nicht-umlaufendem Suchen
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Arbeit mit Textmarken</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++     <td>
++       MARK
++     </td>
++    <td>
++     C-SPC
++    </td>
++    <td>
++     C-SPC
++    </td>
++    <td>
++     Setze/L旦sche Markierung
++    </td>
++   </tr>
++      <tr>
++     <td>
++       PREV_MARK
++     </td>
++    <td>
++     M-p
++    </td>
++    <td>
++     P
++    </td>
++    <td>
++     Gehe zur vorherigen Markierung
++    </td>
++   </tr>
++      <tr>
++     <td>
++       NEXT_MARK
++     </td>
++    <td>
++     M-n
++    </td>
++    <td>
++     N
++    </td>
++    <td>
++     Gehe zur n辰chsten Markierung
++    </td>
++   </tr>
++      <tr>
++     <td>
++       REG_MARK
++     </td>
++    <td>
++     "
++    </td>
++    <td>
++     "
++    </td>
++    <td>
++     Markiere alle Vorkommen eines Zeichenmusters
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="4">
++	<h3>Verschiedenes</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++     <td>
++       COMMAND
++     </td>
++    <td>
++     M-c
++    </td>
++    <td>
++     M-c
++    </td>
++    <td>
++     Rufe eine oder mehrere durch Strichpunkt getrennte w3m-Funktionen auf
++    </td>
++   </tr>
++<!--
++TODO: Where does this key binding M-Fn come from. I do not find a Fn-key on my keyboard. I do not know how to type in the keystroke combinations listed in keymap.default which are
++keymap  M-[E    MENU
++keymap  M-[L    MENU
++keymap  M-[2~   MENU
++keymap  M-[28~  MENU
++<tr>
++<td>MENU</td>
++<Td>M-Fn</Td>
++<td></td>
++<td>Pop up menu</td>
++</tr>
++-->
++      <tr>
++     <td>
++       HELP
++     </td>
++    <td>
++     H
++    </td>
++    <td>
++     H, ?
++    </td>
++    <td>
++     Zeige Hilfe-bersicht
++    </td>
++   </tr>
++      <tr>
++     <td>
++       OPTIONEN
++     </td>
++    <td>
++     o
++    </td>
++    <td>
++     o
++    </td>
++    <td>
++     Einstellungs-Dialog 旦ffnen
++    </td>
++   </tr>
++<tr>
++<td>SET_OPTION</td>
++<td>M-o</td>
++<td>M-o</td>
++<td>Setze Option</td>
++</tr>
++<tr>
++<td>DEFINE_KEY</td>
++<td>M-k</td>
++<td>M-k</td>
++<td>Definiere eine Verbindung zwischen einer Tastenkombination und einem Kommando</td>
++</tr>
++<tr>
++<td>MOUSE_TOGGLE</td>
++<td>m</td>
++<td>m</td>
++<td>Schalte Mausbedienung an oder ab</td>
++</tr>
++<tr>
++<td>DOWNLOAD_LIST</td>
++<td>D</td>
++<td>D</td>
++<td>bersicht heruntergeladener Dateien anzeigen</td>
++</tr>
++      <tr>
++     <td>
++       COOKIE
++     </td>
++    <td>
++     C-k
++    </td>
++    <td>
++     C-k
++    </td>
++    <td>
++     Zeige die gespeicherten Cookies
++    </td>
++   </tr>
++<!-- 
++mh 2016-06-12 Interrupt is an alias to SUSPEND, no need to mention it here
++   <tr>
++     <td>
++       INTERRUPT
++     </td>
++    <td>
++     C-c
++    </td>
++    <td>
++     C-c
++    </td>
++    <td>
++     Interrupt
++    </td>
++   </tr>
++-->
++<tr>
++<td>UNDO</td>
++<td>(</td>
++<td>(</td>
++<td>Nimm die letzte Cursorbewegung zur端ck</td>
++</tr>
++<tr>
++<td>REDO</td>
++<td>)</td>
++<td>)</td>
++<td>Den letzten R端cknahmebefehl zur端cknehmen</td>
++</tr>
++      <tr>
++     <!-- is an alias of SHELL --><td>
++       EXEC_SHELL 
++     </td>
++    <td>
++     !
++    </td>
++    <td>
++     !
++    </td>
++    <td>
++     Shell-Befehl ausf端hren
++    </td>
++   </tr>
++<tr>
++<td>DICT_WORD</td>
++<td>M-w</td>
++<td>M-w</td>
++<td>F端hre eine W旦rterbuch-Funktion aus (siehe <a href="../doc/README.dict">README.dict</a>)</td>
++</tr>
++<tr>
++<td>DICT_WORD_AT</td>
++<td>M-W</td>
++<td>M-W</td>
++<td>Benutze W旦rterbuch f端r Wort unter Cursor</td>
++</tr>
++<tr>
++<td>VERSION</td>
++<td>r</td>
++<td>r</td>
++<td>Zeige die Version von w3m an</td>
++</tr>
++      <tr>
++     <td>
++       SUSPEND
++     </td>
++    <td>
++     C-z
++    </td>
++    <td>
++     C-z
++    </td>
++    <td>
++      w3m zum Hintergrundprozess machen. (Wird mit dem Shell-Befehl <span class="mono">fg</span> zur端ckgenommen.)
++    </td>
++   </tr>
++      <tr>
++     <td>
++       QUIT
++     </td>
++    <td>
++     q
++    </td>
++    <td>
++     q
++    </td>
++    <td>
++     Mit Best辰tigungsfrage beenden
++    </td>
++   </tr>
++      <tr>
++     <td>
++       EXIT
++     </td>
++    <td>
++     Q
++    </td>
++    <td>
++     Q
++    </td>
++    <td>
++     Sofort beenden
++    </td>
++   </tr>
++  </table>
++
++   <p>
++   Dar端ber hinaus gibt es die folgenden Bedien-Modi mit fester Tastaturbelegung f端r die entsprechenden Funktionen. Diese sind nicht durch die Funktion DEFINE_KEY oder Eintr辰ge der keymap-Datei ver辰nderbar.
++   </p>
++   
++  <table border="1" width="100%">
++    <colgroup>
++      <col width="20%">
++      <col width="40%">
++      <col width="40%">
++    </colgroup>
++    <tr>
++      <th>
++	Funktion<br>(interner Name)
++     </th>
++    <th>Tastenkombination
++    </th>
++    <th>
++      Beschreibung
++    </th>
++   </tr>
++    <tr>
++      <td colspan="3">
++	<h3>Men端-Auswahl-Modus</h3>
++      </td>
++    </tr>
++      <tr>
++     <td>
++     BUF:NEXT</td>
++    <td>
++     j, C-n, DOWN
++    </td>
++    <td>
++     N辰chster Eintrag
++    </td>
++   </tr>
++      <tr>
++     <td>BUF:PREV
++     </td>
++    <td>
++     k, C-p, UP
++    </td>
++    <td>
++     Vorheriger Eintrag
++    </td>
++   </tr>
++      <tr>
++     <td>
++     BUF:DELETE</td>
++    <td>
++     D
++    </td>
++    <td>
++     L旦sche Eintrag
++    </td>
++   </tr>
++      <tr>
++     <td>
++       BUF:GO
++     </td>
++    <td>
++     SPC, RET, RIGHT
++    </td>
++    <td>
++     W辰hle Eintrag aus
++    </td>
++   </tr>
++<!--  </table>-->
++    <tr>
++      <td colspan="3">
++	<h3>Popup-Men端-Modus</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++     <td>
++MENU:SELECT
++     </td>
++    <td>
++    SPC, RET, RIGHT</td>
++    <td>
++      W辰hle Punkt aus
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:CLOSE
++     </td>
++      <td>C-c
++    </td>
++    <td>
++      Schliee Men端
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:CANCEL
++     </td>
++      <td>
++    LEFT, BKSPC, C-h</td>
++    <td>
++      Einen Auswahlschritt zur端ck
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:DOWN
++     </td>
++      <td>j, C-n, DOWN
++    </td>
++    <td>
++      Gehe zum n辰chsten Punkt
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:UP
++     </td>
++      <td>
++    k, C-p, UP</td>
++    <td>
++      Gehe zum vorherigen Punkt
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:LINE_UP
++     </td>
++      <td>K
++    </td>
++    <td>
++      Scrolle einen Punkt aufw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:LINE_DOWN
++     </td>
++      <td>J
++    </td>
++    <td>
++      Scrolle einen Punkt abw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:TOP
++     </td>
++      <td>C-a
++    </td>
++    <td>
++      Gehe zum ersten Punkt
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:LAST
++     </td>
++      <td>C-e
++    </td>
++    <td>
++      Gehe zum letzten Punkt
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:NEXT
++     </td>
++      <td>C-v, C-f
++    </td>
++    <td>Gehe zur n辰chsten Seite
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:PREV
++     </td>
++      <td>ESC v, C-b
++    </td>
++    <td>
++      Gehe zur vorherigen Seite
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:SEARCH_FORE
++     </td>
++      <td>C-s, /
++    </td>
++    <td>
++      Suche vorw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++MENU:SEARCH_BACK
++     </td>
++      <td>
++    C-r, ?</td>
++    <td>
++      Suche r端ckw辰rts
++    </td>
++      </tr>
++      <tr>
++	<td>
++MENU:SEARCH_NEXT
++	</td>
++	<td>
++	n</td>
++	<td>
++	Suche weitere bereinstimmung</td>
++      </tr>
++      <tr>
++	<td>
++MENU:SEARCH_PREV
++	</td>
++	<td>
++	N</td>
++	<td>
++	Suche fr端here bereinstimmung</td>
++      </tr>
++<!--mh 2016-06-12 Pressing C-z in menu mode (with menu active) has the same effect as in normal operation of w3m: Browser gets in the background
++       <tr>
++	<td>
++MENU:SUSPEND
++	</td>
++	<td>
++	C-z</td>
++	<td>
++	Suspend</td>
++      </tr>
++-->
++<!--  </table>-->
++    <tr>
++      <td colspan="3">
++	<h3>Eingabezeile-Bearbeitungs-Modus</h3>
++      </td>
++    </tr>
++<!--  <table>-->
++      <tr>
++     <td>
++       LINEEDIT:FORWARD
++     </td>
++    <td width="100">
++     C-f, RIGHT
++    </td>
++    <td>
++     Bewege Cursor vorw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:BACK
++     </td>
++    <td>
++     C-b, LEFT
++    </td>
++    <td>
++     Bewege Cursor r端ckw辰rts
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:BS
++     </td>
++    <td>
++     C-h, BKSPC
++    </td>
++    <td>
++     Vorheriges Zeichen l旦schen
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:DEL
++     </td>
++    <td>
++     C-d
++    </td>
++    <td>
++     Aktuelles Zeichen l旦schen
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:KILL_AFTER
++     </td>
++    <td>
++     C-k
++    </td>
++    <td>
++     L旦sche alles nach dem Cursor
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:KILL_BEFORE
++     </td>
++    <td>
++     C-u
++    </td>
++    <td>
++     L旦sche alles vor dem Cursor
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:TOP
++     </td>
++    <td>
++     C-a
++    </td>
++    <td>
++     Gehe zum Zeilenanfang
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:BOTTOM
++     </td>
++    <td>
++     C-e
++    </td>
++    <td>
++     Gehe zum Zeilenende
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:PREV
++     </td>
++    <td>
++     C-p, UP
++    </td>
++    <td>
++      Hole den vorherigen Chronik-Eintrag
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:NEXT
++     </td>
++    <td>
++     C-n, DOWN
++    </td>
++    <td>
++     Hole den n辰chsten Chronik-Eintrag
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:COMPLETE
++     </td>
++    <td>
++     TAB, SPC
++    </td>
++    <td>
++     Versuche, den Dateinamen zu komplettieren
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:EDITOR
++     </td>
++    <td>
++     C-o
++    </td>
++    <td>
++     Bearbeite mit externem Editor
++    </td>
++   </tr>
++      <tr>
++     <td>
++LINEEDIT:ACCEPT
++     </td>
++    <td>
++     RET
++    </td>
++    <td>
++     Eingabezeile 端bernehmen
++    </td>
++   </tr>
++  </table>
++<!-- mh 2016-06-12 As it suffices to use the provided keymap file for Lynx-like keybindings and this file is listed in section FILES of man w3m (1), the following hint for getting w3m with Lynx-like key bindings has been deleted.
++   <p>
++   If w3m was compiled with <q>Lynx-like key bindings</q>, you can use
++   the following key bindings.
++  </p>
++-->
++<!-- mh 2016-06-12 Remark is obsolete as the two sets key binding are presented along within tables 
++  <hr>
++  <h2 id="Key:lynx">
++   <p>
++   The Lynx-like configuration leaves keymappings unchanged in the
++   menu-selection and line-editing modes.
++  </p>
++ </h2>
++-->
++  <hr>
++  <h2 id="Mouse">
++   Bedienung per Maus
++  </h2>
++  <p>
++   Wenn w3m mit Mausfunktionen kompiliert wurde und Sie das Programm entweder in einer Konsole mit GPM oder in einem X-Terminal-Emulator starten, ist ein Navigieren mit der Maus m旦glich. (Im Falle von rxvt m端ssen Sie die Umgebungsvariable TERM mit <q>xterm</q> oder <q>kxterm</q> belegen.)
++  </p>
++   <p>Die Datei <a href="README.mouse">README.mouse</a> erkl辰rt, wie die Bedienung per Maus an eigene Vorlieben angepasst werden kann.
++   </p>
++  <table border="1">
++    <colgroup>
++      <col width="20%">
++      <col width="80%">
++    </colgroup>
++    <tr>
++      <th>Handlung
++      </th>
++      <th>Beschreibung
++      </th>
++    </tr>   
++    <tr>
++    <td>
++     Linksklick
++    </td>
++    <td>
++<b>Zuerst:</b><br> Der Cursor wird an die Mauszeigerposition versetzt.<br> <b>Dann:</b><br> Dem Hyperlink, auf dem der Cursor momentan steht und auf den sich der Mauszeiger richtet, wird gefolgt.
++    </td>
++   </tr>
++   <tr>
++    <td>
++     Mittelklick
++    </td>
++    <td>
++     Zur端ck zum vorherigen Puffer.
++    </td>
++   </tr>
++   <tr>
++    <td>
++     Rechtsklick
++    </td>
++    <td>
++     ffne Men端. Sie k旦nnen Men端punkte durch Anklicken ausw辰hlen.
++    </td>
++   </tr>
++   <tr>
++    <td>
++     Linksziehen
++    </td>
++    <td>
++     Dokument scrollen. Standardm辰ig wird das Dokument im Fenster verschoben. Ein Verschieben des Fensters 端ber dem stehenden Dokument erreichen Sie 端ber den Einstellungs-Dialog.
++    </td>
++   </tr>
++  </table>
++  <hr>
++  <h2 id="LocalCGI">
++   Lokale CGI-Skripte
++  </h2>
++  <p>
++   w3m ist in der Lage, CGI-Skripte direkt laufen zu lassen. Dies bedeutet, dass sich das Programm wie ein HTTP-Server verh辰lt und das CGI-Skript ausf端hrt und dessen Ausgabe anzeigt. Beispielsweise wurden die Lesezeichen-Registrierung und der Verzeichnis-Browser als lokale CGI-Skripte programmiert. Dar端ber hinaus kann w3m durch solche Skripte als Schnittstelle zum Einholen von Daten aller Art fungieren.
++  </p>
++  <p>
++   Aus Sicherheitsgr端nden kommen f端r von w3m benutzte CGI-Skripte nur folgende Verzeichnisse in Frage:
++  </p>
++  <ul>
++   <li>
++    Das Verzeichnis, in dem w3m-bezogene Dateien abgelegt sind (typischerweise /usr/local/lib/w3m). Auf dieses Verzeichnis kann mit der Variblen $LIB referenziert werden.
++   </li>
++   <li>
++    Das Verzeichnis /cgi-bin/. Sie k旦nnen /cgi-bin/ im Feld <q>Verzeichnis f端r ausf端hrbare Skripte</q> des Einstellungs-Dialogs jedem gew端nschten Verzeichnis zuordnen. Mehrere Pfade lassen sich durch Doppelpunkt getrennt angeben, also in der Form <span class="mono">/usr/local/cgi-bin:/home/aito/cgi-bin</span>. Es wird davon abgeraten, das aktuelle Verzeichnis hier mitaufzunehmen. Zum Zugriff auf Skripte im Verzeichnis /cgi-bin/ erwartet w3m eine URL folgender Art:
++    </li>
++<pre>
++ w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi
++</pre>
++  </ul>
++  <p>
++    Das CGI-Skript kann zur Steuerung von w3m die spezielle Kopfzeile <span class="mono">w3m-control:</span> enthalten. Darin k旦nnen alle Funkionen (siehe <a href="README.func">README.func</a>) eingetragen sein. Die angegebene Funktion wird aufgerufen, nachdem das Dokument angezeigt wird. Beispielsweise, wird eine Skriptausgabe
++  </p>
++<pre>
++Content-Type: text/plain<br>W3m-control: BACK
++</pre>
++  <p>
++   eine leere Seite anzeigen und den Puffer sofort l旦schen. Dies ist n端tzlich, wenn es nicht gew端nscht ist, die Seite nach Aufrufen des Skriptes anzuzeigen. Das n辰chste Beispiel
++  </p>
++<pre>
++Content-Type: text/plain<br>W3m-control: DELETE_PREVBUF contents.....
++</pre>
++  <p>
++   f端hrt zum bergehen des aktuellen Puffers.
++  </p>
++  <p>
++    Jede <span class="mono">w3m-control</span>-Kopfzeile kann nur eine Funktion aufrufen. Jedoch k旦nnen Sie im Kopfteil einer HTTP-Kommunikation mehr als eine <span class="mono">w3m-control</span>-Anweisung hinterlegen. berdies ist es m旦glich, die GOTO-Funktion mit einem Argument aufzurufen:
++  </p>
++<pre>
++Content-Type: text/plain<br>W3m-control: GOTO http://www.example.org/
++</pre>
++   <p>
++    Sie bewirken damit das gleiche wie mit der Anweisung <q>Location:</q> im Kopfteil:
++   </p>
++<pre>
++Content-Type: text/plain<br>Location: http://www.example.org/
++</pre>
++  <p>
++   Beachten Sie, dass diese Anweisung wirkungslos ist, wenn das CGI-Skript durch einen HTTP-Server angesprochen wird.
++  </p>
++ </body>
++</html>
+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
[email protected]@ -0,0 +1,146 @@
++ABORT		Sofort beenden
++ACCESSKEY	ffne Zugangstasten-Men端
++ADD_BOOKMARK	Lege f端r aktuelle Seite Lesezeichen an
++ALARM		Alarm einrichten
++BACK		Schliee aktuellen Puffer und kehre zu dem im Stapel darunterliegenden zur端ck
++BEGIN		Gehe zur ersten Zeile
++BOOKMARK	Lesezeichen ansehen
++CENTER_H	Um Cursor herum horizontal zentrieren
++CENTER_V	Um Cursor herum vertikal zentrieren
++CHARSET 	ndere die Zeichenkodierung f端r das aktuelle Dokument
++CLOSE_TAB	Schliee Reiter
++CLOSE_TAB_MOUSE Schliee Reiter bei Mauszeiger
++COMMAND 	Rufe w3m Funktion(en) auf
++COOKIE		Cookie-Liste ansehen
++DEFAULT_CHARSET ndere die Voreinstellung f端r die Zeichenkodierung
++DEFINE_KEY	Definiere eine Verbindung zwischen einer Tastenkombination und einem Kommando
++DELETE_PREVBUF	L旦sche vorherigen Puffer (haupts辰chlich f端r lokale CGI-Skripte)
++DICT_WORD	F端hre eine W旦rterbuch-Funktion aus (siehe README.dict)
++DICT_WORD_AT	Benutze W旦rterbuch f端r Wort unter Cursor
++DISPLAY_IMAGE	Starte das Laden und die Erstellung von Bildern erneut
++DOWN		Scrolle den Anzeigebereich eine Zeile abw辰rts
++DOWNLOAD	Dokument-Quellcode speichern
++DOWNLOAD_LIST	Die bersicht heruntergeladener Dateien zeigen
++EDIT		Bearbeite lokales Quelldokument
++EDIT_SCREEN	Bearbeite eine Kopie des verarbeiteten Dokuments
++END		Gehe zur letzten Zeile
++EXEC_SHELL	F端hre 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		ffne 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-bersicht
++HISTORY 	Chronik aufgesuchter Dokumente
++INFO		Zeige Informationen 端ber dieses Dokument
++INTERRUPT	w3m zum Hintergrundprozess machen
++ISEARCH 	Inkrementelle Suche vorw辰rts
++ISEARCH_BACK	Inkrementelle Suche r端ckw辰rts
++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	ffne Men端 mit den Link-Elementen
++LIST		Zeige alle referenzierten URLs
++LIST_MENU	ffne Men端 mit aufsuchbaren Hyperlinks
++LOAD		ffne lokale Datei in einem neuen Puffer
++MAIN_MENU	ffne Men端
++MARK		Setze/L旦sche 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		ffne Men端
++MENU_MOUSE	ffne Men端 beim Mauszeiger
++MOUSE_TOGGLE	Schalte Mausbedienung an oder ab
++MOVE_DOWN	Cursor abw辰rts
++MOVE_DOWN1	Cursor abw辰rts; am Rand gleitend bewegen
++MOVE_LEFT	Cursor nach links
++MOVE_LEFT1	Cursor nach links; am Rand gleitend bewegen
++MOVE_LIST_MENU	ffne Men端 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辰rts
++MOVE_UP1	Cursor aufw辰rts; am Rand gleitend bewegen
++MSGS		Zeige Fehlermeldungen an
++NEW_TAB 	ffne neuen Reiter (mit aktuellem Dokument)
++NEXT		Schalte zum n辰chsten Puffer
++NEXT_DOWN	Gehe abw辰rts zum n辰chsten Hyperlink
++NEXT_HALF_PAGE	Scrolle eine halbe Seite abw辰rts
++NEXT_LEFT	Gehe zum n辰chsten Hyperlink links
++NEXT_LEFT_UP	Gehe zum n辰chsten Hyperlink links oder oberhalb
++NEXT_LINK	Gehe zum n辰chsten Hyperlink
++NEXT_MARK	Gehe zur n辰chsten Markierung
++NEXT_PAGE	Eine Seite abw辰rts
++NEXT_RIGHT	Gehe zum n辰chsten Hyperlink rechts
++NEXT_RIGHT_DOWN	Gehe zum n辰chsten Hyperlink rechts oder unterhalb
++NEXT_TAB	Schalte zum n辰chsten Reiter
++NEXT_UP		Gehe zum n辰chsten Hyperlink oberhalb
++NEXT_VISITED	Gehe zum n辰chsten besuchten Hyperlink
++NEXT_WORD	Gehe zum n辰chsten Wort
++NOTHING 	Tue nichts
++NULL		Tue nichts
++OPTIONS 	Zeige Einstellungen f端r nderungen
++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 Ausgabe an
++PIPE_SHELL	F端hre Shell-Befehl aus und zeige Ausgabe an
++PREV		Schalte zum vorherigen Puffer
++PREV_HALF_PAGE	Scrolle eine halbe Seite aufw辰rts
++PREV_LINK	Gehe zum vorangegangen Hyperlink
++PREV_MARK	Gehe zur vorherigen Markierung
++PREV_PAGE	Eine Seite aufw辰rts
++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辰tigungsfrage beenden
++READ_SHELL	F端hre Shell-Befehl aus und zeige Ausgabe an
++REDO		Den letzten R端cknahmebefehl zur端cknehmen
++REDRAW		Bildschirmanzeige neu aufbauen
++REG_MARK	Zu einem Muster passenden Zeichenfolgen 端berall 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辰rts
++SEARCH_BACK	Suche r端ckw辰rts
++SEARCH_FORE	Suche vorw辰rts
++SEARCH_NEXT	Setze Suche vorw辰rts fort
++SEARCH_PREV	Setze Suche r端ckw辰rts fort
++SELECT		Zeige Puffferstapel-bersicht
++SELECT_MENU	ffne Puffferstapel-Men端
++SETENV		Setze Umgebungsvariable
++SET_OPTION	Setze Option
++SHELL		F端hre 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 端bermitteln
++SUSPEND 	w3m zum Hintergrundprozess machen
++TAB_GOTO	ffne das angegebene Dokument in einem neuen Reiter
++TAB_GOTO_RELATIVE	ffne 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	ffne das Reiter-Auswahl-Men端
++TAB_MOUSE	W辰hle per Maus Reiter aus
++TAB_RIGHT	Einen Reiter weiter nach rechts gehen
++UNDO		Nimm die letzte Cursorbewegung zur端ck
++UP		Scrolle den Anzeigebereich eine Zeile aufw辰rts
++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辰rts
++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
[email protected]@ -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" 
++.SH NAME
++w3m \- Ein auf Texte ausgerichtetes Programme zur Anzeige von Dateien und
++Datenstr旦men 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==0 .nr N 10
++.\" Just in case these number registers aren't set yet...
++.if  \nD==0 .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. Entsprechende
++Dateien werden beim Aufruf als Argument angegeben oder an der
++Standardeingabe als Datenstrom 端bernommen. Mit \fIw3m\fP kann sich der Benutzer
++端berdies durch Verzeichnisb辰ume bewegen.
++
++\fIw3m\fP arbeitet mit Reitern (Registerkarten, Tabs) und Puffern, was einen
++einfachen Wechsel zwischen geladenen Inhalten erlaubt. Wenn die Erweiterung
++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端chen nicht gen端gt, reicht ein einzelnes Kommando, um die Ziel\-URL
++einem grafischen Browser zu 端bergeben.
++
++Um nach Start des Programms Hilfe zu den Optionen zu erhalten, dr端cken 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 relativen
++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 vorgesehen
++sein (beispielsweise durch die Option \fB\-v\fP, siehe unten), gibt das Programm
++nur Benutzungshinweise aus.
++.SH OPTIONEN
++Vor Befehlszeilen\-Optionen steht das \(lq\-\(rq Zeichen einzeln, ihnen kann
++ein Argument folgen.
++.SS "Allgemeine Optionen"
++.TP 
++\fB\-B\fP
++starte mit einer Ansicht aller Lesezeichen (wenn kein anderes Zielobjekt
++angegeben ist)
++.TP 
++\fB\-M\fP
++monochrome Anzeige
++.TP 
++\fB\-no\-mouse\fP
++Mausfunktion aus
++.TP 
++\fB\-num\fP
++zeige Zeilennummern an
++.TP 
++\fB\-N\fP
++verteile die 端bergebenen Argumente unter Reitern. Standardm辰ig w端rde ein
++Stapel von Puffern benutzt
++.TP  
++\fB\-ppc \fP\fInum\fP
++Weite von \fInum\fP Bildpunkten pro Zeichen, einstellbar von 4.0 bis 32.0,
++standardm辰ig 8.0. Gr旦ere Werte machen Tabellen enger. (Implementierung
++unklar)
++.TP 
++\fB\-ppl \fP\fInum\fP
++H旦he von \fInum\fP Bildpunkten pro Linie, einstellbar von 4.0 bis
++64.0. (Implementierung unklar)
++.TP 
++\fB\-title\fP, \fB\-title=TERM\fP
++verwende den Puffernamen auch als Titel des Terminalfensters. Soweit TERM
++eingegeben wurde, konfiguriert dieser Wert den Stil des Titels
++.TP 
++\fB\-v\fP
++begr端e den Benutzer mit einer eingebauten Seite (wenn kein anderes
++Zielobjekt angegeben ist)
++.TP 
++\fB\-W\fP
++wechsle zwischen umlaufendem und nicht umlaufendem Suchen
++.TP 
++\fB\-X\fP
++initialisiere nach Verlassen des Programms das Terminal nicht neu
++.TP 
++\fB+\fP\fIZahl\fP
++gehe zu Zeile \fIZahl\fP; wirkt nur, wenn \fIZahl\fP gr旦er ist als die im
++Terminal verf端gbare Zeilenzahl
++.SS Browser\-Optionen
++.TP 
++\fB\-cols \fP\fInum\fP
++bei f端r die Standardausgabe bestimmten Inhalten, nimm bei der Umsetzung von
++HTML eine L辰nge von \fInum\fP Zeichen pro Zeile
++.TP 
++\fB\-cookie\fP, \fB\-no\-cookie\fP
++verwende gespeicherte Cookies und akzeptiere neue. Oder tue weder das eine
++noch das andere
++.TP 
++\fB\-F\fP
++verarbeite Frames
++.TP 
++\fB\-graph\fP, \fB\-no\-graph\fP
++bei der Umsetzung von Tabellen und Frames grafische Zeichen verwenden oder
++nicht verwenden
++.TP 
++\fB\-header \fP\fIZeichenkette\fP
++f端ge \fIZeichenkette\fP der HTTP(S)\-Anfrage an. Diese muss der Kopfdaten\-Syntax
++\f(CWVariable: Wert\fP entsprechen
++.TP 
++\fB\-m\fP
++stelle eine Usenet\-Nachricht entsprechend \(lqContent\-type\(rq in den
++Kopfdaten dar
++.TP 
++\fB\-no\-proxy\fP
++verwende keinen Proxy
++.TP 
++\fB\-post \fP\fIDatei\fP
++verwende die Methode POST, um in \fIDatei\fP hinterlegte Daten
++hochzuladen. Hierbei wird die Syntax \f(CWvar1=wert1[&var2=wert2]\fP erwartet
++.TP 
++\fB\-4\fP
++nur IPv4. Entspricht dns_order=4 in der Konfigurationsdatei
++.TP 
++\fB\-6\fP
++nur IPv6. Entspricht dns_order=6 in der Konfigurationsdatei
++.SS Textbetrachter\-Optionen
++.TP 
++\fB\-l \fP\fInum\fP
++Anzahl der Zeilen, die zwischengespeichert werden, wenn Text per
++Standardeingabe 端bergeben wurde. (Voreinstellung ist 10000)
++.TP 
++\fB\-r\fP
++verarbeite spezielle Escape\-Zeichen (beispielsweise ANSI\-Escape\-Zeichen oder
++nroff\-R端ckw辰rtsschritte f端r fette und unterstrichene Zeichen) nicht, sondern
++zeige sie stattdessen mittels Caret\-Notation.
++.TP 
++\fB\-s\fP
++mehrere leere Zeilen werden bis auf eine gel旦scht
++.TP 
++\fB\-t\fP \fInum\fP
++ber端cksichtige Tab\-Zeichen so, dass Spalten mit einer Weite von \fInum\fP
++Zeichen entstehen
++.SS "Datenart\- und Datenkodierungs\-Optionen"
++.TP 
++\fB\-I \fP\fIcharset\fP
++zu benutzende Zeichenkodierung f端r erhaltene Daten
++.TP 
++\fB\-O \fP\fIcharset\fP
++zu benutzende Zeichenkodierung f端r auszugebende Daten
++.TP 
++\fB\-T \fP\fITyp\fP
++zu benutzender MIME\-Typ f端r erhaltenen Daten
++.SS "Optionen zur Datenausgabe, mit sofortigem Verlassen des Programms"
++.TP 
++\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 端bergeben wird.
++.TP 
++\fB\-dump_source\fP
++leite den Seitenquelltext der Standardausgabe zu
++.TP 
++\fB\-dump_head\fP
++leite die Antwort einer HEAD\-Anfrage f端r eine URL der Standardausgabe zu
++.TP 
++\fB\-dump_both\fP
++leite Antwort auf HEAD\-Anfrage und Seitenquelltext der Standardausgabe zu
++.TP 
++\fB\-dump_extra\fP
++leite Antwort auf HEAD\-Anfrage, Seitenquelltext und Extrainformation der
++Standardausgabe zu
++.TP 
++\fB\-help\fP
++zeige eine Zusammenfassung verf端gbarer Funktionen und Befehlszeilen\-Optionen
++.TP 
++\fB\-show\-option\fP
++zeige alle zur Konfiguration verf端gbaren Optionen
++.TP 
++\fB\-version\fP
++gibt die Version von \fIw3m\fP aus
++.SS "Optionen, die Standards f端r Einstellungen und Datenquellen auer Kraft setzen"
++.TP 
++\fB\-bookmark \fP\fIDatei\fP
++benutze anstelle der Standarddatei bookmark.html f端r Lesezeichen die Datei
++\fIDatei\fP
++.TP 
++\fB\-config \fP\fIDatei\fP
++benutze \fIDatei\fP anstelle der Standardkonfigurationsdatei
++.TP 
++\fB\-debug\fP
++BITTE NICHT BENUTZEN
++.TP 
++\fB\-o \fP\fIOption=Wert\fP
++arbeite mit einer Konfiguration, bei der die Einstellung \fIOption\fP mit
++\fIWert\fP belegt ist. Ohne \fIOption=Wert\fP gleichwertig mit \fB\-show\-option\fP
++.TP 
++\fB\-reqlog\fP
++Protokolliere Header der HTTP\-Kommunikation in Datei \f(CW~/.w3m/request.log\fP
++.SH BEISPIELE	
++.SS "Verwendung als Textbetrachter"
++.TP 
++zwei HTML\-Fragmente zusammengef端gt anzeigen
++.EX
++$ cat header.html footer.html | w3m \-T text/html
++.EE
++.TP 
++zwei Dateien unter Reitern einander gegen端berstellen
++.EX
++$ w3m \-N config.old config
++.EE
++.SS "browser\-artige Verwendung"
++.TP 
++zeige Internet\-Inhalt in monochromem Terminal
++.EX
++$ w3m \-M http://w3m.sourceforge.net
++.EE
++.TP 
++zeige eingebettete Grafiken an
++.EX
++$ w3m \-o auto_image=TRUE http://w3m.sourceforge.net
++.EE
++.TP 
++zeige Inhalt aus dem Usenet
++.EX
++$ w3m \-m nntp://news.aioe.org/comp.os.linux.networking
++.EE
++.TP 
++mit der POST\-Methode Daten f端r eine URL hochladen 
++.EX
++$ w3m \-post \- http://example.com/form.php <<<'a=0&b=1'
++.EE
++.SS "filterartige Verwendung"
++.TP 
++konvertiere eine HTML\-Datei in reinen Text von bestimmter Zeilenl辰nge
++.EX
++$ w3m \-cols 40 foo.html > foo.txt
++.EE
++.TP 
++端bergib den Bestand an Lesezeichen mit zugeh旦rigen Links als reinen Text einer Datei.
++.EX
++$ w3m \-B \-o display_link_number=1 > out.txt
++.EE
++.TP 
++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 
++begr端e 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 das
++Programm ohne Zielobjekt aufgerufen wurde.
++.SH DATEIEN
++.TP 
++\f(CW~/.w3m/bookmark.html\fP
++voreingestellte Datei f端r Lesezeichen
++.TP 
++\f(CW~/.w3m/config\fP
++benutzerdefinierte Konfigurationsdatei; gegen端ber \f(CW/etc/w3m/config\fP
++vorrangig
++.TP 
++\f(CW~/.w3m/cookie\fP
++Ablageort f端r Cookies; wird beim Verlassen des Programms geschrieben und
++beim Aufruf gelesen
++.TP 
++\f(CW~/.w3m/history\fP
++Chronik besuchter Seiten und URLs
++.TP 
++\f(CW~/.w3m/keymap\fP
++benutzerdefinierte Tastaturbelegung, setzt standardm辰ige Belegung auer
++Kraft
++.TP 
++\f(CW~/.w3m/mailcap\fP
++Konfigurationsdatei f端r Programme zur externen Anzeige
++.TP 
++\f(CW~/.w3m/menu\fP
++benutzerdefiniertes Men端; vorrangig gegen端ber Standardmen端
++.TP 
++\f(CW~/.w3m/mime.types\fP
++Datei mit MIME\-Typen
++.TP 
++\f(CW~/.w3m/mouse\fP
++benutzerdefinierte Mauseinstellungen
++.TP 
++\f(CW~/.w3m/passwd\fP
++Datei mit Nutzerkonto\-Passwort\-Liste
++.TP 
++\f(CW~/.w3m/pre_form\fP
++.\" .TP
++.\" .I $~/.w3m/urimethodmap
++.\" ???
++enth辰lt vordefinierte Werte f端r wiederkehrende HTML\-Formulare
++.SH "SIEHE AUCH"
++README und Beispieldateien finden Sie im Dokumentationsverzeichnis Ihrer
++\fIw3m\fP\-Installation. Aktuelle Informationen zu \fIw3m\fP finden Sie auf 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辰gen zur Verbesserung des
++Programms beigetragen.
++.SH AUTOR
++.UR [email protected]
++Akinori ITO
++.UE
++Die deutsche bersetzung wurde 2016 von
++.UR [email protected]
++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
[email protected]@ -176,7 +176,7 @@ w3m
+ 保存します.画像を保存する場合は ESC I です.
+ <p>
+ <dt>プロキシの設定はどうするの?
+-<dd>環境変数 HTTP_proxy を設定するか,"o" コマンドのオプション設定パネル
++<dd>環境変数 HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY, FTP_PROXY を設定するか,"o" コマンドのオプション設定パネル
+ で設定します.例えば proxy.hogege.com というホストの 8000番ポートを
+ 利用する場合,
+ <p>
+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
[email protected]@ -51,15 +51,9 @@ w3m 
+ <dt>-l 行数
+ <dd>標準入力の内容を表示するときに保存される最大行数を指定す
+ る.デフォルトは 10000.
+-<dt>-s
+-<dd>Shift_JIS コードで表示する.
+-<dt>-e
+-<dd>EUC コードで表示する.
+-<dt>-j
+-<dd>JIS(ISO-2022-JP) コードで表示する.
+-<dt>-O e|s|j|N|m|n
++<dt>-O 文字コード
+ <dd>表示に用いる文字コードを指定する.
+-<dt>-I e|s
++<dt>-I 文字コード
+ <dd>入力文書の文字コードを指定する.
+ <dt>-T タイプ
+ <dd>表示する文書のタイプを指定する.この指定がない場合,ファイル
[email protected]@ -89,7 +83,7 @@ HTML
+ <dd>カラー表示をしない.
+ <dt>-F
+ <dd>フレームを自動表示する.
+-<dt>-S
++<dt>-s
+ <dd>連続する空行を1行にまとめて表示する.
+ <dt>-X
+ <dd>w3m終了時に,以前の画面に戻らない.
[email protected]@ -211,9 +205,9 @@ HTML文
+ <TR><TD>F<TD>&lt;FRAMESET&gt;を含む文書を表示しているときに,&lt;FRAME&gt;
+ タグの指す複数の文書を1つの文書に変換して表示します.
+ <TR><TD>M<TD>現在見ているページを,外部ブラウザを使って表示します.
+-2M, 3M で2番目と3番目のブラウザを使います.
++2M, 3M, ..., 9M で2番目,3番目,9番目のブラウザを使います.
+ <TR><TD>ESC M<TD>現在のリンク先を,外部ブラウザを使って表示します.
+-2ESC M, 3ESC M で2番目と3番目のブラウザを使います.
++2ESC M, 3ESC M, ..., 9ESC M で2番目,3番目,9番目のブラウザを使います.
+ </table>
+ 
+ <H3>ファイルとURL関係の操作</H3>
[email protected]@ -349,9 +343,9 @@ Lynx
+ <TR><TD>F<TD>&lt;FRAMESET&gt;を含む文書を表示しているときに,&lt;FRAME&gt;
+ タグの指す複数の文書を1つの文書に変換して表示します.
+ <TR><TD>M<TD>現在見ているページを,外部ブラウザを使って表示します.
+-2M, 3M で2番目と3番目のブラウザを使います.
++2M, 3M, ..., 9M で2番目,3番目,9番目のブラウザを使います.
+ <TR><TD>ESC M<TD>現在のリンク先を,外部ブラウザを使って表示します.
+-2ESC M, 3ESC M で2番目と3番目のブラウザを使います.
++2ESC M, 3ESC M, ..., 9ESC M で2番目,3番目,9番目のブラウザを使います.
+ </table>
+ 
+ <H3>ファイルとURL関係の操作</H3>
[email protected]@ -489,8 +483,7 @@ w3m
+ w3mを使えば,HTTPサーバなしでCGIスクリプトを起動することができます.
+ このとき,w3mがサーバのふりをしてスクリプトを起動し,その出力を
+ 読みこんで表示するわけです.
+-<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">ブックマークの登録</a>と
+-<a href="file:///$LIB/w3mhelperpanel?mode=panel">外部ビューアの編集</a>
++ブックマークの登録と外部ビューアの編集
+ は,local CGIのスクリプトとして実現されています.
+ local CGIを使えば,w3mを汎用のフォーム入力インタフェースとして
+ 使うことができます.
+diff --git a/doc-jp/README b/doc-jp/README
+index 074766f..e5e59b1 100644
+--- a/doc-jp/README
++++ b/doc-jp/README
[email protected]@ -122,7 +122,6 @@ w3m 
+ 	東北大学病院
+ 	[email protected]
+ 
+-ご意見,ご感想をMLまでお寄せください.
+-	[email protected] (日本語)
+-	[email protected] (英語)
++ご意見,ご感想をお寄せください.
+ 	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
[email protected]@ -25,9 +25,9 @@ SSL 
+ 
+     ssl_forbid_method
+         使わないSSLメソッドのリスト(2: SSLv2, 3: SSLv3, t: TLSv1)
+-        (デフォルトは<NULL>).
++        (デフォルトは2, 3).
+     ssl_verify_server ON/OFF
+-        SSLのサーバ認証を行う(デフォルトはOFF).
++        SSLのサーバ認証を行う(デフォルトはON).
+     ssl_cert_file ファイル名
+         SSLのクライアント用PEM形式証明書ファイル(デフォルトは<NULL>).
+     ssl_key_file ファイル名
[email protected]@ -85,6 +85,9 @@ SSL 
+ #
+ # certdata2pem.rb
+ 
++if RUBY_VERSION>="1.9"
++  Encoding.default_external="UTF-8"
++end
+ while line = $stdin.gets
+   next if line =~ /^#/
+   next if line =~ /^\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
[email protected]@ -1,7 +1,7 @@
+ ABORT		確認せずにw3mを終了します
+ ACCESSKEY	Accesskey メニューを立ち上げます
+-ALARM		アラームを設定します
+ ADD_BOOKMARK	現在見ているページをブックマークに追加します
++ALARM		アラームを設定します
+ BACK		一つ前のバッファを表示します
+ BEGIN		文書のいちばん上の行に移動します
+ BOOKMARK	ブックマークを読み込みます
[email protected]@ -36,7 +36,6 @@ GOTO_RELATIVE	
+ HELP		ヘルプファイルを表示します
+ HISTORY                URL履歴を表示します
+ INFO		現在の文書に関する情報を表示します
+-INIT_MAILCAP   mailcap を再読み込みします(主に local-CGI 用)
+ INTERRUPT	文書の読み込みを中断します
+ ISEARCH		ファイルの末尾にむかってインクリメンタルサーチします
+ ISEARCH_BACK	ファイルの先頭にむかってインクリメンタルサーチします
[email protected]@ -72,6 +71,7 @@ MSGS        
+ NEW_TAB		新しいタブを開きます
+ NEXT		次のバッファを表示します
+ NEXT_DOWN      カーソルの下側にあるリンクに移動します
++NEXT_HALF_PAGE	半ページ下にスクロールします
+ NEXT_LEFT      カーソルの左側にあるリンクに移動します
+ NEXT_LEFT_UP   カーソルの左側(無ければ前の行以前)にあるリンクに移動します
+ NEXT_LINK	次のリンクに移動します
[email protected]@ -92,6 +92,7 @@ PEEK_LINK      
+ PIPE_BUF       バッファの内容をパイプに渡します
+ PIPE_SHELL	コマンドを実行し,結果を読みこみながら表示します
+ PREV		前のバッファを表示します
++PREV_HALF_PAGE	半ページ上にスクロールします
+ PREV_LINK	前のリンクに移動します
+ PREV_MARK	一つ前のマークに移動します
+ PREV_PAGE	前のページを表示します
+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
[email protected]@ -0,0 +1,60 @@
++siteconf: サイト別カスタマイズ
++
++siteconf は、 URL のパターンと、それに紐付けられた設定から成ります。
++siteconf を使うと、サイト毎に文字コードを指定して "decode_url"
++の出力を改善したり、 Google のリダイレクタを迂回して性能や
++プライバシーを向上させたりすることができます。
++
++デフォルトでは siteconf は ~/.w3m/siteconf から読み込まれます。
++
++===== 構文 =====
++
++url <url>|/<re-url>/|[email protected]<re-url>@i [exact]
++substitute_url "<destination-url>"
++url_charset <charset>
++no_referer_from on|off
++no_referer_to on|off
++
++後ろの方に書かれたものが優先されます。
++
++===== 例 =====
++
++url "https://twitter.com/"
++substitute_url "https://mobile.twitter.com/"
++
++twitter.com をモバイルサイトに転送します。
++
++url "http://your.bookmark.net/"
++no_referer_from on
++
++your.bookmark.net から張ったリンクを辿る際に、 HTTP referer を
++送らないようにします。
++
++url "http://www.google.com/url?" exact
++substitute_url "file:///cgi-bin/your-redirector.cgi?"
++
++Google のリダイレクタを local CGI に転送します。
++
++url /^http:\/\/[a-z]*\.wikipedia\.org\//
++url_charset utf-8
++
++同時に "decode_url" オプションをオンにすると、 Wikipedia への
++リンクを UTF-8 としてデコードして表示します。
++
++===== 正規表現について =====
++
++次の正規表現はいずれも同じ意味を表します。
++
++/http:\/\/www\.example\.com\//
++m/http:\/\/www\.example\.com\//
[email protected]://www\.example\.com/@
++m!http://www\.example\.com/!
++
++最後に 'i' 修飾子を付けると、大文字小文字を区別せずに照合を行います。
++例えば、 [email protected]^http://www\.example\.com/abc/@i は以下のいずれとも一致します。
++
++http://www.example.com/abc/
++http://www.example.com/Abc/
++http://www.example.com/ABC/
++
++ただし、ホスト名の部分は常に小文字に変換してから比較します。
+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
[email protected]@ -46,7 +46,7 @@ keymap	-	PREV_PAGE
+ keymap	.	RIGHT
+ keymap	/	SEARCH
+ keymap	:	MARK_URL
+-keymap	;	MARK_WORD
++keymap	";"	MARK_WORD
+ keymap	<	SHIFT_LEFT
+ keymap	=	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
[email protected]@ -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
[email protected]@ -39,19 +39,10 @@ text/plain
+ 標準入力の内容を表示するときに保存される最大行数を指定する.
+ デフォルトは10000.
+ .TP
+-.B \-s
+-Shift_JISコードで表示する.
+-.TP
+-.B \-e
+-EUCコードで表示する.
+-.TP
+-.B \-j
+-JIS (ISO-2022-JP)コードで表示する.
+-.TP
+-.BI \-O\  e|s|j|N|m
++.BI \-O\  文字コード
+ 表示に使う文字コードを指定する.
+ .TP
+-.BI \-I\  e|s
++.BI \-I\  文字コード
+ 入力文書の文字コードを指定する.
+ .TP
+ .BI \-T\  タイプ
[email protected]@ -90,7 +81,7 @@ Bookmark 
+ .B \-F
+ フレームを自動表示する.
+ .TP
+-.B \-S
++.B \-s
+ 連続する空行を1行にまとめて表示する.
+ .TP
+ .B \-X
[email protected]@ -327,13 +318,13 @@ URL
+ .TP
+ .B M
+ 現在見ているページを,外部ブラウザを使って表示します.
+-.B 2M, 3M
+-で2番目と3番目のブラウザを使います.
++.B 2M, 3M, ..., 9M
++で2番目,3番目,9番目のブラウザを使います.
+ .TP
+ .B "ESC M"
+ 現在のリンク先を,外部ブラウザを使って表示します.
+-.B "2ESC M", "3ESC M"
+-で2番目と3番目のブラウザを使います.
++.B "2ESC M", "3ESC M", ..., "9ESC M"
++で2番目,3番目,9番目のブラウザを使います.
+ .SS ファイルとURL関係の操作
+ .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
[email protected]@ -1,291 +1,763 @@
+-<HTML>
+-<HEAD>
+-<TITLE>W3M FAQ</TITLE>
+-</HEAD>
+-<BODY>
+-<p>&nbsp;
+-<center><h1>Frequently Asked Questions and Answers about w3m</h1></center>
+-<div align=right>
+-Akinori Ito<br>
[email protected]<br>
+-Corrected by Tom Berger &lt;[email protected]&gt;
+-</div>
+-<p>
+-<b><center><font size=+1><u><a name="index">Index</a></u></font></center></b>
+-<p>
+-<br>
+-<ul>
+-<li><h2><a href="#general">General Questions, How to Get It, Required Environment</a></h2></li>
+-<ul>
+-<li><h3>How do I pronounce &quot;w3m&quot;?</h3>
+-<li><h3>Why is it called &quot;w3m&quot;?</h3>
+-<li><h3>On which platforms does w3m work?</h3>
+-<li><h3>Where can I get more information about w3m?</h3>
+-<li><h3>Is there a mailing list for w3m?</h3>
+-<li><h3>Are there any binary distributions?</h3>
+-</ul>
+-<br>
+-<li><a href="#install"><h2>Compile and Install</h2></a>
+-<br>
+-<li><a href="#command"><h2>Options, Commands, Usage</h2></a>
+-<ul>
+-<li><h3>w3m quits if started without parameters. What's wrong?</h3>
+-<li><h3>w3m starts with black characters on a black screen. How do I change this?</h3>
+-<li><h3>Does w3m support colours?</h3>
+-<li><h3>Does w3m support monochrome display?</h3>
+-<li><h3>How do I shift the display?</h3>
+-<li><h3>How do I move from anchor to anchor?</h3>
+-<li><h3>Netscape displays a word red, but w3m doesn't. Why?</h3>
+-<li><h3>How do I change the colour of anchor-/image-/form links?</h3>
+-<li><h3>w3m doesn't seem to use the variable EDITOR. Why? </h3>
+-<li><h3>How do I quit a search or URL text input?</h3>
+-</ul>
+-<br>
+-<li><a href="#www"><h2>Questions about WWW usage</h2></a>
+-<ul>
+-<li><h3>How do I fill in forms with w3m?</h3>
+-<li><h3>Seems like w3m is slower than Netscape or Lynx. Why?</h3>
+-<li><h3>Loading time doesn't decrease when loading a previously seen page</h3>
+-<li><h3>How do I download a linked file?</h3>
+-<li><h3>How do I specify a proxy server?</h3>
+-<li><h3>w3m freezes when I invoke an external browser.</h3>
+-<li><h3>How do I change the default image viewer?</h3>
+-<li><h3>How do I enter a URL?</h3>
+-<li><h3>w3m appends a URL to the former one despite of having cleared the line with Ctrl-u. What to do?</h3>
+-</ul>
+-<br>
+-<li><a href="#other"><h2>Misc</a></h2>
+-<ul>
+-<li><h3>What is w3m's configuration file?</h3>
+-<li><h3>What are these w3mxxxx files in my ~/.w3m directory for?</h3>
+-</ul>
+-<br>&nbsp;
+-<br>
+-<u><h2><a name="general">General Questions, How to Get It, Required Environment</a></h2></u>
+-<br>
+-<dl>
+-<dt><h3>How do I pronounce &quot;w3m&quot;?</h3>
+-<dd>It's &quot;W-three-M&quot;. It doesn't rhyme with &quot;pteranodon&quot;.
+-<p>
+-<dt><h3>Why is it called &quot;w3m&quot;?</h3>
+-<dd>It's an abbreviation of &quot;WWW-wo-Miru&quot;, which is Japanese for
+-&quot;See the WWW&quot;. So in English the name of this browser would be
+-something like &quot;stw3&quot;.
+-<p>
+-<dt><h3>On which platforms does w3m work?</h3>
+-<dd>It runs on various versions of Unix, since version 990226 on OS/2 and since
+-version 990303 also on MS-Windows with Cygwin32.
+-<br>
+-Current versions have been confirmed to run on:
+-<ul>
+-<li>SunOS 4.1.x
+-<li>HP-UX 9.x, 10.x
+-<li>Solaris 2.5.x, 2.6, 8
+-<li>Linux 2.0.30
+-<li>FreeBSD 2.2.8, 3.1, 3.2, 4.6
+-<li>NetBSD/macppc, m68k
+-<li>EWS4800 Rel.12.2 Rev.A
+-<li>Digital UNIX: v3.2D, v4.0D
+-<li>IRIX 5.3, IRIX 6.5
+-<li>OS/2 with emx
+-<li>Windows 9x/NT with Cygwin32 b20.1
+-<li>MS-DOS with DJGPP and WATT32 packet driver
+-<li>MacOS X Server
+-<li>MacOS X 10.1, 10.2
+-</ul>
+-<dt><h3>Where can I get more information about w3m?</h3>
+-<dd>At the <a href="http://w3m.sourceforge.net/index.en.html">English w3m home page</a>.
+-<dt><h3>Is there a mailing list for w3m?</h3>
+-<dd>There is a mailing list for developpers (w3m-dev-en). Please see
+-<a href="http://w3m.sourceforge.net/index.en.html">w3m page</a>
+-for details. You may also mail your comments to <a href="mailto:[email protected]">the author</a>.
+-<dt><h3>Are there any binary distributions?</h3>
+-<dd>So far there are only binaries for the win/cygnus32 version. You can get
+-them from <a href="http://prdownloads.sourceforge.net/w3m/">here</a>.
+-Contact <a href="mailto:[email protected]">the author</a> if you want to contribute binaries for other platforms.
+-</dd>
+-</dl>
+-<br>
+-<div align=right>
+-<i>Up to <a href="#index">index</a></i>
+-</div>
+-<br>
+-<u><h2><a name="install">Compile and Install</a></h2></u>
+-No problem :-)
+-<u><h2><a name="command">Options, Commands, Usage</a></h2></u>
+-<br>
+-<dl>
+-<dt><h3>w3m quits if started without parameters. What's wrong?</h3>
+-<dd>w3m is a <b>pager</b>. Therefore it just quits when invoked without any
+-arguments. Possible arguments are:
+-<ol>
+-<li>A filename or an URL
+-<li>Pipe from standard input
+-<li>The -B option (Show bookmark file)
+-<li>The -v option (visual startup)
+-<li>From a specified HTTP_HOME or WWW_HOME variable
+-</ol>
+-<p>
+-<dt><h3>w3m starts with black characters on black background. How do I change
+-this?</h3>
+-<dd>
+-When compiled with colour support, w3m assumes a white background and therefore
+-displays black characters. 
+-<br>
+-You may either change the background colour of your terminal (e.g. with the -bg
+-option in a xterm) or take these steps:
+-<ul>
+-<li>invoke w3m with 'w3m -M' (for monochrome),
+-<li>type 'o' for getting to the options screen
+-<li><b>Mark 'Display with colour' as ON</b> and choose an arbitrary colour.
+-Click on [OK].
+-</ul>
+-<p>
+-<dt><h3>Does w3m support colours?</h3>
+-<dd>Yes. When you run './configure', answer the question
+-<p>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
++<html>
++ <head>
++   <style>
++      span.mono {
++        font-family:mono;
++      }
++    </style>
++   <meta http-equiv=content-type content="text/html;charset=US-ASCII">
++  <title>W3M FAQ</title>
++ </head>
++ <body>
++  <h1 align="center">
++   Frequently Asked Questions and Answers about w3m
++  </h1>
++  <p align="right">
++   Akinori Ito  &lt;[email protected]&gt;<br>
++   Corrected by Tom Berger &lt;[email protected]&gt;
++  </p>
++  <h2 id="index">
++   <u>
++    Index
++   </u>
++  </h2>
++  <ul>
++   <li>
++    <a href="#general">
++     <b>
++      General Questions, How to Get It, Required Environment
++     </b>
++    </a>
++   </li>
++    <ul>
++     <li>
++      <b>
++       How do I pronounce <q>w3m</q>?
++      </b>
++     </li>
++     <li>
++      <b>
++       Why is it called <q>w3m</q>?
++      </b>
++     </li>
++     <li>
++      <b>
++       On which platforms does w3m work?
++      </b>
++     </li>
++     <li>
++      <b>
++       Where can I get more information about w3m?
++      </b>
++     </li>
++     <li>
++      <b>
++       Is there a mailing list for w3m?
++      </b>
++     </li>
++     <li>
++      <b>
++       Are there any binary distributions?
++      </b>
++     </li>
++    </ul>
++   <li>
++    <a href="#install">
++     <b>
++      Compile and Install
++     </b>
++    </a>
++   </li>
++   <li>
++    <a href="#command">
++     <b>
++      Options, Commands, Usage
++     </b>
++    </a>
++   </li>
++    <ul>
++     <li>
++      <b>
++       w3m quits if started without parameters. What's wrong?
++      </b>
++     </li>
++     <li>
++      <b>
++       w3m starts with black characters on a black background. How do
++       I change this?
++      </b>
++     </li>
++     <li>
++      <b>
++       Does w3m support colors?
++      </b>
++     </li>
++     <li>
++      <b>
++       Does w3m support monochrome displays?
++      </b>
++     </li>
++     <li>
++      <b>
++       How do I shift the display?
++      </b>
++     </li>
++     <li>
++      <b>
++       How do I move between hyperlinks?
++      </b>
++     </li>
++     <li>
++      <b>
++       Graphical browsers display a word red, but w3m doesn't. Why?
++      </b>
++     </li>
++     <li>
++      <b>
++        How do I change the colors for hyperlinks, images and form fields?
++      </b>
++     </li>
++     <li>
++      <b>
++       w3m doesn't seem to use the variable EDITOR. Why?
++      </b>
++     </li>
++     <li>
++      <b>
++       How do I quit a search or URL text input?
++      </b>
++     </li>
++    </ul>
++   <li>
++    <a href="#www">
++     <b>
++      Questions about WWW usage
++     </b>
++    </a>
++   </li>
++    <ul>
++     <li>
++      <b>
++       How do I fill in forms with w3m?
++      </b>
++     </li>
++     <li>
++      <b>
++       Seems like w3m is slower than some other browsers. Why?
++      </b>
++     </li>
++     <li>
++      <b>
++       Loading time doesn't decrease when loading a previously seen
++       page.
++      </b>
++     </li>
++     <li>
++      <b>
++       How do I download a linked file?
++      </b>
++     </li>
++     <li>
++      <b>
++       How do I specify a proxy server?
++      </b>
++     </li>
++<!-- deleted, see mail dated Mon, 04 Apr 2016 20:50:27 +0900 (JST)
++from Tatsuya Kinoshita <[email protected]>
++     <li>
++      <b>
++       w3m freezes when I invoke an external browser.
++      </b>
++     </li>
++-->
++     <li>
++      <b>
++       How do I change the default image viewer?
++