From 72f72d64a422d6628c4796f5c0bf2e508f134214 Mon Sep 17 00:00:00 2001 From: Tatsuya Kinoshita Date: Wed, 4 May 2011 16:05:14 +0900 Subject: Adding upstream version 0.5.1 --- scripts/w3mman/.cvsignore | 5 + scripts/w3mman/Makefile.in | 96 +++++++++++++ scripts/w3mman/README | 54 ++++++++ scripts/w3mman/hlink.cgi | 97 ++++++++++++++ scripts/w3mman/w3mman.1.in | 53 ++++++++ scripts/w3mman/w3mman.in | 41 ++++++ scripts/w3mman/w3mman2html.cgi.in | 274 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 620 insertions(+) create mode 100644 scripts/w3mman/.cvsignore create mode 100644 scripts/w3mman/Makefile.in create mode 100644 scripts/w3mman/README create mode 100644 scripts/w3mman/hlink.cgi create mode 100644 scripts/w3mman/w3mman.1.in create mode 100644 scripts/w3mman/w3mman.in create mode 100644 scripts/w3mman/w3mman2html.cgi.in (limited to 'scripts/w3mman') diff --git a/scripts/w3mman/.cvsignore b/scripts/w3mman/.cvsignore new file mode 100644 index 0000000..e867c6e --- /dev/null +++ b/scripts/w3mman/.cvsignore @@ -0,0 +1,5 @@ +w3mman +w3mman2html.cgi +w3mman.1 + +Makefile diff --git a/scripts/w3mman/Makefile.in b/scripts/w3mman/Makefile.in new file mode 100644 index 0000000..ab941c5 --- /dev/null +++ b/scripts/w3mman/Makefile.in @@ -0,0 +1,96 @@ +@SET_MAKE@ +SHELL=@SHELL@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +DOMAIN = $(PACKAGE) +srcidr=@srcdir@ +top_srcdir=@top_srcdir@ +VPATH= $(srcdir):. +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +datadir = @datadir@ +libdir = @libdir@ +includedir = @includedir@ +infodir = @infodir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +oldincludedir = @oldincludedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +top_srcdir = @top_srcdir@ +VPATH = $(top_srcdir):. +DESTDIR = + +CGIBIN_DIR = $(libexecdir)/$(PACKAGE)/cgi-bin +AUXBIN_DIR = $(libexecdir)/$(PACKAGE) +HELP_DIR = @HELP_DIR@ +RC_DIR = @RC_DIR@ +ETC_DIR = $(sysconfdir) +CONF_DIR = $(sysconfdir)/$(PACKAGE) +BIN_DIR = $(bindir) +MAN1_DIR = $(mandir)/man1 + +TARGETS = w3mman +CGIBIN_TARGETS = w3mman2html.cgi +MAN1_TARGETS = w3mman.1 +MAN_TARGETS = $(MAN1_TARGETS) + +MKDIR = mkdir -p +INSTALL = @INSTALL@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_MAN = @INSTALL_DATA@ + +all: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS) + +# do nothing +$(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS): + +install: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS) + -$(MKDIR) $(DESTDIR)$(BIN_DIR) + -$(MKDIR) $(DESTDIR)$(CGIBIN_DIR) + -$(MKDIR) $(DESTDIR)$(MAN1_DIR) + for file in $(TARGETS); \ + do \ + $(INSTALL_SCRIPT) $$file $(DESTDIR)$(BIN_DIR); \ + done + for file in $(CGIBIN_TARGETS); \ + do \ + $(INSTALL_SCRIPT) $$file $(DESTDIR)$(CGIBIN_DIR); \ + done + for file in $(MAN1_TARGETS); \ + do \ + $(INSTALL_MAN) $$file $(DESTDIR)$(MAN1_DIR); \ + done + +uninstall: + -for file in $(TARGETS); \ + do \ + rm -f $(BIN_DIR)/$$file; \ + done + -for file in $(CGIBIN_TARGETS); \ + do \ + rm -f $(CGIBIN_DIR)/$$file; \ + done + -for file in $(MAN1_TARGETS); \ + do \ + rm -f $(MAN1_DIR)/$$file; \ + done + +clean: + +distclean: + -rm -f $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS) + -rm -f Makefile + +dist: all + @-rm -fr $(distdir)/w3mman + -$(MKDIR) $(distdir)/w3mman + cp Makefile README w3mman.in w3mman2html.cgi.in hlink.cgi w3mman.1.in $(distdir)/w3mman + ( cd $(distdir); tar -cf - w3mman | GZIP='' gzip ) \ + > $(distdir)/w3mman.tar.gz + -rm -fr $(distdir)/w3mman + diff --git a/scripts/w3mman/README b/scripts/w3mman/README new file mode 100644 index 0000000..3bcbb3b --- /dev/null +++ b/scripts/w3mman/README @@ -0,0 +1,54 @@ + +w3mman + + 他のマニュアルやヘッダファイルにリンクをはることができる + man コマンドの代替コマンドです。 + +使用法 + + w3mman + w3mman [(
)] + w3mman [
] + w3mman -k + +環境変数 + + W3MMAN_W3M + 使用する w3m コマンドを指定します(デフォルトは w3m) + W3MMAN_MAN + 使用する man コマンドを指定します(デフォルトは man) + +インストール + + make install + 必要なら PERL, MAN, LIBDIR を設定してください。 + w3mman2html.cgi もインストールされます。 + +================ + +w3mman2html.cgi + +使用法 + + w3m file:///$LIB/w3mman2html.cgi + w3m file:///$LIB/w3mman2html.cgi?[(
)] + w3m file:///$LIB/w3mman2html.cgi?man=[§ion=
] + w3m file:///$LIB/w3mman2html.cgi?keyword= + +インストール + + make install + 必要なら PERL, MAN, LIBDIR を設定してください。 + w3mman もインストールされます。 + +================ + +hlink.cgi + + ヘッダファイルなどにリンクを張る + +インストール + + /$LIB/ にコピー + w3mman2html.cgi で使用するならば $CGI2 に設定してください。 + diff --git a/scripts/w3mman/hlink.cgi b/scripts/w3mman/hlink.cgi new file mode 100644 index 0000000..a92ac1d --- /dev/null +++ b/scripts/w3mman/hlink.cgi @@ -0,0 +1,97 @@ +#!/usr/local/bin/perl + +$SCRIPT_NAME = $ENV{'SCRIPT_NAME'} || $0; +$CGI = "file://$SCRIPT_NAME?"; + +if ($ENV{'QUERY_STRING'}) { + $file = $ENV{'QUERY_STRING'}; +} else { + $file = $ARGV[0]; +} +$file = &cleanup($file); + +if (-d $file) { + print <$file +$_ +EOF + exit 1; +} + +$file = &html_quote($file); +($dir = $file) =~ s@[^/]*$@@; + +print <$file +
+EOF
+while () {
+  $_ = &html_quote($_);
+
+  s/^(\#\s*include\s+)(\".*\"|\<\;.*\>\;)/$1 . &header_ref($2)/ge;
+
+  print;
+}
+close(FILE);
+print "
\n"; + +sub header_ref { + local($_) = @_; + local($d); + + if (s/^\"//) { + s/\"$//; + return ""$_""; + } + s/^\<\;//; + s/\>\;$//; + + for $d ( + "/usr/include", + "/usr/local/include", + "/usr/X11R6/include", + "/usr/X11/include", + "/usr/X/include", + "/usr/include/X11" + ) { + -f "$d/$_" && return "<$_>"; + } + return $_; +} + + +sub html_quote { + local($_) = @_; + local(%QUOTE) = ( + '<', '<', + '>', '>', + '&', '&', + '"', '"', + ); + s/[<>&"]/$QUOTE{$&}/g; + return $_; +} + +sub cleanup { + local($_) = @_; + + s@//+@/@g; + s@/\./@/@g; + while(m@/\.\./@) { + s@^/(\.\./)+@/@; + s@/[^/]+/\.\./@/@; + } + return $_; +} diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in new file mode 100644 index 0000000..eb30237 --- /dev/null +++ b/scripts/w3mman/w3mman.1.in @@ -0,0 +1,53 @@ +.TH W3MMAN 1 "Mar 14, 2002" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +w3mman \- an interface to the on-line reference manuals by w3m(1) +.SH SYNOPSIS +.B w3mman +.RI "[-M " path ] " " [ section ] " page" +.br +.B w3mman +.RI "[-M " path "] -k " keyword +.SH DESCRIPTION +.B w3mman +is the system's manual pager by +.BR w3m (1). +.SH OPTIONS +A summary of options is included below. +.TP +.BI \-M " path" +Specify +.I path +as MANPATH. +.TP +.B \-k " keyword" +Specify +.I keyword. +.SH ENVIRONMENT +.TP +.B W3MMAN_W3M +If W3MMAN_W3M is set, its value is used instead of @W3M@. +.TP +.B W3MMAN_MAN +If W3MMAN_MAN is set, its value is used instead of @MAN@. +.SH FILES +.TP +.I @libexecdir@/@PACKAGE@/cgi-bin/w3mman2html.cgi +convert manual page to html. +.SH SEE ALSO +.BR man (1), +.BR w3m (1). +.SH AUTHOR +This manual page was written by Fumitoshi UKAI , +for the Debian GNU/Linux system (but may be used by others). diff --git a/scripts/w3mman/w3mman.in b/scripts/w3mman/w3mman.in new file mode 100644 index 0000000..6c6f65d --- /dev/null +++ b/scripts/w3mman/w3mman.in @@ -0,0 +1,41 @@ +#!@PERL@ + +@W3M = split(' ', $ENV{'W3MMAN_W3M'} || '@W3M@'); +$ENV{'W3MMAN_MAN'} ||= '@MAN@'; +$SCRIPT = 'file:///$LIB/w3mman2html.cgi'; + +sub usage { + ($_ = $0) =~ s@.*/@@; + print STDERR "$_ [-M ] [[
] ]\n"; + print STDERR "$_ [-M ] [-k ]\n"; + exit 1; +} + +$query = ""; +while (@ARGV) { + $_ = shift @ARGV; + if (/^-M$/) { + @ARGV || &usage(); + $ENV{'MANPATH'} = shift @ARGV; + } elsif (/^-k$/) { + @ARGV || &usage(); + $query = "?keyword=" . &form_encode(shift @ARGV); + } elsif (/^-/) { + &usage(); + } elsif (/^\d/ || $_ eq 'n') { + @ARGV || &usage(); + $query = "?quit=ok&man=" . &form_encode(shift @ARGV); + $query .= "§ion=" . &form_encode($_); + } else { + $query = "?quit=ok&man=" . &form_encode($_); + } +} + +exec @W3M, "$SCRIPT$query"; + +sub form_encode { + local($_) = @_; + s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg; + return $_; +} + diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in new file mode 100644 index 0000000..f41d487 --- /dev/null +++ b/scripts/w3mman/w3mman2html.cgi.in @@ -0,0 +1,274 @@ +#!@PERL@ + +$MAN = $ENV{'W3MMAN_MAN'} || '@MAN@'; +$QUERY = $ENV{'QUERY_STRING'} || $ARGV[0]; +$SCRIPT_NAME = $ENV{'SCRIPT_NAME'} || $0; +$CGI = "file://$SCRIPT_NAME"; +$CGI2 = "file:"; +# $CGI2 = "file:///\$LIB/hlink.cgi?"; +$SQUEEZE = 1; +$ENV{'PAGER'} = 'cat'; + +if ($QUERY =~ /\=/) { + for (split('&', $QUERY)) { + ($v, $q) = split('=', $_, 2); + $query{$v} = &form_decode($q); + } +} else { + $QUERY =~ s/^man=//; + $query{"man"} = &form_decode($QUERY); +} + +if (! $query{"man"}) { + if ($query{"keyword"}) { + $keyword = $query{"keyword"}; + $k = &html_quote($keyword); + print < +man -k $k + +

man -k $k

+
    +EOF + $keyword =~ s:([^-\w\200-\377.,])::g; + open(F, "$MAN -k $keyword 2> /dev/null |"); + @line = (); + while() { + chop; + $_ = &html_quote($_); + s/(\s+-.*)$//; + $title = $1; + s@(\w[\w.\-]*(\s*\,\s*\w[\w.\-]*)*)\s*(\([\dn]\w*\))@&keyword_ref($1, $3)@ge; + print "
  • $_$title\n"; + } + close(F); + print < + + +EOF + exit; + } + print < +man + +
    + +
    Manual: +
    Section: +
    Keyword: +
    +
    +
    + + +EOF + exit; +} + +$man = $query{"man"}; +if ($man =~ s/\((\w+)\)$//) { + $section = $1; + $man_section = "$man($1)"; +} elsif ($query{"section"}) { + $section = $query{"section"}; + $man_section = "$man($section)"; +} else { + $section = ""; + $man_section = "$man"; +} + +$section =~ s:([^-\w\200-\377.,])::g; +$man =~ s:([^-\w\200-\377.,])::g; +open(F, "$MAN $section $man 2> /dev/null |"); +$ok = 0; +undef $header; +$blank = -1; +$cmd = ""; +$prev = ""; +while() { + if (! defined($header)) { + /^\s*$/ && next; + $header = $_; + $space = $header; + chop $space; + $space =~ s/\S.*//; + } elsif ($_ eq $header) { # delete header + $blank = -1; + next; + } elsif (!/\010/ && /^$space[\w\200-\377].*\s\S/o) { # delete footer + $blank = -1; + next; + } + if ($SQUEEZE) { + if (/^\s*$/) { + $blank || $blank++; + next; + } elsif ($blank) { + $blank > 0 && print "\n"; + $blank = 0; + } + } + + s/\&/\&/g; + s/\/\>/g; + + s@([\200-\377].)(\010{1,2}\1)+@$1@g; + s@(\&\w+;|.)(\010\1)+@$1@g; + s@__\010{1,2}((\)?[\200-\377].(\)?)@$1@g; + s@_\010((\)?(\&\w+\;|.)(\)?)@$1@g; + s@((\)?[\200-\377].(\)?)\010{1,2}__@$1@g; + s@((\)?(\&\w+\;|.)(\)?)\010_@$1@g; + s@.\010(.)@$1@g; + + s@\\\_\\\@_@g; + s@\\_\\@_@g; + s@\\@@g; + s@\\@@g; + + if (! $ok) { + /^No/ && last; + print < +man $man_section + +
    +EOF
    +    print;
    +    $ok = 1;
    +    next;
    +  }
    +
    +  s@(http|ftp)://[\w.\-/~]+[\w/]@$&@g;
    +  s@(\W)(mailto:)?(\w[\w.\-]*\@\w[\w.\-]*\.[\w.\-]*\w)@$1$2$3@g;
    +  s@(\W)(\~?/[\w.][\w.\-/~]*)@$1 . &file_ref($2)@ge;
    +  s@(include(<\/?[bu]\>|\s)*\<)([\w.\-/]+)@$1 . &include_ref($3)@ge;
    +  if ($prev && m@^\s*(\<[bu]\>)*(\w[\w.\-]*)(\)*(\([\dm]\w*\))@) {
    +    $cmd .= "$2$4";
    +    $prev =~ s@(\w[\w.\-]*-)((\)*\s*)$@$1$2@;
    +    print $prev;
    +    $prev = '';
    +    s@^(\s*(\<[bu]\>)*)(\w[\w.\-]*)@@;
    +    print "$1$3";
    +  } elsif ($prev) {
    +    print $prev;
    +    $prev = '';
    +  }
    +  s@(\w[\w.\-]*)((\)*)(\([\dm]\w*\))@$1$2$4@g;
    +  if (m@(\w[\w.\-]*)-(\)*\s*$@) {
    +    $cmd = $1;
    +    $prev = $_;
    +    next;
    +  }
    +  print;
    +}
    +if ($prev) {
    +  print $prev;
    +}
    +close(F);
    +if (! $ok) {
    +  if ($query{'quit'}) {
    +    print STDERR "No manual entry for $man_section.\n";
    +    print <
    +man $man_section
    +
    +
    +EOF
    +  print "No manual entry for $man_section.\n";
    +}
    +print <
    +
    +
    +EOF
    +
    +sub is_command {
    +  local($_) = @_;
    +  local($p);
    +
    +  (! -d && -x) || return 0;
    +  if (! defined(%PATH)) {
    +    for $p (split(":", $ENV{'PATH'})) {
    +      $p =~ s@/+$@@;
    +      $PATH{$p} = 1;
    +    }
    +  }
    +  s@/[^/]*$@@;
    +  return defined($PATH{$_});
    +}
    +
    +sub file_ref {
    +  local($_) = @_;
    +
    +  if (&is_command($_)) {
    +    ($man = $_) =~ s@.*/@@;
    +    return "$_";
    +  }
    +  if (/^\~/ || -f || -d) {
    +    return "$_";
    +  }
    +  return $_;
    +}
    +
    +sub include_ref {
    +  local($_) = @_;
    +  local($d);
    +
    +  for $d (
    +	"/usr/include",
    +	"/usr/local/include",
    +	"/usr/X11R6/include",
    +	"/usr/X11/include",
    +	"/usr/X/include",
    +	"/usr/include/X11"
    +  ) {
    +    -f "$d/$_" && return "$_";
    +  }
    +  return $_;
    +}
    +
    +sub keyword_ref {
    +  local($_, $s) = @_;
    +  local(@a) = ();
    +
    +  for (split(/\s*,\s*/)) {
    +    push(@a, "$_");
    +  }
    +  return join(", ", @a) . $s;
    +}
    +
    +sub html_quote {
    +  local($_) = @_;
    +  local(%QUOTE) = (
    +    '<', '<',
    +    '>', '>',
    +    '&', '&',
    +    '"', '"',
    +  );
    +  s/[<>&"]/$QUOTE{$&}/g;
    +  return $_;
    +}
    +
    +sub form_decode {
    +  local($_) = @_;
    +  s/\+/ /g;
    +  s/%([\da-f][\da-f])/pack('c', hex($1))/egi;
    +  return $_;
    +}
    +
    -- 
    cgit v1.2.3
    
    
    From 6db339b3d7a391f196e7c4b725a4ed0bd00f31cf Mon Sep 17 00:00:00 2001
    From: Tatsuya Kinoshita 
    Date: Wed, 4 May 2011 16:23:02 +0900
    Subject: Adding upstream version 0.5.2
    
    ---
     scripts/w3mman/Makefile.in        |  1 +
     scripts/w3mman/w3mman.1.in        | 11 +++++++--
     scripts/w3mman/w3mman.in          |  5 +++++
     scripts/w3mman/w3mman2html.cgi.in | 47 ++++++++++++++++++++++++++-------------
     4 files changed, 47 insertions(+), 17 deletions(-)
    
    (limited to 'scripts/w3mman')
    
    diff --git a/scripts/w3mman/Makefile.in b/scripts/w3mman/Makefile.in
    index ab941c5..6c567c7 100644
    --- a/scripts/w3mman/Makefile.in
    +++ b/scripts/w3mman/Makefile.in
    @@ -8,6 +8,7 @@ top_srcdir=@top_srcdir@
     VPATH= $(srcdir):.
     prefix = @prefix@
     exec_prefix = @exec_prefix@
    +datarootdir = @datarootdir@
     bindir = @bindir@
     datadir = @datadir@
     libdir = @libdir@
    diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in
    index eb30237..1c0361d 100644
    --- a/scripts/w3mman/w3mman.1.in
    +++ b/scripts/w3mman/w3mman.1.in
    @@ -1,4 +1,4 @@
    -.TH W3MMAN 1 "Mar 14, 2002"
    +.TH W3MMAN 1 "Nov 5, 2005"
     .\" Please adjust this date whenever revising the manpage.
     .\"
     .\" Some roff macros, for reference:
    @@ -19,6 +19,9 @@ w3mman \- an interface to the on-line reference manuals by w3m(1)
     .br
     .B w3mman
     .RI "[-M " path "] -k " keyword
    +.br
    +.B w3mman
    +.RI -l " file
     .SH DESCRIPTION
     .B w3mman
     is the system's manual pager by 
    @@ -31,9 +34,13 @@ Specify
     .I path
     as MANPATH.
     .TP
    -.B \-k " keyword"
    +.BI \-k " keyword"
     Specify 
     .I keyword.
    +.TP
    +.BI \-l " file"
    +Specify a  
    +.I file.
     .SH ENVIRONMENT
     .TP
     .B W3MMAN_W3M
    diff --git a/scripts/w3mman/w3mman.in b/scripts/w3mman/w3mman.in
    index 6c6f65d..6a27e70 100644
    --- a/scripts/w3mman/w3mman.in
    +++ b/scripts/w3mman/w3mman.in
    @@ -8,6 +8,7 @@ sub usage {
       ($_ = $0) =~ s@.*/@@;
       print STDERR "$_ [-M ] [[
    ] ]\n"; print STDERR "$_ [-M ] [-k ]\n"; + print STDERR "$_ [-l ]\n"; exit 1; } @@ -20,6 +21,10 @@ while (@ARGV) { } elsif (/^-k$/) { @ARGV || &usage(); $query = "?keyword=" . &form_encode(shift @ARGV); + } elsif (/^-l$/) { + @ARGV || &usage(); + $query = "?quit=ok&local=" . &form_encode(shift @ARGV); + $query .= "&pwd=" . &form_encode($ENV{'PWD'}); } elsif (/^-/) { &usage(); } elsif (/^\d/ || $_ eq 'n') { diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in index f41d487..3cb105d 100644 --- a/scripts/w3mman/w3mman2html.cgi.in +++ b/scripts/w3mman/w3mman2html.cgi.in @@ -19,7 +19,7 @@ if ($QUERY =~ /\=/) { $query{"man"} = &form_decode($QUERY); } -if (! $query{"man"}) { +if ((! $query{"man"}) && (! $query{"local"})) { if ($query{"keyword"}) { $keyword = $query{"keyword"}; $k = &html_quote($keyword); @@ -71,21 +71,29 @@ EOF exit; } -$man = $query{"man"}; -if ($man =~ s/\((\w+)\)$//) { - $section = $1; - $man_section = "$man($1)"; -} elsif ($query{"section"}) { - $section = $query{"section"}; - $man_section = "$man($section)"; +if ($query{"local"}) { + $file = $query{"local"}; + if (! ($file =~ /^\//)) { + $file = $query{"pwd"} . '/' . $file; + } + open(F, "$MAN -l $file 2> /dev/null |"); } else { - $section = ""; - $man_section = "$man"; -} + $man = $query{"man"}; + if ($man =~ s/\((\w+)\)$//) { + $section = $1; + $man_section = "$man($1)"; + } elsif ($query{"section"}) { + $section = $query{"section"}; + $man_section = "$man($section)"; + } else { + $section = ""; + $man_section = "$man"; + } -$section =~ s:([^-\w\200-\377.,])::g; -$man =~ s:([^-\w\200-\377.,])::g; -open(F, "$MAN $section $man 2> /dev/null |"); + $section =~ s:([^-\w\200-\377.,])::g; + $man =~ s:([^-\w\200-\377.,])::g; + open(F, "$MAN $section $man 2> /dev/null |"); +} $ok = 0; undef $header; $blank = -1; @@ -176,6 +184,11 @@ if ($prev) { close(F); if (! $ok) { if ($query{'quit'}) { + if ($query{'local'}) { + print STDERR "File $file not found.\n"; + } else { + print STDERR "No manual entry for $man_section.\n"; + } print STDERR "No manual entry for $man_section.\n"; print <
     EOF
    -  print "No manual entry for $man_section.\n";
    +  if ($query{'local'}) {
    +    print "File $file not found.\n";
    +  } else {
    +    print "No manual entry for $man_section.\n";
    +  }
     }
     print <
    -- 
    cgit v1.2.3
    
    
    From 5397d09e585a1938fb64bc9c5cd5daed1959eb90 Mon Sep 17 00:00:00 2001
    From: Tatsuya Kinoshita 
    Date: Wed, 4 May 2011 16:41:45 +0900
    Subject: Adding upstream version 0.5.3
    
    ---
     scripts/w3mman/CVS/Entries        | 8 ++++++++
     scripts/w3mman/CVS/Repository     | 1 +
     scripts/w3mman/CVS/Root           | 1 +
     scripts/w3mman/Makefile.in        | 1 -
     scripts/w3mman/w3mman2html.cgi.in | 4 ++--
     5 files changed, 12 insertions(+), 3 deletions(-)
     create mode 100644 scripts/w3mman/CVS/Entries
     create mode 100644 scripts/w3mman/CVS/Repository
     create mode 100644 scripts/w3mman/CVS/Root
    
    (limited to 'scripts/w3mman')
    
    diff --git a/scripts/w3mman/CVS/Entries b/scripts/w3mman/CVS/Entries
    new file mode 100644
    index 0000000..2cc31ff
    --- /dev/null
    +++ b/scripts/w3mman/CVS/Entries
    @@ -0,0 +1,8 @@
    +/.cvsignore/1.3/Mon Sep 22 22:53:53 2003//
    +/README/1.3/Wed Dec 18 16:48:02 2002//
    +/hlink.cgi/1.1/Thu Nov 15 00:32:14 2001//
    +/w3mman.1.in/1.6/Fri Apr  7 15:33:56 2006//
    +/w3mman.in/1.5/Fri Apr  7 15:33:56 2006//
    +/Makefile.in/1.5/Tue Jan  4 09:22:28 2011//
    +/w3mman2html.cgi.in/1.9/Tue Jan  4 09:22:28 2011//
    +D
    diff --git a/scripts/w3mman/CVS/Repository b/scripts/w3mman/CVS/Repository
    new file mode 100644
    index 0000000..430e75e
    --- /dev/null
    +++ b/scripts/w3mman/CVS/Repository
    @@ -0,0 +1 @@
    +w3m/scripts/w3mman
    diff --git a/scripts/w3mman/CVS/Root b/scripts/w3mman/CVS/Root
    new file mode 100644
    index 0000000..121fa06
    --- /dev/null
    +++ b/scripts/w3mman/CVS/Root
    @@ -0,0 +1 @@
    +:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m
    diff --git a/scripts/w3mman/Makefile.in b/scripts/w3mman/Makefile.in
    index 6c567c7..569e2fc 100644
    --- a/scripts/w3mman/Makefile.in
    +++ b/scripts/w3mman/Makefile.in
    @@ -24,7 +24,6 @@ srcdir = @srcdir@
     sysconfdir = @sysconfdir@
     top_srcdir = @top_srcdir@
     VPATH = $(top_srcdir):.
    -DESTDIR = 
     
     CGIBIN_DIR = $(libexecdir)/$(PACKAGE)/cgi-bin
     AUXBIN_DIR = $(libexecdir)/$(PACKAGE)
    diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in
    index 3cb105d..f430307 100644
    --- a/scripts/w3mman/w3mman2html.cgi.in
    +++ b/scripts/w3mman/w3mman2html.cgi.in
    @@ -76,7 +76,7 @@ if ($query{"local"}) {
       if (! ($file =~ /^\//)) {
         $file = $query{"pwd"} . '/' . $file;
       }
    -  open(F, "$MAN -l $file 2> /dev/null |");
    +  open(F, "MAN_KEEP_FORMATTING=1 $MAN -l $file 2> /dev/null |");
     } else {
       $man = $query{"man"};
       if ($man =~ s/\((\w+)\)$//) {
    @@ -92,7 +92,7 @@ if ($query{"local"}) {
     
       $section =~ s:([^-\w\200-\377.,])::g;
       $man =~ s:([^-\w\200-\377.,])::g;
    -  open(F, "$MAN $section $man 2> /dev/null |");
    +  open(F, "MAN_KEEP_FORMATTING=1 $MAN $section $man 2> /dev/null |");
     }
     $ok = 0;
     undef $header;
    -- 
    cgit v1.2.3
    
    
    From 620796f8d750bc58e1cf1327ff54aed32e302c73 Mon Sep 17 00:00:00 2001
    From: Tatsuya Kinoshita 
    Date: Tue, 22 May 2012 23:06:58 +0900
    Subject: Remove garbage files
    
    ---
     scripts/w3mman/CVS/Entries    | 8 --------
     scripts/w3mman/CVS/Repository | 1 -
     scripts/w3mman/CVS/Root       | 1 -
     3 files changed, 10 deletions(-)
     delete mode 100644 scripts/w3mman/CVS/Entries
     delete mode 100644 scripts/w3mman/CVS/Repository
     delete mode 100644 scripts/w3mman/CVS/Root
    
    (limited to 'scripts/w3mman')
    
    diff --git a/scripts/w3mman/CVS/Entries b/scripts/w3mman/CVS/Entries
    deleted file mode 100644
    index 2cc31ff..0000000
    --- a/scripts/w3mman/CVS/Entries
    +++ /dev/null
    @@ -1,8 +0,0 @@
    -/.cvsignore/1.3/Mon Sep 22 22:53:53 2003//
    -/README/1.3/Wed Dec 18 16:48:02 2002//
    -/hlink.cgi/1.1/Thu Nov 15 00:32:14 2001//
    -/w3mman.1.in/1.6/Fri Apr  7 15:33:56 2006//
    -/w3mman.in/1.5/Fri Apr  7 15:33:56 2006//
    -/Makefile.in/1.5/Tue Jan  4 09:22:28 2011//
    -/w3mman2html.cgi.in/1.9/Tue Jan  4 09:22:28 2011//
    -D
    diff --git a/scripts/w3mman/CVS/Repository b/scripts/w3mman/CVS/Repository
    deleted file mode 100644
    index 430e75e..0000000
    --- a/scripts/w3mman/CVS/Repository
    +++ /dev/null
    @@ -1 +0,0 @@
    -w3m/scripts/w3mman
    diff --git a/scripts/w3mman/CVS/Root b/scripts/w3mman/CVS/Root
    deleted file mode 100644
    index 121fa06..0000000
    --- a/scripts/w3mman/CVS/Root
    +++ /dev/null
    @@ -1 +0,0 @@
    -:ext:inu@w3m.cvs.sourceforge.net:/cvsroot/w3m
    -- 
    cgit v1.2.3
    
    
    From 1d0ba25a660483da1272a31dd077ed94441e3d9f Mon Sep 17 00:00:00 2001
    From: Tatsuya Kinoshita 
    Date: Sat, 2 Jan 2021 09:20:37 +0900
    Subject: New upstream version 0.5.3+git20210102
    
    ---
     scripts/w3mman/.cvsignore         |  5 ---
     scripts/w3mman/Makefile.in        | 18 ++++++++--
     scripts/w3mman/README             | 34 +++++++++----------
     scripts/w3mman/w3mman.1.in        | 46 +++++++++++++++++--------
     scripts/w3mman/w3mman.de.1.in     | 71 +++++++++++++++++++++++++++++++++++++++
     scripts/w3mman/w3mman.in          | 22 +++++++-----
     scripts/w3mman/w3mman2html.cgi.in | 35 +++++++++++--------
     7 files changed, 170 insertions(+), 61 deletions(-)
     delete mode 100644 scripts/w3mman/.cvsignore
     create mode 100644 scripts/w3mman/w3mman.de.1.in
    
    (limited to 'scripts/w3mman')
    
    diff --git a/scripts/w3mman/.cvsignore b/scripts/w3mman/.cvsignore
    deleted file mode 100644
    index e867c6e..0000000
    --- a/scripts/w3mman/.cvsignore
    +++ /dev/null
    @@ -1,5 +0,0 @@
    -w3mman
    -w3mman2html.cgi
    -w3mman.1
    -
    -Makefile
    diff --git a/scripts/w3mman/Makefile.in b/scripts/w3mman/Makefile.in
    index 569e2fc..ad1cffe 100644
    --- a/scripts/w3mman/Makefile.in
    +++ b/scripts/w3mman/Makefile.in
    @@ -33,11 +33,13 @@ ETC_DIR = $(sysconfdir)
     CONF_DIR = $(sysconfdir)/$(PACKAGE)
     BIN_DIR = $(bindir)
     MAN1_DIR = $(mandir)/man1
    +MAN1_DE_DIR = $(mandir)/de/man1
     
     TARGETS		= w3mman
     CGIBIN_TARGETS	= w3mman2html.cgi
     MAN1_TARGETS	= w3mman.1
    -MAN_TARGETS	= $(MAN1_TARGETS)
    +MAN1_DE_TARGETS	= w3mman.de.1
    +MAN_TARGETS	= $(MAN1_TARGETS) $(MAN1_DE_TARGETS)
     
     MKDIR		= mkdir -p
     INSTALL		= @INSTALL@
    @@ -53,6 +55,7 @@ install: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS)
     	-$(MKDIR) $(DESTDIR)$(BIN_DIR)
     	-$(MKDIR) $(DESTDIR)$(CGIBIN_DIR)
     	-$(MKDIR) $(DESTDIR)$(MAN1_DIR)
    +	-$(MKDIR) $(DESTDIR)$(MAN1_DE_DIR)
     	for file in $(TARGETS);     \
     	do      \
     		$(INSTALL_SCRIPT) $$file $(DESTDIR)$(BIN_DIR);	\
    @@ -65,6 +68,12 @@ install: $(TARGETS) $(CGIBIN_TARGETS) $(MAN_TARGETS)
     	do	\
     		$(INSTALL_MAN) $$file $(DESTDIR)$(MAN1_DIR); \
     	done
    +	for file in $(MAN1_DE_TARGETS); \
    +	do	\
    +		$(INSTALL_MAN) $$file $(DESTDIR)$(MAN1_DE_DIR); \
    +		f=`echo "$$file" | sed -e 's/\.de\././'`; \
    +		mv $(DESTDIR)$(MAN1_DE_DIR)/$$file $(DESTDIR)$(MAN1_DE_DIR)/$$f; \
    +	done
     
     uninstall:
     	-for file in $(TARGETS);     \
    @@ -79,6 +88,11 @@ uninstall:
     	do \
     		rm -f $(MAN1_DIR)/$$file; \
     	done
    +	-for file in $(MAN1_DE_TARGETS); \
    +	do \
    +		f=`echo "$$file" | sed -e 's/\.de\././'`; \
    +		rm -f $(MAN1_DE_DIR)/$$f; \
    +	done
     
     clean:
     
    @@ -89,7 +103,7 @@ distclean:
     dist: all
     	@-rm -fr $(distdir)/w3mman
     	-$(MKDIR) $(distdir)/w3mman
    -	cp Makefile README w3mman.in w3mman2html.cgi.in hlink.cgi w3mman.1.in $(distdir)/w3mman
    +	cp Makefile README w3mman.in w3mman2html.cgi.in hlink.cgi w3mman.1.in w3mman.de.1.in $(distdir)/w3mman
     	( cd $(distdir); tar -cf - w3mman | GZIP='' gzip ) \
     		> $(distdir)/w3mman.tar.gz
     	-rm -fr $(distdir)/w3mman
    diff --git a/scripts/w3mman/README b/scripts/w3mman/README
    index 3bcbb3b..189e9ac 100644
    --- a/scripts/w3mman/README
    +++ b/scripts/w3mman/README
    @@ -1,54 +1,54 @@
     
     w3mman
     
    -    他のマニュアルやヘッダファイルにリンクをはることができる
    -    man コマンドの代替コマンドです。
    +    篁ャ≪<ゃ潟с
    +    man 潟潟篁f帥潟潟с
     
    -使用法
    +篏睡羈
     
         w3mman
         w3mman [(
    )] w3mman [
    ] w3mman -k -環境変数 +医紊 W3MMAN_W3M - 使用する w3m コマンドを指定します(デフォルトは w3m) + 篏睡 w3m 潟潟絎障( w3m) W3MMAN_MAN - 使用する man コマンドを指定します(デフォルトは man) + 篏睡 man 潟潟絎障( man) -インストール +ゃ潟鴻若 make install - 必要なら PERL, MAN, LIBDIR を設定してください。 - w3mman2html.cgi もインストールされます。 + 綽荀 PERL, MAN, LIBDIR 荐絎 + w3mman2html.cgi ゃ潟鴻若障 ================ w3mman2html.cgi -使用法 +篏睡羈 w3m file:///$LIB/w3mman2html.cgi w3m file:///$LIB/w3mman2html.cgi?[(
    )] w3m file:///$LIB/w3mman2html.cgi?man=[§ion=
    ] w3m file:///$LIB/w3mman2html.cgi?keyword= -インストール +ゃ潟鴻若 make install - 必要なら PERL, MAN, LIBDIR を設定してください。 - w3mman もインストールされます。 + 綽荀 PERL, MAN, LIBDIR 荐絎 + w3mman ゃ潟鴻若障 ================ hlink.cgi - ヘッダファイルなどにリンクを張る + <ゃ潟綣泣 -インストール +ゃ潟鴻若 - /$LIB/ にコピー - w3mman2html.cgi で使用するならば $CGI2 に設定してください。 + /$LIB/ 潟 + w3mman2html.cgi т戎 $CGI2 荐絎 diff --git a/scripts/w3mman/w3mman.1.in b/scripts/w3mman/w3mman.1.in index 1c0361d..68e3afc 100644 --- a/scripts/w3mman/w3mman.1.in +++ b/scripts/w3mman/w3mman.1.in @@ -1,4 +1,4 @@ -.TH W3MMAN 1 "Nov 5, 2005" +.TH W3MMAN 1 "2016-07-13" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -12,36 +12,54 @@ .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME -w3mman \- an interface to the on-line reference manuals by w3m(1) +w3mman \- an interface to the on-line reference manuals via w3m(1) .SH SYNOPSIS +.\" mh 2016-07-04: "page" is an optional argument. +.\" Started without it, w3mman displays a form that allows selection +.\" of a manual page according to section, name and keyword. +.\" Therefore square brackets introduced .B w3mman -.RI "[-M " path ] " " [ section ] " page" +[ +.BI \-M " path" +] [ [ +.I section +] +.I page +] .br .B w3mman -.RI "[-M " path "] -k " keyword +[ +.BI \-M " path" +] [ +.I section +] +.BI \-k " keyword" .br .B w3mman -.RI -l " file +.BI \-l " file" +.br .SH DESCRIPTION +.\" mh 2016-07-04 text edited. This section shall deliver +.\" more information than section NAME .B w3mman -is the system's manual pager by -.BR w3m (1). +is a Perl script that uses +.BR w3m (1) +to serve as a pager for on-line reference manuals. .SH OPTIONS A summary of options is included below. .TP .BI \-M " path" -Specify +Specify .I path -as MANPATH. +as alternative MANPATH to use. .TP .BI \-k " keyword" -Specify -.I keyword. +Specify \fIkeyword\fP. .TP .BI \-l " file" -Specify a -.I file. +Specify a \fIfile\fP. .SH ENVIRONMENT +Two variables are available for debugging. .TP .B W3MMAN_W3M If W3MMAN_W3M is set, its value is used instead of @W3M@. @@ -51,7 +69,7 @@ If W3MMAN_MAN is set, its value is used instead of @MAN@. .SH FILES .TP .I @libexecdir@/@PACKAGE@/cgi-bin/w3mman2html.cgi -convert manual page to html. +manual page to HTML converter. .SH SEE ALSO .BR man (1), .BR w3m (1). diff --git a/scripts/w3mman/w3mman.de.1.in b/scripts/w3mman/w3mman.de.1.in new file mode 100644 index 0000000..d6c5a44 --- /dev/null +++ b/scripts/w3mman/w3mman.de.1.in @@ -0,0 +1,71 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH W3MMAN 1 2016\-07\-13 +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +w3mman \- eine Schnittstelle zur Anzeige von Online\-Referenzhandb端chern durch +w3m(1) +.SH SYNOPSIS +.\" mh 2016-07-04: "page" is an optional argument. +.\" Started without it, w3mman displays a form that allows selection +.\" of a manual page according to section, name and keyword. +.\" Therefore square brackets introduced +\fBw3mman\fP [ \fB\-M\fP \fIPfad\fP ] [ \fIAbschnitt\fP ] [ \fISeite\fP ] +.br +\fBw3mman\fP [\fB\-M\fP \fIPfad\fP] \fB\-k\fP \fIStichwort\fP +.br +\fBw3mman\fP \fB\-l\fP \fIDatei\fP +.br +.SH BESCHREIBUNG +.\" mh 2016-07-04 text edited. This section shall deliver +.\" more information than section NAME +\fBw3mman\fP ist ein Perl\-Skript, welches auf \fBw3m\fP(1) zur端ckgreift, um als +Betrachter f端r Online\-Referenzhandb端cher zu dienen. +.SH OPTIONEN +Es folgt eine Zusammenfassung der Optionen. +.TP +\fB\-M\fP\fI Pfad\fP +Suchpfad f端r Handbuchseiten auf \fIPfad\fP setzen +.TP +\fB\-k\fP \fIStichwort\fP +zum \fIStichwort\fP passende Handbuchseiten anzeigen +.TP +\fB\-l\fP \fIDatei\fP +die Handbuchseiten\-Datei \fIDatei\fP anzeigen +.SH UMGEBUNGSVARIABLEN +Zur Fehleranalyse stehen zwei Variablen zur Verf端gung. +.TP +\fBW3MMAN_W3M\fP +Ist W3MMAN_W3M gesetzt, wird ihr Wert anstelle von @W3M@ verwendet. +.TP +\fBW3MMAN_MAN\fP +Ist W3MMAN_MAN gesetzt, wird ihr Wert anstelle von @MAN@ verwendet. +.SH DATEIEN +.TP +\fI@libexecdir@/@PACKAGE@/cgi\-bin/w3mman2html.cgi\fP +Skript, welches Handbuchseiten in HTML konvertiert +.SH "SIEHE AUCH" +\fBman\fP(1), \fBw3m\fP(1). +.SH AUTOR +Diese Handbuchseite wurde von Fumitoshi UKAI f端r +Debian GNU / Linux geschrieben, sie kann aber auch auf anderen Systemen +verwendet werden. +Die deutsche bersetzung wurde 2016 von +.UR markus.hiereth@freenet.de +Markus Hiereth +.UE +erstellt. diff --git a/scripts/w3mman/w3mman.in b/scripts/w3mman/w3mman.in index 6a27e70..061cb1f 100644 --- a/scripts/w3mman/w3mman.in +++ b/scripts/w3mman/w3mman.in @@ -7,7 +7,7 @@ $SCRIPT = 'file:///$LIB/w3mman2html.cgi'; sub usage { ($_ = $0) =~ s@.*/@@; print STDERR "$_ [-M ] [[
    ] ]\n"; - print STDERR "$_ [-M ] [-k ]\n"; + print STDERR "$_ [-M ] [
    ] [-k ]\n"; print STDERR "$_ [-l ]\n"; exit 1; } @@ -20,19 +20,23 @@ while (@ARGV) { $ENV{'MANPATH'} = shift @ARGV; } elsif (/^-k$/) { @ARGV || &usage(); - $query = "?keyword=" . &form_encode(shift @ARGV); - } elsif (/^-l$/) { - @ARGV || &usage(); - $query = "?quit=ok&local=" . &form_encode(shift @ARGV); + if ( $query eq "" ) { $query = "?quit=ok"; } + $query .= "&keyword=" . &form_encode(shift @ARGV); + } elsif (/^-l$/ || /\//) { + if (/^-l$/) { + @ARGV || &usage(); + $_ = shift @ARGV; + } + $query = "?quit=ok&local=" . &form_encode($_); $query .= "&pwd=" . &form_encode($ENV{'PWD'}); } elsif (/^-/) { &usage(); - } elsif (/^\d/ || $_ eq 'n') { - @ARGV || &usage(); - $query = "?quit=ok&man=" . &form_encode(shift @ARGV); + } elsif (/^\d/ || $_ eq 'n' || $_ eq 'l') { + if ( $query eq "" ) { $query = "?quit=ok"; } $query .= "§ion=" . &form_encode($_); } else { - $query = "?quit=ok&man=" . &form_encode($_); + if ( $query eq "" ) { $query = "?quit=ok"; } + $query .= "&man=" . &form_encode($_); } } diff --git a/scripts/w3mman/w3mman2html.cgi.in b/scripts/w3mman/w3mman2html.cgi.in index f430307..2d326a9 100644 --- a/scripts/w3mman/w3mman2html.cgi.in +++ b/scripts/w3mman/w3mman2html.cgi.in @@ -23,18 +23,23 @@ if ((! $query{"man"}) && (! $query{"local"})) { if ($query{"keyword"}) { $keyword = $query{"keyword"}; $k = &html_quote($keyword); + if ($query{"section"}) { + $section = $query{"section"}; + $sectionopt = "-s $section "; + } else { + $sectionopt = ""; + } print < -man -k $k +man $sectionopt-k $k -

    man -k $k

    +

    man $sectionopt-k $k

      EOF $keyword =~ s:([^-\w\200-\377.,])::g; - open(F, "$MAN -k $keyword 2> /dev/null |"); - @line = (); + open(F, "$MAN $sectionopt -k $keyword 2> /dev/null |"); while() { chop; $_ = &html_quote($_); @@ -59,10 +64,10 @@ Content-Type: text/html
      -
      Manual: -
      Section: -
      Keyword: -
      +
      Manual: +
      Section: +
      Keyword: +
      @@ -76,7 +81,7 @@ if ($query{"local"}) { if (! ($file =~ /^\//)) { $file = $query{"pwd"} . '/' . $file; } - open(F, "MAN_KEEP_FORMATTING=1 $MAN -l $file 2> /dev/null |"); + open(F, "MAN_KEEP_FORMATTING=1 $MAN $file 2> /dev/null |"); } else { $man = $query{"man"}; if ($man =~ s/\((\w+)\)$//) { @@ -126,12 +131,14 @@ while() { s/\&/\&/g; s/\/\>/g; + # non ASCII UTF-8 codepoint + my $utf8="[\300-\337][\200-\277]|[\340-\357][\200-\277]{2}|[\360-\367][\200-\277]{3}|[\370-\373][\200-\277]{4}|[\374\375][\200-\277]{5}"; - s@([\200-\377].)(\010{1,2}\1)+@$1@g; + s@($utf8)(\010\1)+@$1@g; s@(\&\w+;|.)(\010\1)+@$1@g; - s@__\010{1,2}((\)?[\200-\377].(\)?)@$1@g; + s@_\010((\)?($utf8)(\)?)@$1@g; s@_\010((\)?(\&\w+\;|.)(\)?)@$1@g; - s@((\)?[\200-\377].(\)?)\010{1,2}__@$1@g; + s@((\)?($utf8)(\)?)\010_@$1@g; s@((\)?(\&\w+\;|.)(\)?)\010_@$1@g; s@.\010(.)@$1@g; @@ -156,7 +163,7 @@ EOF } s@(http|ftp)://[\w.\-/~]+[\w/]@$&@g; - s@(\W)(mailto:)?(\w[\w.\-]*\@\w[\w.\-]*\.[\w.\-]*\w)@$1$2$3@g; + s@\b(mailto:|)(\w[\w.\-]*\@\w[\w.\-]*\.[\w.\-]*\w)@$1$2@g; s@(\W)(\~?/[\w.][\w.\-/~]*)@$1 . &file_ref($2)@ge; s@(include(<\/?[bu]\>|\s)*\<)([\w.\-/]+)@$1 . &include_ref($3)@ge; if ($prev && m@^\s*(\<[bu]\>)*(\w[\w.\-]*)(\)*(\([\dm]\w*\))@) { @@ -220,7 +227,7 @@ sub is_command { local($p); (! -d && -x) || return 0; - if (! defined(%PATH)) { + if (! %PATH) { for $p (split(":", $ENV{'PATH'})) { $p =~ s@/+$@@; $PATH{$p} = 1; -- cgit v1.2.3