texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[8072] parsetexi in ModulePath.pm


From: gavinsmith0123
Subject: [8072] parsetexi in ModulePath.pm
Date: Wed, 15 Aug 2018 11:14:52 -0400 (EDT)

Revision: 8072
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=8072
Author:   gavin
Date:     2018-08-15 11:14:51 -0400 (Wed, 15 Aug 2018)
Log Message:
-----------
parsetexi in ModulePath.pm

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/tp/Texinfo/ModulePath.pm.in

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2018-08-15 13:00:08 UTC (rev 8071)
+++ trunk/ChangeLog     2018-08-15 15:14:51 UTC (rev 8072)
@@ -1,5 +1,12 @@
 2018-08-15  Gavin Smith  <address@hidden>
 
+       * tp/Texinfo/ModulePath.pm.in: Add 'parsetexi' directory to 
+       @INC.
+       <TEXINFO_XS_PARSER environment variable set>: Add a subroutine 
+       to @INC to override Texinfo::Parser with Parsetexi.pm.
+
+2018-08-15  Gavin Smith  <address@hidden>
+
        * tp/texi2any.pl <finding version number>: Refer to 
        Texinfo::Common instead of Texinfo::Parser.
 

Modified: trunk/tp/Texinfo/ModulePath.pm.in
===================================================================
--- trunk/tp/Texinfo/ModulePath.pm.in   2018-08-15 13:00:08 UTC (rev 8071)
+++ trunk/tp/Texinfo/ModulePath.pm.in   2018-08-15 15:14:51 UTC (rev 8072)
@@ -76,11 +76,36 @@
       $libexec_dir = File::Spec->catdir($ENV{'top_builddir'}, 'tp',
         'Texinfo', 'XS');
     }
+    unshift @INC, (File::Spec->catdir($lib_dir, '..', 'parsetexi'));
   }
 
   if (defined($libexec_dir)) {
     unshift @INC, (File::Spec->catdir($libexec_dir));
   }
+
+  if ($ENV{TEXINFO_XS_PARSER}) {
+    unshift @INC, sub { 
+      my ($coderef, $filename) = @_;
+      if ($filename eq 'Texinfo/Parser.pm') {
+        my $replacement = 'parsetexi/Parsetexi.pm';
+        foreach my $prefix (@INC) {
+          if (ref($prefix)) {
+            next;
+          }
+          my $realfilename = File::Spec->catdir($prefix, $replacement);
+          if (-f $realfilename) {
+            my $fh;
+            open ($fh, '<', $realfilename);
+            if ($fh) {
+              $INC{$filename} = $realfilename;
+              return $fh;
+            }
+          }
+        }
+      }
+      return;
+    };
+  }
 }
 
 sub import { 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]