| @@ -1,5 +1,5 @@ | ||||
| #!@PERL@ | ||||
| # $Id: w3mhelp.cgi.in,v 1.8 2001/12/25 09:16:23 ukai Exp $ | ||||
| # $Id: w3mhelp.cgi.in,v 1.9 2001/12/25 17:29:31 ukai Exp $ | ||||
|  | ||||
| if ( $^O =~ /^(ms)?(dos|win(32|nt)?)/i ) { | ||||
|   $CYGPATH = 1; | ||||
| @@ -51,6 +51,13 @@ if (defined($ENV{'QUERY_STRING'})) { | ||||
|     } | ||||
| } | ||||
|  | ||||
| %f = %keyfunc; | ||||
| %keyfunc = (); | ||||
| while (($key, $fname) = each %f) { | ||||
| 	$key = &norm_key($key); | ||||
| 	$keyfunc{$key} = $fname; | ||||
| } | ||||
|  | ||||
| if (-f $keymap) { | ||||
|     open(KEYMAP, "< $keymap") || die "cannot open keymap: $keymap, $!"; | ||||
|     &load_keymap(*KEYMAP, $func); | ||||
| @@ -109,42 +116,42 @@ for $otherlang (@docdirs) { | ||||
| } | ||||
|  | ||||
| &show_keymap("Page/Cursor motion",  | ||||
| 	     split(" ", "pgFore pgBack movR movL movD movU lup1 ldown1  | ||||
| 		goLineF goLineL movRW movLW shiftl shiftr | ||||
| 		col1R col1L goLine ctrCsrH ctrCsrV | ||||
| 	     split(" ", "pgFore pgBack movR movL movD movU ldown1 lup1 | ||||
| 		shiftl shiftr col1L col1R linbeg linend ctrCsrH ctrCsrV | ||||
| 		goLine goLineF goLineL movRW movLW | ||||
| 		topA lastA nextA prevA | ||||
| 		nextL nextLU nextR nextRD nextD nextU")); | ||||
| 		nextR nextRD nextL nextRD nextLU nextD nextU")); | ||||
|  | ||||
| &show_keymap("Hyperlink operation", | ||||
| 	     split(" ", "followA svA peekURL peekIMG followI svI | ||||
| 		chkURL chkNMID curURL pginfo curlno ldHist | ||||
| 	     split(" ", "followA svA followI svI submitForm | ||||
| 		curURL peekURL peekIMG pginfo curlno chkURL chkNMID | ||||
| 		rFrame extbrz linkbrz")); | ||||
|  | ||||
| &show_keymap("File/Stream operation", | ||||
| 	     split(" ", "goURL ldfile readsh pipesh")); | ||||
|  | ||||
| &show_keymap("Buffer operation", | ||||
| 	     split(" ", "backBf vwSrc selMn editBf rdrwSc reload  | ||||
| 		svBuf svSrc editScr")); | ||||
|  | ||||
| &show_keymap("Buffer selection mode", | ||||
| 	     split(" ", "buffer_prev buffer_next buffer_delete buffer_go")); | ||||
| 	     split(" ", "backBf selMn selBuf vwSrc svSrc svBuf | ||||
| 		editBf editScr reload rdrwSc")); | ||||
|  | ||||
| &show_keymap("Bookmark operation", | ||||
| 	     split(" ", "ldBmark adBmark")); | ||||
|  | ||||
| &show_keymap("Search", | ||||
| 	     split(" ", "srchfor srchbak srchnxt srchprv")); | ||||
| 	     split(" ", "srchfor srchbak srchnxt srchprv isrchfor isrchbak")); | ||||
|  | ||||
| &show_keymap("Dictionary look-up", | ||||
| 	     split(" ", "dictword dictwordat")); | ||||
|  | ||||
| &show_keymap("Mark operation", | ||||
| 	     split(" ", "_mark prevMk nextMk reMark")); | ||||
| 	     split(" ", "_mark nextMk prevMk reMark")); | ||||
|  | ||||
| &show_keymap("Miscellany", | ||||
| 	     split(" ", | ||||
| 		"setAlarm execsh ldhelp ldOpt cooLst susp qquitfm quitfm")); | ||||
| 	     split(" ", "mainMn ldhelp ldOpt cooLst ldHist msgs msToggle | ||||
| 		wrapToggle setAlarm setOpt setEnv execsh susp qquitfm quitfm")); | ||||
|  | ||||
| &show_keymap("Buffer selection mode", | ||||
| 	     split(" ", "buffer_next buffer_prev buffer_delete buffer_go")); | ||||
|  | ||||
| &show_keymap("Line-edit mode", | ||||
| 	     split(" ", "lineedit_forward lineedit_back lineedit_backspace  | ||||
| @@ -167,15 +174,36 @@ sub load_keymap { | ||||
|     while (<FH>) { | ||||
| 	next if /^#/; | ||||
| 	next if /^\s*$/; | ||||
| 	($keymap, $key, $fname) = split; | ||||
| 	($keymap, $key, $fname, $data) = split; | ||||
| 	next if $data; | ||||
| 	next unless $keymap =~ /keymap/; | ||||
| 	$fname =~ tr/a-z/A-Z/; | ||||
| 	next unless (defined($funcdesc{$fname})); | ||||
| 	$key =~ s/^\\//; | ||||
| 	$key = &norm_key($key); | ||||
| 	$keyfunc{$key} = $fname; | ||||
|     } | ||||
| } | ||||
|  | ||||
| sub norm_key { | ||||
|     local($_) = @_; | ||||
|  | ||||
|     s/^\^/C-/; | ||||
|     s/^(C-\[|M-)/ESC-/; | ||||
|     if (/^ESC-\[/) { | ||||
| 	/^ESC-\[A$/ && return "UP"; | ||||
| 	/^ESC-\[B$/ && return "DOWN"; | ||||
| 	/^ESC-\[C$/ && return "RIGHT"; | ||||
| 	/^ESC-\[D$/ && return "LEFT"; | ||||
| 	s/^ESC-/\^\[/; | ||||
| 	return $_; | ||||
|     } | ||||
|     s/^(ESC-)\^/ESC-C-/; | ||||
|     s/^(ESC-)?C-[iI]/${1}TAB/; | ||||
|     s/^(ESC-)?C-\?/${1}DEL/; | ||||
|     s/^\\//; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub show_keymap { | ||||
|     local($head, @list) = @_; | ||||
|     local($fid); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user