diff options
Diffstat (limited to '')
-rw-r--r-- | scripts/w3mhelp.cgi.in | 186 |
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(< < > > & &); + +$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&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"; +} |