Adding upstream version 0.5.1

This commit is contained in:
Tatsuya Kinoshita
2011-05-04 16:05:14 +09:00
parent adc0f0ac3c
commit 72f72d64a4
403 changed files with 329486 additions and 0 deletions

41
w3m-doc/sample/README Normal file
View File

@@ -0,0 +1,41 @@
<EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD>
perl w3mdoc.pl sample.wd > sample.html
Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @xxx.yyy@
@define <20><> @end <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>줿<EFBFBD>ͤ<EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @YYY(xxx)@
@code <20><> @end <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>줿<EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD>ƤӽФ<D3BD><D0A4><EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><>)
URL(xxx) xxx.url
LINK(xxx) <A HREF="xxx.url">xxx.title</A>
MAILTO(xxx) <A HREF="mailto:xxx.address">xxx.name</A>
<EFBFBD><EFBFBD><EFBFBD>ޥ<EFBFBD><EFBFBD>ɰ<EFBFBD><EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD>
@define
xxx.yyy zzz
@end
xxx.yyy <20><> zzz <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>롣xxx <20>ϰʲ<CFB0><CAB2>δؿ<CEB4><D8BF>ΰ<EFBFBD><CEB0><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4>ʤ롣
<20><><EFBFBD><EFBFBD> define.wd <20>򻲾ȡ<F2BBB2BE>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD>)
@code
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@end
w3mdoc <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>ɤ<EFBFBD>ľ<EFBFBD>ܽ񤯡<DCBD><F1A4AFA1>Ȥꤢ<C8A4><EAA4A2><EFBFBD><EFBFBD> perl5<6C><35>
<20><><EFBFBD><EFBFBD> html.wd <20>򻲾ȡ<F2BBB2BE>
* <20><><EFBFBD>󥯥롼<F3A5AFA5><EBA1BC>
@include file
<20>ե<EFBFBD><D5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> include <20><><EFBFBD>

4
w3m-doc/sample/define.wd Normal file
View File

@@ -0,0 +1,4 @@
@define
hsaka.url http://www2u.biglobe.ne.jp/~hsaka/
hsaka.title <09><><EFBFBD>ܹ<EFBFBD>§<EFBFBD>Υۡ<CEA5><DBA1><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD>
@end

18
w3m-doc/sample/html.wd Normal file
View File

@@ -0,0 +1,18 @@
@code
sub URL {
$_[0]->CHECK(qw(url));
$_[0]->{url};
}
sub LINK {
$_[0]->CHECK(qw(url title));
"<A HREF=\"$_[0]->{url}\">$_[0]->{title}</A>";
}
sub LINK_SEC {
$_[0]->CHECK(qw(url section title));
"<A HREF=\"$_[0]->{url}\">$_[0]->{section} $_[0]->{title}</A>";
}
sub MAILTO {
$_[0]->CHECK(qw(address name));
"<A HREF=\"mailto:$_[0]->{address}\">$_[0]->{name}</A>";
}
@end

268
w3m-doc/sample/keymap.cgi Executable file
View File

@@ -0,0 +1,268 @@
#!/usr/local/bin/perl
$QUERY = $ENV{'QUERY_STRING'};
$KEYMAP = "$ENV{'HOME'}/.w3m/keymap";
if ($QUERY) {
# &write_keymap($QUERY);
print <<EOF;
Content-Type: text/html
w3m-control: DELETE_PREVBUF
w3m-control: BACK
EOF
exit;
}
&init_func();
@key = ();
@func = ();
@data = ();
open(KEYMAP, $KEYMAP);
while (<KEYMAP>) {
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 <<EOF;
Content-Type: text/html
<head><title>Keymap Setting</title></head>
<h1>Keymap Setting</h1>
<form action="file:///\$LIB/keymap.cgi">
<table>
<tr><td>&nbsp;Key<td>&nbsp;Command<td>&nbsp;Argument
<tr><td><input name=k_$N size=6>
<td><select name=f_$N>
EOF
&print_func();
print <<EOF;
</select>
<td><input name=d_$N>
<td><input type=submit name=ok value=Ok>
<tr><td colspan=4><hr>
EOF
$i = 0;
while(@key) {
$k = &Q(shift @key);
$f = shift @func;
$d = &Q(shift @data);
print <<EOF;
<tr><td><input type=hidden name=k_$i value=\"$k\">&nbsp;$k
<td><select name=f_$i>
EOF
&print_func($f);
print <<EOF;
</select>
<td><input name=d_$i value=\"$d\">
<td><input type=checkbox name=del_$i>Delete
EOF
$i++;
}
print <<EOF;
</table>
</form>
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/\&/\&amp;/g;
s/\</\&lt;/g;
s/\>/\&gt;/g;
s/\"/\&quot;/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 "<option selected>$_\n";
} else {
print "<option>$_\n";
}
}
}
sub init_func {
@FUNC_LIST = ();
%FUNC_EXIST = ();
while(<DATA>) {
chop;
push(@FUNC_LIST, $_);
$FUNC_EXIST{$_} = 1;
}
}
__END__
- - - - - - -
ABORT
ADD_BOOKMARK
BACK
BEGIN
BOOKMARK
CENTER_H
CENTER_V
COOKIE
DELETE_PREVBUF
DICT_WORD
DICT_WORD_AT
DOWN
DOWNLOAD
EDIT
EDIT_SCREEN
END
ESCBMAP
ESCMAP
EXEC_SHELL
EXIT
EXTERN
EXTERN_LINK
FRAME
GOTO
GOTO_LINE
GOTO_LINK
HELP
HISTORY
INFO
INIT_MAILCAP
INTERRUPT
LEFT
LINE_BEGIN
LINE_END
LINE_INFO
LINK_BEGIN
LINK_END
LOAD
MAIN_MENU
MARK
MARK_MID
MARK_URL
MENU
MOUSE
MOUSE_TOGGLE
MOVE_DOWN
MOVE_LEFT
MOVE_RIGHT
MOVE_UP
NEXT_LINK
NEXT_MARK
NEXT_PAGE
NEXT_WORD
NOTHING
NULL
OPTIONS
PCMAP
PEEK
PEEK_LINK
PIPE_SHELL
PREV_LINK
PREV_MARK
PREV_PAGE
PREV_WORD
PRINT
QUIT
READ_SHELL
REDRAW
REG_MARK
RELOAD
RIGHT
SAVE
SAVE_IMAGE
SAVE_LINK
SAVE_SCREEN
SEARCH
SEARCH_BACK
SEARCH_FORE
SEARCH_NEXT
SEARCH_PREV
SELECT
SHELL
SHIFT_LEFT
SHIFT_RIGHT
SOURCE
SUSPEND
UP
VIEW
VIEW_BOOKMARK
VIEW_IMAGE
WHEREIS
WRAP_TOGGLE

8
w3m-doc/sample/s.wd Normal file
View File

@@ -0,0 +1,8 @@
@include html.wd
@include define.wd
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>
<P>
\@hsaka.url\@ = @hsaka.url@
<BR>
\@LINK(hsaka)\@ = @LINK(hsaka)@

View File

@@ -0,0 +1,6 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>
<P>
@hsaka.url@ = http://www2u.biglobe.ne.jp/~hsaka/
<BR>
@LINK(hsaka)@ = <A HREF="http://www2u.biglobe.ne.jp/~hsaka/"><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD>§<EFBFBD>Υۡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><EFBFBD><EFBFBD></A>

11
w3m-doc/sample/sample.wd Normal file
View File

@@ -0,0 +1,11 @@
@include html.wd
@define
hsaka.url http://www2u.biglobe.ne.jp/~hsaka/
hsaka.title <09><><EFBFBD>ܹ<EFBFBD>§<EFBFBD>Υۡ<CEA5><DBA1><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD>
@end
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD><EFBFBD>Ǥ<EFBFBD><EFBFBD><EFBFBD>
<P>
\@hsaka.url\@ = @hsaka.url@
<BR>
\@LINK(hsaka)\@ = @LINK(hsaka)@

102
w3m-doc/sample/w3mdoc.pl Executable file
View File

@@ -0,0 +1,102 @@
#!/usr/local/bin/perl
package w3mdoc;
sub CHECK {
my($a, @b) = @_;
for(@b) {
defined($a->{$_}) || die("\"$a->{id}.$_\" is not defined.\n");
}
}
sub DEF {
my($a, $b, $c) = @_;
if (! defined($data->{$a})) {
$data->{$a} = bless { id => $a };
}
$data->{$a}{$b} = $c;
}
sub SUB {
local($_) = @_;
my($a, $b);
if (/^\@(\w+)\.(\w+)\@$/) {
($a, $b) = ($1, $2);
defined($data->{$a}) || die("\"$a.$b\" is not defined.\n");
$data->{$a}->CHECK($b);
return $data->{$a}{$b};
}
if (/^\@(\w+)\((\w+)\)\@$/) {
($a, $b) = ($1, $2);
defined(&{$a}) || die("\"$a()\" is not defined.\n");
defined($data->{$b}) || die("\"$a($b)\" is not defined.\n");
return $data->{$b}->$a();
}
return '@';
}
package main;
@ARGV || unshift(@ARGV, "-");
while(@ARGV) {
$file = shift @ARGV;
&make_doc($file);
}
sub make_doc {
my($file) = @_;
my($in_def, $in_code, $code, $a, $b);
local(*F);
local($_);
open(F, $file) || die("$file: $!\n");
$in_def = 0;
$in_code = 0;
while(<F>) {
if ($in_def) {
if (/^\@end/) {
$in_def = 0;
next;
}
s/^\s+//;
s/^(\w+)\.(\w+)// || next;
($a, $b) = ($1, $2);
s/^\s+//;
s/\s+$//;
&w3mdoc::DEF($a, $b, $_);
next;
}
if ($in_code) {
if (/^\@end/) {
eval "package w3mdoc; $code";
$in_code = 0;
next;
}
$code .= $_;
next;
}
if (/^\@define/) {
$in_def = 1;
next;
}
if (/^\@code/) {
$in_code = 1;
$code = "";
next;
}
if (s/^\@include\s+//) {
s/\s+$//;
&make_doc($_);
next;
}
if (/^\@/) {
die("unknown command: $_");
}
s/(\\@|\@(\w+(\.\w+|\(\w+\)))\@)/&w3mdoc::SUB($1)/eg;
print;
}
close(F);
}