summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authorwosch <wosch@FreeBSD.org>1996-05-12 21:02:04 +0000
committerwosch <wosch@FreeBSD.org>1996-05-12 21:02:04 +0000
commit1474db4aa46ad6f5df45b58dfd95c8e5a83695b1 (patch)
tree9cff49ef17301e095986d7862ba84279961e0b20 /gnu
parent716641bdae47d54927443ba5501780528d499c88 (diff)
downloadFreeBSD-src-1474db4aa46ad6f5df45b58dfd95c8e5a83695b1.zip
FreeBSD-src-1474db4aa46ad6f5df45b58dfd95c8e5a83695b1.tar.gz
Bugfix: nested *?+ in regexp at /usr/bin/makewhatis line 286
Submitted by: invalid opcode <coredump@nervosa.com> makewhatis.local - start makewhatis(1) only for file systems physically mounted on the system Running makewhatis from /etc/weekly for rw nfs-mounted /usr may kill your NFS server -- all clients start makewhatis at the same time! So use this wrapper instead calling makewhatis directly. Pointed out by: Bruce
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/man/makewhatis/Makefile8
-rw-r--r--gnu/usr.bin/man/makewhatis/makewhatis.local.sh35
-rw-r--r--gnu/usr.bin/man/makewhatis/makewhatis.perl10
3 files changed, 49 insertions, 4 deletions
diff --git a/gnu/usr.bin/man/makewhatis/Makefile b/gnu/usr.bin/man/makewhatis/Makefile
index 644a3a5..13f147a 100644
--- a/gnu/usr.bin/man/makewhatis/Makefile
+++ b/gnu/usr.bin/man/makewhatis/Makefile
@@ -1,7 +1,15 @@
MAN1= makewhatis.1
+# MAN8= makewhatis.local.8
+
+libexecdir=/usr/libexec
+LINKS=${libexecdir}/makewhatis.local ${libexecdir}/catman.local
beforeinstall:
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
${.CURDIR}/makewhatis.perl ${DESTDIR}${BINDIR}/makewhatis
+ ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
+ ${.CURDIR}/makewhatis.local.sh \
+ ${DESTDIR}${libexecdir}/makewhatis.local
+
.include <bsd.prog.mk>
diff --git a/gnu/usr.bin/man/makewhatis/makewhatis.local.sh b/gnu/usr.bin/man/makewhatis/makewhatis.local.sh
new file mode 100644
index 0000000..5260e89
--- /dev/null
+++ b/gnu/usr.bin/man/makewhatis/makewhatis.local.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# (c) Wolfram Schneider, Berlin. April 1996. Public Domain.
+#
+# makewhatis.local - start makewhatis(1) only for file systems
+# physically mounted on the system
+#
+# Running makewhatis from /etc/weekly for rw nfs-mounted /usr may kill
+# your NFS server -- all clients start makewhatis at the same time!
+# So use this wrapper instead calling makewhatis directly.
+#
+# PS: this wrapper works also for catman(1)
+#
+# $Id: makewhatis.local.sh,v 1.2 1996/04/27 12:17:01 wosch Exp $
+
+PATH=/bin:/usr/bin:$PATH; export PATH
+opt= dirs= localdirs=
+
+for arg
+do
+ case "$arg" in
+ -*) opt="$opt $arg";;
+ *) dirs="$dirs $arg";;
+ esac
+done
+
+dirs=`echo $dirs | sed 's/:/ /g'`
+case X"$dirs" in X) echo "usage: $0 [options] directories ..."; exit 1;; esac
+
+localdirs=`find -H $dirs -fstype local -type d -prune -print`
+
+case X"$localdirs" in
+ X) echo "$0: no local-mounted manual directories found: $dirs"
+ exit 1;;
+ *) exec `basename $0 .local` $opt $localdirs;;
+esac
diff --git a/gnu/usr.bin/man/makewhatis/makewhatis.perl b/gnu/usr.bin/man/makewhatis/makewhatis.perl
index 02f11a3..ca35816 100644
--- a/gnu/usr.bin/man/makewhatis/makewhatis.perl
+++ b/gnu/usr.bin/man/makewhatis/makewhatis.perl
@@ -35,7 +35,7 @@
#
# E-Mail: Wolfram Schneider <wosch@cs.tu-berlin.de>
#
-# $Id: makewhatis.perl,v 1.6 1995/04/01 11:43:09 joerg Exp $
+# $Id: makewhatis.perl,v 1.7 1995/09/10 13:05:52 joerg Exp $
#
sub usage {
@@ -280,12 +280,14 @@ sub manpagename {
return if $name eq $_;
}
- $name =~ s=\[=\\\[=g; # shit '['
+ local($f) = $file;
+ $f =~ s%/*[^/]+$%%;
+
foreach (split(/,\s+/, $man)) {
s/\(.+//;
- ($f = $file) =~ s/$name/$_/;
+
# a keyword exist as file
- return if -e "$f";
+ return if -e "$f/$_";
}
$man .= ", $name($extension)";
OpenPOWER on IntegriCloud