# Expand a manual page macro file
# by John Walker --- October 2002
# perl manm_expand.pl input_file.manm output_file.1
$utils = 'docutil/'; # Where do utility programs live ?
$perl = 'perl'; # What do we use to run them ?
if ($#ARGV != 1) {
print(STDERR "Usage: perl manm_expand.pl input_file.manm output_file.1\n");
exit(2);
}
$ifname = $ARGV[0];
$ofname = $ARGV[1];
open(FI, "<$ifname") || die("Cannot open input file $ifname");
open(OF, ">$ofname") || die("Cannot create output file $ofname");
$ln = 0;
while ($l = <FI>) {
$l =~ s/\s+$//;
$il = $l;
if ($l =~ s/^\\"\#include\s//i) {
#print(STDERR "Include $l\n");
if (($l =~ s/^\s*"([^"]+)"//) ||
($l =~ s/^\s*(\S+)\s//)) {
$incfile = $1;
} else {
print(STDERR "Malformed include file specification on line $ln of $ifname.\n");
exit(1);
}
if (($l =~ s/^\s*"([^"]+)"//) ||
($l =~ s/^\s*(\S+)\s//)) {
$secname = $1;
} else {
print(STDERR "Malformed section name specification on line $ln of $ifname.\n");
exit(1);
}
#print(STDERR " Include file: ($incfile) Section name: ($secname)\n");
open(IP, "$perl $utils/cwebextract.pl $incfile \"$secname\" | " .
"$perl $utils/cwebtex2man.pl - - |") || die("Cannot open pipe to include file $incfile");
print(OF "\\\" Included from section \"$secname\" of $incfile. DO NOT HAND EDIT!!!\n");
while ($u = <IP>) {
$u =~ s/\s+$//;
print(OF "$u\n");
}
print(OF "\\\" End inclusion from section \"$secname\" of $incfile.\n");
} else {
print(OF "$l\n");
}
$ln++;
}
close(OF);
exit(0);
syntax highlighted by Code2HTML, v. 0.9.1