Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/share/man/man8 This actually wasn't (completely) replaced by...
details: https://anonhg.NetBSD.org/src/rev/ade6f8cbf089
branches: trunk
changeset: 753351:ade6f8cbf089
user: jakllsch <jakllsch%NetBSD.org@localhost>
date: Tue Mar 23 19:19:03 2010 +0000
description:
This actually wasn't (completely) replaced by a shell script, restore.
diffstat:
share/man/man8/MAKEDEV2manpage.awk | 231 +++++++++++++++++++++++++++++++++++++
1 files changed, 231 insertions(+), 0 deletions(-)
diffs (235 lines):
diff -r b6b8ab68ca28 -r ade6f8cbf089 share/man/man8/MAKEDEV2manpage.awk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/man/man8/MAKEDEV2manpage.awk Tue Mar 23 19:19:03 2010 +0000
@@ -0,0 +1,231 @@
+# $NetBSD: MAKEDEV2manpage.awk,v 1.13 2010/03/23 19:19:03 jakllsch Exp $
+#
+# Copyright (c) 2002
+# Dieter Baron <dillo%NetBSD.org@localhost>. All rights reserved.
+# Copyright (c) 1999
+# Hubert Feyrer <hubertf%NetBSD.org@localhost>. All rights reserved.
+# [converted from Hubert's Perl version]
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Hubert Feyrer for
+# the NetBSD Project.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+#
+###########################################################################
+#
+# Convert src/etc/MAKEDEV.tmpl and
+# src/share/man/man8/MAKEDEV.8.template to
+# src/share/man/man8/MAKEDEV.8, replacing
+# - @@@SPECIAL@@@ with all targets in the first section (all, std, ...)
+# - @@@DEVICES@@@ with the remaining targets
+# - @@@ARCH@@@ with the architecture name
+#
+
+# XXX: uses non-standard AWK function toupper()
+
+BEGIN {
+ MAKEDEV = "../../../etc/MAKEDEV.tmpl";
+ print ".\\\" *** ------------------------------------------------------------------";
+ print ".\\\" *** This file was generated automatically";
+ print ".\\\" *** from src/etc/MAKEDEV.tmpl and";
+ print ".\\\" *** src/share/man/man8/MAKEDEV.8.template";
+ print ".\\\" ***";
+ print ".\\\" *** DO NOT EDIT - any changes will be lost!!!";
+ print ".\\\" *** ------------------------------------------------------------------";
+ print ".\\\"";
+}
+
+function read1line() {
+ if (r1kept)
+ r1l = r1last;
+ else
+ getline r1l < MAKEDEV;
+
+ while (r1l ~ /^#[ \t]*$/)
+ getline r1l < MAKEDEV;
+
+ if (r1l ~ /^#[ \t]/) {
+ if (r1l ~ /^# /) {
+ # Not a device/other target
+ r1kept = 0;
+ }
+ else {
+ # Continuation line (?)
+ getline r1ll < MAKEDEV;
+ while (r1ll ~ /^#\t[ \t]/) {
+ sub(/^#\t[ \t]/, " ", r1ll);
+ r1l = r1l r1ll;
+ getline r1ll < MAKEDEV;
+ }
+ r1last = r1ll;
+ r1kept = 1;
+ }
+ }
+ else
+ r1kept = 0;
+
+ return 1;
+}
+
+/^@@@SPECIAL@@@$/ {
+ print ".\\\" " $0;
+ print ".Bl -tag -width 01234567 -compact";
+
+ while (getline l < MAKEDEV > 0 && l !~ /^#.*Device.*Valid.*argument/)
+ ;
+ while (read1line() && r1l ~ /^#\t/) {
+ sub(/#[ \t]*/, "", r1l);
+ target=r1l;
+ sub(/[ \t].*/, "", target);
+ line=r1l;
+ sub(/[^ \t]*[ \t]/, "", line);
+ # replace "foo" with ``foo''
+ gsub(/\"[^\"]*\"/, "``&''", line)
+ gsub(/\"/, "", line)
+ gsub(/[ \t]+/, " ", line);
+ print ".It Ar " target;
+ print toupper(substr(line, 1, 1)) substr(line, 2);
+
+ }
+ r1last = r1l;
+ r1kept = 1;
+ print ".El";
+ next;
+}
+/^@@@DEVICES@@@$/ {
+ print ".\\\" " $0;
+ print ".Bl -tag -width 01";
+
+ read1line();
+ do {
+ sub(/^#[ \t]+/, "", r1l);
+ if (r1l ~ /[^ \t]:$/)
+ sub(/:$/, " :", r1l);
+ print ".It " r1l; # print section heading
+
+ print ". Bl -tag -width 0123456789 -compact";
+ while(read1line() && r1l ~ /^#\t/) {
+ gsub(/#[ \t]+/, "", r1l);
+ target=r1l;
+ sub(/[ \t].*/, "", target);
+ line=r1l;
+ sub(/[^ \t]*[ \t]+/, "", line);
+ sub(/\*/, "#", target);
+ # replace "foo" with ``foo''
+ gsub(/\"[^\"]*\"/, "``&''", line)
+ gsub(/\"/, "", line)
+ # fix collateral damage of previous
+ sub(/5 1\/4''/, "5 1/4\"", line)
+ sub(/3 1\/2``/, "3 1/2\"", line)
+ # gc whitespace
+ sub(/\(XXX[^)]*\)/, "", line);
+ sub(/[ \t]*$/, "", line);
+
+ # add manpage, if available
+ if (target == "fd#")
+ page = "fdc"
+ else if (target == "pms#")
+ page = "opms"
+ else if (target == "ed#")
+ page = "edc"
+ else if (target == "ttye#")
+ page = "ite"
+ else if (target == "ttyh#")
+ page = "sab"
+ else if (target == "ttyU#")
+ page = "ucom"
+ else if (target == "fd")
+ page = "-----" # force no .Xr
+ else if (target == "sysmon")
+ page = "envsys"
+ else if (target == "ttyZ#")
+ page = "zstty"
+ else if (target == "ttyCZ?")
+ page = "cz"
+ else if (target == "ttyCY?")
+ page = "cy"
+ else if (target == "ttyB?")
+ page = "scc"
+ else if (target == "random")
+ page = "rnd"
+ else if (target == "scsibus#")
+ page = "scsi"
+ else {
+ page=target;
+ sub(/[^a-zA-Z]+/, "", page);
+ }
+
+ str = "ls ../man4/" page ".4 ../man4/man4.*/" page ".4 2>/dev/null"
+ while(str | getline) {
+ if (system("test -f " $0) != 0)
+ continue
+
+ # get the manpage including opt. arch name
+ sub(/^\.\.\/man4\//, "")
+ sub(/^man4\./, "")
+ sub(/\.4$/, "")
+
+ sub(/[ \t]*$/, "", line);
+ if (line ~ /see/) {
+ # already a manpage there, e.g. scsictl(8)
+ line = line " ,";
+ }
+ else
+ line = line ", see";
+ # Add .Xr \&foo 4 - ampersand to work around
+ # manpages that are *roff commands at the same
+ # time
+ line = line "\n.Xr \\&" $0 " 4";
+ }
+ close(str)
+
+ gsub(/[ \t]+$/, "", line);
+ gsub(/[ \t]+/, " ", line);
+
+ print ". It Ar " target;
+ line2=toupper(substr(line, 1, 1)) substr(line, 2);
+ sub(/Wscons/, "wscons", line2);
+ sub(/Pccons/, "pccons", line2);
+ print line2;
+ }
+ print MANPAGE ". El";
+ } while (r1l ~ /^# /);
+
+ print ".El";
+ next;
+}
+/@@@ARCH@@@/ {
+ gsub(/@@@ARCH@@@/, ARCH);
+}
+# date is substituted in the shell script
+#/@@@DATE@@@/ {
+# # date
+#}
+/\$NetBSD/ {
+ sub(/\$NetBSD.*\$/, "$""NetBSD$");
+}
+{ print }
Home |
Main Index |
Thread Index |
Old Index