diff -Nur linux-2.6.0-test3-bk1/scripts/makeman linux-2.6.0-test3-bk1-terseman-001/scripts/makeman
--- linux-2.6.0-test3-bk1/scripts/makeman 2003-08-12 14:35:41.000000000 +1000
+++ linux-2.6.0-test3-bk1-terseman-001/scripts/makeman 2003-08-13 10:24:10.000000000 +1000
@@ -12,7 +12,7 @@
## $3 -- the filename which contained the sgmldoc output
## (I need this so I know which manpages to convert)
-my($LISTING);
+my($LISTING, $GENERATED, $INPUT, $OUTPUT, $front, $mode, $filename);
if($ARGV[0] eq ""){
die "Usage: makeman [convert | install]
\n";
@@ -32,8 +32,121 @@
s/typedef //;
chomp;
- print "Processing $_\n";
- system("cd $ARGV[1]; docbook2man $_.sgml; gzip -f $_.9\n");
+ $filename = $_;
+ print "Processing $filename\n";
+
+ # Open the input file to extract the front matter, generate the man page,
+ # and open it, and the rearrange everything until it is happy
+ open INPUT, "< $ARGV[1]/$filename.sgml";
+ $front = "";
+ $mode = 0;
+ while(){
+ if(/.*ENDFRONTTAG.*/){
+ $mode = 0;
+ }
+
+ if($mode > 0){
+ s///;
+ s///;
+ s/<\/bookinfo>//;
+ s///;
+ s<\/docinfo>//;
+ s/^[ \t]*//;
+ }
+
+ if($mode == 2){
+ if(//){
+ }
+ elsif(/<\/para>/){
+ $front = "$front.\\\" \n";
+ }
+ elsif(/<\/legalnotice>/){
+ $mode = 1;
+ }
+ elsif(/^[ \t]*$/){
+ }
+ else{
+ $front = "$front.\\\" $_";
+ }
+ }
+
+ if($mode == 1){
+ if(/(.*)<\/title>/){
+ $front = "$front.\\\" This documentation was generated from the book titled \"$1\", which is part of the Linux kernel source.\n.\\\" \n";
+ }
+ elsif(//){
+ $front = "$front.\\\" This documentation comes with the following legal notice:\n.\\\" \n";
+ $mode = 2;
+ }
+
+ elsif(//){
+ $front = "$front.\\\" Documentation by: ";
+ }
+ elsif(/(.*)<\/firstname>/){
+ $front = "$front$1 ";
+ }
+ elsif(/(.*)<\/surname>/){
+ $front = "$front$1 ";
+ }
+ elsif(/(.*)<\/email>/){
+ $front = "$front($1)";
+ }
+ elsif(/\/author>/){
+ $front = "$front\n";
+ }
+
+ elsif(//){
+ $front = "$front.\\\" Documentation copyright: ";
+ }
+ elsif(/(.*)<\/holder>/){
+ $front = "$front$1 ";
+ }
+ elsif(/(.*)<\/year>/){
+ $front = "$front$1 ";
+ }
+ elsif(/\/copyright>/){
+ $front = "$front\n";
+ }
+
+ elsif(/^[ \t]*$/
+ || //
+ || /<\/affiliation>/
+ || //
+ || /<\/address>/
+ || //
+ || /<\/authorgroup>/
+ || /<\/legalnotice>/
+ || //
+ || /<\/date>/
+ || //
+ || /<\/edition>/){
+ }
+ else{
+ print "Unknown tag in manpage conversion: $_";
+ }
+ }
+
+ if(/.*BEGINFRONTTAG.*/){
+ $mode = 1;
+ }
+ }
+ close INPUT;
+
+ system("cd $ARGV[1]; docbook2man $filename.sgml; mv $filename.9 /tmp/$$.9\n");
+ open GENERATED, "< /tmp/$$.9";
+ open OUTPUT, "> $ARGV[1]/$filename.9";
+
+ print OUTPUT "$front";
+ print OUTPUT ".\\\" For comments on the formatting of this manpage, please contact Michael Still \n\n";
+ while(){
+ print OUTPUT "$_";
+ }
+ close OUTPUT;
+ close GENERATED;
+
+ system("gzip -f $ARGV[1]/$filename.9\n");
+ unlink("/tmp/$filename.9");
}
}
elsif($ARGV[0] eq "install"){
diff -Nur linux-2.6.0-test3-bk1/scripts/split-man linux-2.6.0-test3-bk1-terseman-001/scripts/split-man
--- linux-2.6.0-test3-bk1/scripts/split-man 2003-08-12 14:35:41.000000000 +1000
+++ linux-2.6.0-test3-bk1-terseman-001/scripts/split-man 2003-08-13 10:24:16.000000000 +1000
@@ -35,7 +35,7 @@
$front = "";
while(){
# Starting modes
- if(//){
+ if(// || //){
$mode = 1;
}
elsif(//){
@@ -49,16 +49,24 @@
$filename =~ s/typedef //;
print "Found manpage for $filename\n";
- open REF, "> $ARGV[1]/$filename.sgml" or
+ open REF, "> $ARGV[1]/$filename.sgml" or
die "Couldn't open output file \"$ARGV[1]/$filename.sgml\": $!\n";
- print REF "\n\n";
- print REF "$refdata";
+ print REF <
+
+
+$front
+
+
+$refdata
+EOF
$refdata = "";
}
# Extraction
if($mode == 1){
- $front = "$front$_";
+ chomp $_;
+ $front = "$front\n";
}
elsif($mode == 2){
$refdata = "$refdata$_";
@@ -69,16 +77,8 @@
print REF "9\n";
}
if(/<\/refentry>/){
- $front =~ s///;
- $front =~ s/<\/legalnotice>//;
print REF <About this document
-$front
-
-If you have comments on the formatting of this manpage, then please contact
-Michael Still (mikal\@stillhq.com).
-
-
This documentation was generated with kernel version $ARGV[2].
@@ -98,13 +98,13 @@
}
# Ending modes
- if(/<\/legalnotice>/){
+ if(/<\/bookinfo>/ || /<\/docinfo>/){
$mode = 0;
}
elsif(/<\/refentry>/){
$mode = 0;
close REF;
- }
+ }
}
# And make sure we don't process this unnessesarily