summaryrefslogtreecommitdiff
path: root/regress
diff options
context:
space:
mode:
Diffstat (limited to 'regress')
-rw-r--r--regress/Makefile4
-rw-r--r--regress/share/Makefile8
-rw-r--r--regress/share/man/Makefile13
-rw-r--r--regress/share/man/cfman871
-rw-r--r--regress/share/man/no3man42
-rw-r--r--regress/share/man/scatman263
6 files changed, 2 insertions, 1199 deletions
diff --git a/regress/Makefile b/regress/Makefile
index f8d94978539..1e6970f69f7 100644
--- a/regress/Makefile
+++ b/regress/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.20 2010/06/28 16:03:15 phessler Exp $
+# $OpenBSD: Makefile,v 1.21 2014/11/24 01:12:14 schwarze Exp $
#
# To run full regression tests you just need two steps:
@@ -15,7 +15,7 @@
# email address.
# To skip the really slow tests, set the REGRESS_SKIP_SLOW variable.
-SUBDIR+= etc bin include lib libexec sbin sys share usr.bin usr.sbin misc gnu
+SUBDIR+= etc bin include lib libexec sbin sys usr.bin usr.sbin misc gnu
install:
diff --git a/regress/share/Makefile b/regress/share/Makefile
deleted file mode 100644
index 45ff5024369..00000000000
--- a/regress/share/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# $OpenBSD: Makefile,v 1.3 2002/02/23 01:25:11 art Exp $
-# $NetBSD: Makefile,v 1.5 1995/04/20 22:37:12 cgd Exp $
-
-SUBDIR+= man
-
-install:
-
-.include <bsd.subdir.mk>
diff --git a/regress/share/man/Makefile b/regress/share/man/Makefile
deleted file mode 100644
index 2f5dacde8d3..00000000000
--- a/regress/share/man/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# $OpenBSD: Makefile,v 1.10 2014/07/16 20:04:21 okan Exp $
-
-REGRESS_TARGETS=do-cfman do-no3man do-scatman
-REGRESS_SLOW_TARGETS=${REGRESS_TARGETS}
-
-do-cfman:
- perl ${.CURDIR}/cfman /usr/share/man
-do-no3man:
- perl ${.CURDIR}/no3man /usr/share/man
-do-scatman:
- perl ${.CURDIR}/scatman /usr/share/man
-
-.include <bsd.regress.mk>
diff --git a/regress/share/man/cfman b/regress/share/man/cfman
deleted file mode 100644
index eba6b2bf481..00000000000
--- a/regress/share/man/cfman
+++ /dev/null
@@ -1,871 +0,0 @@
-#!/usr/bin/perl -w
-# $OpenBSD: cfman,v 1.5 2007/05/15 22:00:38 jmc Exp $
-
-#
-# cfman - make sure manpages have accurate SEE ALSOs
-# tchrist@perl.com
-
-use strict;
-
-my $VERSION = do {
- my @r = (q$Revision: 1.5 $ =~ /\d+/g);
- sprintf "%d."."%02d" x $#r, @r;
-};
-
-my $Debug = 0;
-
-my($Ignore_Manpath, $CF_File, $CF_Style,
- $No_Guessing, $Verbose, $Rebuild_Indices);
-
-parse_opts();
-
-my $Manpath = get_manpath();
-print "MANPATH is $Manpath\n" if $Debug;
-
-check_can_whence();
-
-# (re)set to what we've computed so that when we launch man below,
-# it'll use the specified or inferred manpath.
-
-unless ($Ignore_Manpath) {
- print "Limiting external manpath\n" if $Debug;
- $ENV{MANPATH} = $Manpath;
-}
-
-for my $tree (split /:/, $Manpath) {
- print "tree chdir('$tree')\n" if $Debug > 1;
- chdir($tree) || die "cannot cd to main tree $tree: $!";
-
- for my $mandir ( grep { -d } <{man,cat}*> ) {
- print "subdir chdir('$tree/$mandir')\n" if $Debug > 1;
- chdir("$tree/$mandir") || die "cannot cd to subdir $tree/$mandir: $!";
- my($ext, @pages);
- ($ext = $mandir) =~ s/^(?:cat|man)//;
- for (@pages = <*.*>) {
- s/\.gz$//;
- s/\.(?:0|${ext}\w*)$//;
- }
- my $option = adjust_ext($ext);
- for my $page (@pages) {
- print "man $option $page\n" if $Debug > 1;
- open(MAN, "man $option $page 2>&1 | col -b |")
- or die "cannot fork man lookup: $!";
- local $/ = '';
- while (<MAN>) {
- next unless /^SEE ALSO/ ||
- $_ eq "S\bSE\bEE\bE A\bAL\bLS\bSO\bO\n";
- s/.\010//g;
- s/-\n\s*//g;
- my @refs = /\S+\(\S+\)/g;
- print "$page.$ext SEE ALSOs @refs\n" if $Debug > 2;
- for my $ref (@refs) {
- my $place = whereis($ref);
- if ($place =~ /\*\*\*/ || $Debug || $Verbose) {
- print "$page.$ext: $ref -> $place\n";
- }
- }
- last;
- }
- 1 while <MAN>; # drain to suppress broken pipe
- close(MAN) || warn "close on man $option $page failed";
- }
- }
-
-}
-
-sub usage {
- print STDERR "@_\n" if @_;
- die "Usage: $0 [-hdrivg] [-f cf-file] [-s cf-style] [mandir ...]\n";
-}
-
-sub run_help {
- my $pager;
- unless ($pager = $ENV{PAGER}) {
- require Config;
- # lint happiness. blech.
- $pager = $Config::Config{'pager'} || $Config::Config{'pager'};
- }
-
- $pager = "/bin/cat" unless has_cmd($pager);
-
- if (has_cmd("pod2man") && has_cmd("nroff") ) {
- { exec("pod2man $0 | nroff -man | $pager") } # lint happiness
- warn "exec of pod2man | nroff | $pager failed: $!";
- }
-
- if (has_cmd("pod2text")) {
- { exec("pod2text $0 | $pager") } # lint happiness
- warn "exec of pod2text | $pager failed: $!";
- }
-
- # sucks to be you!
-
- if (eval q{ require Pod::Text; 1; }) {
- open (STDOUT, "| $pager") || die "no pager $pager: $!";
- # this forces a wait on child if needed
- sub END { close(STDOUT) || die "cannot close STDOUT: $!" }
- Pod::Text::pod2text($0);
- exit 0;
- }
-
- # it REALLY REALLY REALLY sucks to be you!
- open 0 or die "$0: cannot open myself: $!";
- $/ = '';
- while (<0>) {
- last if /__(END|DATA)__/; # must be careful here
- }
- print <0>;
- exit;
-}
-
-
-sub has_cmd {
- my $cmd = shift;
- for (split(/:/, $ENV{PATH})) {
- my $path = "$_/$cmd";
- return $path if -f $path && -x _;
- }
- return;
-}
-
-sub parse_opts {
-ARG: while (@ARGV && $ARGV[0] =~ s/^-(?=.)//) {
-OPT: for (shift @ARGV) { # getopts is for wimps
- m/^$/ && do { next ARG; };
- m/^-$/ && do { last ARG; };
- s/^d// && do { $Debug++; redo OPT; };
- s/^i// && do { $Ignore_Manpath++; redo OPT; };
- s/^g// && do { $No_Guessing++; redo OPT; };
- s/^v// && do { $Verbose++; redo OPT; };
- s/^r// && do { $Rebuild_Indices++; redo OPT; };
- s/^f(.*)// && do { $CF_File = $1 || shift @ARGV; next ARG; };
- s/^s(.*)// && do { $CF_Style = $1 || shift @ARGV; next ARG; };
-
- m/^-h(elp)?$/ # stupid fsf broken crappy excuse for real manpages
- && do { run_help(); exit; };
-
- usage("unknown option: -$_");
- }
- }
-
- if ($CF_Style && !$CF_File) {
- for (glob("/etc/man*.c*f*")) {
- $CF_File = $_;
- last;
- }
- print "Guessed CF file of $CF_File\n" if $Debug;
- }
-
-}
-
-{ # extra scope for function private "static" variable
- my $linux_griped = 0;
- sub get_osname {
- my $name = $^O;
-
- if ($name eq 'linux' && ! $linux_griped++
- && (! $CF_Style || $CF_Style eq 'linux') )
- {
- # there are many different linux operating systems, and
- # it torques me off that they pretend there aren't.
- # i have no idea whether this works anywhere but redhat.
- warn "$0: Your osname claims linux; assuming redhat instead\n";
- }
-
- return $name;
- }
-}
-
-
-# everything beneath here should be in a module
-
-{ # extra scope for function private "static" variable
- my %Whereis;
- sub whereis {
- my $manref = shift;
- my ($page, $ext) = $manref =~ /(\S+)\((\S+)\)/;
- $ext = lc($ext);
- return $Whereis{$page, $ext} if $Whereis{$page, $ext};
- if ($Rebuild_Indices) {
- $Whereis{$page, $ext} = "*** No manual entry for $page ";
- if ($Whereis{$page}) {
- $Whereis{$page, $ext} .= "(really in $Whereis{$page})";
- }
- return $Whereis{$page, $ext};
- }
-
- my $swext = adjust_ext($ext);
-
- print "man -w $swext '$page'\n" if $Debug > 1;
-
- ($Whereis{$page, $ext} = `man -w $swext '$page' 2>&1 `) =~ s/\n/ /g;
- if ($?) {
- $Whereis{$page, $ext} =~ s/^/*** /;
- print "man -w -a '$page'\n" if $Debug > 1;
- my $try_again = `man -w -a '$page' 2>&1 `;
- if (! $?) {
- $try_again =~ s/\n/ /g;
-#/: (\S+)\(([^\s)]+)\).*cat\Q$ext\E.*\b\Q$page\E\.0/
- if ($try_again =~ /\bcat\Q$ext\E.*\b\Q$page\E\.0/) {
- $Whereis{$page, $ext} = $try_again;
- print "BSD REALLY: $page.$ext really in $try_again\n"
- if $Debug > 1;
- } else {
- $Whereis{$page, $ext} =~ s/$/ (really $try_again)/;
- }
- }
- }
- return $Whereis{$page, $ext};
- }
-
- sub check_can_whence {
- if (! $Rebuild_Indices) {
- # stupid solaris sh bug. how stupid can these
- # people be?
- system "(man -w man) 2>&1 > /dev/null";
- return unless $?;
- warn "$0: Your system is stupid: it cannot whence.\n";
- }
-
- $Rebuild_Indices++;
-
- print "$0: Hold on, this may take a while....\n";
-
- if (get_osname() eq 'solaris') {
- for my $dir (split /:/, $Manpath) {
- local *WINDEX;
- next unless open(WINDEX, "< $dir/windex");
- print "reading $dir/windex\n" if $Debug;
- local $_;
- while (<WINDEX>) {
- next unless /^(\S+)\s+(\S+)\s+\((\S+)\)/;
- my ($name, $page, $ext) = ($1, $2, $3);
- $Whereis{$name} .= "$dir/man$ext/$page.$ext ";
- $Whereis{$page,$ext} = "$dir/man$ext/$page.$ext";
- }
- }
- }
- else {
- for my $tree (split /:/, $Manpath) {
- print "reading $tree directory entries\n" if $Debug;
- for my $dir ( glob("$tree/man*") ) {
- next unless -d $dir;
- local *DH;
- opendir(DH, $dir) || die "cannot opendir $dir: $!";
- my @pages = grep { /[^.].*\./ } readdir(DH);
- closedir DH;
- my($section) = $dir =~ /man([^\/]+)$/;
- for my $page ( @pages ) {
- my $name;
- $page =~ s/\.gz$//;
- my $ext;
- unless (index($page, ".$section") >= 0) {
- warn "wrong section for $dir/$page\n";
- }
- ($name = $page) =~ s/\.([^.]*)$//;
- $ext = $1;
- die "no ext in $page" unless $ext;
- die "no name" unless $name;
- $Whereis{$name,$ext} = "$dir/$name.$ext";
- $Whereis{$name} .= "$dir/$page ";
- }
- }
- }
- }
- }
-
-}
-
-# add a -s or a -S or no flag for calling up
-# a page from a particular section
-sub adjust_ext {
- my $ext = shift;
- my $osname = $^O;
-
- if ($osname eq 'solaris') {
- # stupid solaris REQUIRES this -s crap;
- # they don't understand -S either
- $ext = "-s $ext";
- }
- elsif ($osname eq 'freebsd') {
- # stupid freebsd FORBIDS the -s
- # they also require a -S if it's a two-char word,
- # like "man 3x curs_util". it doesn't harm in any event,
- # so do it anyway
- $ext = "-S $ext";
- }
- elsif ($osname eq 'linux') {
- # stupid redhat FORBIDS the -s;
- # they tolerate -S, however. but unlike bsd, they
- # don't seem to require it for 3x sections. interesting.
- $ext = "-S $ext";
- }
- elsif ($osname eq 'openbsd') {
- # openbsd neither requires nor forbids -s nor -S,
- # which both mean the same thing.
- #
- # then again, they still need it for two-char words,
- # so do it anyway. Seems dumb. Config issue?
- $ext = "-S $ext";
- }
-
- return $ext;
-}
-
-sub get_manpath {
- my $pathstr;
-
- if (@ARGV) {
- return join ":", @ARGV;
- }
-
- if ($ENV{MANPATH} && ! $Ignore_Manpath) {
- return $ENV{MANPATH};
- }
-
- my $osname = get_osname();
-
- if ($CF_File) {
- $pathstr = readcf($CF_File, $CF_Style || $osname);
- return $pathstr if $pathstr;
- }
-
- if ($osname eq 'freebsd') {
- # freebsd has a manpath program
- $pathstr = run_manpath() || readcf('/etc/manpath.config');
- }
- elsif ($osname eq 'openbsd') {
- # but openbsd does not
- $pathstr = readcf('/etc/man.conf');
- }
- elsif ($osname eq 'linux') {
- # this sucks - osname should say which linux we have. idiots.
- $pathstr = readcf('/etc/man.config');
- }
- else {
- if ($CF_File && $CF_Style) {
- $pathstr = readcf($CF_File, $CF_Style);
- } else {
- $pathstr = run_manpath() || compute_manpath();
- }
- }
-
- unless ($pathstr) {
- for (qw( /usr/man /usr/share/man )) {
- next unless -d;
- $pathstr = $_;
- warn "no manpath set, assuming $_.\n";
- last;
- }
- die "cannot find any manpages" unless $pathstr;
- }
-
- return $pathstr;
-
-}
-
-# traverse binpath and guess
-sub compute_manpath {
- return if $No_Guessing;
- my (@manpath, %seen);
- for (split(/:/, $ENV{PATH})) {
- next if /^\.?$/; # don't care about dot dirs
- if (s![^/+]*$!man! && -d && !$seen{$_}++) {
- my($dev,$ino) = stat(_);
- push(@manpath,$_) unless $seen{$dev,$ino}++;
- }
- }
- print "Guessing manpath of: @manpath\n" if $Debug;
- return join(":", @manpath);
-}
-
-# try an external manpath program
-sub run_manpath {
- # the silly subshell is to dodge a solaris bug
- my $path = `(manpath) 2>/dev/null`;
- return if $?;
- chomp $path;
- return $path;
-}
-
-# try reading config files in various formats
-sub readcf {
- die "readcf(): expected 1 or 2 args" if @_ < 1 || @_ > 2;
-
- my($cfpath, $ostype) = @_;
-
- my $pathfunc;
-
- my @styles = qw/freebsd openbsd redhat/;
-
- if (@_ == 2) {
- $pathfunc = {
- 'freebsd' => \&cf_freebsd,
- 'openbsd' => \&cf_openbsd,
- 'redhat' => \&cf_redhat,
- 'linux' => \&cf_redhat,
- }->{$ostype} || die "unknown CF style: $ostype (want @styles)";
- }
- else {
- $pathfunc = {
- '/etc/manpath.config' => \&cf_freebsd,
- '/etc/man.conf' => \&cf_openbsd,
- '/etc/man.config' => \&cf_redhat,
- }->{$cfpath} || die "no CF reader for $cfpath";
- }
-
- local(*CF, $_);
-
- print "reading CF file $cfpath\n" if $Debug;
-
- open(CF, "< $cfpath") || die "cannot open $cfpath: $!";
-
- my(@dir_list, %seen_dir);
-
- # we're run the guesser first to catch things in the path.
- unless ($No_Guessing) {
- for (@dir_list = split /:/, compute_manpath()) {
- my($dev,$ino) = stat $_;
- $seen_dir{$dev,$ino} = 1;
- }
- }
-
- while (<CF>) {
- s/^#.*//;
- next unless /\S/;
- for (my @newpaths = &$pathfunc) {
- # XXX: near-dup code
- if (-d && !$seen_dir{$_}++) {
- my($dev,$ino) = stat(_);
- push(@dir_list,$_) unless $seen_dir{$dev,$ino}++;
- }
- }
- }
-
- close(CF) || die "cannot close config $cfpath: $!";
-
- return join ":", @dir_list;
-}
-
-sub cf_freebsd {
- return $1 if /^\s*MANDATORY_MANPATH\s+(\S+)/;
- return $1 if /^\s*MANPATH_MAP\s+\S+\s+(\S+)/;
- return;
-
-}
-
-sub cf_openbsd {
- return glob($1) if /^\s*_default\s+(.*\S)\s*$/;
- return glob($1) if /^\s*[^_\s]\S+\s+(.*\S)\s*$/;
- return;
-}
-
-sub cf_redhat {
- return $1 if /^\s*MANPATH\s+(\S+)/;
- return $1 if /^\s*MANPATH_MAP\s+\S+\s+(\S+)/;
- return;
-}
-
-__END__
-
-=head1 NAME
-
-cfman - make sure manpages have accurate SEE ALSOs
-
-=head1 SYNOPSIS
-
-B<cfman> [B<-hdrivg>]
-[B<-f> I<cf-file>] [-B<s> I<cf-style>] [I<mantree> ...]
-
-=head1 DESCRIPTION
-
-The B<cfman> program attempts to search your system manpages for SEE
-ALSO entries that are incorrect. To determine which manpages to look at,
-the system's manpage directories are searched. However, to look at the
-SEE ALSO list, the man(1) program is called. That's because some systems
-have funny ideas about whether pages are installed already formatted
-or not.
-
-For each SEE ALSO reference, we attempt to call B<man -w> on a
-particular page in the references section or subsection it
-to figure out the real path. If this fails, we call B<man -w -a>
-irrespective of section. If it's found somewhere it's not expected,
-we still report the problem, as we do if it's not found at all.
-
-On systems too primitive to support the useful B<man -w> syntax, we
-try to figure it out by hand by reading all the directories first.
-On Solaris, we'll look at the I<windex> files in each directory.
-You can force this behaviour by using the B<-r> option described below.
-
-=head1 OPTIONS
-
-Most options can be clustered.
-
-=over
-
-=item -d
-
-Run with debugging. This option is cumulative. Currently
-debugging level one through three are provided.
-
-=item -f I<cf-file>
-
-Specify a man(1) config file to read in if need be.
-
-=item -g
-
-Disable guessing of manpage using current PATH variable.
-
-=item -h
-
-Give a help message. Actually, try valiantly to give this manpage,
-even if it's not installed. It's very hard to misplace this one. :-)
-
-=item -i
-
-Ignore the current manpage. This has two effects. First, it means
-that the program will not consult the MANPATH variable for default
-paths. Secondly, it will not attempt to reset the MANPATH variable
-before calling man(1) to do its work. See examples below.
-
-=item -r
-
-Rebuild indices of what is installed where manually. This is a simplistic
-check only. We consult each I<man*> subdirectory beneath each element
-in the list of supplied man directories, and within that, we look for
-each page inside. This is necessary on systems that don't support
-a B<-w> option to man(1), and will be inferred if needed. It may
-be faster than running B<man -w> that often.
-
-=item -s I<cf-style>
-
-Supply a parsing style for the config files. Only three are currently
-supported: B<openbsd>, B<freebsd>, and B<redhat>.
-
-=item -v
-
-Verbose mode. This just means that it will show where all the
-SEE ALSO references apppear to resolve to, not merely report
-the missing or misdirected ones.
-
-=back
-
-=head1 EXAMPLES
-
-Run the program using the current manpath if set, or the
-system one otherwise:
-
- $ cfman
-
-Run the program against the listed mantrees only. References
-to something outside those trees will fail:
-
- $ cfman /usr/man /usr/X11R6/man
-
-Run on one tree only, but do not restrict references to being
-in those trees only:
-
- $ cfman -i /usr/local/perl/man
-
-=head1 ENVIRONMENT
-
-=over
-
-=item MANPATH
-
-The user's current MANPATH is used unless the B<-i> option
-is supplied.
-
-=item PAGER
-
-This is used to feed the self-generating manpage into.
-
-=item PATH
-
-This is used if we need to guess a MANPATH.
-
-=back
-
-=head1 FILES
-
-The system-wide config file (such as I</etc/man.conf>, I</etc/man.config>,
-or I</etc/manpath.config>) is used if it's needed.
-
-Numerous B<man>-related directories and files will be grovelled through,
-both directly and indirectly.
-
-The B<pod2man>, B<pod2text>, and B<nroff> programs may also be called
-for the self-generating manpage in the help message, as may your
-B<more> program or preferred pager.
-
-=head1 SEE ALSO
-
-In no particular order: man(1), manpath(1), more(1), nroff(1),
-pod2man(1), pod2text(1), whatis(1), man.conf(5), man(7), and noman(8).
-
-=head1 NOTES
-
-The B<-w> option to the man(1) program was first introduced in the work
-presented at the 1990 Usenix LISA conference in Colorado Springs in the
-paper entitled title I<The Answer to All Man's Problems>. This option,
-along with several others invented there, have since been adopted by all
-modern Unixes. Other work presented in that paper included an earlier
-version of this program. Sadly, vendors have been negligently remiss
-in their duties since that time.
-
-The paper is available upon request from the author. It uses the ms(7)
-macro set. You have been warned. :-)
-
-=head1 DIAGNOSTICS
-
-Classes of diagnostics are as follows.
-
-=over
-
-=item N
-
-A normal message. This is the program's expected output.
-
-=item D1
-
-A level-one debugging message.
-
-=item D2
-
-A level-two debugging message.
-
-=item W
-
-A warning.
-
-=item WI
-
-An internal warning, with extra diagnostics appended
-telling the file name and line number of the problem.
-
-=item F
-
-A fatal error.
-
-=item FI
-
-An internal fatal error, with extra diagnostics appended
-telling the file name and line number of the problem.
-
-=back
-
-Any instances of C<%s> below are replaced with a string in the actual
-error message. Any instances of C<%M> below are replaced with the
-current errno string.
-
-=over
-
-=item %s: %s -> %s
-
-(N) Where a reference resolves to. The first field is the page being
-consulted. The second field is what it contains. The third field
-is where the reference solves to. If there is no resolution, then a
-message beginning with three stars will be emitted. In some cases,
-a parenthesized suggestion is made.
-
-=item cannot fork man lookup: %m
-
-(FI) Tried to run the man(1) program to parse output, but
-couldn't. Usually means out of processes; or sometimes,
-command not found.
-
-=item cannot cd to main tree %s: %m
-
-(FI) One of the elements in the MANPATH was inaccessible.
-
-=item cannot cd to subdir: %m
-
-(FI) One of the subdirectories in one of the MANPATH elements was
-inaccessible.
-
-=item cannot close config %s: %m
-
-(FI) The config file wouldn't close properly.
-
-=item cannot close STDOUT: %m
-
-(FI) The pager used for the help manpage wouldn't close properly.
-
-=item cannot find any manpages
-
-(FI) Unable to figure out a manpage any other way,
-we tried looking in I</usr/man> and I</usr/share/man>,
-but those weren't there.
-
-=item cannot open myself: %m
-
-(FI) In the worst case, we open our own program file to
-produce a help page. But that open failed. Strange.
-
-=item cannot opendir %s: %m
-
-(FI) One of the subdirectories in a man tree
-was inaccessible.
-
-=item close on man %s failed
-
-(WI) We were unable to correctly close the pipe
-from man(1) we were running to read its SEE ALSO entries.
-
-=item exec of pod2man | nroff | %s failed: %m
-
-(WI) We couldn't pod2manify ourselves. Usually this is just
-a broken pipe because you exited early.
-
-=item exec of pod2text | %s failed: %m
-
-(WI) We couldn't pod2textify ourselves. Usually this is just
-a broken pipe because you exited early.
-
-=item Guessed CF file of %s
-
-(D1) You specified a parsing style, but no file.
-So we guessed one. We look in I</etc/man*.c*f*> for a match.
-
-=item Guessing manpath of: %s
-
-(D1) We ran down your binpath and suspected that these
-were valid man directories for each piece.
-
-=item Hold on, this may take a while....
-
-(N) We have to exhaustively read each directory looking for
-manpages. This is not fast. But in the end, it might be
-faster than calling B<man -w> a zillion times. You can enable
-this with the C<-r> flag.
-
-=item Limiting external manpath
-
-(D1) The MANPATH envariable is set before
-calling man(1) again.
-
-=item man %s %s
-
-(D2) We're calling man(1) to parse the SEE ALSO references.
-
-=item man -w %s '%s'
-
-(D2) We're trying to look up the path where a manpath is located.
-
-=item man -w -a %s'%s'
-
-(D2) We're trying harder look up the path where a manpath is located
-because the first try failed.
-
-=item MANPATH is %s
-
-(D1) This is the colon-separated list of mantree directories
-we decided to process.
-
-=item no CF reader for %s
-
-(X) The path has no known syntax.
-
-=item no ext in %s
-
-(X) We couldn't figure out the subsection by looking for an
-extension.
-
-=item no manpath set, assuming %s.
-
-(W) We're trying to use a hard-coded path, because
-nothing else worked.
-
-=item no name
-
-(X) Couldn't figure out the name of the page, given the
-filename.
-
-=item no pager %s: %m
-
-(FI) You don't seem to have a valid pager.
-
-=item readcf(): expected 1 or 2 args
-
-(X) Internal error. A function was called wrong.
-
-=item reading CF file %s
-
-(D1) We're parsing this file for man config entreies.
-
-=item reading %s directory entries
-
-We're reading all the manpages in this directory.
-Probably because you used B<-r> or because you have
-a primitive and annoying man(1) program.
-
-=item reading %s/windex
-
-=item subdir chdir('%s')
-
-(D2) This message is printed each time we change
-to a subdirectory within a mantree.
-N This is the program's expected output. The first
-
-=item tree chdir('%s')
-
-(D2) This message is printed each time we change
-directory to a new mantree.
-
-=item unknown CF style: %s (want %s)
-
-(FI) You asked for a config-file parsing style that
-we don't support.
-
-=item unknown option: -%s
-
-(FI) You specified an invalid option. This will trigger
-a usage message.
-
-=item Usage: %s [-hdrivg] [-f cf-file] [-s cf-style] [mandir ...]
-
-(N) The usage message.
-
-=item wrong section for %s/%s
-
-(W) While searching your directories, we found a strange
-page, such as I<vi.man> installed in the I<man1> directory,
-where we were expecting I<vi.1> instead.
-
-=item Your osname claims linux; assuming redhat instead
-
-(W) It is unclear to this author whether all the different
-Linux operating systems employ the same man(1) program.
-It seems imprudent to assume that the version of the
-operating system (read: the kernel) has anything to do with
-the installed utility set. uname(1) is not helpful here.
-You may suppress this message by explicitly using B<-s redhat>.
-
-=item Your system is stupid: it cannot whence.
-
-(W) Your system is too primitive to support B<man -w>.
-This makes us do things the hard way.
-
-=head1 BUGS
-
-Various, no doubt.
-
-=head1 RESTRICTIONS
-
-This program was tested only under a couple different of BSD operating
-systems and a couple of different Linux operating systems. Remedial
-support for Solaris is included, but has not been stress tested.
-Bugs in their I<windex> files messages up this program.
-
-=head1 AUTHOR
-
-Tom Christiansen <tchrist@perl.com>
-
-=head1 HISTORY
-
-Version 1: Sometimes in early 1989.
-
-Version 2: December 15th, 1989.
-
-Version 3: October 20th, 1999. Just made it in under the decade mark.
-
diff --git a/regress/share/man/no3man b/regress/share/man/no3man
deleted file mode 100644
index 2e53f53f4ad..00000000000
--- a/regress/share/man/no3man
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/perl -w
-# $OpenBSD: no3man,v 1.2 2001/01/29 02:05:49 niklas Exp $
-
-#
-# no3man - identify which library calls aren't mannable
-# tchrist@perl.com
-
-use strict;
-
-#my $MAN3DIR = '/usr/man/man3';
-my $MAN3DIR = '/usr/share/man/cat3';
-
-chdir($MAN3DIR) || die "can't chdir to $MAN3DIR: $!";
-
-opendir(DIR, ".") || die "can't opendir $MAN3DIR: $!";
-
-my %warned;
-
-$| = 1;
-
-while (my $manpage = readdir(DIR)) {
- next if $manpage =~ /^\./;
- #$manpage =~ s/\.3.*//;
- $manpage =~ s/\.0.*//;
- # print "$manpage\n";
- my $kid = open(MANPIPE, "man 3 $manpage 2>&1 | col -b |")
- || die "can't run man 3 $manpage";
- while(<MANPIPE>) {
- if (my $recno = /^(SYNOPSIS|SYNTAX)/ ... /^[A-Z]/) {
- last if $recno =~ /e/i;
- while (/(\w+)\(/g) {
- my $func = $1;
- my $path = `man -w 3 $func 2>&1`;
- print "$manpage(3): $path" if $?;
- }
- }
- }
- #die "$kid is me!" unless $kid;
- #kill 'TERM', $kid;
- close MANPIPE;
-}
-
diff --git a/regress/share/man/scatman b/regress/share/man/scatman
deleted file mode 100644
index 0ef5472127a..00000000000
--- a/regress/share/man/scatman
+++ /dev/null
@@ -1,263 +0,0 @@
-#!/usr/bin/perl -w
-# $OpenBSD: scatman,v 1.2 2001/01/29 02:05:50 niklas Exp $
-
-#
-# scatman - find turds in mantrees
-# tchrist@perl.com
-
-use strict;
-
-my ($Manpath, $Debug);
-
-parse_opts();
-
-MANTREE:
-for my $tree (split /:/, $Manpath) {
- debug("chdir($tree)");
- chdir($tree) || die "cannot cd to main tree $tree: $!";
-
- # XXX: doesn't handles openbsd recursive mandirs yet
-
-MANDIR:
- #for my $mandir ( grep { -d } <{man,cat}*> ) {
- my @mandirs = grep { -d } <{cat,man}*>;
- while (@mandirs) {
- my $mandir = shift @mandirs;
- my $was_catted = $mandir =~ /^cat/;
- debug("chdir($tree/$mandir)");
- chdir("$tree/$mandir") || die "cannot cd to subdir $tree/$mandir: $!";
-
- my($dirext) = ($mandir =~ /^(?:cat|man)(.*)/);
- my($ext, @pages);
-
- local *MANDIR;
- unless (opendir(MANDIR, ".")) {
- die "$0: can't opendir . while in $tree/$mandir: $!\n";
- }
-
-MANPAGE:
- while (my $file = readdir(MANDIR)) {
- next MANPAGE if $file =~ /^\.\.?$/;
- my $path = "$tree/$mandir/$file";
- if (-l $file) {
- my $target = readlink($file);
- debug("readlink on $path -> $target");
- unless (-f $target && -r $target) {
- print "$path: bad symlink ($target)\n";
- }
- next MANPAGE;
- }
- if (-d $file) {
- push @mandirs, "$mandir/$file";
- next;
- }
- unless (-f $file) {
- print "$path: not a plain file\n";
- next MANPAGE;
- }
-
- unless ($file =~ /\./) {
- print "$path: doesn't smell like a manpage to me\n";
- next MANPAGE;
- }
-
- unless ($file =~ /\.${dirext}\S*(\.(gz|Z))?$/
- # get a real man dang you!
- || ($was_catted && $file =~ /\.0/)
- )
- {
- print "$path: strange extension for this directory\n";
- }
-
- my $openspec = ($file =~ /\.(gz|Z)$/)
- ? "gzip -dc < $file |"
- : "< $file";
-
- local *FH;
- debug("open $openspec");
- unless (open(FH, $openspec)) {
- warn "can't open $openspec: $!\n";
- next;
- }
-
- my($saw_TH, $saw_DOT, $over_struck);
- local $_;
-MANLINE:
- while (<FH>) {
- $saw_DOT += /^['.]/;
- $saw_TH += m{
- ^ [.'] # ' unlikely but possible
- \s* # optional white space
- (?:
- TH # -man version
- | Dt # -mandoc version
- )
- \b
- }x;
- if (/^['.]\s*so\s+(\S+)/) {
- my $link = $1;
- my $sofile = $link =~ m#^/#
- ? $link
- : "$tree/$link"; # not $mandir!
- debug("$path: so's to $sofile");
- unless (-f $sofile && -r $sofile) {
- print "$path: bad solink: $link\n";
- }
- close FH;
- next MANPAGE;
- }
- if (!defined $over_struck) {
- $over_struck++ if /(.)[\b]\1/;
- }
- close FH,last if $saw_DOT && $saw_TH;
- }
- close FH;
- if ($saw_DOT) {
- unless ($saw_TH) {
- print "$path: missing title macro\n";
- }
- }
- else {
- if ($over_struck) {
- my $wish = "$tree/cat$dirext/$file";
- print "$path: this catpage should be in $wish"
- unless $path eq $wish;
- } else {
- print "$path: doesn't look like nroff, maybe ",
- `file $path 2>&1` =~ /: (.*)/, "\n";
- }
- }
-
- }
- }
-}
-
-sub debug {
- print "[ @_ ]\n" if $Debug;
-}
-
-sub usage {
- print STDERR "@_\n" if @_;
- die "Usage: $0 [ -h ] [ -d ] [ [ -M ] [ manpath ] ]\n";
-}
-
-sub run_help {
- my $pager;
- unless ($pager = $ENV{PAGER}) {
- require Config;
- # lint happiness. blech.
- $pager = $Config::Config{'pager'} || $Config::Config{'pager'};
- }
-
- $pager = "/bin/cat" unless has_cmd($pager);
-
- if (has_cmd("pod2man") && has_cmd("nroff") ) {
- { exec("pod2man $0 | nroff -man | $pager") } # lint happiness
- warn "exec of pod2man | nroff | $pager failed: $!";
- }
-
- if (has_cmd("pod2text")) {
- { exec("pod2text $0 | $pager") } # lint happiness
- warn "exec of pod2text | $pager failed: $!";
- }
-
- # sucks to be you!
-
- if (eval q{ require Pod::Text; 1; }) {
- open (STDOUT, "| $pager") || die "no pager $pager: $!";
- # this forces a wait on child if needed
- sub END { close(STDOUT) || die "cannot close STDOUT: $!" }
- Pod::Text::pod2text($0);
- exit 0;
- }
-
- # it REALLY REALLY REALLY sucks to be you!
- open 0 or die "$0: cannot open myself: $!";
- $/ = '';
- while (<0>) {
- last if /__(END|DATA)__/; # must be careful here
- }
- print <0>;
- exit;
-}
-
-
-sub has_cmd {
- my $cmd = shift;
- for (split(/:/, $ENV{PATH})) {
- my $path = "$_/$cmd";
- return $path if -f $path && -x _;
- }
- return;
-}
-
-sub parse_opts {
-ARG: while (@ARGV && $ARGV[0] =~ s/^-(?=.)//) {
-OPT: for (shift @ARGV) { # getopts is for wimps
- m/^$/ && do { next ARG; };
- m/^-$/ && do { last ARG; };
- s/^d// && do { $Debug++; redo OPT; };
- s/^M(.*)// && do { $Manpath = $1 || shift @ARGV; next ARG; };
-
- m/^(h|-help)?$/ # stupid fsf broken crappy excuse for real manpages
- && do { run_help(); exit; };
-
- usage("unknown option: -$_");
- }
- }
-
- if (@ARGV) {
- usage("Manpath set, but arguments remaining") if $Manpath;
- usage("Too many arguments") if @ARGV > 1;
- $Manpath = $ARGV[0];
- }
- else {
- $Manpath = '/usr/share/man';
- }
-
-}
-
-__END__
-
-=head1 NAME
-
-scatman - find turds in mantrees
-
-=head1 SYNOPSIS
-
-B<scatman> S<[ B<-h> ]> S<[ B<-d> ]> S<[ [ B<-M> ] [ I<manpath> ] ]>
-
-=head1 DESCRIPTION
-
-The B<scatman> program locates things in man directories that
-shouldn't be there. It looks for stray files, catpage installed
-where manpage belong, non-troff files, troff files without proper
-title macros, wrong symbolic links, wrong C<.so> links, manpages
-installed with odd extensions, and unreadable files.
-
-The B<-d> flag adds debugging.
-
-The B<-M> I<manpath> flag is there for compatibility with
-other manly programs.
-
-The B<-h> flag prints this manpage and exit. You cannot lose
-this manpage. No more whingeing!
-
-=head1 SEE ALSO
-
-man(1), man(7), mandoc(7), cfman(8), noman(8)
-
-=head1 RESTRICTIONS
-
-This program has only been tested on the Redhat operating system.
-
-=head1 AUTHOR
-
-Tom Christiansen <tchrist@perl.com>
-
-=head1 HISTORY
-
-
-Version 1: 24 October 1999
-
-