OSDN Git Service

* contrib/texi2pod.pl: Handle @include, @ftable, @vtable.
authorzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Mar 2002 20:37:13 +0000 (20:37 +0000)
committerzack <zack@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Mar 2002 20:37:13 +0000 (20:37 +0000)
Reformat some code for clarity.
* gcc/Makefile.in: Give texi2pod its input file as a command
line argument, not on stdin.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50592 138bc75d-0d04-0410-961f-82ee72b054a4

contrib/ChangeLog
contrib/texi2pod.pl
gcc/ChangeLog
gcc/Makefile.in

index c6fedf9..5ea9651 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-11  Zack Weinberg  <zack@codesourcery.com>
+
+       * texi2pod.pl: Handle @include, @ftable, @vtable.
+       Reformat some code for clarity.
+
 2002-02-24  Christian J├Ânsson  <c.christian.joensson@telia.com>
 
        * test_summary: Additional to XPASS and FAIL, add UNRESOLVED,
index 770671a..0cae122 100755 (executable)
@@ -30,9 +30,12 @@ $section = "";
 @icstack = ();
 @endwstack = ();
 @skstack = ();
+@instack = ();
 $shift = "";
 %defs = ();
 $fnno = 1;
+$inf = "";
+$ibase = "";
 
 while ($_ = shift) {
     if (/^-D(.*)$/) {
@@ -58,14 +61,19 @@ while ($_ = shift) {
 }
 
 if (defined $in) {
-    open(STDIN, $in) or die "opening \"$in\": $!\n";
+    $inf = gensym();
+    open($inf, "<$in") or die "opening \"$in\": $!\n";
+    $ibase = $1 if $in =~ m|^(.+)/[^/]+$|;
+} else {
+    $inf = \*STDIN;
 }
+
 if (defined $out) {
     open(STDOUT, ">$out") or die "opening \"$out\": $!\n";
 }
 
-while(<STDIN>)
-{
+while(defined $inf) {
+while(<$inf>) {
     # Certain commands are discarded without further processing.
     /^\@(?:
         [a-z]+index            # @*index: useful only in complete manual
@@ -109,8 +117,14 @@ while(<STDIN>)
     };
 
     # handle variables
-    /^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and $defs{$1} = $2, next;
-    /^\@clear\s+([a-zA-Z0-9_-]+)/ and delete $defs{$1}, next;
+    /^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and do {
+       $defs{$1} = $2;
+       next;
+    };
+    /^\@clear\s+([a-zA-Z0-9_-]+)/ and do {
+       delete $defs{$1};
+       next;
+    };
 
     next unless $output;
 
@@ -210,8 +224,21 @@ while(<STDIN>)
 
     # Single line command handlers.
 
-    /^\@(?:section|unnumbered|unnumberedsec|center)\s+(.+)$/ and $_ = "\n=head2 $1\n";
-    /^\@subsection\s+(.+)$/ and $_ = "\n=head3 $1\n";
+    /^\@include\s+(.+)$/ and do {
+       push @instack, $inf;
+       $inf = gensym();
+
+       # Try cwd and $ibase.
+       open($inf, "<" . $1) 
+           or open($inf, "<" . $ibase . "/" . $1)
+               or die "cannot open $1 or $ibase/$1: $!\n";
+       next;
+    };
+
+    /^\@(?:section|unnumbered|unnumberedsec|center)\s+(.+)$/
+       and $_ = "\n=head2 $1\n";
+    /^\@subsection\s+(.+)$/
+       and $_ = "\n=head3 $1\n";
 
     # Block command handlers:
     /^\@itemize\s+(\@[a-z]+|\*|-)/ and do {
@@ -234,16 +261,16 @@ while(<STDIN>)
        $endw = "enumerate";
     };
 
-    /^\@table\s+(\@[a-z]+)/ and do {
+    /^\@([fv]?table)\s+(\@[a-z]+)/ and do {
        push @endwstack, $endw;
        push @icstack, $ic;
-       $ic = $1;
+       $endw = $1;
+       $ic = $2;
        $ic =~ s/\@(?:samp|strong|key|gcctabopt|env)/B/;
        $ic =~ s/\@(?:code|kbd)/C/;
        $ic =~ s/\@(?:dfn|var|emph|cite|i)/I/;
        $ic =~ s/\@(?:file)/F/;
        $_ = "\n=over 4\n";
-       $endw = "table";
     };
 
     /^\@((?:small)?example|display)/ and do {
@@ -266,6 +293,10 @@ while(<STDIN>)
 
     $section .= $shift.$_."\n";
 }
+# End of current file.
+close($inf);
+$inf = pop @instack;
+}
 
 die "No filename or title\n" unless defined $fn && defined $tl;
 
@@ -382,3 +413,15 @@ sub add_footnote
     $sects{FOOTNOTES} .= $_[0];
     $sects{FOOTNOTES} .= "\n\n";
 }
+
+# stolen from Symbol.pm
+{
+    my $genseq = 0;
+    sub gensym
+    {
+       my $name = "GEN" . $genseq++;
+       my $ref = \*{$name};
+       delete $::{$name};
+       return $ref;
+    }
+}
index 9a9478b..31b03ba 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-11  Zack Weinberg  <zack@codesourcery.com>
+
+       * Makefile.in: Give texi2pod its input file as a command line
+       argument, not on stdin.
+
 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
            Daniel Berlin  <dan@dberlin.org>
 
index 2aabcdb..46561c1 100644 (file)
@@ -2333,7 +2333,7 @@ generated-manpages: $(docdir)/gcov.1 $(docdir)/cpp.1 $(docdir)/gcc.1 \
 
 $(docdir)/gcov.1: $(docdir)/gcov.texi
        $(STAMP) $(docdir)/gcov.1
-       -$(TEXI2POD) $(docdir)/gcov.texi > gcov.pod
+       -$(TEXI2POD) $(docdir)/gcov.texi > gcov.pod
        -($(POD2MAN) --section=1 gcov.pod > $(docdir)/gcov.1.T$$$$ && \
                mv -f $(docdir)/gcov.1.T$$$$ $(docdir)/gcov.1) || \
                (rm -f $(docdir)/gcov.1.T$$$$ && exit 1)
@@ -2341,7 +2341,7 @@ $(docdir)/gcov.1: $(docdir)/gcov.texi
 
 $(docdir)/cpp.1: $(docdir)/cpp.texi
        $(STAMP) $(docdir)/cpp.1
-       -$(TEXI2POD) $(docdir)/cpp.texi > cpp.pod
+       -$(TEXI2POD) $(docdir)/cpp.texi > cpp.pod
        -($(POD2MAN) --section=1 cpp.pod > $(docdir)/cpp.1.T$$$$ && \
                mv -f $(docdir)/cpp.1.T$$$$ $(docdir)/cpp.1) || \
                (rm -f $(docdir)/cpp.1.T$$$$ && exit 1)
@@ -2349,7 +2349,7 @@ $(docdir)/cpp.1: $(docdir)/cpp.texi
 
 $(docdir)/gcc.1: $(docdir)/invoke.texi
        $(STAMP) $(docdir)/gcc.1
-       -$(TEXI2POD) $(docdir)/invoke.texi > gcc.pod
+       -$(TEXI2POD) $(docdir)/invoke.texi > gcc.pod
        -($(POD2MAN) --section=1 gcc.pod > $(docdir)/gcc.1.T$$$$ && \
                mv -f $(docdir)/gcc.1.T$$$$ $(docdir)/gcc.1) || \
                (rm -f $(docdir)/gcc.1.T$$$$ && exit 1)
@@ -2357,7 +2357,7 @@ $(docdir)/gcc.1: $(docdir)/invoke.texi
 
 $(docdir)/gfdl.7: $(docdir)/include/fdl.texi
        $(STAMP) $(docdir)/gfdl.7
-       -$(TEXI2POD) $(docdir)/include/fdl.texi > gfdl.pod
+       -$(TEXI2POD) $(docdir)/include/fdl.texi > gfdl.pod
        -($(POD2MAN) --section=7 gfdl.pod > $(docdir)/gfdl.7.T$$$$ && \
                mv -f $(docdir)/gfdl.7.T$$$$ $(docdir)/gfdl.7) || \
                (rm -f $(docdir)/gfdl.7.T$$$$ && exit 1)
@@ -2365,7 +2365,7 @@ $(docdir)/gfdl.7: $(docdir)/include/fdl.texi
 
 $(docdir)/gpl.7: $(docdir)/include/gpl.texi
        $(STAMP) $(docdir)/gpl.7
-       -$(TEXI2POD) $(docdir)/include/gpl.texi > gpl.pod
+       -$(TEXI2POD) $(docdir)/include/gpl.texi > gpl.pod
        -($(POD2MAN) --section=7 gpl.pod > $(docdir)/gpl.7.T$$$$ && \
                mv -f $(docdir)/gpl.7.T$$$$ $(docdir)/gpl.7) || \
                (rm -f $(docdir)/gpl.7.T$$$$ && exit 1)
@@ -2373,7 +2373,7 @@ $(docdir)/gpl.7: $(docdir)/include/gpl.texi
 
 $(docdir)/fsf-funding.7: $(docdir)/include/funding.texi
        $(STAMP) $(docdir)/fsf-funding.7
-       -$(TEXI2POD) $(docdir)/include/funding.texi > fsf-funding.pod
+       -$(TEXI2POD) $(docdir)/include/funding.texi > fsf-funding.pod
        -($(POD2MAN) --section=7 fsf-funding.pod \
                > $(docdir)/fsf-funding.7.T$$$$ && \
            mv -f $(docdir)/fsf-funding.7.T$$$$ $(docdir)/fsf-funding.7) || \