aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches/020_debian.patch7351
1 files changed, 5850 insertions, 1501 deletions
diff --git a/debian/patches/020_debian.patch b/debian/patches/020_debian.patch
index 13b49aa..12fb300 100644
--- a/debian/patches/020_debian.patch
+++ b/debian/patches/020_debian.patch
@@ -60,10 +60,136 @@ index 8f443c1..5fb6581 100755
$input = "w3m-control: GOTO_LINK";
}
diff --git a/ChangeLog b/ChangeLog
-index 88358ef..f7f9a06 100644
+index 88358ef..f9e988e 100644
--- a/ChangeLog
+++ b/ChangeLog
-@@ -1,3 +1,1050 @@
+@@ -1,3 +1,1176 @@
++2016-10-09 Tatsuya Kinoshita <tats@debian.org>
++
++ * form.c:
++ Fix incorrect dereference in formUpdateBuffer when MENU_SELECT.
++ cf. https://github.com/tats/w3m/commit/ec9eb22e008a69ea9dc21fdca4b9b836679965ee
++
++2016-10-08 Tatsuya Kinoshita <tats@debian.org>
++
++ * 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 <kcwu@google.com>
++
++ * Str.c: Fix potential heap buffer corruption due to Strgrow.
++ Origin: https://github.com/tats/w3m/pull/27
++
++2016-08-29 Tatsuya Kinoshita <tats@debian.org>
++
++ * 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 <tats@debian.org>
++
++ * 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 <tats@debian.org>
++
++ * 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 <tats@debian.org>
++
++ * 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 <kcwu@google.com>
++
++ * 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 <tats@debian.org>
++
++ * 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 <tats@debian.org>
++
++ * 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 <tats@debian.org>
++
++ * file.c: Truncate large values of table attributes.
++ Bug-Debian: https://github.com/tats/w3m/issues/11
++
++2016-08-15 Tatsuya Kinoshita <tats@debian.org>
++
++ * 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 <tats@debian.org>
++
++ * file.c: Prevent segfault with malformed input type.
++ Bug-Debian: https://github.com/tats/w3m/issues/7
++
++2016-08-08 Tatsuya Kinoshita <tats@debian.org>
++
++ * Makefile.in, configure, configure.ac, scripts/w3mman/Makefile.in:
++ Install German manpages.
++
++2016-08-08 Markus Hiereth <post@hiereth.de>
++
++ * 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 <tats@debian.org>
+
+ * NEWS: Update NEWS.
@@ -1115,10 +1241,18 @@ index 88358ef..f7f9a06 100644
* [w3m-dev 04451] w3m/entity.h should be removed when `make clean'
diff --git a/Makefile.in b/Makefile.in
-index 7d692f9..8fa799e 100644
+index 7d692f9..453072d 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -150,7 +150,7 @@ parsetagx.o: html.c
+@@ -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)
+ AUXBIN_TARGETS=@AUXBIN_TARGETS@
+@@ -150,7 +151,7 @@ parsetagx.o: html.c
funcname.tab: $(DEFUNS)
(echo '#define DEFUN(x,y,z) x y';\
@@ -1127,7 +1261,20 @@ index 7d692f9..8fa799e 100644
awk '$$1 ~ /^[_A-Za-z]/ { \
for (i=2;i<=NF;i++) { print $$i, $$1} \
}' > $@.tmp
-@@ -250,7 +250,7 @@ install-po:
+@@ -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 \
+@@ -250,7 +253,7 @@ install-po:
(cd $$subdir && $(MAKE) install); \
done
@@ -1136,6 +1283,14 @@ index 7d692f9..8fa799e 100644
for dir in $(SCRIPTSUBDIRS); \
do \
(cd $$dir && $(MAKE) $(MAKE_ARGS)); \
+@@ -280,6 +283,7 @@ uninstall:
+ -$(RM) -f $(HELP_DIR)/$(HELP_TARGET)
+ -$(RM) -f $(mandir)/man1/$(MAN1_TARGET)
+ -$(RM) -f $(mandir)/ja/man1/$(MAN1_TARGET)
++ -$(RM) -f $(mandir)/de/man1/$(MAN1_TARGET)
+ -for dir in $(SCRIPTSUBDIRS); \
+ do \
+ (cd $$dir && $(MAKE) $(MAKE_ARGS) uninstall); \
diff --git a/NEWS b/NEWS
index 66e309d..c55e929 100644
--- a/NEWS
@@ -1195,7 +1350,7 @@ index 8778d80..765c996 100644
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..70e9957 100644
+index e5a0982..d34129f 100644
--- a/Str.c
+++ b/Str.c
@@ -56,7 +56,7 @@ Strnew_size(int n)
@@ -1261,6 +1416,17 @@ index e5a0982..70e9957 100644
{
if (y == NULL)
return;
+@@ -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;
@@ -278,8 +278,8 @@ void
Strchop(Str s)
{
@@ -1507,7 +1673,7 @@ index 0000000..fa0d391
+
+#endif /* W3_ALLOC_H */
diff --git a/anchor.c b/anchor.c
-index 27bbd56..2d21bfa 100644
+index 27bbd56..fa8d3eb 100644
--- a/anchor.c
+++ b/anchor.c
@@ -11,7 +11,7 @@ putAnchor(AnchorList *al, char *url, char *target, Anchor **anchor_return,
@@ -1565,7 +1731,16 @@ index 27bbd56..2d21bfa 100644
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++) {
-@@ -756,7 +756,7 @@ link_list_panel(Buffer *buf)
+@@ -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++)
+@@ -756,7 +758,7 @@ link_list_panel(Buffer *buf)
p = parsedURL2Str(&pu)->ptr;
u = html_quote(p);
if (DecodeURL)
@@ -1574,7 +1749,7 @@ index 27bbd56..2d21bfa 100644
else
p = u;
}
-@@ -787,7 +787,7 @@ link_list_panel(Buffer *buf)
+@@ -787,7 +789,7 @@ link_list_panel(Buffer *buf)
p = parsedURL2Str(&pu)->ptr;
u = html_quote(p);
if (DecodeURL)
@@ -1583,7 +1758,7 @@ index 27bbd56..2d21bfa 100644
else
p = u;
t = getAnchorText(buf, al, a);
-@@ -809,16 +809,13 @@ link_list_panel(Buffer *buf)
+@@ -809,16 +811,13 @@ link_list_panel(Buffer *buf)
p = parsedURL2Str(&pu)->ptr;
u = html_quote(p);
if (DecodeURL)
@@ -1602,7 +1777,7 @@ index 27bbd56..2d21bfa 100644
Strcat_m_charp(tmp, "<li><a href=\"", u, "\">", t, "</a><br>", p,
"\n", NULL);
a = retrieveAnchor(buf->formitem, a->start.line, a->start.pos);
-@@ -842,19 +839,13 @@ link_list_panel(Buffer *buf)
+@@ -842,19 +841,13 @@ link_list_panel(Buffer *buf)
p = parsedURL2Str(&pu)->ptr;
u = html_quote(p);
if (DecodeURL)
@@ -4642,7 +4817,7 @@ index ba33103..8d39c4b 100755
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/configure b/configure
-index 4c1bc06..9cb3074 100755
+index 4c1bc06..140f050 100755
--- a/configure
+++ b/configure
@@ -1486,11 +1486,11 @@ Optional Packages:
@@ -4763,7 +4938,7 @@ index 4c1bc06..9cb3074 100755
cat >>confdefs.h <<_ACEOF
#define DOCDIRS "$DOCDIRS"
_ACEOF
-@@ -9084,7 +9085,8 @@ _ACEOF
+@@ -9084,9 +9085,10 @@ _ACEOF
cvsver=`$AWK '\$1 ~ /Id:/ { print \$3}' $srcdir/ChangeLog`
@@ -4771,10 +4946,21 @@ index 4c1bc06..9cb3074 100755
+ 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/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
+@@ -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..3332251 100644
+index 7308fc6..320a6e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -172,7 +172,7 @@ AC_SUBST(RC_DIR)
@@ -4786,6 +4972,16 @@ index 7308fc6..3332251 100644
AC_DEFINE_UNQUOTED(DOCDIRS, "$DOCDIRS")
AC_W3M_VERSION
+@@ -181,7 +181,8 @@ scripts/Makefile scripts/dirlist.cgi \
+ scripts/w3mhelp.cgi \
+ scripts/w3mmail.cgi scripts/xface2xpm \
+ scripts/multipart/Makefile scripts/multipart/multipart.cgi \
+-scripts/w3mman/Makefile scripts/w3mman/w3mman scripts/w3mman/w3mman.1 \
++scripts/w3mman/Makefile scripts/w3mman/w3mman \
++scripts/w3mman/w3mman.1 scripts/w3mman/w3mman.de.1 \
+ scripts/w3mman/w3mman2html.cgi \
+ libwc/Makefile \
+ w3mimg/Makefile w3mimg/fb/Makefile w3mimg/x11/Makefile w3mimg/win/Makefile \
diff --git a/cookie.c b/cookie.c
index 8020f6d..705e277 100644
--- a/cookie.c
@@ -4990,6 +5186,3049 @@ index e00eb0c..d4f336a 100644
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
+@@ -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;aito@fw.ipsj.or.jp&gt; <br>korrigiert von Tom Berger &lt;tom.be@gmx.net&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 <tats@debian.org>
++ <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> heißen.
++ </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:aito@fw.ipsj.or.jp">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:aito@fw.ipsj.or.jp">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 schließt 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 weißem 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. Außerdem 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 <tats@debian.org>
++ <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
+@@ -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> aito@fw.ipsj.or.jp
++ </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 außer 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>
++ Schließe 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>
++ Schließe 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>
++ Schließe 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
@@ -5142,6 +8381,346 @@ index 0000000..72d7d45
+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
+@@ -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 außer 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 außer
++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 aito@fw.ipsj.or.jp
++Akinori ITO
++.UE
++Die deutsche Übersetzung wurde 2016 von
++.UR markus.hiereth@freenet.de
++Markus Hiereth
++.UE
++erstellt.
++
diff --git a/doc-jp/FAQ.html b/doc-jp/FAQ.html
index e16a986..86ef05a 100644
--- a/doc-jp/FAQ.html
@@ -5437,10 +9016,10 @@ index 89aacb6..a54e078 100644
.TP
.B U
diff --git a/doc/FAQ.html b/doc/FAQ.html
-index ed2a704..34da9f1 100644
+index ed2a704..ca82c67 100644
--- a/doc/FAQ.html
+++ b/doc/FAQ.html
-@@ -1,151 +1,423 @@
+@@ -1,291 +1,763 @@
-<HTML>
-<HEAD>
-<TITLE>W3M FAQ</TITLE>
@@ -5590,7 +9169,12 @@ index ed2a704..34da9f1 100644
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+ <head>
-+ <meta http-equiv=content-type content="text/html;charset=US-ASCII">
++ <style>
++ span.mono {
++ font-family:mono;
++ }
++ </style>
++ <meta http-equiv=content-type content="text/html;charset=US-ASCII">
+ <title>W3M FAQ</title>
+ </head>
+ <body>
@@ -5598,8 +9182,7 @@ index ed2a704..34da9f1 100644
+ Frequently Asked Questions and Answers about w3m
+ </h1>
+ <p align="right">
-+ Akinori Ito<br>
-+ aito@fw.ipsj.or.jp<br>
++ Akinori Ito &lt;aito@fw.ipsj.or.jp&gt;<br>
+ Corrected by Tom Berger &lt;tom.be@gmx.net&gt;
+ </p>
+ <h2 id="index">
@@ -5690,7 +9273,7 @@ index ed2a704..34da9f1 100644
+ </li>
+ <li>
+ <b>
-+ How do I move from anchor to anchor?
++ How do I move between hyperlinks?
+ </b>
+ </li>
+ <li>
@@ -5700,7 +9283,7 @@ index ed2a704..34da9f1 100644
+ </li>
+ <li>
+ <b>
-+ How do I change the color of anchor/image/form links?
++ How do I change the colors for hyperlinks, images and form fields?
+ </b>
+ </li>
+ <li>
@@ -5748,11 +9331,14 @@ index ed2a704..34da9f1 100644
+ 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 <tats@debian.org>
+ <li>
+ <b>
+ w3m freezes when I invoke an external browser.
+ </b>
+ </li>
++-->
+ <li>
+ <b>
+ How do I change the default image viewer?
@@ -5764,9 +9350,9 @@ index ed2a704..34da9f1 100644
+ </b>
+ </li>
+ <li>
-+ <b>
-+ w3m appends a URL to the former one even when I clear the line
-+ with Ctrl-u. What should I do?
++ <b>
++ w3m appends a URL to the former one even when I clear the line
++ with <span class="mono">CTRL-u</span>. What should I do?
+ </b>
+ </li>
+ </ul>
@@ -5945,25 +9531,25 @@ index ed2a704..34da9f1 100644
+ <dd>
+ <p>
+ w3m is a <b>pager</b>. Therefore it just quits when invoked
-+ without any arguments. Possible arguments are:
++ without any arguments. It keeps running
+ </p>
-+ <ol>
++ <ul>
+ <li>
-+ A filename or URL
++ with a filename or URL as argument
+ </li>
+ <li>
-+ Pipe from standard input
++ with data piped from standard input
+ </li>
+ <li>
-+ The -B option (show bookmark file)
++ when invoked with option -B to show the bookmark file
+ </li>
+ <li>
-+ The -v option (visual startup)
++ when invoked with option -v to welcome users with a built-in page
+ </li>
+ <li>
-+ A specified HTTP_HOME or WWW_HOME variable
++ with specified HTTP_HOME or WWW_HOME variable
+ </li>
-+ </ol>
++ </ul>
+ </dd>
+ <dt>
+ <b>
@@ -5978,23 +9564,23 @@ index ed2a704..34da9f1 100644
+ </p>
+ <p>
+ You may either change the background color of your terminal
-+ (e.g. with the -bg option in a xterm) or take these steps:
++ (e.g. with the -bg option in a xterm) or take these steps
+ </p>
-+ <ul>
++ <ol>
+ <li>
-+ invoke w3m with <q>w3m -M</q> (for monochrome),
++ invoke monochrome mode of w3m with <span class="mono">w3m -M</span>
+ </li>
+ <li>
-+ type <q>o</q> to get to the options screen
++ type <q>o</q> to get to the options setting panel
+ </li>
+ <li>
-+ Mark <q>Display with color</q> as <q>YES</q> and choose an
-+ arbitrary color.
++ mark <q>Display with color</q> as <q>YES</q> and choose an
++ arbitrary color
+ </li>
+ <li>
-+ Click on [OK].
++ click on [OK].
+ </li>
-+ </ul>
++ </ol>
+ </dd>
+ <dt>
+ <b>
@@ -6007,16 +9593,22 @@ index ed2a704..34da9f1 100644
+ </p>
<pre>
-Let's do some configurations. Choose config option among the list."
-+Let's do some configurations. Choose config option among the list.
-
- 1 - Baby model (no color, no menu, no mouse, no cookie, no SSL)
- 2 - Little model (color, menu, no mouse, no cookie, no SSL)
-@@ -153,139 +425,311 @@ Let's do some configurations. Choose config option among the list."
- 4 - Cookie model (color, menu, mouse, cookie, no SSL)
- 5 - Monster model (with everything; you need openSSL library)
- 6 - Customize
++ Let's do some configurations. Choose config option among the list.
+
+-1 - Baby model (no color, no menu, no mouse, no cookie, no SSL)
+-2 - Little model (color, menu, no mouse, no cookie, no SSL)
+-3 - Mouse model (color, menu, mouse, no cookie, no SSL)
+-4 - Cookie model (color, menu, mouse, cookie, no SSL)
+-5 - Monster model (with everything; you need openSSL library)
+-6 - Customize
-Which?
-+Which?
++ 1 - Baby model (no color, no menu, no mouse, no cookie, no SSL)
++ 2 - Little model (color, menu, no mouse, no cookie, no SSL)
++ 3 - Mouse model (color, menu, mouse, no cookie, no SSL)
++ 4 - Cookie model (color, menu, mouse, cookie, no SSL)
++ 5 - Monster model (with everything; you need openSSL library)
++ 6 - Customize
++ Which?
</pre>
-<p>
-with 2,3,4 or 5.
@@ -6088,6 +9680,22 @@ index ed2a704..34da9f1 100644
-<dd>Set the environment variable HTTP_PROXY or use the option setting panel
-("o" key). For example, if you want to use port 8000 of proxy.hogege.com, specify
-<p>
+-<pre>
+- http://proxy.hogege.com:8000/
+-</pre>
+-<p>
+-<dt><h3>w3m freezes when I invoke an external browser.</h3>
+-<dd>Enter w3m's option screen using the 'o' key and specify
+-<p>
+-<pre>
+- netscape %s &
+-</pre>
+-<p>
+-(if you are using netscape).
+-<p>
+-<dt><h3>How do I change the default image viewer?</h3>
+-<dd>By default w3m uses xv to view images. If you want to change it into, let's say, 'display', add the following line to ~/.w3m/mailcap or /etc/mailcap.
+-<p>
+ <p>
+ with 2, 3, 4, or 5.
+ </p>
@@ -6101,7 +9709,7 @@ index ed2a704..34da9f1 100644
+ <p>
+ Yes. You may either
+ </p>
-+ <ol>
++ <ul>
+ <li>
+ Answer the above-mentioned <q>configure</q> question with 1,
+ or
@@ -6110,10 +9718,10 @@ index ed2a704..34da9f1 100644
+ Invoke w3m with the -M option, or
+ </li>
+ <li>
-+ Type <q>o</q> within w3m to enter the options screen and turn
++ Type <q>o</q> within w3m to enter the options setting panel and turn
+ off color display mode.
+ </li>
-+ </ol>
++ </ul>
+ </dd>
+ <dt>
+ <b>
@@ -6123,24 +9731,32 @@ index ed2a704..34da9f1 100644
+ <dd>
+ <p>
+ You can shift the display by moving the cursor to the edge of
-+ the screen. You may also use the <q>&gt;</q>/<q>&lt;</q> or
-+ <q>.</q>/<q>,</q> keys.
++ the screen. You may also use the following commands
+ </p>
++ <ul>
++ <li>SHIFT_LEFT and SHIFT_RIGHT, bound to the keys <span class="mono">&gt;</span> and <span class="mono">&lt;</span></li>
++ <li>SHIFT_LEFT1 and SHIFT_RIGHT1, bound to the keys <span class="mono">.</span> and <span class="mono">,</span></li>
++ </ul>
+ <p>
+ Another idea would be adjusting the xterm with the -geometry
-+ option (e.g. something like <q>xterm -geometry 110x45 -bg white
-+ -name w3m -e w3m -B</q>).
++ option e.g. something like
+ </p>
++ <pre> xterm -geometry 110x45 -bg white -name w3m -e w3m -B</pre>
+ </dd>
+ <dt>
+ <b>
-+ How do I move from anchor to anchor?
++ How do I move between hyperlinks?
+ </b>
+ </dt>
+ <dd>
+ <p>
-+ You can move to the next anchor using TAB. ESC TAB moves the
-+ cursor to the previous anchor.
++
++ You can move to the next hyperlink
++ using <span class="mono">TAB</span>. <span class="mono">ESC
++ TAB</span> moves the cursor to the previous hyperlink. (see
++ Section <a href="MANUAL.html#Functions" target="_blank">
++ Functions and Key bindings</a> of w3m's manual)
++
+ </p>
+ </dd>
+ <dt>
@@ -6150,19 +9766,19 @@ index ed2a704..34da9f1 100644
+ </dt>
+ <dd>
+ <p>
-+ w3m doesn't support the HTML COLOR="..." attribute. It wouldn't
++ w3m doesn't support the attribute COLOR="..." of HTML. It wouldn't
+ be impossible to implement this, but I think it would make
+ documents more difficult to read.
+ </p>
+ </dd>
+ <dt>
+ <b>
-+ How do I change the color of anchor/image/form links?
++ How do I change the colors for hyperlinks, images and form fields?
+ </b>
+ </dt>
+ <dd>
+ <p>
-+ Type <q>o</q> within w3m to get the <q>options</q> screen. You
++ Type <q>o</q> within w3m to get the options panel. You
+ can change these settings there.
+ </p>
+ </dd>
@@ -6173,13 +9789,13 @@ index ed2a704..34da9f1 100644
+ </dt>
+ <dd>
+ <p>
-+ Go to the <q>options</q> screen using the <q>o</q> key. Any
-+ entry in the <q>Editor</q> field will override the environment
++ Go to the options setting panel using the <q>o</q> key. Any
++ entry in the <q>Editor</q> field overrides the environment
+ variable.
+ </p>
+ <p>
+ If you want to use the editor specified by EDITOR, blank the
-+ field and press [OK].
++ field and save the settings using the button [OK].
+ </p>
+ </dd>
+ <dt>
@@ -6189,7 +9805,7 @@ index ed2a704..34da9f1 100644
+ </dt>
+ <dd>
+ <p>
-+ Clear input text using CTRL-u and hit RETURN.
++ Clear input text using <span class="mono">CTRL-u</span> and hit <span class="mono">RETURN</span>.
+ </p>
+ </dd>
+ </dl>
@@ -6212,21 +9828,25 @@ index ed2a704..34da9f1 100644
+ <dd>
+ <p>
+ Form input fields are displayed in red (or reverse). Move the
-+ cursor to them and hit RETURN. Then,
++ cursor to them. Then, if it is
+ </p>
+ <ul>
+ <li>
-+ if it is a text input field, put in your text on the bottom
-+ line,
++ a text input field, hit <span class="mono">RETURN</span>
++ put in your text on the bottom line. Press
++ <span class="mono">RETURN</span> again
+ </li>
+ <li>
-+ if it is a radiobutton or checkbox, that item is selected,
++ a radiobutton or checkbox, pressing
++ <span class="mono">RETURN</span> changes or toggles the selection
+ </li>
+ <li>
-+ if it is a textarea, an editor is spawned,
++ a textarea, pressing
++ <span class="mono">RETURN</span> spawns an editor
+ </li>
+ <li>
-+ if it is <q>submit</q> or <q>reset</q>, well, just do it.
++ a <q>submit</q> or <q>reset</q> field,
++ the respective action is performed.
+ </li>
+ </ul>
+ </dd>
@@ -6265,8 +9885,12 @@ index ed2a704..34da9f1 100644
+ </dt>
+ <dd>
+ <p>
-+ Use <q>a</q> (or <q>d</q> with Lynx-like keybindings) or ESC RET.
-+ If you want to download an inline image, use ESC <q>I</q>.
++ Use <q>a</q> (or <q>d</q> with Lynx-like keybindings) or
++ <span class="mono">ESC RET</span>.
++ If you want to download an inline image, use
++ <span class="mono">ESC I</span>. (see
++ Section <a href="MANUAL.html#Functions" target="_blank">
++ Functions and Key bindings</a> of w3m's manual)
+ </p>
+ </dd>
+ <dt>
@@ -6277,18 +9901,13 @@ index ed2a704..34da9f1 100644
+ <dd>
+ <p>
+ Set the environment variables HTTP_PROXY, HTTPS_PROXY, GOPHER_PROXY
-+ and FTP_PROXY, or use the option setting panel (<q>o</q> key). For
++ and FTP_PROXY, or use the options setting panel (<q>o</q> key). For
+ example, if you want to use port 8000 of proxy.example.org, specify
+ </p>
- <pre>
-- http://proxy.hogege.com:8000/
-+ http://proxy.example.org:8000/
- </pre>
--<p>
--<dt><h3>w3m freezes when I invoke an external browser.</h3>
--<dd>Enter w3m's option screen using the 'o' key and specify
--<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 <tats@debian.org>
+ <dt>
+ <b>
+ w3m freezes when I invoke an external browser.
@@ -6298,21 +9917,13 @@ index ed2a704..34da9f1 100644
+ <p>
+ Enter w3m's option screen using the <q>o</q> key and specify
+ </p>
- <pre>
-- netscape %s &
-+ firefox %s &
- </pre>
--<p>
--(if you are using netscape).
--<p>
--<dt><h3>How do I change the default image viewer?</h3>
--<dd>By default w3m uses xv to view images. If you want to change it into, let's say, 'display', add the following line to ~/.w3m/mailcap or /etc/mailcap.
--<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>
+ How do I change the default image viewer?
@@ -6322,10 +9933,11 @@ index ed2a704..34da9f1 100644
+ <p>
+ By default w3m uses xv to view images. If you want to change it
+ into, let's say, <q>display</q>, add the following line to
-+ ~/.w3m/mailcap or /etc/mailcap.
++ ~/.w3m/mailcap or /etc/mailcap:
+ </p>
<pre>
- image/*; display %s
+-image/*; display %s
++ image/*; display %s
</pre>
-<p>
-You can specify external viewers of other file types as well:
@@ -6334,9 +9946,12 @@ index ed2a704..34da9f1 100644
+ You can specify external viewers of other file types as well:
+ </p>
<pre>
- image/*; display %s
- application/postscript; ghostview %s
- application/x-dvi; xdvi %s
+-image/*; display %s
+-application/postscript; ghostview %s
+-application/x-dvi; xdvi %s
++ image/*; display %s
++ application/postscript; ghostview %s
++ application/x-dvi; xdvi %s
</pre>
-<dt><h3>How do I enter a URL?</h3>
-<dd>Type SHIFT-U
@@ -6383,13 +9998,13 @@ index ed2a704..34da9f1 100644
+ </dt>
+ <dd>
+ <p>
-+ Type SHIFT-u
++ Type <span class="mono">U</span>
+ </p>
+ </dd>
+ <dt>
+ <b>
+ w3m appends a URL to the former one even when I clear the line
-+ with CTRL-u. What should I do?
++ with <span class="mono">CTRL-u</span>. What should I do?
+ </b>
+ </dt>
+ <dd>
@@ -6418,12 +10033,18 @@ index ed2a704..34da9f1 100644
+ <p>
+ It is ~/.w3m/config.
+ </p>
++
+ <p>
-+ With this file, you can adjust w3m's behavior by changing the
-+ values of options whose effects are described in the option
++ With this file, each user can adjust w3m's behavior by changing
++ the values of options whose effects are described in the options
+ setting panel. Each line contains one option setting, consisting
+ of an option name and its value with a space as a separator.
+ </p>
++
++ <p>Without a user-specific configuration file, w3m honours
++ the system wide configuration file /etc/w3m/config.
++ </p>
++
+ </dd>
+ <dt>
+ <b>
@@ -6497,10 +10118,10 @@ index b8f5b94..7f7ae2b 100644
From: "OMAE, jun" <jun-o@osb.att.ne.jp>
diff --git a/doc/MANUAL.html b/doc/MANUAL.html
-index aff0189..44379e9 100644
+index aff0189..f0710a7 100644
--- a/doc/MANUAL.html
+++ b/doc/MANUAL.html
-@@ -1,508 +1,2207 @@
+@@ -1,535 +1,2424 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
@@ -6536,24 +10157,20 @@ index aff0189..44379e9 100644
-
-Command line usage is
-<p>
-+ <head>
-+ <meta http-equiv=content-type content="text/html;charset=US-ASCII">
-+ <title>
-+ w3m manual
-+ </title>
-+ </head>
-+ <body>
-+ <!--
-+Todo:
-+words anchor, link, hyperlink are used with the meaning link. Decide which one shall be prefered and used throughout the documentation
-+-->
-+ <!--
-+Todo:
-+Keybindigs: Check whether there are keybindings that contain SHIFT-Letter which shall be replaced with the majuscule. Having this notation all over the documentation, this shall be noted in the introduction paragraph of section "Key bindings"
-+-->
++ <head>
++ <title>w3m manual</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" come from the latest version of manual page w3m (1)
-+-->
++insertions tagged with "mh 2016-03-29" and "mh 2016-06-11" come from the latest version of manual page w3m (1)
++ -->
++
+ <h1>w3m MANUAL</h1>
+ <div align="right">
+ Akinori Ito<br>
@@ -6573,32 +10190,36 @@ index aff0189..44379e9 100644
+ </li>
+ <li>
+ <a href="#Color">
-+ Document colors
++ Document Colors
+ </a>
+ </li>
+ <li>
-+ <a href="#Key:orig">
-+ Key bindings
++ <a href="#Functions">
++ Functions and Key bindings
+ </a>
+ </li>
++<!-- mh 2016-06-13 obsolete
+ <li>
+ <a href="#Key:lynx">
+ Lynx-like key bindings
+ </a>
+ </li>
++-->
+ <li>
+ <a href="#Mouse">
-+ Mouse operation
++ Mouse Operation
+ </a>
+ </li>
++<!-- mh 2016-06-13 obsolete
+ <li>
+ <a href="#Key:custom">
+ Key customization
+ </a>
+ </li>
++ -->
+ <li>
+ <a href="#LocalCGI">
-+ Local CGI
++ Local CGI scripts
+ </a>
+ </li>
+ </ul>
@@ -6617,15 +10238,61 @@ index aff0189..44379e9 100644
+ <p>
+ Command line usage is
+ </p>
++<!-- mh 2016-08-06 invocation adapted to w3m(1). w3m accepts several options and several targets -->
<pre>
- w3m [options] [file|URL]
+- w3m [options] [file|URL]
++ w3m [option]... [file|URL]...
</pre>
-<P>
-If you specify filenames/URLs on command line, these documents are displayed.
-If you specify nothing, w3m reads a document from standard input and display it.
-If no filename and/or URLs are specified and standard input is tty, w3m terminates
-without displaying anything.
--
++ <p>
++ If you specify filenames/URLs on the command line, these documents
++ are displayed. If you specify nothing, w3m will read a document
++ from standard input and display it. If it doesn't find a document
++ there either then normally w3m will terminate.
++ </p>
++ <p>
++ Options include:
++ </p>
++ <dl>
++<h3>General options</h3>
++ <dt>
++ -B
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ with no other target defined, use the bookmark page for startup
++ </p>
++ </dd>
++ <dt>
++ -M
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ monochrome display
++ </p>
++ </dd>
++ <dt>
++ -no-mouse
++ </dt>
++ <dd>
++ <p>
++ deactivate mouse support.
++ </p>
++ </dd>
++ <dt>
++ -num
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ display each line's number
+
-<p>
-Options are as follows:
-<dl>
@@ -6653,88 +10320,215 @@ index aff0189..44379e9 100644
-<p>
-Example:<br>
-Read HTML document from standard input and display it
-+ <p>
-+ If you specify filenames/URLs on the command line, these documents
-+ are displayed. If you specify nothing, w3m will read a document
-+ from standard input and display it. If it doesn't find a document
-+ there either then normally w3m will terminate.
-+ </p>
-+ <p>
-+ Options include:
-+ </p>
-+ <dl>
++ </p>
++ </dd>
++<!-- mh 2016-08-06 commented out. As implementation is not verified.
+ <dt>
-+ +<i>number</i>
++ -ppc <i>num</i>
+ </dt>
+ <dd>
+ <p>
-+ Move to the specified line-number.
++ 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>
-+ -t <i>width</i>
-+ <!--mh 2016-03-29 -t <i>num</i>-->
++-->
++ <dt>
++ -v
+ </dt>
+ <dd>
+ <p>
-+ Specify tab width. Default is 8.
-+ <!--mh 2016-03-29 set tab width to num columns. No effect on stdout-->
++ <!-- mh 2016-03-29-->
++ with no other target defined, welcome users with a built-in page
+ </p>
+ </dd>
+ <dt>
-+ -r
++ -W
+ </dt>
+ <dd>
+ <p>
-+ When displaying text/plain documents, prohibit emphasis using
-+ backspace. If you don't specify this option, <q>A^H_</q> is
-+ interpreted as an underlined <q>A</q> and <q>A^HA</q> as a bold
-+ <q>A</q>.
-+<!-- mh 2016-03-29
-+use caret notation to display special escape characters (such as ANSI escapes or nroff-style backspaces for bold and underlined characters) instead of processing them
-+-->
++ <!-- mh 2016-03-29-->
++ toggle wrapping mode in searches
+ </p>
+ </dd>
+ <dt>
-+ -l <i>number</i>
++ -X
+ </dt>
+ <dd>
+ <p>
-+ Specify the number of lines that should be cached while reading a
-+ text/plain document from standard input. Default is 10,000.
++ upon exit, do not reinitialize the terminal.
+ </p>
+ </dd>
+ <dt>
-+ -O <i>charset</i>
++ +<i>num</i>
++ </dt>
++ <dd>
++ <p><!--mh 2016-06-11 -->
++ go to line <i>num</i>; only effective for numbers larger
++ than the number of lines in the terminal
++ </p>
++ </dd>
++<h3>Browser options</h3>
++ <dt>
++ -cols <i>num</i>
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-06-11 -->
++ with stdout as destination; HTML is rendered to lines of <i>num</i>
++ characters
++ </p>
++ </dd>
++ <dt>
++ -cookie
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ use stored cookies and accept new ones
++ </p>
++ </dd>
++ <dt>
++ -no-cookie
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ neither use stored cookies nor accept new ones
++
++ </p>
++ </dd>
++ <dt>
++ -F
+ </dt>
+ <dd>
+ <p>
-+ Specify display/output charset.
++ <!-- mh 2016-03-29-->
++ render frames
++ </p>
++ </dd>
++ <dt>
++ -no-graph
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ do not use graphic characters for drawing HTML table and frame
++ borders
++ </p>
++ </dd>
++ <dt>
++ -header <i>string</i>
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ append <i>string</i> to the HTTP(S) request. Expected to match
++ the header syntax <span class="mono">"Variable: Value"</span>
++ </p>
++ </dd>
++ <dt>
++ -m
++ </dt>
++ <dd>
++ <p>
++ display document using <q>Internet message mode</q>. With this
++ option, w3m determines document type from header information.
++ This is useful when reading e-mail or Usenet news posts.
+<!-- mh 2016-03-29
-+user defined character encoding of output data
++Render the body of Usenet messages according to the header <q>Content-type</q>
+-->
+ </p>
+ </dd>
+ <dt>
++ -no-proxy
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-06-11-->
++ do not use proxy
++ </p>
++ </dd>
++ <dt>
++ -post <i>file</i>
++ </dt>
++ <dd>
++ <p><!--funktionierend 2016-06-28T08:22>-->
++ use POST method to upload data defined in <i>file</i>. The
++ syntax to be used is <span class="mono">"var1=value1[&amp;var2=value2]…"</span>
++ </p>
++ </dd>
++<h3>Text pager options</h3>
++ <dt>
++ -l <i>num</i>
++ </dt>
++ <dd>
++ <p>
++ <!-- mh2016-06-11-->
++ number of lines preserved internally when receiving plain text
++ from stdin (default 10,000)
++ </p>
++ </dd>
++ <dt>
++ -r
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29 -->
++ use caret notation to display special escape characters (such as
++ ANSI escapes or nroff-style backspaces for bold and underlined
++ characters) instead of processing them
++ </p>
++ </dd>
++ <dt>
++ -s
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ squeeze multiple blank lines into one
++ </p>
++ </dd>
++
++ <dt>
++ <!--mh 2016-03-29 --> -t <i>num</i>
++ </dt>
++ <dd>
++ <p>
++ <!--mh 2016-03-29--> set tab width to <i>num</i> columns. No effect on stdout
++ </p>
++ </dd>
++<h3>Data type/encoding options</h3>
++ <dt>
+ -I <i>charset</i>
+ </dt>
+ <dd>
+ <p>
-+ Specify document charset.
-+<!-- mh 2016-03-29
-+user defined character encoding of input data
-+-->
++ <!-- mh 2016-03-29-->
++ user defined character encoding of input data
+ </p>
+ </dd>
+ <dt>
-+ -T <i>type</i>
++ -O <i>charset</i>
+ </dt>
+ <dd>
+ <p>
-+ Specify document type. Without this option, document type is
-+ determined from the extension of a file. If the determination
-+ fails, the document is regarded as text/plain. For example:
++ <!-- mh 2016-03-29 -->
++ user defined character encoding of output data
+ </p>
++ </dd>
++ <dt>
++ -T <i>type</i>
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-06-11-->
++ explicit characterization of input data by MIME type. Without
++ this option, document type is determined from the extension of a
++ file. If the determination fails, the document is regarded as
++ text/plain. For example:
++ </p>
+ <p>
+ Read HTML document from standard input and display it
+ </p>
@@ -6920,101 +10714,7 @@ index aff0189..44379e9 100644
-<TR><TD WIDTH=100>ESC b<TD>Load bookmark
-<TR><TD>ESC a<TD>Add current to bookmark
-</table>
-+ </dd>
-+ <dt>
-+ -m
-+ </dt>
-+ <dd>
-+ <p>
-+ Display document using <q>Internet message mode</q>. With this
-+ option, w3m determines document type from header information.
-+ This is useful when reading e-mail or Usenet news posts.
-+<!-- mh 2016-03-29
-+Render the body of Usenet messages according to the header <q>Content-type</q>
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -v
-+ </dt>
-+ <dd>
-+ <p>
-+ Show w3m's startup page.
-+<!-- mh 2016-03-29
-+with no other target defined, welcome users with a built-in page
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -B
-+ </dt>
-+ <dd>
-+ <p>
-+ Show w3m's bookmarks page.
-+<!-- mh 2016-03-29
-+with no other target defined, use the bookmark page for startup
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -bookmark <i>file</i>
-+ </dt>
-+ <dd>
-+ <p>
-+ Specify a custom bookmarks file.
-+ </p>
-+ </dd>
-+ <dt>
-+ -M
-+ </dt>
-+ <dd>
-+ <p>
-+ Monochrome display mode.
-+<!-- mh 2016-03-29
-+monochrome display
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -F
-+ </dt>
-+ <dd>
-+ <p>
-+ Automatically render HTML frames.
-+<!-- mh 2016-03-29
-+render frames
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -s
-+ </dt>
-+ <dd>
-+ <p>
-+ Squeeze blank lines.
-+<!-- mh 2016-03-29
-+squeeze multiple blank lines into one
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -X
-+ </dt>
-+ <dd>
-+ <p>
-+ Upon exit, do not reinitialize the terminal.
-+ </p>
-+ </dd>
-+ <dt>
-+ -W
-+ </dt>
-+ <dd>
-+ <p>
-+ Toggle wrapping mode in searches.
-+<!-- mh 2016-03-29
-+toggle wrapping in searches
-+-->
-
+-
-<H3>Search</H3>
-<table>
-<TR><TD WIDTH=100>/,C-s<TD>Search forward
@@ -7023,30 +10723,7 @@ index aff0189..44379e9 100644
-<TR><TD>N<TD>Search previous
-<TR><TD>C-w<TD>Toggle wrap search mode
-</table>
-+ </p>
-+ </dd>
-+ <dt>
-+ -o <i>option</i>=<i>value</i>
-+ </dt>
-+ <dd>
-+ <p>
-+ Specify option. The available option names and values are the
-+ same as in ~/.w3m/config.
-+<!-- mh 2016-03-29
-+modify one configuration item with an explicitly given value; without option=value, equivalent to -show-option
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -cookie
-+ </dt>
-+ <dd>
-+ <p>
-+ Process cookies.
-+<!-- mh 2016-03-29
-+use stored cookies and accept new ones
-+-->
-
+-
-<H3>Mark operation</H3>
-<table>
-<TR><TD WIDTH=100>C-SPC<TD>Set/unset mark
@@ -7054,18 +10731,7 @@ index aff0189..44379e9 100644
-<TR><TD>ESC n<TD>Go to next mark
-<TR><TD>"<TD>Mark by regular expression
-</table>
-+ </p>
-+ </dd>
-+ <dt>
-+ -no-cookie
-+ </dt>
-+ <dd>
-+ <p>
-+ Don't process cookies.
-+<!-- mh 2016-03-29
-+neither use stored cookies nor accept new ones
-+-->
-
+-
-<H3>Miscellany</H3>
-<table>
-<TR><TD WIDTH=100>!<TD>Execute shell command
@@ -7077,32 +10743,7 @@ index aff0189..44379e9 100644
-<TR><TD>q<TD>Quit (with confirmation, if you like)
-<TR><TD>Q<TD>Quit without confirmation
-</table>
-+ </p>
-+ </dd>
-+ <dt>
-+ -num
-+ </dt>
-+ <dd>
-+ <p>
-+ Show line-numbers.
-+<!-- mh 2016-03-29
-+display each line's number
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -dump
-+ </dt>
-+ <dd>
-+ <p>
-+ Read document specified by URL and dump page rendered as text
-+ into standard output. A width of 80 columns is used unless option
-+ -cols sets another value.
-+
-+<!-- mh 2016-03-29
-+dump rendered page into stdout. Set implicitly when output is directed to a file or pipe
-+-->
-
+-
-<H3>Line-edit mode</H3>
-<table>
-<TR><TD WIDTH=100>C-f<TD>Move cursor forward
@@ -7118,93 +10759,14 @@ index aff0189..44379e9 100644
-<TR><TD>TAB,SPC<TD>Complete filename
-<TR><TD>RETURN<TD>Accept
-</table>
-+ </p>
-+ </dd>
-+ <dt>
-+ -cols <i>width</i>
-+ </dt>
-+ <dd>
-+ <p>
-+ Specify document width. Used with -dump option.
-+ </p>
-+ </dd>
-+ <dt>
-+ -ppc <i>count</i>
-+ </dt>
-+ <dd>
-+ <p>
-+ Specify the number of pixels per character (default 8.0). Larger
-+ values will make tables narrower.
-+<!-- mh 2016-03-29
-+width of num 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>
-+ -dump_source
-+ </dt>
-+ <dd>
-+ <p>
-+ Read document specified by URL and dump the source.
-+<!-- mh 2016-03-29
-+dump the page's source code into stdout
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -dump_head
-+ </dt>
-+ <dd>
-+ <p>
-+ Read document specified by URL and dump headers.
-+<!-- mh 2016-03-29
-+dump response of a HEAD request for a URL into stdout
-+-->
-+ </p>
-+ </dd>
-+ <dt>
-+ -dump_both
-+ </dt>
-+ <dd>
-+ <p>
-+ Read document specified by URL and dump headers and the source.
-+<!-- mh 2016-03-29
-+dump HEAD, and source code for a URL into stdout
-+-->
-
+-
-<hr>
-<a name="Key:lynx"></a>
-<h2>Lynx-like key binding</h2>
-+ </p>
-+ </dd>
-+ <dt>
-+ -dump_extra
-+ </dt>
-+ <dd>
-+ <p>
-+ Read document specified by URL and dump extra informations,
-+ headers, and the source.
-+<!-- mh 2016-03-29
-+dump HEAD, source code, and extra information for a URL into
-+stdout
-+-->
-
+-
-If you have chosen `Lynx-like key binding' at the compile time,
-you can use the following key binding.
-+ </p>
-+ </dd>
-+ <dt>
-+ -post <i>file</i>
-+ </dt>
-+ <dd>
-+ <p>
-+ Use POST method with file content.
-+<!-- mh 2016-03-29
-+use POST method to upload data defined in <q>file</q>. The syntax to be
-+ used is var1=value1[&amp;var2=value2]...
-+-->
-
+-
-<H3>Page/Cursor motion</H3>
-<table>
-<TR><TD WIDTH=100>SPC,C-v,+<TD>Forward page
@@ -7228,39 +10790,47 @@ index aff0189..44379e9 100644
-<TR><TD>ESC TAB,C-p,Up arrow<TD>Move to previous link
-<TR><TD>C-g<TD>Show current page position
-</table>
-+ </p>
+-
+ </dd>
++<h3>Options for data output, followed by immediate exit</h3>
+ <dt>
-+ -header <i>string</i>
++ -dump
++ </dt>
++ <dd>
++ <p>
++ read document specified by URL and dump page rendered as text
++ into standard output.
++ <!-- mh 2016-03-29 -->
++ Is set implicitly when output is directed
++ to a file or pipe. A width of 80 columns is used unless option
++ -cols sets another value.
++ </p>
++ </dd>
++ <dt>
++ -dump_source
+ </dt>
+ <dd>
+ <p>
-+ Insert string as a header.
-+<!-- mh 2016-03-29
-+append <q>string</q> to the HTTP(S) request. Expected to match the
-+header syntax Variable: Value
-+-->
-
++ <!-- mh 2016-03-29-->
++ dump the page's source code into stdout
+ </p>
+ </dd>
+ <dt>
-+ -no-proxy
++ -dump_head
+ </dt>
+ <dd>
+ <p>
-+ Don't use proxy server.
++ <!-- mh 2016-03-29-->
++ dump response of a HEAD request for a URL into stdout
+ </p>
+ </dd>
+ <dt>
-+ -no-graph
++ -dump_both
+ </dt>
+ <dd>
+ <p>
-+ Use ASCII characters to draw frames rather than graphical ones.
-+<!-- mh 2016-03-29
-+do not use graphic characters for drawing HTML table and
-+frame borders
-+-->
++ <!-- mh 2016-03-29-->
++ dump HEAD, and source code for a URL into stdout
-<H2>Hyperlink operation</H2>
-<table>
@@ -7281,7 +10851,19 @@ index aff0189..44379e9 100644
-<TR><TD>ESC M<TD>Browse link using external browser
-(use 2ESC M and 3ESC M to invoke second and third browser)
-</table>
--
++ </p>
++ </dd>
++ <dt>
++ -dump_extra
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ dump HEAD, source code, and extra information for a URL into
++ stdout
++ </p>
++ </dd>
+
-<H2>File/Stream operation</H2>
-<table>
-<TR><TD WIDTH=100>g,U<TD>Open URL
@@ -7289,7 +10871,117 @@ index aff0189..44379e9 100644
-<TR><TD>@<TD>Execute shell command and load
-<TR><TD>#<TD>Execute shell command and browse
-</table>
--
++<h3>Options for overriding default settings and resources</h3>
++
++ <dt>
++ -bookmark <i>file</i>
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ use <i>file</i> instead of the default bookmark.html file
++ </p>
++ </dd>
++ <dt>
++ -config <i>file</i>
++ </dt>
++ <dd>
++ <p>
++ <!--mh 2016-06-11-->
++ use <i>file</i> instead of the default configuration file
++ </p>
++ </dd>
++ <dt>
++ -o <i>option</i>=<i>value</i>
++ </dt>
++ <dd>
++ <p>
++ <!-- mh 2016-03-29-->
++ modify one configuration item with an explicitly given value; without <i>option=value</i>, equivalent to <i>-show-option</i>
++ </p>
++ </dd>
++ </dl>
++ <hr>
++ <h2 id="Color">
++ Document Colors
++ </h2>
++ <p>
++ Hyperlinks and images are displayed as follows.
++ </p>
++ <div align="center">
++ <table border="1">
++ <tr>
++ <th>
++ </th>
++ <th>
++ Color mode
++ </th>
++ <th>
++ Monochrome mode
++ </th>
++ </tr>
++ <tr>
++ <td>
++ Hyperlinks
++ </td>
++ <td>
++ blue
++ </td>
++ <td>
++ underline
++ </td>
++ </tr>
++ <tr>
++ <td>
++ Inline images
++ </td>
++ <td>
++ green
++ </td>
++ <td>
++ reverse
++ </td>
++ </tr>
++ <tr>
++ <td>
++ Form input
++ </td>
++ <td>
++ red
++ </td>
++ <td>
++ reverse
++ </td>
++ </tr>
++ </table>
++ </div>
++ <p>
++ These colors can be customized using the options setting command
++ <i>o</i>.
++ </p>
++ <hr>
++ <h2 id="Functions">
++ Functions and Key bindings
++ </h2>
++
++ <p>
++ After invocation, you can control w3m by typing in functions by name
++ or with keystroke combinations bound to a function. There are
++ default key bindings.
++<!-- 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>
++<!--
++ <h2 id="Key:custom">
++ Key customization
++ </h2>
++-->
++ <p>
++ You can customize the key bindings (except those for menu
++ operations and line-editing) in a ~/.w3m/keymap file. For example,
++ </p>
+
-<H2>Buffer operation</H2>
-<table>
-<TR><TD WIDTH=100>B, C-b, Left arrow<TD>Back to the previous buffer
@@ -7383,1647 +11075,1805 @@ index aff0189..44379e9 100644
-with the option setting panel.
-</table>
-<p>
--
--
++<pre>
++ keymap C-o NEXT_PAGE
++</pre>
+
++ <p>
++ binds the command <span class="mono">NEXT_PAGE</span> (normally bound to SPC and C-v)
++ to control-o. See <a href="README.func">README.func</a> for a list
++ of available functions. Original and Lynx-like keymap definitions
++ are provided as examples: <a href="keymap.default">keymap.default</a>
++ and <a href="keymap.lynx">keymap.lynx</a>.
++ </p>
+
-<hr>
-<a name="Key:custom"></a>
-<h2>Key customization</h2>
-You can customize the key binding (except line-editing keymap)
-by describing ~/.w3m/keymap. For example,
-+ </p>
-+ </dd>
-+ <dt>
-+ -no-mouse
-+ </dt>
-+ <dd>
-+ <p>
-+ Deactivate mouse support.
-+ </p>
-+ </dd>
-+ <dt>
-+ -config <i>file</i>
-+ </dt>
-+ <dd>
-+ <p>
-+ Specify config file.
-+ </p>
-+ </dd>
-+ </dl>
-+ <hr>
-+ <h2 id="Color">
-+ Document colors
-+ </h2>
-+ <p>
-+ Links and images are displayed as follows.
+-<pre>
++ <p>
++ Throughout, the <i>C-</i> and <i>M-</i> notations indicate the
++ modifiers <i>control</i> and <i>meta</i>. The <i>ALT</i>-key
++ replaces the latter whereas pressing the <i>ESC</i>-key toggles
++ between <i>meta</i>-modified and simple keystrokes. The minus
++ indicates pressing the keys simultaneously wheras a space
++ represents that one key is pressed after the other, i.e. <i>2 M</i>
++ simply means <i>2</i> followed by <i>M</i>.
+ </p>
-+ <div align="center">
-+ <table border="1">
+
+- keymap C-o NEXT_PAGE
+
+-</pre>
+-binds `NEXT_PAGE' function (normally bound to SPC and C-v)
+-to control-o. See <a href="README.func">README.func</a> for
+-list of available functions. Original and Lynx-like keymap
+-definitions are provided (<a href="keymap.default">keymap.default</a>
+-and <a href="keymap.lynx">keymap.lynx</a>) as examples.
++ <table border="1" width="100%">
++ <colgroup>
++ <col width="20%">
++ <col width="20%">
++ <col width="20%">
++ <col width="40%">
++ </colgroup>
+ <tr>
-+ <th>
-+ &nbsp;
-+ </th>
-+ <th>
-+ Color mode
++ <th rowspan="2">
++ Function
+ </th>
-+ <th>
-+ Monochrome mode
-+ </th>
-+ </tr>
++ <th colspan="2">Key binding
++ </th>
++ <th rowspan="2">
++ Description
++ </th>
++ </tr>
+ <tr>
-+ <td>
-+ links
-+ </td>
-+ <td>
-+ blue
-+ </td>
-+ <td>
-+ underline
-+ </td>
-+ </tr>
++ <th>
++ Default
++ </th>
++ <th>
++ Lynx-like
++ </th>
++ </tr>
+ <tr>
-+ <td>
-+ inline images
-+ </td>
-+ <td>
-+ green
-+ </td>
-+ <td>
-+ reverse
-+ </td>
++ <td colspan="4">
++ <h3>In-page navigation</h3>
++</td>
+ </tr>
+ <tr>
+ <td>
-+ form input
-+ </td>
-+ <td>
-+ red
-+ </td>
-+ <td>
-+ reverse
++ NEXT_PAGE
+ </td>
-+ </tr>
-+ </table>
-+ </div>
-+ <p>
-+ These colors can be customized using the option setting command
-+ <q>o</q>.
-+ </p>
-+ <hr>
-+ <h2 id="Key:orig">
-+ Key bindings
-+ </h2>
-+<!--
-+ TODO: reorganise this whole thing into one big table of
-+ FUNCTIONNAME | description | default-binding | Lynxlike-binding
-+!-->
-+ <p>
-+ After invoking w3m, you can control it with keyboard commands.
-+ </p>
-+ <p>
-+ Here's the original key-binding table. If you are using Lynx-like
-+ key bindings, see <a href="#Key:lynx">the Lynx-like key
-+ bindings</a>. Throughout, the <q>C-</q> and <q>M-</q> notations
-+ indicate the modifiers <q>control</q> and <q>meta</q> (which can be
-+ replaced with <q>alt</q> or ESC); on the other hand <q>2 M</q>
-+ simply means <q>2</q> followed by <q>M</q>.
-+ </p>
-+<!--
-+Correction:
-+The two equivalents to the meta-key are pressing simultaneously the ALT-key or pressing the ESC-key first and then other mentioned keys.
-+-->
-+ <h3>
-+ In-page navigation
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
++ <td>
+ SPC, C-v, +, PGDN
+ </td>
+ <td>
-+ Forward page
++ SPC, C-v, +
++ </td>
++ <td>
++ Scroll one page downwards
+ </td>
+ </tr>
+ <tr>
++ <td>
++ PREVIOUS_PAGE
++ </td>
+ <td>
+ b, M-v, -, PGUP
+ </td>
+ <td>
-+ Backward page
++ b, M-v, -
++ </td>
++ <td>
++ Scroll one page upwards
+ </td>
+ </tr>
+ <tr>
++ <td>
++ MOVE_RIGHT
++ </td>
+ <td>
+ l, C-f, RIGHT
+ </td>
+ <td>
-+ Cursor right
++ l
++ </td>
++ <td>
++ Move cursor right (with a half-screen shift at the screen edge)
+ </td>
+ </tr>
+ <tr>
++ <td>
++ MOVE_LEFT
++ </td>
+ <td>
+ h, C-b, LEFT
+ </td>
+ <td>
-+ Cursor left
-+ </td>
-+ </tr>
-+ <tr>
-+ <td>
-+ j, C-n, DOWN
++ h
+ </td>
+ <td>
-+ Cursor down
++ Move cursor left (with a half-screen shift at the screen edge)
+ </td>
+ </tr>
+ <tr>
++ <td>
++ MOVE_DOWN
++ </td>
+ <td>
-+ k, C-p, UP
-+ </td>
-+ <td>
-+ Cursor up
++ j, C-n, DOWN
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ J
++ j
+ </td>
+ <td>
-+ Scroll screen up one line
++ Move cursor down (with a one-line scroll at the screen edge)
+ </td>
+ </tr>
+ <tr>
++ <td>
++ MOVE_UP
++ </td>
+ <td>
-+ K
-+ </td>
-+ <td>
-+ Scroll screen down one line
++ k, C-p, UP
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ ^, C-a
++ k
+ </td>
+ <td>
-+ Go to the beginning of line
++ Move cursor up (with a one-line scroll at the screen edge)
+ </td>
+ </tr>
+ <tr>
++ <td>
++ UP
++ </td>
+ <td>
-+ $, C-e
-+ </td>
-+ <td>
-+ Go to the end of line
++ J
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ w
++ J
+ </td>
+ <td>
-+ Go to the next word
++ Scroll the screen up one line
+ </td>
+ </tr>
+ <tr>
++ <td>
++ DOWN
++ </td>
+ <td>
-+ W
++ K
+ </td>
+ <td>
-+ Go to the previous word
-+ </td>
-+ </tr>
-+ <tr>
-+ <td>
-+ &gt;
++ K
+ </td>
+ <td>
-+ Shift screen right
++ Scroll the screen down one line
+ </td>
+ </tr>
+ <tr>
++ <td>
++ LINE_BEGIN
++ </td>
+ <td>
-+ &lt;
-+ </td>
-+ <td>
-+ Shift screen left
++ ^, C-a
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ .
++ ^
+ </td>
+ <td>
-+ Shift screen one column right
++ Go to the beginning of the line
+ </td>
+ </tr>
+ <tr>
++ <td>
++ LINE_END
++ </td>
+ <td>
-+ ,
-+ </td>
-+ <td>
-+ Shift screen one column left
++ $, C-e
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ g, M-&lt;, HOME
++ $
+ </td>
+ <td>
-+ Go to the first line
++ Go to the end of the line
+ </td>
+ </tr>
+ <tr>
++ <td>
++ NEXT_WORD
++ </td>
+ <td>
-+ G, M-&gt;, END
-+ </td>
-+ <td>
-+ Go to the last line
++ w
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M-g
++ w
+ </td>
+ <td>
-+ Go to the specified line
++ Move to the next word
+ </td>
+ </tr>
+ <tr>
++ <td>
++ PREVIOUS_WORD
++ </td>
+ <td>
-+ Z
-+ </td>
-+ <td>
-+ Center on cursor column
++ W
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ z
++ W
+ </td>
+ <td>
-+ Center on cursor line
++ Move to the previous word
+ </td>
+ </tr>
+ <tr>
++ <td>
++ SHIFT_RIGHT
++ </td>
+ <td>
-+ TAB
-+ </td>
-+ <td>
-+ Move to the next hyperlink
++ >
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-u, M-TAB
++ >
+ </td>
+ <td>
-+ Move to the previous hyperlink
++ Shift screen right
+ </td>
+ </tr>
+ <tr>
++ <td>
++ SHIFT_LEFT
++ </td>
+ <td>
-+ [
-+ </td>
-+ <td>
-+ Move to the first hyperlink
++ <
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ ]
++ <
+ </td>
+ <td>
-+ Move to the last hyperlink
++ Shift screen left
+ </td>
+ </tr>
-+ </table>
-+ <h3>Hyperlink operation</h3>
-+ <table>
+ <tr>
-+ <td width="100">
-+ C-j, C-m, RET
-+ </td>
++ <td>
++ RIGHT
++ </td>
+ <td>
-+ Follow hyperlink
++ .
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ a, M-RET
++ .
+ </td>
+ <td>
-+ Save link to file
++ Shift screen one column right
+ </td>
+ </tr>
+ <tr>
++ <td>
++ LEFT
++ </td>
+ <td>
-+ u
-+ </td>
-+ <td>
-+ Show link URL
++ ,
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ i
++ ,
+ </td>
+ <td>
-+ Show image URL
++ Shift screen one column left
+ </td>
+ </tr>
+ <tr>
++ <td>
++ BEGIN
++ </td>
+ <td>
-+ I
-+ </td>
-+ <td>
-+ View inline image
++ g, M-<, HOME
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M-I
++ C-a, M-<
+ </td>
+ <td>
-+ Save inline image to file
++ Go to the first line
+ </td>
+ </tr>
+ <tr>
++ <td>
++ END
++ </td>
+ <td>
-+ :
-+ </td>
-+ <td>
-+ Mark URL-like strings as hyperlinks
++ G, M->, END
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M-:
++ C-e, M->
+ </td>
+ <td>
-+ Mark Message-ID-like strings as links
++ Go to the last line
+ </td>
+ </tr>
+ <tr>
++ <td>
++ GOTO_LINE
++ </td>
+ <td>
-+ c
-+ </td>
-+ <td>
-+ Show current URL
++ M-g
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ =
++ G
+ </td>
+ <td>
-+ Show information about current document
++ Go to the specified line
+ </td>
+ </tr>
+ <tr>
++ <td>
++ LINE_INFO
++ </td>
+ <td>
+ C-g
+ </td>
+ <td>
-+ Show current position in page
-+ </td>
-+ </tr>
-+ <tr>
-+ <td>
-+ C-h
++ C-g
+ </td>
+ <td>
-+ Show browsing history
++ Display current position in document
+ </td>
+ </tr>
+ <tr>
++ <td>
++ CENTER_H
++ </td>
+ <td>
-+ M
-+ </td>
-+ <td>
-+ Browse current document using external browser (prefix 2, 3, ...,
-+ or 9 to invoke alternate configured browsers, e.g. 3 M)
++ Z
+ </td>
-+ </tr>
-+ <tr>
++<!--Correction by mh 2014-04-06
++Description for keybinding of z and Z had been mingled
++-->
+ <td>
-+ M-M
++ Z
+ </td>
+ <td>
-+ Browse link using external browser (prefixed as above, e.g.
-+ 3 M-M)
++ Center screen right and left of the cursor column
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Bookmark management
-+ </h3>
-+ <table>
+ <tr>
-+ <td width="100">
-+ M-b
-+ </td>
++ <td>
++ CENTER_V
++ </td>
+ <td>
-+ Go to the bookmarks page
++ z
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M-a
++ z
+ </td>
+ <td>
-+ Bookmark current page
++ Center screen above and below the cursor line
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ File/stream operation
-+ </h3>
-+ <table>
+ <tr>
-+ <td width="100">
-+ U
-+ </td>
++ <td>
++ NEXT_LINK
++ </td>
+ <td>
-+ Open new URL
++ TAB
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ V
++ TAB, C-n, DOWN
+ </td>
+ <td>
-+ Open new file
++ Move to the next hyperlink
+ </td>
+ </tr>
+ <tr>
++ <td>
++ PREVIOUS_LINK
++ </td>
+ <td>
-+ @
-+ </td>
-+ <td>
-+ Execute shell command and view output
++ M-TAB, C-u
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ #
++ M-TAB, C-u, C-p, UP
+ </td>
+ <td>
-+ Execute shell command and browse output
++ Move to the previous 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>
-+ </table>
-+ <h3>
-+ Content operations
-+ </h3>
-+ <table>
+ <tr>
-+ <td width="100">
-+ v
-+ </td>
++ <td>
++ LINK_BEGIN
++ </td>
+ <td>
-+ Toggle viewing as text or rendered HTML
++ [
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ F
++ [
+ </td>
+ <td>
-+ Toggle rendering HTML frames
++ Move to the first hyperlink
+ </td>
+ </tr>
+ <tr>
++ <td>
++ LINK_END
++ </td>
+ <td>
-+ C-l
-+ </td>
-+ <td>
-+ Redraw screen
++ ]
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ R
++ ]
+ </td>
+ <td>
-+ Reload
++ Move to the last hyperlink
+ </td>
+ </tr>
++<tr>
++<td>MOVE_LIST_MENU</td>
++<td>M-m</td>
++<td>M-m</td>
++<td>Pop up menu to navigate between hyperlinks</td>
++</tr>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>Hyperlink Operations</h3>
++ </td>
++ </tr>
++<!-- <table>-->
+ <tr>
++ <td>
++ GOTO_LINK
++ </td>
+ <td>
-+ E
-+ </td>
-+ <td>
-+ Edit local source
++ C-j, C-m, RET
+ </td>
-+ </tr>
-+ <tr>
-+ <td>
-+ M-e
++ <td width="100">
++ C-f, C-j, C-m, RET, RIGHT
+ </td>
+ <td>
-+ Edit rendered copy of page
++ Follow current hyperlink in a new buffer
+ </td>
+ </tr>
++<tr>
++<td>LIST_MENU</td>
++<td>M-l</td>
++<td>M-l</td>
++<td>Pop up hyperlink menu and select one to be followed</td>
++</tr>
+ <tr>
++ <td>
++ SAVE_LINK
++ </td>
+ <td>
-+ M-s
-+ </td>
-+ <td>
-+ Save source
++ a, M-RET
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ S
++ d, M-RET
+ </td>
+ <td>
-+ Save rendered copy of page
++ Save the hyperlink target
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Buffer/tab navigation
-+ </h3>
-+ <table>
+ <tr>
-+ <td width="100">
-+ B
-+ </td>
++ <td>
++ PEEK_LINK
++ </td>
+ <td>
-+ Go back, <q>popping</q> the buffer stack
++ u
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ s
++ u
+ </td>
+ <td>
-+ Show buffer-stack menu
++ Show target address
+ </td>
+ </tr>
+ <tr>
++ <td>
++ PEEK_IMG
++ </td>
+ <td>
-+ M-t
-+ </td>
-+ <td>
-+ Show tab menu
++ i
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ T
++ i
+ </td>
+ <td>
-+ Open current page as new tab
++ Show image address
+ </td>
+ </tr>
+ <tr>
++ <td>
++ VIEW_IMAGE
++ </td>
+ <td>
-+ C-t
-+ </td>
-+ <td>
-+ Open link as new tab
++ I
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ }
++ I
+ </td>
+ <td>
-+ Switch to next tab
++ Display image in viewer
+ </td>
+ </tr>
+ <tr>
++ <td>
++ SAVE_IMAGE
++ </td>
+ <td>
-+ {
-+ </td>
-+ <td>
-+ Switch to previous tab
++ M-I
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-q
++ M-I
+ </td>
+ <td>
-+ Close current tab
++ Save inline image
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Search
-+ </h3>
-+ <table>
++<tr>
++<td>MARK_WORD</td>
++<td>;</td>
++<td>;</td>
++<td>Turn current word into hyperlink</td>
++</tr>
+ <tr>
-+ <td width="100">
-+ /
-+ </td>
++ <td>
++ MARK_URL
++ </td>
+ <td>
-+ Search forward
++ :
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ ?
++ :
+ </td>
+ <td>
-+ Search backward
++ Turn URL-like strings into hyperlinks
+ </td>
+ </tr>
+ <tr>
-+ <td width="100">
-+ C-s
-+ </td>
++ <td>
++ MARK_MID
++ </td>
+ <td>
-+ Incremental search forward
++ M-:
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-r
++ M-:
+ </td>
+ <td>
-+ Incremental search backward
++<!-- changed due to mail dated Mon, 04 Apr 2016 00:47:09 +0900 (JST)
++from Tatsuya Kinoshita -->
++ Turn Message-ID-like strings into hyperlinks
+ </td>
+ </tr>
+ <tr>
++ <td>
++ PEEK
++ </td>
+ <td>
-+ n
-+ </td>
-+ <td>
-+ Next match
++ c
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ N
++ c
+ </td>
+ <td>
-+ Previous match
++ Show current address
+ </td>
+ </tr>
+ <tr>
++ <td>
++ INFO
++ </td>
+ <td>
-+ C-w
++ =
+ </td>
+ <td>
-+ Toggle wrapping mode in searches
-+ </td>
-+ </tr>
-+ </table>
-+ <h3>
-+ Mark management
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ C-SPC
++ =
+ </td>
+ <td>
-+ Set/unset mark
++ Display information about the current document
+ </td>
+ </tr>
+ <tr>
++ <td>
++ HISTORY
++ </td>
+ <td>
-+ M-p
-+ </td>
-+ <td>
-+ Go to the previous mark
++ C-h
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M-n
++ C-h
+ </td>
+ <td>
-+ Go to the next mark
++ Show browsing history
+ </td>
+ </tr>
+ <tr>
++ <td>
++ EXTERN
++ </td>
+ <td>
-+ "
++ M
+ </td>
+ <td>
-+ Mark all occurrences of a regular expression
-+ </td>
-+ </tr>
-+ </table>
-+ <h3>
-+ Miscellany
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ !
++ M
+ </td>
+ <td>
-+ Execute shell command
++ Browse current document using external browser (prefix 2, 3, ...,
++ or 9 to invoke alternate configured browsers, e.g. 3 M)
+ </td>
+ </tr>
+ <tr>
++ <td>
++ EXTERN_LINK
++ </td>
+ <td>
-+ M-c
-+ </td>
-+ <td>
-+ Invoke w3m function
++ M-M
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ H
++ M-M
+ </td>
+ <td>
-+ Show help panel
++ Browse link using external browser (prefixed as above, e.g.
++ 3 M-M)
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ o
-+ </td>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>Bookmark management</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ BOOKMARK
++ </td>
+ <td>
-+ Show options panel
++ M-b
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-k
++ v, M-b
+ </td>
+ <td>
-+ Show cookie jar
++ View bookmarks
+ </td>
+ </tr>
+ <tr>
++ <td>
++ ADD_BOOKMARK
++ </td>
+ <td>
-+ C-c
-+ </td>
-+ <td>
-+ Interrupt
++ M-a
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-z
++ a, M-a
+ </td>
+ <td>
-+ Suspend w3m
++ Add current page to bookmarks
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ q
-+ </td>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>File/Stream Operations</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ GOTO
++ </td>
+ <td>
-+ Quit (with confirmation dialog)
++ U
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ Q
++ g, U
+ </td>
+ <td>
-+ Quit without confirmation
++ Open specified document in a new buffer
+ </td>
+ </tr>
-+ </table>
-+<!--
-+ TODO: import leftovers from current keymap (same in both):
-+ ( UNDO
-+ ) REDO
-+ ; MARK_WORD
-+ D DOWNLOAD_LIST
-+ L LIST
-+ m MOUSE_TOGGLE
-+ r VERSION
-+ | PIPE_BUF
-+ M-W DICT_WORD_AT
-+ M-c COMMAND
-+ M-k DEFINE_KEY
-+ M-l LIST_MENU
-+ M-m MOVE_LIST_MENU
-+ M-o SET_OPTION
-+ M-u GOTO_RELATIVE
-+ M-w DICT_WORD
-+ M-Fn MENU
-+!-->
-+ <p>
-+ Two special operational modes exist which have built-in (not
-+ redefinable) keymappings:
-+ </p>
-+ <h3>
-+ Menu selection mode
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ k, C-p, UP
-+ </td>
++<tr>
++<td>GOTO_RELATIVE</td>
++<td>M-u</td>
++<td>M-u</td>
++<td>Open relative address in a new buffer</td>
++</tr>
++ <tr>
++ <td>
++ LOAD
++ </td>
+ <td>
-+ Select previous item
++ V
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ j, C-n, DOWN
++ V
+ </td>
+ <td>
-+ Select next item
++ Open local file in a new buffer
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ D
-+ </td>
++ <tr>
++ <td>
++ READ_SHELL
++ </td>
+ <td>
-+ Delete current item
++ @
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ SPC, RET
++ @
+ </td>
+ <td>
-+ Go to the selected item
++ <!--Execute shell command and view output-->
++ <!--mh 2016-06-13 No difference to PIPE_SHELL could be discerned-->
++ Execute shell command and display output in a new buffer
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Line-editing mode
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ C-f, RIGHT
-+ </td>
++ <tr>
++ <td>
++ PIPE_SHELL
++ </td>
+ <td>
-+ Move cursor forward
++ #
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-b, LEFT
++ #
+ </td>
+ <td>
-+ Move cursor backward
++ <!--Execute shell command and browse output-->
++ <!--mh 2016-06-13 No difference to READ_SHELL could be discerned-->
++ Execute shell command and display output in a new buffer
+ </td>
+ </tr>
-+ <tr>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>Content Operations</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ VIEW <!-- is an alias to SOURCE -->
++ </td>
+ <td>
-+ C-h, BKSPC
++ v
+ </td>
+ <td>
-+ Delete previous character
++ \
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-d
++ Toggle between source code and rendered view of the document
+ </td>
++ </tr>
++<tr>
++<td>LIST</td>
++<td>L</td>
++<td>L</td>
++<td>List link elements, hyperlinks and images</td>
++</tr>
++ <tr>
++ <td>
++ FRAME
++ </td>
+ <td>
-+ Delete current character
++ F
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-k
++ F
+ </td>
+ <td>
-+ Kill everything after cursor
++ Toggle rendering HTML frames
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ REDRAW
++ </td>
+ <td>
-+ C-u
++ C-l
+ </td>
+ <td>
-+ Kill everything before cursor
++ C-l, C-w
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-a
++ Draw the screen anew
+ </td>
++ </tr>
++ <tr>
++ <td>
++ RELOAD
++ </td>
+ <td>
-+ Move to the beginning of line
++ R
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-e
++ R, C-r
+ </td>
+ <td>
-+ Move to the end of line
++ Load current document anew
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ EDIT
++ </td>
+ <td>
-+ C-p, UP
++ E
+ </td>
+ <td>
-+ Fetch the previous string from the history list
++ E
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-n, DOWN
++ Edit local source
+ </td>
++ </tr>
++ <tr>
++ <td>
++ EDIT_SCREEN
++ </td>
+ <td>
-+ Fetch the next string from the history list
++ M-e
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ TAB, SPC
++ M-e
+ </td>
+ <td>
-+ Try to complete filename
++ Edit rendered copy of document
+ </td>
+ </tr>
-+ <tr>
++<tr>
++<td>PIPE_BUF</td>
++<td>|</td>
++<td>|</td>
++<td>Pipe current buffer through a shell command and display output</td>
++</tr>
++ <tr>
++ <td>
++ DOWNLOAD <!-- is an alias to SAVE -->
++ </td>
+ <td>
-+ RET
++ M-s
+ </td>
+ <td>
-+ Accept
-+ </td>
-+ </tr>
-+ </table>
-+ <hr>
-+ <h2 id="Key:lynx">
-+ Lynx-like key bindings
-+ </h2>
-+ <p>
-+ If w3m was compiled with <q>Lynx-like key bindings</q>, you can use
-+ the following key bindings.
-+ </p>
-+ <h3>
-+ In-page navigation
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ SPC, C-v, +
++ M-s
+ </td>
+ <td>
-+ Forward page
++ Save document source
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ b, M-v, -
-+ </td>
++ <tr>
++ <td>
++ SAVE_SCREEN
++ </td>
+ <td>
-+ Backward page
++ S
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ l
++ S, p
+ </td>
+ <td>
-+ Cursor right
++ Save rendered document
+ </td>
+ </tr>
-+ <tr>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>Buffer/Tab Navigation</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ BACK
++ </td>
+ <td>
-+ h
++ B
++ </td>
++ <td>
++ B, C-b, LEFT
+ </td>
+ <td>
-+ Cursor left
++ Close current buffer and return to the one below in stack
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ SELECT_MENU
++ </td>
+ <td>
-+ j
++ s
+ </td>
+ <td>
-+ Cursor down
++ s, C-h
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ k
++ Pop up buffer-stack menu
+ </td>
++ </tr>
++ <tr>
++ <td>
++ TAB_MENU
++ </td>
+ <td>
-+ Cursor up
++ M-t
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ J
++ M-t
+ </td>
+ <td>
-+ Scroll screen up one line
++ Pop up tab selection menu
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ NEW_TAB
++ </td>
+ <td>
-+ K
++ T
+ </td>
+ <td>
-+ Scroll screen down one line
++ T
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ ^
++ Open a new tab (with current document)
+ </td>
++ </tr>
++ <tr>
++ <td>
++ TAB_LINK
++ </td>
+ <td>
-+ Go to the beginning of line
++ C-t
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ $
++ C-t
+ </td>
+ <td>
-+ Go to the end of line
++ Follow current hyperlink in a new tab
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ NEXT_TAB
++ </td>
+ <td>
-+ &gt;
++ }
+ </td>
+ <td>
-+ Shift screen right
++ }
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ &lt;
++ Switch to the next tab
+ </td>
++ </tr>
++ <tr>
++ <td>
++ PREV_TAB
++ </td>
+ <td>
-+ Shift screen left
++ {
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ .
++ {
+ </td>
+ <td>
-+ Shift screen one column right
++ Switch to the previous tab
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ CLOSE_TAB
++ </td>
+ <td>
-+ ,
++ C-q
+ </td>
+ <td>
-+ Shift screen one column left
++ C-q
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-a, M-&lt;
++ Close the current tab
+ </td>
++ </tr>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>Searches</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ SEARCH
++ </td>
+ <td>
-+ Go to the first line
++ /
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-e, M-&gt;
++ /, C-s
+ </td>
+ <td>
-+ Go to the last line
++ Search forward
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ SEARCH_BACK
++ </td>
+ <td>
-+ G
++ ?
+ </td>
++ <td>
++ </td>
+ <td>
-+ Go to the specified line
++ Search backward
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ ISEARCH
++ </td>
+ <td>
-+ w
++ C-s
+ </td>
++ <td>
++ </td>
+ <td>
-+ Go to the next word
++ Incremental search forward
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ ISEARCH_BACK
++ </td>
+ <td>
-+ W
++ C-r
+ </td>
++ <td>
++ </td>
+ <td>
-+ Go to the previous word
++ Incremental search backward
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ SEARCH_NEXT
++ </td>
+ <td>
-+ Z
++ n
+ </td>
+ <td>
-+ Center on cursor line
-+ </td>
-+ </tr>
-+ <tr>
-+ <td>
-+ z
++ n
+ </td>
+ <td>
-+ Center on cursor column
++ Continue search forward
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ SEARCH_PREV
++ </td>
+ <td>
-+ TAB, C-n, DOWN
++ N
+ </td>
++ <td>
++ </td>
+ <td>
-+ Move to the next hyperlink
++ Continue search backward
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ M-TAB, C-p, C-u, UP
-+ </td>
++ <tr>
++ <td>
++ WRAP_TOGGLE
++ </td>
+ <td>
-+ Move to the previous link
++ C-w
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-g
++ w
+ </td>
+ <td>
-+ Show current position in page
++ Toggle wrapping mode in searches
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ [
-+ </td>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>Mark Management</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ MARK
++ </td>
+ <td>
-+ Move to the first hyperlink
++ C-SPC
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ ]
++ C-SPC
+ </td>
+ <td>
-+ Move to the last hyperlink
++ Set/unset mark
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Hyperlink operation
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ C-f, C-j, C-m, RET, RIGHT
-+ </td>
++ <tr>
++ <td>
++ PREV_MARK
++ </td>
+ <td>
-+ Follow hyperlink
++ M-p
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ d, M-RET
++ P
+ </td>
+ <td>
-+ Save link to file
++ Go to the previous mark
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ u
-+ </td>
++ <tr>
++ <td>
++ NEXT_MARK
++ </td>
+ <td>
-+ Show link URL
++ M-n
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ i
++ N
+ </td>
+ <td>
-+ Show image URL
++ Go to the next mark
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ I
-+ </td>
++ <tr>
++ <td>
++ REG_MARK
++ </td>
+ <td>
-+ View inline image
++ "
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M-I
++ "
+ </td>
+ <td>
-+ Save inline image to file
++ Mark all occurrences of a pattern
+ </td>
+ </tr>
-+ <tr>
++<!-- </table>-->
++ <tr>
++ <td colspan="4">
++ <h3>Miscellaneous</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ COMMAND
++ </td>
+ <td>
-+ :
++ M-c
+ </td>
+ <td>
-+ Mark URL-like strings as hyperlinks
++ M-c
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M-:
++ Invoke one or more semicolon-separated w3m functions
+ </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>
-+ Mark Message-ID-like strings as news anchors
++ H
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ c
++ H, ?
+ </td>
+ <td>
-+ Show current URL
++ Show help panel
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ OPTIONS
++ </td>
+ <td>
-+ =
++ o
+ </td>
+ <td>
-+ Show information about current document
++ o
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-h
++ Display options setting panel
+ </td>
++ </tr>
++<tr>
++<td>SET_OPTION</td>
++<td>M-o</td>
++<td>M-o</td>
++<td>Set option</td>
++</tr>
++<tr>
++<td>DEFINE_KEY</td>
++<td>M-k</td>
++<td>M-k</td>
++<td>Define a binding between a key stroke combination and a command</td>
++</tr>
++<tr>
++<td>MOUSE_TOGGLE</td>
++<td>m</td>
++<td>m</td>
++<td>Toggle mouse support</td>
++</tr>
++<tr>
++<td>DOWNLOAD_LIST</td>
++<td>D</td>
++<td>D</td>
++<td>Display downloads panel</td>
++</tr>
++ <tr>
++ <td>
++ COOKIE
++ </td>
+ <td>
-+ Show browsing history
++ C-k
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ M
++ C-k
+ </td>
+ <td>
-+ Browse current document using external browser (prefix 2, 3, ...,
-+ or 9 to invoke alternate configured browsers, e.g. 3 M)
++ Show cookie jar
+ </td>
+ </tr>
++<!--
++mh 2016-06-12 Interrupt is an alias to SUSPEND, no need to mention it here
+ <tr>
++ <td>
++ INTERRUPT
++ </td>
+ <td>
-+ M-M
++ C-c
+ </td>
+ <td>
-+ Browse link using external browser (prefixed as above, e.g.
-+ 3 M-M)
-+ </td>
-+ </tr>
-+ </table>
-+ <h3>
-+ Bookmark management
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ v, M-b
++ C-c
+ </td>
+ <td>
-+ Go to the bookmarks page
++ Interrupt
+ </td>
+ </tr>
-+ <tr>
++-->
++<tr>
++<td>UNDO</td>
++<td>(</td>
++<td>(</td>
++<td>Cancel the last cursor movement</td>
++</tr>
++<tr>
++<td>REDO</td>
++<td>)</td>
++<td>)</td>
++<td>Cancel the last undo</td>
++</tr>
++ <tr>
++ <td>
++ EXEC_SHELL <!-- is an alias of SHELL -->
++ </td>
+ <td>
-+ a, M-a
++ !
+ </td>
+ <td>
-+ Bookmark current page
-+ </td>
-+ </tr>
-+ </table>
-+ <h3>
-+ File/stream operation
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ g, U
++ !
+ </td>
+ <td>
-+ Open new URL
++ Execute shell command
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ V
-+ </td>
++<tr>
++<td>DICT_WORD</td>
++<td>M-w</td>
++<td>M-w</td>
++<td>Execute dictionary command (see <a href="README.dict">README.dict</a>)</td>
++</tr>
++<tr>
++<td>DICT_WORD_AT</td>
++<td>M-W</td>
++<td>M-W</td>
++<td>Execute dictionary command for word at cursor</td>
++</tr>
++<tr>
++<td>VERSION</td>
++<td>r</td>
++<td>r</td>
++<td>Display the version of w3m</td>
++</tr>
++ <tr>
++ <td>
++ SUSPEND
++ </td>
+ <td>
-+ Open new file
++ C-z
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ @
++ C-z
+ </td>
+ <td>
-+ Execute shell command and view output
++ Suspend w3m to background. (To be withdrawn with shell
++ command <span class="mono">fg</span>.)
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ QUIT
++ </td>
+ <td>
-+ #
++ q
+ </td>
+ <td>
-+ Execute shell command and browse output
-+ </td>
-+ </tr>
-+ </table>
-+ <h3>
-+ Content operations
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ \
++ q
+ </td>
+ <td>
-+ Toggle viewing as text or rendered HTML
++ Quit with confirmation request
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ F
-+ </td>
++ <tr>
++ <td>
++ EXIT
++ </td>
+ <td>
-+ Toggle rendering HTML frames
++ Q
+ </td>
-+ </tr>
-+ <tr>
+ <td>
-+ C-l, C-w
++ Q
+ </td>
+ <td>
-+ Redraw screen
++ Quit at once
+ </td>
+ </tr>
-+ <tr>
++ </table>
+
+-<hr>
+-<a name="LocalCGI"></a>
+-<h2>Local CGI</h2>
+-You can run CGI scripts using w3m, without any HTTP server.
+-It means that w3m behaves like an HTTP server and activates CGI script,
+-then w3m reads the output of the script and display it. The
+-<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">bookmark registration</a>
+-and <a href="file:///$LIB/w3mhelperpanel?mode=panel">helper-app editor</a>
+-are realized as local CGI scripts.
+-Using local CGI, w3m can be used as a general purpose form interface.
+-<P>
+-For security reason, CGI scripts invoked by w3m must be in one of
+-these directories.
+-<ul>
+-<li>The directory where w3m-related files are stored
+-(typically /usr/local/lib/w3m). This directory can be referred
+-as $LIB.
+-<li>/cgi-bin/ directory. You can map /cgi-bin/ to any directory you like
+-with option setting panel (``Directory corresponds to /cgi-bin'' field).
+-You can specify multiple paths separated by `:', like
+-/usr/local/cgi-bin:/home/aito/cgi-bin. To use /cgi-bin/ directory,
+-you must use file:/cgi-bin URL as follows:
++ <p>
++ There are the following operational modes with built-in key
++ bindings for relevant functions. These bindings are not subject to
++ the DEFINE_KEY function or entries in the file keymap.
++ </p>
++
++ <table border="1" width="100%">
++ <colgroup>
++ <col width="20%">
++ <col width="40%">
++ <col width="40%">
++ </colgroup>
++ <tr>
++ <th>
++ Function<br>(internal name)
++ </th>
++ <th>Key binding
++ </th>
++ <th>
++ Description
++ </th>
++ </tr>
++ <tr>
++ <td colspan="3">
++ <h3>Menu Selection Mode</h3>
++ </td>
++ </tr>
++ <tr>
++ <td>
++ BUF:NEXT</td>
+ <td>
-+ R, C-r
++ j, C-n, DOWN
+ </td>
+ <td>
-+ Reload
++ Next item
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>BUF:PREV
++ </td>
+ <td>
-+ E
++ k, C-p, UP
+ </td>
+ <td>
-+ Edit local source
++ Previous item
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ BUF:DELETE</td>
+ <td>
-+ M-e
++ D
+ </td>
+ <td>
-+ Edit rendered copy of page
++ Delete item
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++ BUF:GO
++ </td>
+ <td>
-+ M-s
++ SPC, RET, RIGHT
+ </td>
+ <td>
-+ Save source
++ Select item
+ </td>
+ </tr>
-+ <tr>
++<!-- </table>-->
++ <tr>
++ <td colspan="3">
++ <h3>Popup Menu Mode</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++MENU:SELECT
++ </td>
+ <td>
-+ S, p
-+ </td>
++ SPC, RET, RIGHT</td>
+ <td>
-+ Save rendered copy of page
++ Select
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Buffer/tab navigation
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ B, C-b, LEFT
++ <tr>
++ <td>
++MENU:CLOSE
++ </td>
++ <td>C-c
+ </td>
+ <td>
-+ Go back, <q>popping</q> the buffer stack
++ Close menu
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ s, C-h
-+ </td>
++ <tr>
++ <td>
++MENU:CANCEL
++ </td>
++ <td>
++ LEFT, BKSPC, C-h</td>
+ <td>
-+ Show buffer-stack menu
++ One selection step backward
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ M-t
++ <tr>
++ <td>
++MENU:DOWN
++ </td>
++ <td>j, C-n, DOWN
+ </td>
+ <td>
-+ Show tab menu
++ Move to the next item
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ T
-+ </td>
++ <tr>
++ <td>
++MENU:UP
++ </td>
++ <td>
++ k, C-p, UP</td>
+ <td>
-+ Open current page as new tab
++ Move to the previous item
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ C-t
++ <tr>
++ <td>
++MENU:LINE_UP
++ </td>
++ <td>K
+ </td>
+ <td>
-+ Open link as new tab
++ Scroll up one item
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ }
++ <tr>
++ <td>
++MENU:LINE_DOWN
++ </td>
++ <td>J
+ </td>
+ <td>
-+ Switch to next tab
++ Scroll down one item
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ {
++ <tr>
++ <td>
++MENU:TOP
++ </td>
++ <td>C-a
+ </td>
+ <td>
-+ Switch to previous tab
++ Move to the first item
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ C-q
++ <tr>
++ <td>
++MENU:LAST
++ </td>
++ <td>C-e
+ </td>
+ <td>
-+ Close current tab
++ Move to the final item
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Search
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ /, C-s
++ <tr>
++ <td>
++MENU:NEXT
++ </td>
++ <td>C-v, C-f
+ </td>
-+ <td>
-+ Search forward
++ <td>Go to the next page
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ n
++ <tr>
++ <td>
++MENU:PREV
++ </td>
++ <td>ESC v, C-b
+ </td>
+ <td>
-+ Next match
++ Go to the previous page
+ </td>
+ </tr>
-+ <tr>
-+ <td>
-+ w
++ <tr>
++ <td>
++MENU:SEARCH_FORE
++ </td>
++ <td>C-s, /
+ </td>
+ <td>
-+ Toggle wrapping mode in searches
++ Search forward
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Mark management
-+ </h3>
-+ <table>
-+ <tr>
++ <tr>
++ <td>
++MENU:SEARCH_BACK
++ </td>
++ <td>
++ C-r, ?</td>
++ <td>
++ Search backward
++ </td>
++ </tr>
++ <tr>
++ <td>
++MENU:SEARCH_NEXT
++ </td>
++ <td>
++ n</td>
++ <td>
++ Search for the next match</td>
++ </tr>
++ <tr>
++ <td>
++MENU:SEARCH_PREV
++ </td>
++ <td>
++ N</td>
++ <td>
++ Search for the previous match</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>Line-editing Mode</h3>
++ </td>
++ </tr>
++<!-- <table>-->
++ <tr>
++ <td>
++ LINEEDIT:FORWARD
++ </td>
+ <td width="100">
-+ C-SPC
++ C-f, RIGHT
+ </td>
+ <td>
-+ Set/unset mark
++ Move cursor forward
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:BACK
++ </td>
+ <td>
-+ P
++ C-b, LEFT
+ </td>
+ <td>
-+ Go to the previous mark
++ Move cursor backward
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:BS
++ </td>
+ <td>
-+ N
++ C-h, BKSPC
+ </td>
+ <td>
-+ Go to the next mark
++ Delete previous character
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:DEL
++ </td>
+ <td>
-+ "
++ C-d
+ </td>
+ <td>
-+ Mark all occurrences of a regular expression
++ Delete current character
+ </td>
+ </tr>
-+ </table>
-+ <h3>
-+ Miscellany
-+ </h3>
-+ <table>
-+ <tr>
-+ <td width="100">
-+ !
++ <tr>
++ <td>
++LINEEDIT:KILL_AFTER
++ </td>
++ <td>
++ C-k
+ </td>
+ <td>
-+ Execute shell command
++ Delete everything after cursor
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:KILL_BEFORE
++ </td>
+ <td>
-+ M-c
++ C-u
+ </td>
+ <td>
-+ Invoke w3m function
++ Delete everything before cursor
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:TOP
++ </td>
+ <td>
-+ H, ?
++ C-a
+ </td>
+ <td>
-+ Show help panel
++ Move to the beginning of the line
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:BOTTOM
++ </td>
+ <td>
-+ o
++ C-e
+ </td>
+ <td>
-+ Show options panel
++ Move to the end of the line
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:PREV
++ </td>
+ <td>
-+ C-k
++ C-p, UP
+ </td>
+ <td>
-+ Show cookie jar
++ Fetch the previous string from the history list
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:NEXT
++ </td>
+ <td>
-+ C-c
++ C-n, DOWN
+ </td>
+ <td>
-+ Interrupt
++ Fetch the next string from the history list
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:COMPLETE
++ </td>
+ <td>
-+ C-z
++ TAB, SPC
+ </td>
+ <td>
-+ Suspend w3m
++ Try to complete filename
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:EDITOR
++ </td>
+ <td>
-+ q
++ C-o
+ </td>
+ <td>
-+ Quit (with confirmation dialog)
++ Edit with external editor
+ </td>
+ </tr>
-+ <tr>
++ <tr>
++ <td>
++LINEEDIT:ACCEPT
++ </td>
+ <td>
-+ Q
++ RET
+ </td>
+ <td>
-+ Quit without confirmation
++ Accept input line
+ </td>
+ </tr>
+ </table>
-+ <p>
++<!-- 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">
-+ Mouse operation
++ Mouse Operation
+ </h2>
+ <p>
+ If w3m is compiled with mouse support and you are invoking w3m
@@ -9031,15 +12881,29 @@ index aff0189..44379e9 100644
+ can use the mouse for navigation (in the case of rxvt, you need to
+ set the TERM environment variable to <q>xterm</q> or <q>kterm</q>).
+ </p>
-+ <table border="0">
-+ <tr>
++ <p>An introduction to configure mouse actions is provided
++ with <a href="README.mouse">README.mouse</a>.
++ </p>
++ <table border="1">
++ <colgroup>
++ <col width="20%">
++ <col width="80%">
++ </colgroup>
++ <tr>
++ <th>Operation
++ </th>
++ <th>Description
++ </th>
++ </tr>
++ <tr>
+ <td>
+ left click
+ </td>
+ <td>
-+ Move the cursor to the place indicated by the mouse cursor.
-+ If you click the cursor and it is on a hyperlink, follow the
-+ link.
++<b>First:</b><br>
++Moves the cursor to the place indicated by the mouse pointer.<br>
++<b>Then:</b><br>
++Follows a hyperlink the cursor is currently located and the mouse points to.
+ </td>
+ </tr>
+ <tr>
@@ -9065,61 +12929,13 @@ index aff0189..44379e9 100644
+ <td>
+ Scroll document. The default behavior is to grab the document
+ and drag it. You can reverse the behavior (grab the window and
-+ drag it) with the option setting panel.
++ drag it) with the options setting panel.
+ </td>
+ </tr>
+ </table>
+ <hr>
-+ <h2 id="Key:custom">
-+ Key customization
-+ </h2>
-+ <p>
-+ You can customize the key bindings (except the line-editing keymap)
-+ in a ~/.w3m/keymap file. For example,
-+ </p>
- <pre>
-
- keymap C-o NEXT_PAGE
-
- </pre>
--binds `NEXT_PAGE' function (normally bound to SPC and C-v)
--to control-o. See <a href="README.func">README.func</a> for
--list of available functions. Original and Lynx-like keymap
--definitions are provided (<a href="keymap.default">keymap.default</a>
--and <a href="keymap.lynx">keymap.lynx</a>) as examples.
--
--<hr>
--<a name="LocalCGI"></a>
--<h2>Local CGI</h2>
--You can run CGI scripts using w3m, without any HTTP server.
--It means that w3m behaves like an HTTP server and activates CGI script,
--then w3m reads the output of the script and display it. The
--<a href="file:///$LIB/w3mbookmark?mode=panel&bmark=~/.w3m/bookmark.html&url=MANUAL.html&title=w3m+manual">bookmark registration</a>
--and <a href="file:///$LIB/w3mhelperpanel?mode=panel">helper-app editor</a>
--are realized as local CGI scripts.
--Using local CGI, w3m can be used as a general purpose form interface.
--<P>
--For security reason, CGI scripts invoked by w3m must be in one of
--these directories.
--<ul>
--<li>The directory where w3m-related files are stored
--(typically /usr/local/lib/w3m). This directory can be referred
--as $LIB.
--<li>/cgi-bin/ directory. You can map /cgi-bin/ to any directory you like
--with option setting panel (``Directory corresponds to /cgi-bin'' field).
--You can specify multiple paths separated by `:', like
--/usr/local/cgi-bin:/home/aito/cgi-bin. To use /cgi-bin/ directory,
--you must use file:/cgi-bin URL as follows:
-+ <p>
-+ binds the <q>NEXT_PAGE</q> function (normally bound to SPC and C-v)
-+ to control-o. See <a href="README.func">README.func</a> for a
-+ list of available functions. Original and Lynx-like keymap
-+ definitions are provided (<a href="keymap.default">keymap.default</a>
-+ and <a href="keymap.lynx">keymap.lynx</a>) as examples.
-+ </p>
-+ <hr>
+ <h2 id="LocalCGI">
-+ Local CGI
++ Local CGI scripts
+ </h2>
+ <p>
+ You can run CGI scripts using w3m, without any HTTP server.
@@ -9141,10 +12957,12 @@ index aff0189..44379e9 100644
+ </li>
+ <li>
+ The /cgi-bin/ directory. You can map /cgi-bin/ to any directory you
-+ like in the option setting panel (the <q>Directory corresponds to
++ like in the options setting panel (the <q>Directory corresponds to
+ /cgi-bin</q> field). You can specify multiple paths separated by
-+ <q>:</q>, like /usr/local/cgi-bin:/home/aito/cgi-bin. To use a
-+ /cgi-bin/ directory, you must use a file:/cgi-bin URL as follows:
++ <q>:</q>, like /usr/local/cgi-bin:/home/aito/cgi-bin. It is not
++ recommended to include the current directory to this path. To use
++ a /cgi-bin/ directory, you must use a file:/cgi-bin URL as follows:
++ </li>
<pre>
w3m -o cgi_bin=/path/to/cgi-bin file:/cgi-bin/script.cgi
</pre>
@@ -9155,21 +12973,20 @@ index aff0189..44379e9 100644
-This field can take any function (see <a href="README.func">README.func</a>),
-and the specified function is invoked after the document is displayed.
-For example, The CGI output
-+ It is not recommended to include the current directory to this path.
-+ </li>
+ </ul>
+ <p>
-+ The CGI script can use the special header <q>w3m-control:</q> to
++ The CGI script can use the special header
++ <span class="mono">w3m-control:</span> to
+ control w3m. This field can take any function (see
+ <a href="README.func">README.func</a>), and the specified function
+ is invoked after the document is displayed. For example, the CGI
+ output
+ </p>
<pre>
-
+-
Content-Type: text/plain
W3m-control: BACK
-
+-
</pre>
-will display blank page and delete that buffer immediately.
-This is useful when you don't want to display any page after
@@ -9180,10 +12997,10 @@ index aff0189..44379e9 100644
+ the script is invoked. The next example
+ </p>
<pre>
-
+-
Content-Type: text/plain
-@@ -510,26 +2209,32 @@ W3m-control: DELETE_PREVBUF
-
+ W3m-control: DELETE_PREVBUF
+-
contents.....
</pre>
-will override the current buffer.
@@ -9195,27 +13012,29 @@ index aff0189..44379e9 100644
+ will override the current buffer.
+ </p>
+ <p>
-+ Each w3m-control: header can contain only one function, but you can
-+ include more than one w3m-control: line in the HTTP header.
++ Each header <span class="mono">w3m-control:</span> can
++ contain only one function, but you can
++ include more than one <span class="mono">w3m-control:</span>
++ line in the HTTP header.
+ In addition, you can specify an argument to the GOTO function:
+ </p>
<pre>
-
+-
Content-Type: text/plain
-W3m-control: GOTO http://www.yahoo.com/
+-
+W3m-control: GOTO http://www.example.org/
-
</pre>
-This example works exactly the same way to the Location header:
+ <p>
+ This example works exactly the same way as the Location header:
+ </p>
<pre>
-
+-
Content-Type: text/plain
-Location: http://www.yahoo.com/
+-
+Location: http://www.example.org/
-
</pre>
-Note that this header has no effect when the CGI script is invoked
-through HTTP server.
@@ -9682,7 +13501,7 @@ index e55193d..e837f46 100644
func "Add page to bookmark(a)" ADD_BOOKMARK "aA"
end
diff --git a/doc/w3m.1 b/doc/w3m.1
-index 8f071c6..dbd01af 100644
+index 8f071c6..90488f3 100644
--- a/doc/w3m.1
+++ b/doc/w3m.1
@@ -1,13 +1,10 @@
@@ -9690,7 +13509,7 @@ index 8f071c6..dbd01af 100644
.nr D 5
-.TH W3M 1 Local
-.UC 4
-+.TH W3M 1 "2016-04-02" "w3m 0.5.3"
++.TH W3M 1 "2016-08-06" "w3m 0.5.3"
.SH NAME
-w3m \- a text based Web browser and pager
+w3m \- a text based web browser and pager
@@ -9698,7 +13517,7 @@ index 8f071c6..dbd01af 100644
-.B w3m
-[options] [URL or filename]
-.PP
-+w3m [OPTION]... [ \fIfile\fP | \fIURL\fP ]...
++w3m [OPTION]... [ \fIfile\fP | \fIURL\fP ]...
.SH DESCRIPTION
.\" This defines appropriate quote strings for nroff and troff
.ds lq \&"
@@ -9761,7 +13580,7 @@ index 8f071c6..dbd01af 100644
-.PP
+Command line options are introduced with a single \(lq\-\(rq character and
+may take an argument.
-+.SS General options:
++.SS General options
.TP
-.B -t tab
-set tab width
@@ -9821,7 +13640,7 @@ index 8f071c6..dbd01af 100644
-.B -N
-open URL of command line on each new tab
+\fB\-W\fP
-+toggle wrapping in searches
++toggle wrapping mode in searches
.TP
-.B -F
-automatically render frame
@@ -9832,7 +13651,7 @@ index 8f071c6..dbd01af 100644
-dump formatted page into stdout
+\fB+\fInum\fR
+go to line \fInum\fR; only effective for \fInum\fR larger than the number of lines in the terminal
-+.SS Browser options:
++.SS Browser options
.TP
-.B -cols width
-specify column width (used with -dump)
@@ -9858,7 +13677,7 @@ index 8f071c6..dbd01af 100644
-.B -dump_head
-dump response of HEAD request into stdout
+\fB\-header \fIstring\fR
-+append \fIstring\fR to the HTTP(S) request. Expected to match the header syntax \f(CW Variable: Value\fP
++append \fIstring\fR to the HTTP(S) request. Expected to match the header syntax \f(CWVariable: Value\fP
.TP
-.B -dump_both
-dump HEAD and source into stdout
@@ -9885,7 +13704,7 @@ index 8f071c6..dbd01af 100644
-goto <num> line
+\fB\-6\fP
+IPv6 only. Corresponds to dns_order=6 in configuration files
-+.SS Text pager options:
++.SS Text pager options
.TP
-.B -num
-show line number
@@ -9909,7 +13728,7 @@ index 8f071c6..dbd01af 100644
-IPv6 only (-o dns_order=6)
+\fB\-t\fP \fInum\fP
+set tab width to \fInum\fR columns. No effect on stdout
-+.SS Data type/encoding options:
++.SS Data type/encoding options
.TP
-.B -no-mouse
-don't use mouse
@@ -9925,7 +13744,7 @@ index 8f071c6..dbd01af 100644
-don't use cookie
+\fB\-T \fItype\fR
+explicit characterization of input data by MIME type
-+.SS Options for data output, followed by immediate exit:
++.SS Options for data output, followed by immediate exit
.TP
-.B -graph
-use graphic character
@@ -9962,13 +13781,13 @@ index 8f071c6..dbd01af 100644
-.B -o opt=value
-assign value to config option
+\fB\-show-option\fP
-+show all available config options
++show all available configuration options
.TP
-.B -show-option
-show all available config option
+\fB\-version\fP
+show the version of \fIw3m\fP
-+.SS Options for overriding default settings and resources:
++.SS Options for overriding default settings and resources
.TP
-.B -config file
-specify config file
@@ -9978,7 +13797,7 @@ index 8f071c6..dbd01af 100644
-.B -help
-show usage
+\fB\-config \fIfile\fR
-+use \fIfile\fR instead of the default config file
++use \fIfile\fR instead of the default configuration file
.TP
-.B -version
-show w3m version
@@ -9988,7 +13807,7 @@ index 8f071c6..dbd01af 100644
-.B -reqlog
-write request logfile
+\fB\-o \fIoption=value\fR
-+modify one configuration item with an explicitly given value; without \fIoption=value\fR, equivalent to -show-option
++modify one configuration item with an explicitly given value; without \fIoption=value\fR, equivalent to \fB-show-option\fR
.TP
-.B -debug
-DO NOT USE
@@ -10018,7 +13837,7 @@ index 8f071c6..dbd01af 100644
+$ w3m -o auto_image=TRUE http://w3m.sourceforge.net
+.EE
+.TP
-+Display content from Usenet
++Display content from Usenet
+.EX
+$ w3m -m nntp://news.aioe.org/comp.os.linux.networking
+.EE
@@ -10190,7 +14009,7 @@ index 8fe1215..dcc6edd 100644
QuietMessage = TRUE;
fmInitialized = FALSE;
diff --git a/file.c b/file.c
-index 567d41e..e26f383 100644
+index 567d41e..b66f8c8 100644
--- a/file.c
+++ b/file.c
@@ -26,6 +26,8 @@
@@ -10217,6 +14036,24 @@ index 567d41e..e26f383 100644
#endif
static Str cur_title;
+@@ -67,7 +69,7 @@ static int cur_status;
+ #ifdef MENU_SELECT
+ /* menu based <select> */
+ FormSelectOption *select_option;
+-static int max_select = MAX_SELECT;
++int max_select = MAX_SELECT;
+ static int n_select;
+ static int cur_option_maxwidth;
+ #endif /* MENU_SELECT */
+@@ -79,7 +81,7 @@ static int cur_textarea_rows;
+ static int cur_textarea_readonly;
+ static int n_textarea;
+ static int ignore_nl_textarea;
+-static int max_textarea = MAX_TEXTAREA;
++int max_textarea = MAX_TEXTAREA;
+
+ static int http_response_code;
+
@@ -215,7 +217,6 @@ currentLn(Buffer *buf)
static Buffer *
@@ -10525,9 +14362,9 @@ index 567d41e..e26f383 100644
+ tmp = Sprintf("<INPUT_ALT hseq=\"%d\" fid=\"%d\" name=\"%s\" type=\"%s\" value=\"%s\">",
+ obuf->input_alt.hseq,
+ obuf->input_alt.fid,
-+ obuf->input_alt.name->ptr,
-+ obuf->input_alt.type->ptr,
-+ obuf->input_alt.value->ptr);
++ obuf->input_alt.name ? obuf->input_alt.name->ptr : "",
++ obuf->input_alt.type ? obuf->input_alt.type->ptr : "",
++ obuf->input_alt.value ? obuf->input_alt.value->ptr : "");
+ push_tag(obuf, tmp->ptr, HTML_INPUT_ALT);
+ }
if (!hidden_bold && obuf->in_bold)
@@ -10638,16 +14475,20 @@ index 567d41e..e26f383 100644
parsedtag_get_value(tag, ATTR_MAXLENGTH, &i);
p2 = NULL;
parsedtag_get_value(tag, ATTR_ALT, &p2);
-@@ -3625,7 +3641,7 @@ process_input(struct parsed_tag *tag)
+@@ -3623,9 +3639,10 @@ process_input(struct parsed_tag *tag)
+ Strcat(tmp, getLinkNumberStr(0));
+ Strcat_char(tmp, '(');
}
- Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s "
+- Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s "
++ Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=\"%s\" "
"name=\"%s\" width=%d maxlength=%d value=\"%s\"",
- cur_hseq++, cur_form_id, p, html_quote(r), w, i, qq));
-+ cur_hseq++, cur_form_id, p, html_quote(r), size, i, qq));
++ cur_hseq++, cur_form_id, html_quote(p),
++ html_quote(r), size, i, qq));
if (x)
Strcat_charp(tmp, " checked");
if (y)
-@@ -3670,18 +3686,18 @@ process_input(struct parsed_tag *tag)
+@@ -3670,18 +3687,18 @@ process_input(struct parsed_tag *tag)
case FORM_INPUT_PASSWORD:
i = 0;
if (q) {
@@ -10670,7 +14511,7 @@ index 567d41e..e26f383 100644
Strcat_char(tmp, ' ');
}
break;
-@@ -3732,6 +3748,63 @@ process_input(struct parsed_tag *tag)
+@@ -3732,6 +3749,75 @@ process_input(struct parsed_tag *tag)
}
Str
@@ -10698,6 +14539,17 @@ index 567d41e..e26f383 100644
+ if (v == FORM_UNKNOWN)
+ return NULL;
+
++ switch (v) {
++ case FORM_INPUT_SUBMIT:
++ case FORM_INPUT_BUTTON:
++ case FORM_INPUT_RESET:
++ break;
++ default:
++ p = "submit";
++ v = FORM_INPUT_SUBMIT;
++ break;
++ }
++
+ if (!q) {
+ switch (v) {
+ case FORM_INPUT_SUBMIT:
@@ -10715,9 +14567,10 @@ index 567d41e..e26f383 100644
+ }
+
+ /* Strcat_charp(tmp, "<pre_int>"); */
-+ Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=%s "
++ Strcat(tmp, Sprintf("<input_alt hseq=\"%d\" fid=\"%d\" type=\"%s\" "
+ "name=\"%s\" value=\"%s\">",
-+ cur_hseq++, cur_form_id, p, html_quote(r), qq));
++ cur_hseq++, cur_form_id, html_quote(p),
++ html_quote(r), qq));
+ return tmp;
+}
+
@@ -10734,7 +14587,7 @@ index 567d41e..e26f383 100644
process_select(struct parsed_tag *tag)
{
Str tmp = NULL;
-@@ -4084,6 +4157,7 @@ process_form_int(struct parsed_tag *tag, int fid)
+@@ -4084,6 +4170,7 @@ process_form_int(struct parsed_tag *tag, int fid)
parsedtag_get_value(tag, ATTR_METHOD, &p);
q = "!CURRENT_URL!";
parsedtag_get_value(tag, ATTR_ACTION, &q);
@@ -10742,7 +14595,16 @@ index 567d41e..e26f383 100644
r = NULL;
#ifdef USE_M17N
if (parsedtag_get_value(tag, ATTR_ACCEPT_CHARSET, &r))
-@@ -4284,15 +4358,15 @@ getMetaRefreshParam(char *q, Str *refresh_uri)
+@@ -4113,7 +4200,7 @@ process_form_int(struct parsed_tag *tag, int fid)
+ forms = New_N(FormList *, forms_size);
+ form_stack = NewAtom_N(int, forms_size);
+ }
+- else if (forms_size <= form_max) {
++ if (forms_size <= form_max) {
+ forms_size += form_max;
+ forms = New_Reuse(FormList *, forms, forms_size);
+ form_stack = New_Reuse(int, form_stack, forms_size);
+@@ -4284,15 +4371,15 @@ getMetaRefreshParam(char *q, Str *refresh_uri)
while (*q) {
if (!strncasecmp(q, "url=", 4)) {
q += 4;
@@ -10761,7 +14623,20 @@ index 567d41e..e26f383 100644
s_tmp->length--;
s_tmp->ptr[s_tmp->length] = '\0';
}
-@@ -4861,7 +4935,35 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -4599,6 +4686,12 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+ case HTML_DD:
+ CLOSE_A;
+ CLOSE_DT;
++ if (h_env->envc == 0 ||
++ (h_env->envc_real < h_env->nenv &&
++ envs[h_env->envc].env != HTML_DL &&
++ envs[h_env->envc].env != HTML_DL_COMPACT)) {
++ PUSH_ENV(HTML_DL);
++ }
+ if (envs[h_env->envc].env == HTML_DL_COMPACT) {
+ if (obuf->pos > envs[h_env->envc].indent)
+ flushline(h_env, obuf, envs[h_env->envc].indent, 0,
+@@ -4861,7 +4954,35 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
if (i > obuf->bottom_margin)
obuf->bottom_margin = i;
}
@@ -10797,7 +14672,7 @@ index 567d41e..e26f383 100644
case HTML_TABLE:
close_anchor(h_env, obuf);
obuf->table_level++;
-@@ -4884,6 +4986,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -4884,6 +5005,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
else
w = BORDER_THIN;
}
@@ -10806,7 +14681,26 @@ index 567d41e..e26f383 100644
if (parsedtag_get_value(tag, ATTR_WIDTH, &i)) {
if (obuf->table_level == 0)
width = REAL_WIDTH(i, h_env->limit - envs[h_env->envc].indent);
-@@ -4970,6 +5074,16 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -4892,9 +5015,18 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+ }
+ if (parsedtag_exists(tag, ATTR_HBORDER))
+ w = BORDER_NOWIN;
++#define MAX_CELLSPACING 1000
++#define MAX_CELLPADDING 1000
++#define MAX_VSPACE 1000
+ parsedtag_get_value(tag, ATTR_CELLSPACING, &x);
+ parsedtag_get_value(tag, ATTR_CELLPADDING, &y);
+ parsedtag_get_value(tag, ATTR_VSPACE, &z);
++ if (x > MAX_CELLSPACING)
++ x = MAX_CELLSPACING;
++ if (y > MAX_CELLPADDING)
++ y = MAX_CELLPADDING;
++ if (z > MAX_VSPACE)
++ z = MAX_VSPACE;
+ #ifdef ID_EXT
+ parsedtag_get_value(tag, ATTR_ID, &id);
+ #endif /* ID_EXT */
+@@ -4970,6 +5102,16 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
case HTML_INPUT:
close_anchor(h_env, obuf);
tmp = process_input(tag);
@@ -10823,7 +14717,7 @@ index 567d41e..e26f383 100644
if (tmp)
HTMLlineproc1(tmp->ptr, h_env);
return 1;
-@@ -5067,11 +5181,10 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -5067,11 +5209,10 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
}
return 1;
case HTML_BASE:
@@ -10837,7 +14731,7 @@ index 567d41e..e26f383 100644
parseURL(p, cur_baseURL, NULL);
}
#endif
-@@ -5329,6 +5442,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5329,6 +5470,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
#ifdef MENU_SELECT
Anchor **a_select = NULL;
#endif
@@ -10851,7 +14745,7 @@ index 567d41e..e26f383 100644
if (out_size == 0) {
out_size = LINELEN;
-@@ -5523,16 +5643,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5523,16 +5671,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
hseq = 0;
id = NULL;
if (parsedtag_get_value(tag, ATTR_NAME, &id)) {
@@ -10873,7 +14767,7 @@ index 567d41e..e26f383 100644
parsedtag_get_value(tag, ATTR_TITLE, &s);
parsedtag_get_value(tag, ATTR_ACCESSKEY, &t);
parsedtag_get_value(tag, ATTR_HSEQ, &hseq);
-@@ -5618,7 +5739,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5618,7 +5767,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
ParsedURL u;
Image *image;
@@ -10882,7 +14776,7 @@ index 567d41e..e26f383 100644
a_img->image = image = New(Image);
image->url = parsedURL2Str(&u)->ptr;
if (!uncompressed_file_type(u.file, &image->ext))
-@@ -5639,7 +5760,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5639,7 +5788,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
image->map = q;
image->ismap = ismap;
image->touch = 0;
@@ -10891,7 +14785,7 @@ index 567d41e..e26f383 100644
IMG_FLAG_SKIP);
}
else if (iseq < 0) {
-@@ -5689,6 +5810,21 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5689,6 +5838,21 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
putHmarker(buf->hmarklist, currentLn(buf),
hpos, hseq - 1);
}
@@ -10913,7 +14807,7 @@ index 567d41e..e26f383 100644
if (!form->target)
form->target = buf->baseTarget;
if (a_textarea &&
-@@ -5761,8 +5897,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5761,8 +5925,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
break;
if (parsedtag_get_value(tag, ATTR_HREF, &p)) {
MapArea *a;
@@ -10924,7 +14818,7 @@ index 567d41e..e26f383 100644
t = NULL;
parsedtag_get_value(tag, ATTR_TARGET, &t);
q = "";
-@@ -5811,11 +5947,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5811,11 +5975,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
break;
case HTML_BASE:
if (parsedtag_get_value(tag, ATTR_HREF, &p)) {
@@ -10941,7 +14835,7 @@ index 567d41e..e26f383 100644
}
if (parsedtag_get_value(tag, ATTR_TARGET, &p))
buf->baseTarget =
-@@ -5830,8 +5969,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5830,8 +5997,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
int refresh_interval = getMetaRefreshParam(q, &tmp);
#ifdef USE_ALARM
if (tmp) {
@@ -10952,7 +14846,7 @@ index 567d41e..e26f383 100644
buf->event = setAlarmEvent(buf->event,
refresh_interval,
AL_IMPLICIT_ONCE,
-@@ -5844,8 +5983,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5844,8 +6011,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
FUNCNAME_reload, NULL);
#else
if (tmp && refresh_interval == 0) {
@@ -10963,7 +14857,25 @@ index 567d41e..e26f383 100644
pushEvent(FUNCNAME_gorURL, p);
}
#endif
-@@ -5929,7 +6068,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5864,7 +6031,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+ case HTML_TEXTAREA_INT:
+ if (parsedtag_get_value(tag, ATTR_TEXTAREANUMBER,
+ &n_textarea)
+- && n_textarea < max_textarea) {
++ && n_textarea >= 0 && n_textarea < max_textarea) {
+ textarea_str[n_textarea] = Strnew();
+ }
+ else
+@@ -5881,7 +6048,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+ #ifdef MENU_SELECT
+ case HTML_SELECT_INT:
+ if (parsedtag_get_value(tag, ATTR_SELECTNUMBER, &n_select)
+- && n_select < max_select) {
++ && n_select >= 0 && n_select < max_select) {
+ select_option[n_select].first = NULL;
+ select_option[n_select].last = NULL;
+ }
+@@ -5929,7 +6096,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
#ifdef ID_EXT
id = NULL;
if (parsedtag_get_value(tag, ATTR_ID, &id)) {
@@ -10972,7 +14884,17 @@ index 567d41e..e26f383 100644
registerName(buf, id, currentLn(buf), pos);
}
if (renderFrameSet &&
-@@ -5982,7 +6121,8 @@ addLink(Buffer *buf, struct parsed_tag *tag)
+@@ -5964,7 +6131,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+ fclose(debug);
+ #endif
+ for (form_id = 1; form_id <= form_max; form_id++)
+- forms[form_id]->next = forms[form_id - 1];
++ if (forms[form_id])
++ forms[form_id]->next = forms[form_id - 1];
+ buf->formlist = (form_max >= 0) ? forms[form_max] : NULL;
+ if (n_textarea)
+ addMultirowsForm(buf, buf->formitem);
+@@ -5982,7 +6150,8 @@ addLink(Buffer *buf, struct parsed_tag *tag)
parsedtag_get_value(tag, ATTR_HREF, &href);
if (href)
@@ -10982,7 +14904,7 @@ index 567d41e..e26f383 100644
parsedtag_get_value(tag, ATTR_TITLE, &title);
parsedtag_get_value(tag, ATTR_TYPE, &ctype);
parsedtag_get_value(tag, ATTR_REL, &rel);
-@@ -6756,6 +6896,12 @@ init_henv(struct html_feed_environ *h_env, struct readbuffer *obuf,
+@@ -6756,6 +6925,12 @@ init_henv(struct html_feed_environ *h_env, struct readbuffer *obuf,
obuf->nobr_level = 0;
bzero((void *)&obuf->anchor, sizeof(obuf->anchor));
obuf->img_alt = 0;
@@ -10995,7 +14917,7 @@ index 567d41e..e26f383 100644
obuf->in_bold = 0;
obuf->in_italic = 0;
obuf->in_under = 0;
-@@ -6791,6 +6937,15 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf)
+@@ -6791,6 +6966,15 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf)
push_tag(obuf, "</img_alt>", HTML_N_IMG_ALT);
obuf->img_alt = NULL;
}
@@ -11011,7 +14933,7 @@ index 567d41e..e26f383 100644
if (obuf->in_bold) {
push_tag(obuf, "</b>", HTML_N_B);
obuf->in_bold = 0;
-@@ -6963,8 +7118,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -6963,8 +7147,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
image_flag = IMG_FLAG_AUTO;
else
image_flag = IMG_FLAG_SKIP;
@@ -11020,7 +14942,7 @@ index 567d41e..e26f383 100644
#endif
if (w3m_halfload) {
-@@ -6987,6 +7140,9 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -6987,6 +7169,9 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
htmlenv1.f = stdout;
else
htmlenv1.buf = newTextLineList();
@@ -11030,7 +14952,7 @@ index 567d41e..e26f383 100644
if (SETJMP(AbortLoading) != 0) {
HTMLlineproc1("<br>Transfer Interrupted!<br>", &htmlenv1);
-@@ -7048,18 +7204,23 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -7048,18 +7233,23 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
}
#endif
lineBuf2 = convertLine(f, lineBuf2, HTML_MODE, &charset, doc_charset);
@@ -11056,7 +14978,7 @@ index 567d41e..e26f383 100644
if (htmlenv1.title)
newBuf->buffername = htmlenv1.title;
if (w3m_halfdump) {
-@@ -7096,16 +7257,17 @@ loadHTMLString(Str page)
+@@ -7096,16 +7286,17 @@ loadHTMLString(Str page)
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
Buffer *newBuf;
@@ -11076,7 +14998,7 @@ index 567d41e..e26f383 100644
#ifdef USE_M17N
newBuf->document_charset = InnerCharset;
#endif
-@@ -7115,6 +7277,7 @@ loadHTMLString(Str page)
+@@ -7115,6 +7306,7 @@ loadHTMLString(Str page)
#endif
TRAP_OFF;
@@ -11084,7 +15006,7 @@ index 567d41e..e26f383 100644
newBuf->topLine = newBuf->firstLine;
newBuf->lastLine = newBuf->currentLine;
newBuf->currentLine = newBuf->firstLine;
-@@ -7207,7 +7370,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset)
+@@ -7207,7 +7399,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset)
q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr,
"/", file->ptr, NULL)->ptr;
Strcat_m_charp(tmp, "<a href=\"",
@@ -11093,7 +15015,7 @@ index 567d41e..e26f383 100644
"\">", p, html_quote(name->ptr + 1), "</a>\n", NULL);
}
-@@ -7243,7 +7406,6 @@ loadBuffer(URLFile *uf, Buffer *volatile newBuf)
+@@ -7243,7 +7435,6 @@ loadBuffer(URLFile *uf, Buffer *volatile newBuf)
if (newBuf == NULL)
newBuf = newBuffer(INIT_BUFFER_WIDTH);
@@ -11101,7 +15023,7 @@ index 567d41e..e26f383 100644
if (SETJMP(AbortLoading) != 0) {
goto _end;
-@@ -7331,6 +7493,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7331,6 +7522,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
URLFile f;
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
struct stat st;
@@ -11109,7 +15031,7 @@ index 567d41e..e26f383 100644
loadImage(newBuf, IMG_FLAG_STOP);
image.url = uf->url;
-@@ -7338,20 +7501,18 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7338,20 +7530,18 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
image.width = -1;
image.height = -1;
image.cache = NULL;
@@ -11133,7 +15055,7 @@ index 567d41e..e26f383 100644
TRAP_OFF;
cache->loaded = IMG_FLAG_LOADED;
-@@ -7371,6 +7532,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7371,6 +7561,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
init_stream(&f, SCM_LOCAL, newStrStream(tmp));
loadHTMLstream(&f, newBuf, src, TRUE);
@@ -11141,7 +15063,7 @@ index 567d41e..e26f383 100644
if (src)
fclose(src);
-@@ -7580,8 +7742,11 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7580,8 +7771,11 @@ openGeneralPagerBuffer(InputStream stream)
#ifdef USE_M17N
content_charset = 0;
#endif
@@ -11154,7 +15076,7 @@ index 567d41e..e26f383 100644
readHeader(&uf, t_buf, TRUE, NULL);
t = checkContentType(t_buf);
if (t == NULL)
-@@ -7609,14 +7774,13 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7609,14 +7803,13 @@ openGeneralPagerBuffer(InputStream stream)
#ifdef USE_IMAGE
else if (activeImage && displayImage && !useExtImageViewer &&
!(w3m_dump & ~DUMP_FRAME) && !strncasecmp(t, "image/", 6)) {
@@ -11171,7 +15093,7 @@ index 567d41e..e26f383 100644
UFclose(&uf);
if (buf == NULL || buf == NO_BUFFER)
return buf;
-@@ -7629,8 +7793,6 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7629,8 +7822,6 @@ openGeneralPagerBuffer(InputStream stream)
}
}
buf->real_type = t;
@@ -11180,7 +15102,7 @@ index 567d41e..e26f383 100644
return buf;
}
-@@ -7766,6 +7928,8 @@ save2tmp(URLFile uf, char *tmpf)
+@@ -7766,6 +7957,8 @@ save2tmp(URLFile uf, char *tmpf)
clen_t linelen = 0, trbyte = 0;
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
static JMP_BUF env_bak;
@@ -11189,7 +15111,7 @@ index 567d41e..e26f383 100644
ff = fopen(tmpf, "wb");
if (ff == NULL) {
-@@ -7802,30 +7966,29 @@ save2tmp(URLFile uf, char *tmpf)
+@@ -7802,30 +7995,29 @@ save2tmp(URLFile uf, char *tmpf)
else
#endif /* USE_NNTP */
{
@@ -11232,7 +15154,7 @@ index 567d41e..e26f383 100644
{
Str tmpf, command;
struct mailcap *mcap;
-@@ -7834,7 +7997,7 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7834,7 +8026,7 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
char *header, *src = NULL, *ext = uf.ext;
if (!(mcap = searchExtViewer(type)))
@@ -11241,7 +15163,7 @@ index 567d41e..e26f383 100644
if (mcap->nametemplate) {
tmpf = unquote_mailcap(mcap->nametemplate, NULL, "", NULL, NULL);
-@@ -7867,15 +8030,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7867,15 +8059,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
UFclose(&uf);
myExec(command->ptr);
}
@@ -11259,7 +15181,7 @@ index 567d41e..e26f383 100644
}
}
if (mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT)) {
-@@ -7918,14 +8079,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7918,14 +8108,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
buf = NO_BUFFER;
}
if (buf && buf != NO_BUFFER) {
@@ -11278,7 +15200,7 @@ index 567d41e..e26f383 100644
}
static int
-@@ -7935,7 +8095,8 @@ _MoveFile(char *path1, char *path2)
+@@ -7935,7 +8124,8 @@ _MoveFile(char *path1, char *path2)
FILE *f2;
int is_pipe;
clen_t linelen = 0, trbyte = 0;
@@ -11288,7 +15210,7 @@ index 567d41e..e26f383 100644
f1 = openIS(path1);
if (f1 == NULL)
-@@ -7953,12 +8114,13 @@ _MoveFile(char *path1, char *path2)
+@@ -7953,12 +8143,13 @@ _MoveFile(char *path1, char *path2)
return -1;
}
current_content_length = 0;
@@ -11306,7 +15228,7 @@ index 567d41e..e26f383 100644
ISclose(f1);
if (is_pipe)
pclose(f2);
-@@ -7998,7 +8160,7 @@ _doFileCopy(char *tmpf, char *defstr, int download)
+@@ -7998,7 +8189,7 @@ _doFileCopy(char *tmpf, char *defstr, int download)
else {
if (q) {
p = unescape_spaces(Strnew_charp(q))->ptr;
@@ -11315,7 +15237,7 @@ index 567d41e..e26f383 100644
}
p = expandPath(p);
if (checkOverWrite(p) < 0)
-@@ -8317,21 +8479,23 @@ uncompress_stream(URLFile *uf, char **src)
+@@ -8317,21 +8508,23 @@ uncompress_stream(URLFile *uf, char **src)
}
if (pid2 == 0) {
/* child2 */
@@ -11344,7 +15266,7 @@ index 567d41e..e26f383 100644
exit(0);
}
/* child1 */
-@@ -8378,7 +8542,7 @@ lessopen_stream(char *path)
+@@ -8378,7 +8571,7 @@ lessopen_stream(char *path)
}
c = getc(fp);
if (c == EOF) {
@@ -11542,10 +15464,36 @@ index 8378939..4b99a9d 100644
global double image_scale init(100);
#endif
diff --git a/form.c b/form.c
-index b7556ca..62b568e 100644
+index b7556ca..de7a4d9 100644
--- a/form.c
+++ b/form.c
-@@ -196,7 +196,7 @@ formtype(char *typestr)
+@@ -10,8 +10,10 @@
+ #include "regex.h"
+
+ extern Str *textarea_str;
++extern int max_textarea;
+ #ifdef MENU_SELECT
+ extern FormSelectOption *select_option;
++extern int max_select;
+ #include "menu.h"
+ #endif /* MENU_SELECT */
+
+@@ -122,10 +124,12 @@ formList_addInput(struct form_list *fl, struct parsed_tag *tag)
+ parsedtag_get_value(tag, ATTR_SIZE, &item->size);
+ parsedtag_get_value(tag, ATTR_MAXLENGTH, &item->maxlength);
+ item->readonly = parsedtag_exists(tag, ATTR_READONLY);
+- if (parsedtag_get_value(tag, ATTR_TEXTAREANUMBER, &i))
++ if (parsedtag_get_value(tag, ATTR_TEXTAREANUMBER, &i)
++ && i >= 0 && i < max_textarea)
+ item->value = item->init_value = textarea_str[i];
+ #ifdef MENU_SELECT
+- if (parsedtag_get_value(tag, ATTR_SELECTNUMBER, &i))
++ if (parsedtag_get_value(tag, ATTR_SELECTNUMBER, &i)
++ && i >= 0 && i < max_select)
+ item->select_option = select_option[i].first;
+ #endif /* MENU_SELECT */
+ if (parsedtag_get_value(tag, ATTR_ROWS, &p))
+@@ -196,7 +200,7 @@ formtype(char *typestr)
if (!strcasecmp(typestr, _formtypetbl[i]))
return i;
}
@@ -11554,7 +15502,40 @@ index b7556ca..62b568e 100644
}
void
-@@ -787,7 +787,7 @@ struct pre_form {
+@@ -438,6 +442,8 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form)
+ switch (form->type) {
+ case FORM_INPUT_CHECKBOX:
+ case FORM_INPUT_RADIO:
++ if (spos >= buf->currentLine->len || spos < 0)
++ break;
+ if (form->checked)
+ buf->currentLine->lineBuf[spos] = '*';
+ else
+@@ -455,8 +461,14 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form)
+ }
+ else
+ #endif /* MENU_SELECT */
++ {
++ if (!form->value)
++ break;
+ p = form->value->ptr;
++ }
+ l = buf->currentLine;
++ if (!l)
++ break;
+ if (form->type == FORM_TEXTAREA) {
+ int n = a->y - buf->currentLine->linenumber;
+ if (n > 0)
+@@ -477,6 +489,8 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form)
+ spos = a->start.pos;
+ epos = a->end.pos;
+ }
++ if (a->start.line != a->end.line || spos > epos || epos >= l->len || spos < 0 || epos < 0)
++ break;
+ pos = form_update_line(l, &p, spos, epos, COLPOS(l, epos) - col,
+ rows > 1,
+ form->type == FORM_INPUT_PASSWORD);
+@@ -787,7 +801,7 @@ struct pre_form {
static struct pre_form *PreForm = NULL;
static struct pre_form *
@@ -11563,7 +15544,7 @@ index b7556ca..62b568e 100644
{
ParsedURL pu;
struct pre_form *new;
-@@ -796,21 +796,13 @@ add_pre_form(struct pre_form *prev, char *url, char *name, char *action)
+@@ -796,21 +810,13 @@ add_pre_form(struct pre_form *prev, char *url, char *name, char *action)
new = prev->next = New(struct pre_form);
else
new = PreForm = New(struct pre_form);
@@ -11589,7 +15570,7 @@ index b7556ca..62b568e 100644
new->name = (name && *name) ? name : NULL;
new->action = (action && *action) ? action : NULL;
new->item = NULL;
-@@ -834,7 +826,7 @@ add_pre_form_item(struct pre_form *pf, struct pre_form_item *prev, int type,
+@@ -834,7 +840,7 @@ add_pre_form_item(struct pre_form *pf, struct pre_form_item *prev, int type,
new->name = name;
new->value = value;
if (checked && *checked && (!strcmp(checked, "0") ||
@@ -11598,7 +15579,7 @@ index b7556ca..62b568e 100644
|| !strcasecmp(checked, "no")))
new->checked = 0;
else
-@@ -875,6 +867,7 @@ loadPreForm(void)
+@@ -875,6 +881,7 @@ loadPreForm(void)
return;
while (1) {
char *p, *s, *arg;
@@ -11606,7 +15587,7 @@ index b7556ca..62b568e 100644
line = Strfgets(fp);
if (line->length == 0)
-@@ -890,18 +883,20 @@ loadPreForm(void)
+@@ -890,18 +897,20 @@ loadPreForm(void)
if (*p == '#' || *p == '\0')
continue; /* comment or empty line */
s = getWord(&p);
@@ -11629,7 +15610,7 @@ index b7556ca..62b568e 100644
if (!strcmp(s, "form")) {
if (!arg || !*arg)
continue;
-@@ -913,7 +908,7 @@ loadPreForm(void)
+@@ -913,7 +922,7 @@ loadPreForm(void)
}
if (pf->item) {
struct pre_form *prev = pf;
@@ -13194,10 +17175,60 @@ index c195d49..d5c9018 100644
}
#endif
diff --git a/libwc/iso2022.c b/libwc/iso2022.c
-index 33d9a19..385adde 100644
+index 33d9a19..a191f28 100644
--- a/libwc/iso2022.c
+++ b/libwc/iso2022.c
-@@ -463,7 +463,7 @@ wc_push_to_iso2022(Str os, wc_wchar_t cc, wc_status *st)
+@@ -405,7 +405,8 @@ wc_push_to_iso2022(Str os, wc_wchar_t cc, wc_status *st)
+ case WC_CCS_A_CS94:
+ if (cc.ccs == WC_CCS_US_ASCII)
+ cc.ccs = st->g0_ccs;
+- g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
++ if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE)
++ g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
+ break;
+ case WC_CCS_A_CS94W:
+ is_wide = 1;
+@@ -435,35 +436,41 @@ wc_push_to_iso2022(Str os, wc_wchar_t cc, wc_status *st)
+ break;
+ #endif
+ }
+- g = cs94w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
++ if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE)
++ g = cs94w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
+ break;
+ case WC_CCS_A_CS96:
+- g = cs96_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
++ if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE)
++ g = cs96_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
+ break;
+ case WC_CCS_A_CS96W:
+ is_wide = 1;
+- g = cs96w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
++ if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE)
++ g = cs96w_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
+ break;
+ case WC_CCS_A_CS942:
+- g = cs942_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
++ if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE)
++ g = cs942_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
+ break;
+ case WC_CCS_A_UNKNOWN_W:
+ if (WcOption.no_replace)
+ return;
+ is_wide = 1;
+ cc.ccs = WC_CCS_US_ASCII;
+- g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
++ if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE)
++ g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
+ cc.code = ((wc_uint32)WC_REPLACE_W[0] << 8) | WC_REPLACE_W[1];
+ break;
+ case WC_CCS_A_UNKNOWN:
+ if (WcOption.no_replace)
+ return;
+ cc.ccs = WC_CCS_US_ASCII;
+- g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
++ if (WC_CCS_INDEX(cc.ccs) >= WC_F_ISO_BASE)
++ g = cs94_gmap[WC_CCS_INDEX(cc.ccs) - WC_F_ISO_BASE];
cc.code = (wc_uint32)WC_REPLACE[0];
break;
default:
@@ -15921,10 +19952,18 @@ index 8a1f0e8..c0494b7 100644
goto open_err;
IStype(news->rf) |= IST_UNCLOSE;
diff --git a/parsetagx.c b/parsetagx.c
-index 6b627d2..3435f9f 100644
+index 6b627d2..1cc7048 100644
--- a/parsetagx.c
+++ b/parsetagx.c
-@@ -221,6 +221,7 @@ parse_tag(char **s, int internal)
+@@ -120,6 +120,7 @@ parse_tag(char **s, int internal)
+ int i, attr_id = 0, nattr;
+
+ /* Parse tag name */
++ tagname[0] = '\0';
+ q = (*s) + 1;
+ p = tagname;
+ if (*q == '/') {
+@@ -221,6 +222,7 @@ parse_tag(char **s, int internal)
int j, hidden=FALSE;
for (j=0; j<i; j++) {
if (tag->attrid[j] == ATTR_TYPE &&
@@ -21875,50 +25914,143 @@ index b2fca8f..503dddc 100644
split(" ", "menu_select menu_close menu_cancel menu_down menu_up
menu_line_up menu_line_down menu_top menu_last menu_next
menu_prev menu_search_fore menu_search_back menu_search_next
+diff --git a/scripts/w3mman/Makefile.in b/scripts/w3mman/Makefile.in
+index 569e2fc..ad1cffe 100644
+--- a/scripts/w3mman/Makefile.in
++++ b/scripts/w3mman/Makefile.in
+@@ -33,11 +33,13 @@ ETC_DIR = $(sysconfdir)
+ CONF_DIR = $(sysconfdir)/$(PACKAGE)
+ BIN_DIR = $(bindir)
+ MAN1_DIR = $(mandir)/man1
++MAN1_DE_DIR = $(mandir)/de/man1
+
+ TARGETS = w3mman
+ CGIBIN_TARGETS = w3mman2html.cgi
+ MAN1_TARGETS = w3mman.1
+-MAN_TARGETS = $(MAN1_TARGETS)
++MAN1_DE_TARGETS = w3mman.de.1
++MAN_TARGETS = $(MAN1_TARGETS) $(MAN1_DE_TARGETS)
+
+ MKDIR = mkdir -p
+ INSTALL = @INSTALL@
+@@ -53,6 +55,7 @@ install: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS)
+ -$(MKDIR) $(DESTDIR)$(BIN_DIR)
+ -$(MKDIR) $(DESTDIR)$(CGIBIN_DIR)
+ -$(MKDIR) $(DESTDIR)$(MAN1_DIR)
++ -$(MKDIR) $(DESTDIR)$(MAN1_DE_DIR)
+ for file in $(TARGETS); \
+ do \
+ $(INSTALL_SCRIPT) $$file $(DESTDIR)$(BIN_DIR); \
+@@ -65,6 +68,12 @@ install: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS)
+ do \
+ $(INSTALL_MAN) $$file $(DESTDIR)$(MAN1_DIR); \
+ done
++ for file in $(MAN1_DE_TARGETS); \
++ do \
++ $(INSTALL_MAN) $$file $(DESTDIR)$(MAN1_DE_DIR); \
++ f=`echo "$$file" | sed -e 's/\.de\././'`; \
++ mv $(DESTDIR)$(MAN1_DE_DIR)/$$file $(DESTDIR)$(MAN1_DE_DIR)/$$f; \
++ done
+
+ uninstall:
+ -for file in $(TARGETS); \
+@@ -79,6 +88,11 @@ uninstall:
+ do \
+ rm -f $(MAN1_DIR)/$$file; \
+ done
++ -for file in $(MAN1_DE_TARGETS); \
++ do \
++ f=`echo "$$file" | sed -e 's/\.de\././'`; \
++ rm -f $(MAN1_DE_DIR)/$$f; \
++ done
+
+ clean:
+
+@@ -89,7 +103,7 @@ distclean:
+ dist: all
+ @-rm -fr $(distdir)/w3mman
+ -$(MKDIR) $(distdir)/w3mman
+- cp Makefile README w3mman.in w3mman2html.cgi.in hlink.cgi w3mman.1.in $(distdir)/w3mman
++ cp Makefile README w3mman.in w3mman2html.cgi.in hlink.cgi w3mman.1.in w3mman.de.1.in $(distdir)/w3mman
+ ( cd $(distdir); tar -cf - w3mman | GZIP='' gzip ) \
+ > $(distdir)/w3mman.tar.gz
+ -rm -fr $(distdir)/w3mman
diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in
-index 1c0361d..1b1d990 100644
+index 1c0361d..904fb5d 100644
--- a/scripts/w3mman/w3mman.1.in
+++ b/scripts/w3mman/w3mman.1.in
@@ -1,4 +1,4 @@
-.TH W3MMAN 1 "Nov 5, 2005"
-+.TH W3MMAN 1 "Nov 23, 2014"
++.TH W3MMAN 1 "2016-07-13"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
-@@ -12,19 +12,19 @@
+@@ -12,36 +12,52 @@
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
-w3mman \- an interface to the on-line reference manuals by w3m(1)
+w3mman \- an interface to the on-line reference manuals via w3m(1)
.SH SYNOPSIS
++.\" mh 2016-07-04: "page" is an optional argument.
++.\" Started without it, w3mman displays a form that allows selection
++.\" of a manual page according to section, name and keyword.
++.\" Therefore square brackets introduced
.B w3mman
-.RI "[-M " path ] " " [ section ] " page"
-+.RI "[\-M " path ] " " [ section ] " page"
++[
++.BI \-M " path"
++] [
++.I section
++] [
++.I page
++]
.br
.B w3mman
-.RI "[-M " path "] -k " keyword
-+.RI "[\-M " path "] \-k " keyword
++[
++.BI \-M " path"
++]
++.BI \-k " keyword"
.br
.B w3mman
-.RI -l " file
-+.RI \-l " file
++.BI \-l " file"
++.br
.SH DESCRIPTION
++.\" mh 2016-07-04 text edited. This section shall deliver
++.\" more information than section NAME
.B w3mman
-is the system's manual pager by
-+is a pager for manual pages, using
- .BR w3m (1).
+-.BR w3m (1).
++is a Perl script that uses
++.BR w3m (1)
++to serve as a pager for on-line reference manuals.
.SH OPTIONS
A summary of options is included below.
-@@ -42,6 +42,7 @@ Specify
- Specify a
- .I file.
+ .TP
+ .BI \-M " path"
+-Specify
++Specify
+ .I path
+-as MANPATH.
++as alternative MANPATH to use.
+ .TP
+ .BI \-k " keyword"
+-Specify
+-.I keyword.
++Specify \fIkeyword\fP.
+ .TP
+ .BI \-l " file"
+-Specify a
+-.I file.
++Specify a \fIfile\fP.
.SH ENVIRONMENT
+Two variables are available for debugging.
.TP
.B W3MMAN_W3M
If W3MMAN_W3M is set, its value is used instead of @W3M@.
-@@ -51,7 +52,7 @@ If W3MMAN_MAN is set, its value is used instead of @MAN@.
+@@ -51,7 +67,7 @@ If W3MMAN_MAN is set, its value is used instead of @MAN@.
.SH FILES
.TP
.I @libexecdir@/@PACKAGE@/cgi-bin/w3mman2html.cgi
@@ -21927,6 +26059,83 @@ index 1c0361d..1b1d990 100644
.SH SEE ALSO
.BR man (1),
.BR w3m (1).
+diff --git a/scripts/w3mman/w3mman.de.1.in b/scripts/w3mman/w3mman.de.1.in
+new file mode 100644
+index 0000000..d6c5a44
+--- /dev/null
++++ b/scripts/w3mman/w3mman.de.1.in
+@@ -0,0 +1,71 @@
++.\"*******************************************************************
++.\"
++.\" This file was generated with po4a. Translate the source file.
++.\"
++.\"*******************************************************************
++.TH W3MMAN 1 2016\-07\-13
++.\" Please adjust this date whenever revising the manpage.
++.\"
++.\" Some roff macros, for reference:
++.\" .nh disable hyphenation
++.\" .hy enable hyphenation
++.\" .ad l left justify
++.\" .ad b justify to both left and right margins
++.\" .nf disable filling
++.\" .fi enable filling
++.\" .br insert line break
++.\" .sp <n> insert n+1 empty lines
++.\" for manpage-specific macros, see man(7)
++.SH NAME
++w3mman \- eine Schnittstelle zur Anzeige von Online\-Referenzhandbüchern durch
++w3m(1)
++.SH SYNOPSIS
++.\" mh 2016-07-04: "page" is an optional argument.
++.\" Started without it, w3mman displays a form that allows selection
++.\" of a manual page according to section, name and keyword.
++.\" Therefore square brackets introduced
++\fBw3mman\fP [ \fB\-M\fP \fIPfad\fP ] [ \fIAbschnitt\fP ] [ \fISeite\fP ]
++.br
++\fBw3mman\fP [\fB\-M\fP \fIPfad\fP] \fB\-k\fP \fIStichwort\fP
++.br
++\fBw3mman\fP \fB\-l\fP \fIDatei\fP
++.br
++.SH BESCHREIBUNG
++.\" mh 2016-07-04 text edited. This section shall deliver
++.\" more information than section NAME
++\fBw3mman\fP ist ein Perl\-Skript, welches auf \fBw3m\fP(1) zurückgreift, um als
++Betrachter für Online\-Referenzhandbücher zu dienen.
++.SH OPTIONEN
++Es folgt eine Zusammenfassung der Optionen.
++.TP
++\fB\-M\fP\fI Pfad\fP
++Suchpfad für Handbuchseiten auf \fIPfad\fP setzen
++.TP
++\fB\-k\fP \fIStichwort\fP
++zum \fIStichwort\fP passende Handbuchseiten anzeigen
++.TP
++\fB\-l\fP \fIDatei\fP
++die Handbuchseiten\-Datei \fIDatei\fP anzeigen
++.SH UMGEBUNGSVARIABLEN
++Zur Fehleranalyse stehen zwei Variablen zur Verfügung.
++.TP
++\fBW3MMAN_W3M\fP
++Ist W3MMAN_W3M gesetzt, wird ihr Wert anstelle von @W3M@ verwendet.
++.TP
++\fBW3MMAN_MAN\fP
++Ist W3MMAN_MAN gesetzt, wird ihr Wert anstelle von @MAN@ verwendet.
++.SH DATEIEN
++.TP
++\fI@libexecdir@/@PACKAGE@/cgi\-bin/w3mman2html.cgi\fP
++Skript, welches Handbuchseiten in HTML konvertiert
++.SH "SIEHE AUCH"
++\fBman\fP(1), \fBw3m\fP(1).
++.SH AUTOR
++Diese Handbuchseite wurde von Fumitoshi UKAI <ukai@debian.or.jp> für
++Debian GNU / Linux geschrieben, sie kann aber auch auf anderen Systemen
++verwendet werden.
++Die deutsche Übersetzung wurde 2016 von
++.UR markus.hiereth@freenet.de
++Markus Hiereth
++.UE
++erstellt.
diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in
index f430307..2cd00f9 100644
--- a/scripts/w3mman/w3mman2html.cgi.in
@@ -21976,7 +26185,7 @@ index f430307..2cd00f9 100644
$p =~ s@/+$@@;
$PATH{$p} = 1;
diff --git a/table.c b/table.c
-index e1243ff..2a0aa8f 100644
+index e1243ff..e906e9f 100644
--- a/table.c
+++ b/table.c
@@ -188,7 +188,7 @@ dv2sv(double *dv, short *iv, int size)
@@ -21997,6 +26206,33 @@ index e1243ff..2a0aa8f 100644
return;
x = edv[(int)indexarray[iw - 1]];
for (i = 0; i < size; i++) {
+@@ -278,7 +278,7 @@ newTable()
+ t->max_rowsize = MAXROW;
+ t->tabdata = New_N(GeneralList **, MAXROW);
+ t->tabattr = New_N(table_attr *, MAXROW);
+- t->tabheight = NewAtom_N(short, MAXROW);
++ t->tabheight = NewAtom_N(int, MAXROW);
+ #ifdef ID_EXT
+ t->tabidvalue = New_N(Str *, MAXROW);
+ t->tridvalue = New_N(Str, MAXROW);
+@@ -331,7 +331,7 @@ check_row(struct table *t, int row)
+ int i, r;
+ GeneralList ***tabdata;
+ table_attr **tabattr;
+- short *tabheight;
++ int *tabheight;
+ #ifdef ID_EXT
+ Str **tabidvalue;
+ Str *tridvalue;
+@@ -341,7 +341,7 @@ check_row(struct table *t, int row)
+ r = max(t->max_rowsize * 2, row + 1);
+ tabdata = New_N(GeneralList **, r);
+ tabattr = New_N(table_attr *, r);
+- tabheight = NewAtom_N(short, r);
++ tabheight = NewAtom_N(int, r);
+ #ifdef ID_EXT
+ tabidvalue = New_N(Str *, r);
+ tridvalue = New_N(Str, r);
@@ -429,7 +429,6 @@ visible_length(char *str)
char *t, *r2;
int amp_len = 0;
@@ -22005,6 +26241,51 @@ index e1243ff..2a0aa8f 100644
while (*str) {
prev_status = status;
if (next_status(*str, &status)) {
+@@ -761,7 +760,7 @@ do_refill(struct table *tbl, int row, int col, int maxlimit)
+ struct parsed_tag *tag;
+ if ((tag = parse_tag(&p, TRUE)) != NULL)
+ parsedtag_get_value(tag, ATTR_TID, &id);
+- if (id >= 0 && id < tbl->ntable) {
++ if (id >= 0 && id < tbl->ntable && tbl->tables[id].ptr) {
+ int alignment;
+ TextLineListItem *ti;
+ struct table *t = tbl->tables[id].ptr;
+@@ -847,7 +846,7 @@ table_rule_width(struct table *t)
+ }
+
+ static void
+-check_cell_width(short *tabwidth, short *cellwidth,
++check_cell_width(int *tabwidth, int *cellwidth,
+ short *col, short *colspan, short maxcell,
+ short *indexarray, int space, int dir)
+ {
+@@ -1479,7 +1478,7 @@ check_table_height(struct table *t)
+ short *indexarray;
+ short maxcell;
+ short size;
+- short *height;
++ int *height;
+ } cell;
+ int space = 0;
+
+@@ -1518,7 +1517,7 @@ check_table_height(struct table *t)
+ cell.row = NewAtom_N(short, cell.size);
+ cell.rowspan = NewAtom_N(short, cell.size);
+ cell.indexarray = NewAtom_N(short, cell.size);
+- cell.height = NewAtom_N(short, cell.size);
++ cell.height = NewAtom_N(int, cell.size);
+ }
+ else {
+ cell.size = max(cell.size + MAXCELL, c + 1);
+@@ -1527,7 +1526,7 @@ check_table_height(struct table *t)
+ cell.size);
+ cell.indexarray = New_Reuse(short, cell.indexarray,
+ cell.size);
+- cell.height = New_Reuse(short, cell.height, cell.size);
++ cell.height = New_Reuse(int, cell.height, cell.size);
+ }
+ }
+ if (c > cell.maxcell) {
@@ -1691,7 +1690,7 @@ renderTable(struct table *t, int max_width, struct html_feed_environ *h_env)
{
int i, j, w, r, h;
@@ -22014,7 +26295,35 @@ index e1243ff..2a0aa8f 100644
#ifdef MATRIX
int itr;
VEC *newwidth;
-@@ -2878,6 +2877,14 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode,
+@@ -1724,6 +1723,10 @@ renderTable(struct table *t, int max_width, struct html_feed_environ *h_env)
+ if (max_width < rulewidth)
+ max_width = rulewidth;
+
++#define MAX_TABWIDTH 10000
++ if (max_width > MAX_TABWIDTH)
++ max_width = MAX_TABWIDTH;
++
+ check_maximum_width(t);
+
+ #ifdef MATRIX
+@@ -2600,12 +2603,16 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode,
+ if ((tbl->row + rowspan) >= tbl->max_rowsize)
+ check_row(tbl, tbl->row + rowspan);
+ }
++ if (rowspan < 1)
++ rowspan = 1;
+ if (parsedtag_get_value(tag, ATTR_COLSPAN, &colspan)) {
+ if ((tbl->col + colspan) >= MAXCOL) {
+ /* Can't expand column */
+ colspan = MAXCOL - tbl->col;
+ }
+ }
++ if (colspan < 1)
++ colspan = 1;
+ if (parsedtag_get_value(tag, ATTR_ALIGN, &i)) {
+ switch (i) {
+ case ALIGN_LEFT:
+@@ -2878,6 +2885,14 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode,
tmp = process_input(tag);
feed_table1(tbl, tmp, mode, width);
break;
@@ -22029,7 +26338,7 @@ index e1243ff..2a0aa8f 100644
case HTML_SELECT:
tmp = process_select(tag);
if (tmp)
-@@ -3010,7 +3017,6 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode,
+@@ -3010,7 +3025,6 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode,
break;
case HTML_TABLE_ALT:
id = -1;
@@ -22038,7 +26347,7 @@ index e1243ff..2a0aa8f 100644
if (id >= 0 && id < tbl->ntable) {
struct table *tbl1 = tbl->tables[id].ptr;
diff --git a/table.h b/table.h
-index 83b661f..fdcdef3 100644
+index 83b661f..df03143 100644
--- a/table.h
+++ b/table.h
@@ -17,7 +17,7 @@
@@ -22050,6 +26359,15 @@ index 83b661f..fdcdef3 100644
#define MAX_WIDTH 80
+@@ -100,7 +100,7 @@ struct table {
+ short minimum_width[MAXCOL];
+ short fixed_width[MAXCOL];
+ struct table_cell cell;
+- short *tabheight;
++ int *tabheight;
+ struct table_in *tables;
+ short ntable;
+ short tables_size;
diff --git a/tagtable.tab b/tagtable.tab
index f9b7b76..f5a2c30 100644
--- a/tagtable.tab
@@ -22404,6 +26722,37 @@ index 7a3c987..3d2ffd7 100644
#define CYGWIN_ON {fputs("\033[?1000h",ttyf); flush_tty();}
#define CYGWIN_OFF {fputs("\033[?1000l",ttyf); flush_tty();}
+diff --git a/textlist.h b/textlist.h
+index f28b199..385eee4 100644
+--- a/textlist.h
++++ b/textlist.h
+@@ -14,7 +14,7 @@ typedef struct _listitem {
+ typedef struct _generallist {
+ ListItem *first;
+ ListItem *last;
+- short nitem;
++ int nitem;
+ } GeneralList;
+
+ extern ListItem *newListItem(void *s, ListItem *n, ListItem *p);
+@@ -36,7 +36,7 @@ typedef struct _textlistitem {
+ typedef struct _textlist {
+ TextListItem *first;
+ TextListItem *last;
+- short nitem;
++ int nitem;
+ } TextList;
+
+ #define newTextList() ((TextList *)newGeneralList())
+@@ -62,7 +62,7 @@ typedef struct _textlinelistitem {
+ typedef struct _textlinelist {
+ TextLineListItem *first;
+ TextLineListItem *last;
+- short nitem;
++ int nitem;
+ } TextLineList;
+
+ extern TextLine *newTextLine(Str line, int pos);
diff --git a/url.c b/url.c
index ed6062e..c90cd9f 100644
--- a/url.c