aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/w3mhelp.cgi.in
diff options
context:
space:
mode:
authorFumitoshi UKAI <ukai@debian.or.jp>2001-11-30 16:48:12 +0000
committerFumitoshi UKAI <ukai@debian.or.jp>2001-11-30 16:48:12 +0000
commit54da48c631347b43699211f88607a921fe78c178 (patch)
treea00c3ace4be59ba6c6c6b425943f4e9555234e4c /scripts/w3mhelp.cgi.in
parentadd ALARM, SUBMIT (diff)
downloadw3m-54da48c631347b43699211f88607a921fe78c178.tar.gz
w3m-54da48c631347b43699211f88607a921fe78c178.zip
[w3m-dev 02600]
From: Fumitoshi UKAI <ukai@debian.or.jp>
Diffstat (limited to 'scripts/w3mhelp.cgi.in')
-rw-r--r--scripts/w3mhelp.cgi.in186
1 files changed, 186 insertions, 0 deletions
diff --git a/scripts/w3mhelp.cgi.in b/scripts/w3mhelp.cgi.in
new file mode 100644
index 0000000..06d99e9
--- /dev/null
+++ b/scripts/w3mhelp.cgi.in
@@ -0,0 +1,186 @@
+#!@PERL@
+# $Id: w3mhelp.cgi.in,v 1.1 2001/11/30 16:48:19 ukai Exp $
+
+$helpdir="@HELP_DIR@";
+unshift(@INC, $helpdir);
+@docdirs=qw(@DOCDIRS@);
+
+require "w3mhelp-funcname.pl";
+require "w3mhelp-funcdesc.en.pl";
+$lang = 'en';
+
+%htmlesc = qw(< &lt; > &gt; & &amp;);
+
+$keymap = "$ENV{'HOME'}/.w3m/keymap";
+$version = '*unknown*';
+if (defined($ENV{'QUERY_STRING'})) {
+ print "QUERY_STRING=$ENV{'QUERY_STRING'}\n";
+ if ($ENV{'QUERY_STRING'} =~ /(^|&)version=([^&]*)/) {
+ $version = $2;
+ $version =~ s/\+|%([0-9A-Fa-f][0-9A-Fa-f])/$& eq '+' ? ' ' : pack('C', hex($1))/ge;
+ $version =~ s/w3m\///;
+ }
+ if ($ENV{'QUERY_STRING'} =~ /(^|&)lang=([^&]*)/) {
+ local $tlang=$2;
+ $tlang =~ s/\+|%([0-9A-Fa-f][0-9A-Fa-f])/$& eq '+' ? ' ' : pack('C', hex($1))/ge;
+ $tlang =~ tr/A-Z/a-z/;
+ print "tlang=$tlang\n";
+ eval qq{require "w3mhelp-funcdesc.$tlang.pl"};
+ if (defined(%funcdesc)) {
+ $lang = $tlang;
+ }
+ }
+}
+
+if (-f $keymap) {
+ open(KEYMAP, $keymap) or die "cannot open keymap: $keymap, $!";
+ &load_keymap(*KEYMAP, $func);
+ close(KEYMAP);
+}
+
+local (%funckeydesc, $key, $fname, $desc);
+
+while (($fname, $desc) = each %funcdesc) {
+ $funckeydesc{$funcname{$fname}} = "$desc\n";
+}
+while (($key, $fname) = each %keyfunc) {
+ $funckeydesc{$funcname{$fname}} .= "$key,";
+}
+
+print <<HEADING;
+Content-Type: text/html
+
+<HTML>
+<HEAD>
+<TITLE>w3m help page</TITLE>
+</HEAD>
+<BODY>
+<CENTER>
+*******
+<A HREF="http://w3m.sourceforge.net/">w3m</A>
+ (WWW-wo-Miru) Version $version by
+<A HREF="mailto:aito\@fw.ipsj.or.jp">A.ITO</A> ********<BR>
+ ***** Key assign table *****
+</CENTER>
+
+HEADING
+
+$q_version = $version;
+$q_version =~ s/[^A-Za-z0-9_\$\.\-]/sprintf('%%%02X', ord($&))/ge;
+$script = "<A HREF=\"$ENV{'SCRIPT_NAME'}?version=$q_version&amp;lang=";
+
+# doc:en_English doc-jp:ja_Japanese
+for $otherlang (@docdirs) {
+ local(@d) = split(/[:_]/, $otherlang);
+
+ if ($d[1] ne $lang) {
+ $d[1] =~ s/[^A-Za-z0-9_\$\.\-]/sprintf('%%%02X', ord($&))/ge;
+ print $script, $d[1], "\">$d[2] version</A><BR>\n";
+ }
+}
+
+&show_keymap("Page/Cursor motion",
+ qw(pgFore pgBack movR movL movD movU lup1 ldown1
+ goLineF goLineL movRW movLW shiftl shiftr
+ col1R col1L goLine ctrCsrH ctrCsrV
+ topA lastA nextA prevA
+ nextL nextLU nextR nextRD nextD nextU));
+
+&show_keymap("Hyperlink operation",
+ qw(followA svA peekURL peekIMG followI svI
+ chkURL chkNMID curURL pginfo curlno ldHist
+ rFrame extbrz linkbrz));
+
+&show_keymap("File/Stream operation",
+ qw(goURL ldfile readsh pipesh));
+
+&show_keymap("Buffer operation",
+ qw(backBf vwSrc selMn editBf rdrwSc reload
+ svBuf svSrc editScr));
+
+print <<PAGE;
+<H2>Buffer selection mode</H2>
+<table cellpadding=0>
+<TR><TD WIDTH=140>k, C-p<TD>Select previous buffer
+<TR><TD>j, C-n<TD>Select next buffer
+<TR><TD>D<TD>Delete current buffer
+<TR><TD>RET<TD>Go to the selected buffer
+</table>
+PAGE
+
+&show_keymap("Bookmark operation",
+ qw(ldBmark adBmark));
+
+&show_keymap("Search",
+ qw(srchfor srchbak srchnxt srchprv));
+
+&show_keymap("Dictionary look-up",
+ qw(dictword dictwordat));
+
+&show_keymap("Mark operation",
+ qw(_mark prevMk nextMk reMark));
+
+&show_keymap("Miscellany",
+ qw(setAlarm execsh ldhelp ldOpt cooLst susp qquitfm quitfm));
+
+print <<PAGE;
+<H2>Line-edit mode</H2>
+<table cellpadding=0>
+<TR><TD WIDTH=140>C-f<TD>Move cursor forward
+<TR><TD>C-b<TD>Move cursor backward
+<TR><TD>C-h<TD>Delete previous character
+<TR><TD>C-d<TD>Delete current character
+<TR><TD>C-k<TD>Kill everything after cursor
+<TR><TD>C-u<TD>Kill everything before cursor
+<TR><TD>C-a<TD>Move to the top of line
+<TR><TD>C-e<TD>Move to the bottom of line
+<TR><TD>C-p<TD>Fetch the previous string from the history list
+<TR><TD>C-n<TD>Fetch the next string from the history list
+<TR><TD>TAB,SPC<TD>Complete filename
+<TR><TD>RETURN<TD>Accept
+</table>
+<HR>
+</BODY>
+</HTML>
+PAGE
+
+exit 0;
+
+sub load_keymap {
+ local(*FH) = shift;
+ my ($func) = @_;
+
+ while (<FH>) {
+ next if /^#/;
+ next if /^\s*$/;
+ ($keymap, $key, $fname) = split;
+ next unless $keymap =~ /keymap/;
+ $fname =~ tr/a-z/A-Z/;
+ next unless (defined($funcdesc{$fname}));
+ $key =~ s/^\\//;
+ $keyfunc{$key} = $fname;
+ }
+}
+
+sub show_keymap {
+ my ($head, @list) = @_;
+ my ($fid);
+ my ($attr) = " WIDTH=140";
+
+ print <<PAGE;
+<H2>$head</H2>
+<table cellpadding=0>
+PAGE
+ foreach $fid (@list) {
+ local ($desc, $keys) = split("\n", $funckeydesc{$fid}, 2);
+ $keys =~ s/,$//;
+ $keys = '<NOT ASSIGNED>' if ($keys eq '');
+ $keys =~ s/[<>&]/$htmlesc{$&}/ge;
+ $desc =~ s/[<>&]/$htmlesc{$&}/ge;
+ print <<PAGE;
+<TR><TD$attr>$keys</TD><TD>$desc</TD></TR>
+PAGE
+ $attr = "";
+ }
+ print "</table>\n";
+}