From: Perl 5 Porters Date: Tue, 2 Jan 1996 01:28:08 +0000 (+0000) Subject: perl 5.002beta1h patch: utils/perldoc.PL X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=85880f03f448e0f07321c83106bbf3e02dabe5ac;p=p5sagit%2Fp5-mst-13.2.git perl 5.002beta1h patch: utils/perldoc.PL Better error handling. Updated to use Pod::Text, if available. More VMS friendly. New -u option . --- diff --git a/utils/perldoc.PL b/utils/perldoc.PL index 3e72dad..cfe6e2c 100644 --- a/utils/perldoc.PL +++ b/utils/perldoc.PL @@ -3,9 +3,12 @@ use Config; use File::Basename qw(&basename &dirname); -# List explicitly here the shell variables you want Configure -# to look for. +# List explicitly here the variables you want Configure to +# generate. Metaconfig only looks for shell variables, so you +# have to mention them as if they were shell variables, not +# %Config entries. Thus you write # $startperl +# to ensure Configure will look for $Config{startperl}. # This forces PL files to create target in same directory as PL file. # This is so that make depend always knows where to find PL derivatives. @@ -22,7 +25,7 @@ print "Extracting $file (with variable substitutions)\n"; # In this section, perl variables will be expanded during extraction. # You can use $Config{...} to use Configure variables. -print OUT <<"!GROK!THIS!"; +print OUT <<"!GROK!THIS!"; $Config{'startperl'} eval 'exec perl -S \$0 "\$@"' if 0; @@ -31,6 +34,8 @@ $Config{'startperl'} # In the following, perl variables are not expanded during extraction. print OUT <<'!NO!SUBS!'; + eval 'exec perl -S $0 "$@"' + if 0; # # Perldoc revision #1 -- look up a piece of documentation in .pod format that @@ -40,7 +45,12 @@ print OUT <<'!NO!SUBS!'; # man replacement, written in perl. This perldoc is strictly for reading # the perl manuals, though it too is written in perl. # -# Version 1.1: Thu Nov 9 07:23:47 EST 1995 +# Version 1.11: Tue Dec 26 09:54:33 EST 1995 +# Kenneth Albanowski +# -added Charles Bailey's further VMS patches, and -u switch +# -added -t switch, with pod2text support +# +# Version 1.10: Thu Nov 9 07:23:47 EST 1995 # Kenneth Albanowski # -added VMS support # -added better error recognition (on no found pages, just exit. On @@ -68,7 +78,7 @@ perldoc - Look up Perl documentation in pod format. =head1 SYNOPSIS -B [B<-h>] [B<-v>] PageName|ModuleName|ProgramName +B [B<-h>] [B<-v>] [B<-t>] [B<-u>] PageName|ModuleName|ProgramName =head1 DESCRIPTION @@ -92,6 +102,15 @@ Prints out a brief help message. Describes search for the item in detail. +=item B<-t> text output + +Display docs using plain text converter, instead of nroff. This may be faster, +but it won't look as nice. + +=item B<-u> unformatted + +Find docs only; skip reformatting by pod2* + =item B The item you want to look up. Nested modules (such as C) @@ -126,7 +145,7 @@ Minor updates by Andy Dougherty if(@ARGV<1) { die <>$tmp"); - $rslt = `pod2man $_ | nroff -man`; - if ($VMS) { $err = !($? % 2) || $rslt =~ /IVVERB/; } - else { $err = $?; } - print TMP $rslt unless $err; - close TMP; + if($opt_t) { + open(TMP,">>$tmp"); + Pod::Text::pod2text($_,*TMP); + close(TMP); + } elsif(not $opt_u) { + open(TMP,">>$tmp"); + $rslt = `pod2man $_ | nroff -man`; + if ($Is_VMS) { $err = !($? % 2) || $rslt =~ /IVVERB/; } + else { $err = $?; } + print TMP $rslt unless $err; + close TMP; + } - 1 while unlink($tmp2); # Possibly pointless VMSism - - if( $err or -z $tmp) { + if( $opt_u or $err or -z $tmp) { open(OUT,">>$tmp"); open(IN,"<$_"); - print OUT while ; + $cut = 1; + while () { + $cut = $1 eq 'cut' if /^=(\w+)/; + next if $cut; + print OUT; + } close(IN); close(OUT); } @@ -309,20 +368,10 @@ if( $opt_f ) { print while ; close(TMP); } else { - pager: - { - if( $ENV{PAGER} and system("$ENV{PAGER} $tmp")==$goodresult) - { last pager } - if( $Config{pager} and system("$Config{pager} $tmp")==$goodresult) - { last pager } - if( system("more $tmp")==$goodresult) - { last pager } - if( system("less $tmp")==$goodresult) - { last pager } - if( system("pg $tmp")==$goodresult) - { last pager } - if( system("view $tmp")==$goodresult) - { last pager } + foreach $pager (@pagers) { + $sts = system("$pager $tmp"); + last if $Is_VMS && ($sts & 1); + last unless $sts; } }