w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

commit 8e2d8680459d930b0985c14a1807f153076346f1
parent 52b774d5019985a4c2248332975d60c5e9d28569
Author: ukai <ukai>
Date:   Fri, 30 Nov 2001 18:06:28 +0000

[w3m-dev 02601]
From: Fumitoshi UKAI <ukai@debian.or.jp>

Diffstat:
MChangeLog | 14++++++++++++++
MMakefile | 6++++++
Mconfig.h.dist | 2++
Mconfigure | 6++++++
Mmain.c | 13+++++++++++++
Mscripts/.cvsignore | 5+++--
Mscripts/Makefile | 4++--
Ascripts/w3mhelp-funcdesc.en.pl.in | 27+++++++++++++++++++++++++++
Ascripts/w3mhelp-funcdesc.ja.pl.in | 41+++++++++++++++++++++++++++++++++++++++++
Ascripts/w3mhelp-funcname.pl.in | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Mscripts/w3mhelp.cgi.in | 47+++++++++++++++++++++++------------------------
11 files changed, 186 insertions(+), 28 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,5 +1,19 @@ 2001-12-01 Fumitoshi UKAI <ukai@debian.or.jp> + * [w3m-dev 02601] + * Makefile (install-core): added + * Makefile (install-helpfile): added + * configure (use_help_cgi): default yes if perl found + * configure (config.h): add HELP_CGI + * configure (config.h): add $def_use_help_cgi + * main.c (ldhelp): add USE_HELP_CGI code + * scripts/Makefile: use w3mhelp*.pl.in + * scripts/w3mhelp-funcname.pl.in: added + * scripts/w3mhelp-funcdesc.en.pl.in: added + * scripts/w3mhelp-funcdesc.ja.pl.in: added + * scripts/w3mhelp.cgi.in: use %buf_*, %lineedit_* + * scripts/w3mhelp.cgi.in: use %title + * [w3m-dev 02660] (based on [w3m-dev 02577] by Kiyokazu SUTO <suto@ks-and-ks.ne.jp>) * scripts/.cvsignore: add w3mhelp.cgi w3mhelp-*.pl diff --git a/Makefile b/Makefile @@ -6,6 +6,12 @@ all: XXMakefile install: XXMakefile $(MAKE) -f XXMakefile install +install-core: XXMakefile + $(MAKE) -f XXMakefile install-core + +install-helpfile: XXMakefile + $(MAKE) -f XXMakefile install-helpfile + install-scripts: XXMakefile $(MAKE) -f XXMakefile install-scripts diff --git a/config.h.dist b/config.h.dist @@ -117,6 +117,7 @@ MODEL=Linux.i686-monster-ja #undef USE_NNTP #undef USE_GOPHER #undef USE_ALARM +#define USE_HELP_CGI #define DEF_EDITOR "/bin/vi" #define DEF_MAILER "/bin/mail" @@ -126,6 +127,7 @@ MODEL=Linux.i686-monster-ja #define HELP_DIR "/usr/local/lib/w3m" #define ETC_DIR "/usr/local/etc/w3m" #define HELP_FILE "w3mhelp.html" +#define HELP_CGI "w3mhelp" #define W3MCONFIG "w3mconfig" #define RC_DIR "~/.w3m/" diff --git a/configure b/configure @@ -1108,10 +1108,14 @@ perl=`./which perl` if [ `expr "$perl" : 'not found'` != 0 ]; then echo "You don't have perl." perl=/usr/local/bin/perl + have_perl=n else echo "You have perl." + have_perl=y fi +def_param use_help_cgi $have_perl + ####### strcasecmp cat > _zmachdep.c << EOF #include <string.h> @@ -1971,6 +1975,7 @@ $def_ftppass_hostnamegen $def_use_nntp $def_use_gopher $def_use_alarm +$def_use_help_cgi #define DEF_EDITOR "$editor" #define DEF_MAILER "$mailer" @@ -1980,6 +1985,7 @@ $def_use_alarm #define HELP_DIR "$helpdir" #define ETC_DIR "$sysconfdir" #define HELP_FILE "w3mhelp.html" +#define HELP_CGI "w3mhelp" #define W3MCONFIG "w3mconfig" #define RC_DIR "~/.w3m/" diff --git a/main.c b/main.c @@ -1604,7 +1604,20 @@ ldfile(void) void ldhelp(void) { +#ifdef USE_HELP_CGI + char *lang; + int n; + + lang = AcceptLang; + n = strcspn(lang, ";, \t"); + cmd_loadURL(Sprintf("file:///$LIB/" HELP_CGI CGI_EXTENSION + "?version=%s&lang=%s", + Str_form_quote(Strnew_charp(w3m_version))->ptr, + Str_form_quote(Strnew_charp_n(lang, n))->ptr)->ptr, + NULL); +#else cmd_loadURL(helpFile(HELP_FILE), NULL); +#endif } static void diff --git a/scripts/.cvsignore b/scripts/.cvsignore @@ -1,4 +1,5 @@ dirlist.cgi w3mhelp.cgi -w3hmhelp-*.pl - +w3hmhelp-funcdesc.en.pl +w3hmhelp-funcdesc.ja.pl +w3hmhelp-funcname.pl diff --git a/scripts/Makefile b/scripts/Makefile @@ -41,7 +41,7 @@ helplibs: fi; \ done < ../doc/$$keymap >> w3mhelp-funcname.pl @echo ');' >> w3mhelp-funcname.pl - @echo '1;' >> w3mhelp-funcname.pl + @cat w3mhelp-funcname.pl.in >> w3mhelp-funcname.pl @echo "done" @echo "generating w3mhelp-funcdesc*.pl..." @@ -53,7 +53,7 @@ helplibs: 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; \ + cat w3mhelp-funcdesc.$$lang.pl.in >> w3mhelp-funcdesc.$$lang.pl; \ done @echo done diff --git a/scripts/w3mhelp-funcdesc.en.pl.in b/scripts/w3mhelp-funcdesc.en.pl.in @@ -0,0 +1,26 @@ + +# Buffer selection mode + +%buf_funcdesc = ( + 'BUF:PREV', 'Select previous buffer', + 'BUF:NEXT', 'Select next buffer', + 'BUF:DELETE', 'Delete current buffer', + 'BUF:GO', 'Go to the selected buffer', +); + +%lineedit_funcdesc = ( + 'LINEEDIT:FORWARD', 'Move cursor forward', + 'LINEEDIT:BACK', 'Move cursor backward', + 'LINEEDIT:BS', 'Delete previous character', + 'LINEEDIT:DEL', 'Delete current character', + 'LINEEDIT:KILL_AFTER', 'Kill everything after cursor', + 'LINEEDIT:KILL_BEFORE', 'Kill everything before cursor', + 'LINEEDIT:TOP', 'Move to the top of line', + 'LINEEDIT:BOTTOM', 'Move to the bottom of line', + 'LINEEDIT:PREV', 'Fetch the previous string from the history list', + 'LINEEDIT:NEXT', 'Fetch the next string from the history list', + 'LINEEDIT:COMPLETE', 'Complete filename', + 'LINEEDIT:ACCEPT', 'Accept', +); + +1; +\ No newline at end of file diff --git a/scripts/w3mhelp-funcdesc.ja.pl.in b/scripts/w3mhelp-funcdesc.ja.pl.in @@ -0,0 +1,40 @@ + +# Buffer selection mode + +%buf_funcdesc = ( + 'BUF:PREV', '一つ上のバッファを選択', + 'BUF:NEXT', '一つ下のバッファを選択', + 'BUF:DELETE', '現在選択しているバッファを削除', + 'BUF:GO', '現在選択しているバッファを表示', +); + +%lineedit_funcdesc = ( + 'LINEEDIT:FORWARD', 'カーソルを右へ移動', + 'LINEEDIT:BACK', 'カーソルを左へ移動', + 'LINEEDIT:BS', '前の文字を削除', + 'LINEEDIT:DEL', 'カーソル位置の文字を削除', + 'LINEEDIT:KILL_AFTER', 'カーソルの後方を全て削除', + 'LINEEDIT:KILL_BEFORE', 'カーソルの前までを全て削除', + 'LINEEDIT:TOP', '行頭に移動', + 'LINEEDIT:BOTTOM', '行末へ移動', + 'LINEEDIT:PREV', 'ヒストリから一つ前の文字列を取り出す', + 'LINEEDIT:NEXT', 'ヒストリから次の文字列を取り出す', + 'LINEEDIT:COMPLETE', 'ファイル名の補完', + 'LINEEDIT:ACCEPT', '入力終了', +); + +%title = ( + "Page/Cursor motion", 'ページ/カーソル移動', + "Hyperlink operation", 'ハイパーリンク操作', + "File/Stream operation", 'ファイル/ストリーム操作', + "Buffer operation", 'バッファ操作', + "Buffer selection mode", 'バッファ選択モード', + "Bookmark operation", 'ブックマーク操作', + "Search", '検索', + "Dictionary look-up", '辞書検索', + "Mark operation", 'マーク操作', + "Miscellany", 'その他', + "Line-edit mode", '行編集モード', +); + +1; +\ No newline at end of file diff --git a/scripts/w3mhelp-funcname.pl.in b/scripts/w3mhelp-funcname.pl.in @@ -0,0 +1,49 @@ + +%buf_funcname = ( + 'BUF:PREV', 'buffer_prev', + 'BUF:NEXT', 'buffer_next', + 'BUF:DELETE', 'buffer_delete', + 'BUF:GO', 'buffer_go', +); + +%lineedit_funcname = ( + 'LINEEDIT:FORWARD', 'lineedit_forward', + 'LINEEDIT:BACK', 'lineedit_back', + 'LINEEDIT:BS', 'lineedit_backspace', + 'LINEEDIT:DEL', 'lineedit_delete', + 'LINEEDIT:KILL_AFTER', 'lineedit_kill_after', + 'LINEEDIT:KILL_BEFORE', 'lineedit_kill_before', + 'LINEEDIT:TOP', 'lineedit_top', + 'LINEEDIT:BOTTOM', 'lineedit_bottom', + 'LINEEDIT:PREV', 'lineedit_prev', + 'LINEEDIT:NEXT', 'lineedit_next', + 'LINEEDIT:COMPLETE', 'lineedit_complete', + 'LINEEDIT:ACCEPT', 'lineedit_accept', +); + +%buf_keyfunc = ( + 'k', 'BUF:PREV', + 'C-p', 'BUF:PREV', + 'j', 'BUF:NEXT', + 'C-n', 'BUF:NEXT', + 'D', 'BUF:DELETE', + 'RET', 'BUF:GO' +); + +%lineedit_keyfunc = ( + 'C-f', 'LINEEDIT:FORWARD', + 'C-b', 'LINEEDIT:BACK', + 'C-h', 'LINEEDIT:BS', + 'C-d', 'LINEEDIT:DEL', + 'C-k', 'LINEEDIT:KILL_AFTER', + 'C-u', 'LINEEDIT:KILL_BEFORE', + 'C-a', 'LINEEDIT:TOP', + 'C-e', 'LINEEDIT:BOTTOM', + 'C-p', 'LINEEDIT:PREV', + 'C-n', 'LINEEDIT:NEXT', + 'TAB', 'LINEEDIT:COMPLETE', + 'SPC', 'LINEEDIT:COMPLETE', + 'RET', 'LINEEDIT:ACCEPT' +); + +1; diff --git a/scripts/w3mhelp.cgi.in b/scripts/w3mhelp.cgi.in @@ -40,12 +40,22 @@ if (-f $keymap) { local (%funckeydesc, $key, $fname, $desc); +%funcname = (%funcname, %buf_funcname, %lineedit_funcname); + +%funcdesc = (%funcdesc, %buf_funcdesc, %lineedit_funcdesc); while (($fname, $desc) = each %funcdesc) { $funckeydesc{$funcname{$fname}} = "$desc\n"; } + while (($key, $fname) = each %keyfunc) { $funckeydesc{$funcname{$fname}} .= "$key,"; } +while (($key, $fname) = each %buf_keyfunc) { + $funckeydesc{$funcname{$fname}} .= "$key,"; +} +while (($key, $fname) = each %lineedit_keyfunc) { + $funckeydesc{$funcname{$fname}} .= "$key,"; +} print <<HEADING; Content-Type: text/html @@ -98,15 +108,8 @@ for $otherlang (@docdirs) { 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("Buffer selection mode", + qw(buffer_prev buffer_next buffer_delete buffer_go)); &show_keymap("Bookmark operation", qw(ldBmark adBmark)); @@ -123,22 +126,13 @@ PAGE &show_keymap("Miscellany", qw(setAlarm execsh ldhelp ldOpt cooLst susp qquitfm quitfm)); +&show_keymap("Line-edit mode", + qw(lineedit_forward lineedit_back lineedit_backspace + lineedit_delete lineedit_kill_after lineedit_kill_before + lineedit_top lineedit_bottom lineedit_prev lineedit_next + lineedit_complete lineedit_accept)); + 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> @@ -167,6 +161,11 @@ sub show_keymap { my ($fid); my ($attr) = " WIDTH=140"; + if (defined($title{$head})) { + $head = $title{$head}; + $head =~ s/[<>&]/$htmlesc{$&}/ge; + } + print <<PAGE; <H2>$head</H2> <table cellpadding=0>