From 68a07bf03b7624c9924065cce9ffa45497225834 Mon Sep 17 00:00:00 2001 From: Akinori Ito Date: Thu, 8 Nov 2001 05:14:08 +0000 Subject: Initial revision --- w3m-doc/README.html | 75 ++++++++++++ w3m-doc/community.html.in | 45 +++++++ w3m-doc/configuration.html.in | 90 ++++++++++++++ w3m-doc/contain.wd | 14 +++ w3m-doc/copyright.html.in | 45 +++++++ w3m-doc/define.wd | 4 + w3m-doc/detail.html.in | 32 +++++ w3m-doc/developement.html.in | 77 ++++++++++++ w3m-doc/faq.html.in | 45 +++++++ w3m-doc/function.html.in | 71 +++++++++++ w3m-doc/index.html.in | 113 ++++++++++++++++++ w3m-doc/install.html.in | 88 ++++++++++++++ w3m-doc/mkdocs | 32 +++++ w3m-doc/operation.html.in | 50 ++++++++ w3m-doc/outline.html.in | 61 ++++++++++ w3m-doc/prologue.html.in | 69 +++++++++++ w3m-doc/sample/README | 41 +++++++ w3m-doc/sample/define.wd | 4 + w3m-doc/sample/html.wd | 18 +++ w3m-doc/sample/keymap.cgi | 268 ++++++++++++++++++++++++++++++++++++++++++ w3m-doc/sample/s.wd | 8 ++ w3m-doc/sample/sample.html | 6 + w3m-doc/sample/sample.wd | 11 ++ w3m-doc/sample/w3mdoc.pl | 102 ++++++++++++++++ w3m-doc/w3mdoc.pl | 102 ++++++++++++++++ 25 files changed, 1471 insertions(+) create mode 100644 w3m-doc/README.html create mode 100644 w3m-doc/community.html.in create mode 100644 w3m-doc/configuration.html.in create mode 100644 w3m-doc/contain.wd create mode 100644 w3m-doc/copyright.html.in create mode 100644 w3m-doc/define.wd create mode 100644 w3m-doc/detail.html.in create mode 100644 w3m-doc/developement.html.in create mode 100644 w3m-doc/faq.html.in create mode 100644 w3m-doc/function.html.in create mode 100644 w3m-doc/index.html.in create mode 100644 w3m-doc/install.html.in create mode 100755 w3m-doc/mkdocs create mode 100644 w3m-doc/operation.html.in create mode 100644 w3m-doc/outline.html.in create mode 100644 w3m-doc/prologue.html.in create mode 100644 w3m-doc/sample/README create mode 100644 w3m-doc/sample/define.wd create mode 100644 w3m-doc/sample/html.wd create mode 100755 w3m-doc/sample/keymap.cgi create mode 100644 w3m-doc/sample/s.wd create mode 100644 w3m-doc/sample/sample.html create mode 100644 w3m-doc/sample/sample.wd create mode 100755 w3m-doc/sample/w3mdoc.pl create mode 100755 w3m-doc/w3mdoc.pl (limited to 'w3m-doc') diff --git a/w3m-doc/README.html b/w3m-doc/README.html new file mode 100644 index 0000000..1caa3cd --- /dev/null +++ b/w3m-doc/README.html @@ -0,0 +1,75 @@ + + + + + +w3m $B%I%-%e%a%s%H@0Hw$NJ}?K(B + + + + +
+w3m $B%I%-%e%a%s%H@0Hw$NJ}?K(B +
+
+Yoshinobu Sakane February 15, 2001 +
+ +
    +

  1. $BJ}?K(B
  2. +
    +

    + w3m$B$K4X$9$k%I%-%e%a%s%HN`$r0J2<$NJ}?K$G@0Hw$7$?$$$H9M$($F$$$^$9!#(B +

    +

      +
    • $B8=;~E@(B(w3m-0.1.11-pre)$B$G;6J8$7$F$$$k%I%-%e%a%s%H$r0lDj$N%k!<%k$N$b$H$K$^$H$a$k(B +
    • $BF~LgDxEY$N%I%-%e%a%s%H$H?<$_$K$O$a$k(B:-)$B$?$a$N%I%-%e%a%s%H$rMQ0U$9$k(B +
    • HTML$BHG$H%W%l%$%s%F%-%9%HHG$rMQ0U$9$k!#$?$@$7!"%=!<%9$H$J$k%I%-%e%a%s%H$O0l$D(B +
    +
    +
    + +

  3. $B9|AH$_%I%-%e%a%s%H$N@bL@(B
  4. +
    +

    + + + + + + + + + + + + + + + + +
    $B!T%3%s%F%s%D!U(B
    w3mdoc.pl$B:dK\$5$s(B$B$46`@=$N(Bperl$B%9%/%j%W%H(B
    mkdocs$B%I%-%e%a%s%H@07AMQ%7%'%k%9%/%j%W%H(B
    README.html$B$3$N%U%!%$%k(B
    *.html.in$B3F>O!?@aKh$N%I%-%e%a%s%H%=!<%9(B
    *.wd$B3F +
    +

    + w3mdoc.pl$B$N;H$$J}$K$D$$$F$O!":dK\$5$s$,=q$+$l$?(BREADME$B!"5Z$S!"%5%s%W%k%=!<%9$r;2>H$7$F$/$@$5$$!#(B
    +

    +
    + +

  5. $B%I%-%e%a%s%H@0Hw$N?J$aJ}(B
  6. +
    +

    +

      +
    • $BM-;V(B($B0J9_!"(Bw3m-doc$B%a%s%P(B$B$H5-$9(B)$B$K$h$kJ,3d:n6H(B +
    • $BJ,3d$NC10L$O(Bw3m-doc$B%a%s%P4V$GD4@0(B +
    • $B:#2s<($99|AH$_$O$"$/$^$G;X?K!#>u67!?ET9g$K$h$j(Bw3m-doc$B%a%s%P4V$GD4@0$7JQ99$9$k(B +
    • $B$^$:$OF|K\8lHG$N%I%-%e%a%s%H$r:n$j!">u67$r8+$F1QLu$9$k(B +
    • $B$"$kDxEY$G$-$?$H$3$m$+$i!"C` +

      + $B$H!"9M$($F$$$^$9!#(B +

    + +
+ + + diff --git a/w3m-doc/community.html.in b/w3m-doc/community.html.in new file mode 100644 index 0000000..9fbf89f --- /dev/null +++ b/w3m-doc/community.html.in @@ -0,0 +1,45 @@ + + + +@include define.wd +@include contain.wd + + + +W3M COMMUNITY -w3m$B%3%_%e%K%F%#(B- + + + + +

w3m$B%3%_%e%K%F%#(B

+
+ +
+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

$B%a!<%j%s%0%j%9%H(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B4XO"(BWeb

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/configuration.html.in b/w3m-doc/configuration.html.in new file mode 100644 index 0000000..9428a25 --- /dev/null +++ b/w3m-doc/configuration.html.in @@ -0,0 +1,90 @@ + + + +@include define.wd +@include contain.wd + + + +CONFIGURATION -$B3F<o@_Dj(B- + + + + +

$B3F

+
+ +
+
+ +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

$B5/F0%*%W%7%g%s(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B4D6-JQ?t(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

bookmark$B%U%!%$%k(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B%*%W%7%g%s%Q%M%k(B

+ + +

$B30It%S%e!<%"$NJT=8(B

+ + +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B$=$NB>%+%9%?%^%$%:(B

+ + +

keymap

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

menu

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/contain.wd b/w3m-doc/contain.wd new file mode 100644 index 0000000..8d48872 --- /dev/null +++ b/w3m-doc/contain.wd @@ -0,0 +1,14 @@ +@define +DOC.index index.html +DOC.prologue prologue.html +DOC.copyright copyright.html +DOC.outline outline.html +DOC.detail detail.html +DOC.install install.html +DOC.operation operation.html +DOC.configuration configuration.html +DOC.function function.html +DOC.FAQ faq.html +DOC.developement developement.html +DOC.community community.html +@end diff --git a/w3m-doc/copyright.html.in b/w3m-doc/copyright.html.in new file mode 100644 index 0000000..1baa369 --- /dev/null +++ b/w3m-doc/copyright.html.in @@ -0,0 +1,45 @@ + + + +@include define.wd +@include contain.wd + + + +COPYRIGHT -Copyright- + + + + +

Copyright

+
+ +
+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

$BCx:n8"!"%i%$%;%s%9(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/define.wd b/w3m-doc/define.wd new file mode 100644 index 0000000..5967679 --- /dev/null +++ b/w3m-doc/define.wd @@ -0,0 +1,4 @@ +@define +W3M.version 0.1.11-pre+kokb24+test1 +W3M.author Akinori ITO +@end diff --git a/w3m-doc/detail.html.in b/w3m-doc/detail.html.in new file mode 100644 index 0000000..9e14c2c --- /dev/null +++ b/w3m-doc/detail.html.in @@ -0,0 +1,32 @@ + + + +@include define.wd +@include contain.wd + + + +DETAIL -$B>\:YJT(B- + + + + +

$B>\:YJT(B

+
+ +
+ +
+$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/developement.html.in b/w3m-doc/developement.html.in new file mode 100644 index 0000000..0da2b38 --- /dev/null +++ b/w3m-doc/developement.html.in @@ -0,0 +1,77 @@ + + + +@include define.wd +@include contain.wd + + + +DEVELOPEMENT -$B3+H/%I%-%e%a%s%H(B- + + + + +

w3m$B3+H/%I%-%e%a%s%H(B

+
+ +
+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

w3m$B$N3+H/$K$D$$$F(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B8=:_H=L@$7$F$$$k%P%0(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

ToDo

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$BMzNr(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B3+H/%]%j%7!<(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B3+H/

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/faq.html.in b/w3m-doc/faq.html.in new file mode 100644 index 0000000..b85a52f --- /dev/null +++ b/w3m-doc/faq.html.in @@ -0,0 +1,45 @@ + + + +@include define.wd +@include contain.wd + + + +FAQ -FAQ- + + + + +

FAQ

+
+ +
+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

$B$h$/J9$+$l$k

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

Tips

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/function.html.in b/w3m-doc/function.html.in new file mode 100644 index 0000000..ec5eb0f --- /dev/null +++ b/w3m-doc/function.html.in @@ -0,0 +1,71 @@ + + + +@include define.wd +@include contain.wd + + + +FUNCTION -$B5!G=>\:Y(B- + + + + +

$B5!G=>\:Y(B

+
+ +
+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

$BBP1~$7$F$$$k(BURL

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$BBP1~$7$F$$$k(BHTML

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

SSL

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

cookie

+ + +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$B%m!<%+%k(BCGI$B5!G=(B

+ + +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/index.html.in b/w3m-doc/index.html.in new file mode 100644 index 0000000..0e0e625 --- /dev/null +++ b/w3m-doc/index.html.in @@ -0,0 +1,113 @@ + + + +@include define.wd +@include contain.wd + + + +THE DOCUMENTS FOR W3M + + + + + + + + + +

$B:w0z(B

+
    +
  1. $B$O$8$a$K(B + +
  2. $B35MWJT(B + +
  3. $B>\:YJT(B + +
+ + + + diff --git a/w3m-doc/install.html.in b/w3m-doc/install.html.in new file mode 100644 index 0000000..bc93476 --- /dev/null +++ b/w3m-doc/install.html.in @@ -0,0 +1,88 @@ + + + +@include define.wd +@include contain.wd + + + +INSTALL -$B%$%s%9%H!<%k$N>\:Y(B- + + + + +

$B%$%s%9%H!<%k$N>\:Y(B

+
+ +
+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

w3m$BF~

+ + +

w3m home

+ + +

aito$BO"MmD"(B

+ + +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$BI,MW$JJ*(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

configure$B$K$D$$$F(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

config.h$B$K$D$$$F(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

make$B$K$D$$$F(B

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +

$BB>$N(BOS$B$G%$%s%9%H!<%k$9$k:]$N(BTips

+ +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/mkdocs b/w3m-doc/mkdocs new file mode 100755 index 0000000..72c7b53 --- /dev/null +++ b/w3m-doc/mkdocs @@ -0,0 +1,32 @@ +#!/bin/sh + +W3MDOC="./w3mdoc.pl" +W3M="$HOME/bin/pre_w3m" +#W3M="w3m" + +NKF="/usr/local/bin/nkf" +SED="/usr/bin/sed" +TR="/usr/bin/tr" + +HTML_JP_DIR="html-jp" +DOC_JP_DIR="doc-jp" +#HTML_DIR="html" +#DOC_DIR="doc" + +if [ ! -d ${HTML_JP_DIR} ]; then + mkdir ${HTML_JP_DIR} +fi +if [ ! -d ${DOC_JP_DIR} ]; then + mkdir ${DOC_JP_DIR} +fi + +for SRC in *.in +do + HTML=`echo ${SRC} | ${SED} 's/\.in$//p'` + DOC=`echo ${HTML} | ${SED} 's/\.html$//p' | ${TR} '[a-z]' '[A-Z]'` + echo "converting ${SRC} to ${HTML_JP_DIR}/${HTML} ... \c" + ${NKF} -e ${SRC} | ${SED} -e 's/。/./gp' -e 's/、/,/gp' | ${NKF} -j | ${W3MDOC} > ${HTML_JP_DIR}/${HTML} + echo "done.\nconverting ${HTML} to ${DOC_JP_DIR}/${DOC} ... \c" + ${W3M} -dump -e ${HTML_JP_DIR}/${HTML} > ${DOC_JP_DIR}/${DOC} + echo "done." +done diff --git a/w3m-doc/operation.html.in b/w3m-doc/operation.html.in new file mode 100644 index 0000000..2534e63 --- /dev/null +++ b/w3m-doc/operation.html.in @@ -0,0 +1,50 @@ + + + +@include define.wd +@include contain.wd + + + +OPERATION -w3m$BA`:nK!(B- + + + + +

w3m$BA`:nK!(B

+
+ +
+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

$B%P%C%U%!A`:n(B

+ + +

$B%^%&%9A`:n(B

+ + +

$B:G2<9TF~NO(B

+ + +

$B%a%K%e!

+ + +
+$B$3$N%Z!<%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/outline.html.in b/w3m-doc/outline.html.in new file mode 100644 index 0000000..aa6b9a4 --- /dev/null +++ b/w3m-doc/outline.html.in @@ -0,0 +1,61 @@ + + + +@include define.wd +@include contain.wd + + + +OUTLINE -$B35MWJT(B- + + + + +

$B35MWJT(B

+ + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+ +
+ +

$B%$%s%9%H!<%k$N35MW(B

+ +
+$B$3$N%Z%$%8$N@hF,$KLa$k(B +
+
+ +

$BA`:nJ}K!$N35MW(B

+ + +

$BI=<(FbMF$N@bL@(B

+ + +

$B4pK\E*$J;H$$J}(B

+ + +

$B%X%k%W$N;2>H(B

+ + +
+$B$3$N%Z%$%8$N@hF,$KLa$k(B +
+
+ +
+$B%H%C%W%Z%$%8$KLa$k(B +
+ + + + diff --git a/w3m-doc/prologue.html.in b/w3m-doc/prologue.html.in new file mode 100644 index 0000000..8af21a8 --- /dev/null +++ b/w3m-doc/prologue.html.in @@ -0,0 +1,69 @@ + + + +@include define.wd +@include contain.wd + + + +PROLOGUE -$B$O$8$a$K(B- + + + + +

$B$O$8$a$K(B

+ + + +
+$B%H%C%W%Z%$%8$KLa$k(B +
+
+ +

w3m$B$H$O(B

+ +
+$B$3$N%Z%$%8$N@hF,$KLa$k(B +
+
+ +

$BMQ8l@bL@(B

+ +
+$B$3$N%Z%$%8$N@hF,$KLa$k(B +
+
+ +

$BCm0U;v9`(B

+ +
+$B$3$N%Z%$%8$N@hF,$KLa$k(B +
+
+ +

$BCx:n8"!"%i%$%;%s%9(B

+
+ $BCx:n8"!"%i%$%;%s%9(B$B$r;2>H$/$@$5$$!#(B +
+
+$B$3$N%Z%$%8$N@hF,$KLa$k(B +
+
+ +

$BF0:n3NG'(BOS

+ +
+$B$3$N%Z%$%8$N@hF,$KLa$k(B +
+
+ +$B%H%C%W%Z%$%8$KLa$k(B + + + diff --git a/w3m-doc/sample/README b/w3m-doc/sample/README new file mode 100644 index 0000000..7bb9dab --- /dev/null +++ b/w3m-doc/sample/README @@ -0,0 +1,41 @@ + +使い方 + perl w3mdoc.pl sample.wd > sample.html + +展開されるもの + +* @xxx.yyy@ + + @define 〜 @end 内で定義された値に展開される。 + +* @YYY(xxx)@ + + @code 〜 @end 内で定義された関数を呼び出して展開される。 + + 例) + URL(xxx) xxx.url + LINK(xxx) xxx.title + MAILTO(xxx) xxx.name + +コマンド一覧 + +* 定義 + @define + xxx.yyy zzz + @end + + xxx.yyy を zzz と定義する。xxx は以下の関数の引数にもなる。 + 例は define.wd を参照。 + +* コード(関数定義) + @code + コード + @end + + w3mdoc を実装している言語のコードを直接書く。とりあえず perl5。 + 例は html.wd を参照。 + +* インクルード + @include file + + ファイルを include する。 diff --git a/w3m-doc/sample/define.wd b/w3m-doc/sample/define.wd new file mode 100644 index 0000000..f588f4c --- /dev/null +++ b/w3m-doc/sample/define.wd @@ -0,0 +1,4 @@ +@define +hsaka.url http://www2u.biglobe.ne.jp/~hsaka/ +hsaka.title 坂本浩則のホームページ +@end diff --git a/w3m-doc/sample/html.wd b/w3m-doc/sample/html.wd new file mode 100644 index 0000000..1b1d7f2 --- /dev/null +++ b/w3m-doc/sample/html.wd @@ -0,0 +1,18 @@ +@code +sub URL { + $_[0]->CHECK(qw(url)); + $_[0]->{url}; +} +sub LINK { + $_[0]->CHECK(qw(url title)); + "{url}\">$_[0]->{title}"; +} +sub LINK_SEC { + $_[0]->CHECK(qw(url section title)); + "{url}\">$_[0]->{section} $_[0]->{title}"; +} +sub MAILTO { + $_[0]->CHECK(qw(address name)); + "{address}\">$_[0]->{name}"; +} +@end diff --git a/w3m-doc/sample/keymap.cgi b/w3m-doc/sample/keymap.cgi new file mode 100755 index 0000000..f68f5fb --- /dev/null +++ b/w3m-doc/sample/keymap.cgi @@ -0,0 +1,268 @@ +#!/usr/local/bin/perl + +$QUERY = $ENV{'QUERY_STRING'}; +$KEYMAP = "$ENV{'HOME'}/.w3m/keymap"; + +if ($QUERY) { + # &write_keymap($QUERY); + print <) { + s/^keymap\s+// || next; + (($k, $_) = &getQWord($_)) || next; + (($f, $_) = &getWord($_)) || next; + $FUNC_EXIST{$f} || next; + ($d, $_) = &getQWord($_); + push(@key, $k); + push(@func, $f); + push(@data, $d); +} +close(KEYMAP); + +$N = @key; + +print <Keymap Setting +

Keymap Setting

+
+ +
 Key Command Argument +
+ + +

+EOF +$i = 0; +while(@key) { + $k = &Q(shift @key); + $f = shift @func; + $d = &Q(shift @data); + print <
 $k + +Delete +EOF + $i++; +} +print < + +EOF + +sub write_keymap { + local($query) = @_; + @key = (); + @func = (); + @data = (); + + for $q (split('&', $query)) { + ($_, $d) = split('=', $q); + if (s/^k_//) { + $key[$_] = $d; + } elsif (s/^f_//) { + $func[$_] = $d; + } elsif (s/^d_//) { + $data[$_] = $d; + } elsif (s/^del_//) { + $del[$_] = 1; + } + } + open(KEYMAP, "> ${KEYMAP}") || next; + while(@key) { + $k = &UQ(shift @key); + $f = shift @func; + $d = &UQ(shift @data); + ($f =~ /^\w/) || next; + (shift @del) && next; + print KEYMAP "keymap\t$k\t$f"; + if ($d ne '') { + if ($d =~ /[\"\'\\\s]/) { + $d =~ s/([\"\\])/\\$1/g; + print KEYMAP "\t\t\"$d\""; + } else { + $d =~ s/([\"\\])/\\$1/g; + print KEYMAP "\t\t$d"; + } + } + print KEYMAP "\n"; + } + close(KEYMAP); +} + +sub UQ { + local($_) = @_; + s/\+/ /g; + s/%([\da-f][\da-f])/pack('c', hex($1))/egi; + return $_; +} + +sub Q { + local($_) = @_; + s/\&/\&/g; + s/\/\>/g; + s/\"/\"/g; + return $_; +} + +sub getQWord { + local($_) = @_; + local($x) = ''; + s/^\s+//; + while($_ ne '') { + if (s/^\'(([^\'\\]|\\.)*)\'// || + s/^\"(([^\"\\]|\\.)*)\"// || + s/^([^\'\"\\\s]+)// || s/^\\(.)//) { + $x .= $1; + } else { + last; + } + } + return ($x, $_); +} + +sub getWord { + local($_) = @_; + s/^\s+//; + s/^(\S+)// || return (); + return ($1, $_); +} + +sub print_func { + local($f) = @_; + for(@FUNC_LIST) { + if ($f eq $_) { + print "