OSDN Git Service

PR libgomp/29949
[pf3gnuchains/gcc-fork.git] / contrib / texi2pod.pl
index 480f26a..ed0d102 100755 (executable)
@@ -16,8 +16,8 @@
 
 # You should have received a copy of the GNU General Public License
 # along with GCC; see the file COPYING.  If not, write to
-# the Free Software Foundation, 59 Temple Place - Suite 330,
-# Boston MA 02111-1307, USA.
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston MA 02110-1301, USA.
 
 # This does trivial (and I mean _trivial_) conversion of Texinfo
 # markup to Perl POD format.  It's intended to be used to extract
@@ -36,6 +36,7 @@ $shift = "";
 $fnno = 1;
 $inf = "";
 $ibase = "";
+@ipath = ();
 
 while ($_ = shift) {
     if (/^-D(.*)$/) {
@@ -51,6 +52,13 @@ while ($_ = shift) {
        die "flags may only contain letters, digits, hyphens, dashes and underscores\n"
            unless $flag =~ /^[a-zA-Z0-9_-]+$/;
        $defs{$flag} = $value;
+    } elsif (/^-I(.*)$/) {
+       if ($1 ne "") {
+           $flag = $1;
+       } else {
+           $flag = shift;
+       }
+        push (@ipath, $flag);
     } elsif (/^-/) {
        usage();
     } else {
@@ -227,11 +235,16 @@ while(<$inf>) {
     /^\@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";
+       $file = postprocess($1);
+
+       # Try cwd and $ibase, then explicit -I paths.
+       $done = 0;
+       foreach $path ("", $ibase, @ipath) {
+           $mypath = $file;
+           $mypath = $path . "/" . $mypath if ($path ne "");
+           open($inf, "<" . $mypath) and ($done = 1, last);
+       }
+       die "cannot find $file" if !$done;
        next;
     };
 
@@ -352,6 +365,10 @@ sub postprocess
     # keep references of the form @ref{...}, print them bold
     s/\@(?:ref)\{([^\}]*)\}/B<$1>/g;
 
+    # Change double single quotes to double quotes.
+    s/''/"/g;
+    s/``/"/g;
+
     # Cross references are thrown away, as are @noindent and @refill.
     # (@noindent is impossible in .pod, and @refill is unnecessary.)
     # @* is also impossible in .pod; we discard it and any newline that