19
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,5 +1,24 @@ | |||||||
| 2001-12-01  Fumitoshi UKAI  <ukai@debian.or.jp> | 2001-12-01  Fumitoshi UKAI  <ukai@debian.or.jp> | ||||||
|  |  | ||||||
|  | 	* scripts/.cvsignore: add w3mhelp.cgi w3mhelp-*.pl | ||||||
|  | 	* scripts/Makefile (HELP_DIR): added | ||||||
|  | 	* scripts/Makefile (LIB_TARGETS): add w3mhelp.cgi | ||||||
|  | 	* scripts/Makefile (DOCDIRS): added | ||||||
|  | 	* scripts/Makefile (all): add helplibs | ||||||
|  | 	* scripts/Makefile (.in): subst HELP_DIR, DOCDIRS | ||||||
|  | 	* scripts/Makefile (helplibs): added | ||||||
|  | 	* scripts/Makefile (install): s/DISTDIR/DESTDIR/ | ||||||
|  | 	* scripts/Makefile (install): install w3mhelp-*.pl | ||||||
|  | 	 | ||||||
|  | 	* scripts/w3mhelp.cgi.in: added | ||||||
|  |  | ||||||
|  | 	* XMakefile (INSTALL2): deleted | ||||||
|  | 	* XMakefile (install): split | ||||||
|  | 	* XMakefile (install-core): added | ||||||
|  | 	* XMakefile (install-helpfile): added | ||||||
|  | 	* XMakefile (all-scripts): HELP_DIR | ||||||
|  | 	* XMakefile (install-scripts): HELP_DIR | ||||||
|  |  | ||||||
| 	* doc/REAMDE.func: add ALARM, SUSPEND | 	* doc/REAMDE.func: add ALARM, SUSPEND | ||||||
| 	* doc-jp/README.func: ditto | 	* doc-jp/README.func: ditto | ||||||
| 	 | 	 | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								XMakefile
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								XMakefile
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| # $Id: XMakefile,v 1.10 2001/11/21 18:51:48 ukai Exp $ | # $Id: XMakefile,v 1.11 2001/11/30 16:48:15 ukai Exp $ | ||||||
| SRCS=main.c file.c buffer.c display.c etc.c search.c linein.c table.c local.c \ | SRCS=main.c file.c buffer.c display.c etc.c search.c linein.c table.c local.c \ | ||||||
| 	form.c map.c frame.c rc.c menu.c mailcap.c\ | 	form.c map.c frame.c rc.c menu.c mailcap.c\ | ||||||
| 	func.c cookie.c history.c backend.c $(KEYBIND_SRC) | 	func.c cookie.c history.c backend.c $(KEYBIND_SRC) | ||||||
| @@ -30,7 +30,6 @@ CFLAGS=$(OPTS) $(MYCFLAGS) $(DEFS) | |||||||
| LIBS=-L. -lindep $(GCLIB) $(MATHLIB) $(LOCAL_LIBRARIES) $(SYS_LIBRARIES) | LIBS=-L. -lindep $(GCLIB) $(MATHLIB) $(LOCAL_LIBRARIES) $(SYS_LIBRARIES) | ||||||
| LIBS2=-L. -lindep $(GCLIB) $(LOCAL_LIBRARIES) | LIBS2=-L. -lindep $(GCLIB) $(LOCAL_LIBRARIES) | ||||||
| INSTALL=sh install.sh | INSTALL=sh install.sh | ||||||
| INSTALL2=sh ../install.sh |  | ||||||
| AR=ar | AR=ar | ||||||
|  |  | ||||||
| all: $(TARGETS) all-scripts | all: $(TARGETS) all-scripts | ||||||
| @@ -83,29 +82,32 @@ gc/gc.a: | |||||||
| 	cd gc; $(MAKE) CC='$(CC)' CFLAGS='$(GCCFLAGS) $(GC_CFLAGS)' SPECIALCFLAGS='-I./\$(srcdir)/include $(GC_CFLAGS)' | 	cd gc; $(MAKE) CC='$(CC)' CFLAGS='$(GCCFLAGS) $(GC_CFLAGS)' SPECIALCFLAGS='-I./\$(srcdir)/include $(GC_CFLAGS)' | ||||||
|  |  | ||||||
|  |  | ||||||
| install: $(TARGETS) all-scripts | install: install-core install-scripts | ||||||
|  |  | ||||||
|  | install-core: $(TARGETS) | ||||||
| 	-$(MKDIR) $(DESTDIR)$(BIN_DIR) | 	-$(MKDIR) $(DESTDIR)$(BIN_DIR) | ||||||
| 	-$(MKDIR) $(DESTDIR)$(HELP_DIR) | 	-$(MKDIR) $(DESTDIR)$(HELP_DIR) | ||||||
| 	-$(MKDIR) $(DESTDIR)$(LIB_DIR) | 	-$(MKDIR) $(DESTDIR)$(LIB_DIR) | ||||||
| 	$(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(BIN_DIR)/$(TARGET) | 	$(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(BIN_DIR)/$(TARGET) | ||||||
|  | 	$(INSTALL) -m 644 $(HELP_FILE) $(DESTDIR)$(HELP_DIR)/w3mhelp.html | ||||||
|  | 	for d in $(EXT_TARGETS); do $(INSTALL) -m 755 $$d $(DESTDIR)$(LIB_DIR)/$$d; done | ||||||
|  |  | ||||||
|  | install-helpfile: | ||||||
| 	$(INSTALL) -m 644 w3mhelp-w3m_en.html $(DESTDIR)$(HELP_DIR)/w3mhelp-w3m_en.html | 	$(INSTALL) -m 644 w3mhelp-w3m_en.html $(DESTDIR)$(HELP_DIR)/w3mhelp-w3m_en.html | ||||||
| 	$(INSTALL) -m 644 w3mhelp-w3m_ja.html $(DESTDIR)$(HELP_DIR)/w3mhelp-w3m_ja.html | 	$(INSTALL) -m 644 w3mhelp-w3m_ja.html $(DESTDIR)$(HELP_DIR)/w3mhelp-w3m_ja.html | ||||||
| 	$(INSTALL) -m 644 w3mhelp-lynx_en.html $(DESTDIR)$(HELP_DIR)/w3mhelp-lynx_en.html | 	$(INSTALL) -m 644 w3mhelp-lynx_en.html $(DESTDIR)$(HELP_DIR)/w3mhelp-lynx_en.html | ||||||
| 	$(INSTALL) -m 644 w3mhelp-lynx_ja.html $(DESTDIR)$(HELP_DIR)/w3mhelp-lynx_ja.html | 	$(INSTALL) -m 644 w3mhelp-lynx_ja.html $(DESTDIR)$(HELP_DIR)/w3mhelp-lynx_ja.html | ||||||
| 	$(INSTALL) -m 644 $(HELP_FILE) $(DESTDIR)$(HELP_DIR)/w3mhelp.html |  | ||||||
| 	for d in $(EXT_TARGETS); do $(INSTALL) -m 755 $$d $(DESTDIR)$(LIB_DIR)/$$d; done |  | ||||||
| 	(cd scripts; for i in *.cgi; do $(INSTALL2) -m 755 $$i $(DESTDIR)$(LIB_DIR)/$$i; done) |  | ||||||
|  |  | ||||||
| all-scripts: | all-scripts: | ||||||
| 	for dir in $(SCRIPTSUBDIRS);	\ | 	for dir in $(SCRIPTSUBDIRS);	\ | ||||||
| 	do	\ | 	do	\ | ||||||
| 		(cd $$dir; $(MAKE) PERL='$(PERL)' BIN_DIR='$(BIN_DIR)' LIB_DIR='$(LIB_DIR)');	\ | 		(cd $$dir; $(MAKE) PERL='$(PERL)' BIN_DIR='$(BIN_DIR)' LIB_DIR='$(LIB_DIR)' HELP_DIR='$(HELP_DIR)');	\ | ||||||
| 	done | 	done | ||||||
|  |  | ||||||
| install-scripts: all-scripts | install-scripts: all-scripts | ||||||
| 	for dir in $(SCRIPTSUBDIRS);	\ | 	for dir in $(SCRIPTSUBDIRS);	\ | ||||||
| 	do	\ | 	do	\ | ||||||
| 		(cd $$dir; $(MAKE) PERL='$(PERL)' BIN_DIR='$(BIN_DIR)' LIB_DIR='$(LIB_DIR)' DESTDIR='$(DESTDIR)' INSTALL='sh $(PWD)/install.sh' install);	\ | 		(cd $$dir; $(MAKE) PERL='$(PERL)' BIN_DIR='$(BIN_DIR)' LIB_DIR='$(LIB_DIR)' HELP_DIR='$(HELP_DIR)' DESTDIR='$(DESTDIR)' INSTALL='sh $(PWD)/install.sh' install);	\ | ||||||
| 	done | 	done | ||||||
|  |  | ||||||
| uninstall: | uninstall: | ||||||
|   | |||||||
| @@ -1 +1,4 @@ | |||||||
| dirlist.cgi | dirlist.cgi | ||||||
|  | w3mhelp.cgi | ||||||
|  | w3hmhelp-*.pl | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,27 +3,69 @@ prefix		= /usr/local | |||||||
| DESTDIR		= | DESTDIR		= | ||||||
| BIN_DIR		= $(prefix)/bin | BIN_DIR		= $(prefix)/bin | ||||||
| LIB_DIR		= $(prefix)/lib/w3m | LIB_DIR		= $(prefix)/lib/w3m | ||||||
|  | HELP_DIR	= $(prefix)/lib/w3m | ||||||
|  |  | ||||||
| LIB_TARGETS	= dirlist.cgi | LIB_TARGETS	= dirlist.cgi w3mhelp.cgi | ||||||
|  |  | ||||||
| INSTALL		= install -c | INSTALL		= install -c | ||||||
| INSTALL_SCRIPT	= $(INSTALL) -m 755 | INSTALL_SCRIPT	= $(INSTALL) -m 755 | ||||||
|  |  | ||||||
| PERL		= /usr/local/bin/perl | PERL		= /usr/local/bin/perl | ||||||
|  |  | ||||||
|  | DOCDIRS = doc:en_English doc-jp:ja_Japanese | ||||||
|  |  | ||||||
| .SUFFIXES: .in | .SUFFIXES: .in | ||||||
|  |  | ||||||
| all: $(LIB_TARGETS) | all: $(LIB_TARGETS) helplibs | ||||||
|  |  | ||||||
| .in: | .in: | ||||||
| 	sed 's%@PERL@%$(PERL)%' $< > $@ | 	@echo "generating $@..." | ||||||
| 	chmod +x $@ | 	@sed -e 's%@PERL@%$(PERL)%' -e 's%@HELP_DIR@%$(HELP_DIR)%' \ | ||||||
|  | 	  -e 's%@DOCDIRS@%$(DOCDIRS)%' $< > $@ | ||||||
|  | 	@chmod +x $@ | ||||||
|  | 	@echo done | ||||||
|  |  | ||||||
|  | helplibs: | ||||||
|  | 	@echo "generating w3mhelp-funcname.pl..." | ||||||
|  | 	@echo '%funcname = (' > w3mhelp-funcname.pl | ||||||
|  | 	@while read fname fid; do \ | ||||||
|  | 	  case "$$fname" in [a-zA-Z@]*) echo "'$$fname', '$$fid',";; esac; \ | ||||||
|  | 	done < ../funcname.tab >> w3mhelp-funcname.pl | ||||||
|  | 	@echo ');' >> w3mhelp-funcname.pl | ||||||
|  | 	@echo '%keyfunc = (' >> w3mhelp-funcname.pl | ||||||
|  | 	@case "$(KEYBIND_SRC)" in *lynx*) keymap=keymap.lynx;; *) keymap=keymap.default;; esac; \ | ||||||
|  | 	while read keyword keys func rest; do \ | ||||||
|  | 	 if [ "X$$keyword" = Xkeymap ]; then \ | ||||||
|  | 	   keys=`echo "$$keys" | sed -e 's/\\\\/\\\\&/g'`; \ | ||||||
|  | 	   echo "'$$keys', '$$func',"; \ | ||||||
|  | 	 fi; \ | ||||||
|  | 	done < ../doc/$$keymap >> w3mhelp-funcname.pl | ||||||
|  | 	@echo ');' >> w3mhelp-funcname.pl | ||||||
|  | 	@echo '1;' >> w3mhelp-funcname.pl | ||||||
|  | 	@echo "done" | ||||||
|  |  | ||||||
|  | 	@echo "generating w3mhelp-funcdesc*.pl..." | ||||||
|  | 	@for dirlang in $(DOCDIRS); do \ | ||||||
|  | 	  dir=`expr "$$dirlang" : "\(.*\):.*"`; \ | ||||||
|  | 	  lang=`expr "$$dirlang" : ".*:\(.*\)_.*"`; \ | ||||||
|  | 	  echo '%funcdesc = (' > w3mhelp-funcdesc.$$lang.pl; \ | ||||||
|  | 	  while read func desc; do \ | ||||||
|  | 	   case "$$func" in [a-zA-Z@]*) echo "'$$func', '$$desc', ";; esac; \ | ||||||
|  | 	  done < ../$$dir/README.func >> w3mhelp-funcdesc.$$lang.pl; \ | ||||||
|  | 	  echo ');' >> w3mhelp-funcdesc.$$lang.pl; \ | ||||||
|  | 	  echo '1;' >> w3mhelp-funcdesc.$$lang.pl; \ | ||||||
|  | 	done | ||||||
|  | 	@echo done | ||||||
|  |  | ||||||
| install: $(LIB_TARGETS) | install: $(LIB_TARGETS) | ||||||
| 	for file in $(LIB_TARGETS);     \ | 	for file in $(LIB_TARGETS);     \ | ||||||
| 	do      \ | 	do      \ | ||||||
| 		$(INSTALL_SCRIPT) $$file $(DISTDIR)$(LIB_DIR);  \ | 		$(INSTALL_SCRIPT) $$file $(DESTDIR)$(LIB_DIR);  \ | ||||||
|  | 	done | ||||||
|  | 	for file in w3mhelp-*.pl; \ | ||||||
|  | 	do \ | ||||||
|  | 		$(INSTALL) $$file $(DESTDIR)$(HELP_DIR); \ | ||||||
| 	done | 	done | ||||||
|  |  | ||||||
| clean: | clean: | ||||||
| 	rm -f $(LIB_TARGETS) | 	rm -f $(LIB_TARGETS) w3mhelp-*.pl | ||||||
|   | |||||||
							
								
								
									
										186
									
								
								scripts/w3mhelp.cgi.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										186
									
								
								scripts/w3mhelp.cgi.in
									
									
									
									
									
										Normal file
									
								
							| @@ -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"; | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user