texinfo-commits
[Top][All Lists]
Advanced

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

texinfo/tp texi2any.pl


From: Patrice Dumas
Subject: texinfo/tp texi2any.pl
Date: Sun, 18 Nov 2012 00:46:40 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        12/11/18 00:46:40

Modified files:
        tp             : texi2any.pl 

Log message:
        Make texi2any relocatable.  Report from Eli Zaretskii.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/texi2any.pl?cvsroot=texinfo&r1=1.144&r2=1.145

Patches:
Index: texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -b -r1.144 -r1.145
--- texi2any.pl 18 Nov 2012 00:22:38 -0000      1.144
+++ texi2any.pl 18 Nov 2012 00:46:39 -0000      1.145
@@ -40,11 +40,23 @@
 {
   my $datadir = '@datadir@';
   my $package = '@PACKAGE@';
+  my $updir = File::Spec->updir();
+  my ($real_command_name, $command_directory, $command_suffix) 
+     = fileparse($0, '.pl');
+
+  my $texinfolibdir;
   if ($datadir ne '@' .'datadir@' and $package ne '@' . 'PACKAGE@'
       and $datadir ne '') {
-    my $texinfolibdir = File::Spec->catdir($datadir, $package);
+    $texinfolibdir = File::Spec->catdir($datadir, $package);
     unshift @INC, ($texinfolibdir);
   }
+  # try to make package relocatable, will only work if standard relative paths
+  # are used
+  if ((!defined($texinfolibdir)
+       or ! -f File::Spec->catfile($texinfolibdir, 'Texinfo', 'Parser.pm'))
+      and -f File::Spec->catfile($command_directory, $updir, 'share', 
'texinfo', 'Texinfo', 'Parser.pm')) {
+    unshift @INC, (File::Spec->catdir($command_directory, $updir, 'share', 
'texinfo'));
+  }
 }
 
 my ($real_command_name, $command_directory, $command_suffix) 
@@ -150,6 +162,13 @@
       unshift @INC, File::Spec->catdir($pkgdatadir, @directories);
     }
   }
+  # try to make the script relocatable
+  eval "require $module_name; ";
+  if ($@ and -d File::Spec->catdir($command_directory, $updir, 
+                                  'share', 'texinfo', @directories)) {
+    unshift @INC, (File::Spec->catdir($command_directory, $updir, 'share', 
+                                      'texinfo', @directories));
+  }
 }
 
 my $libsrcdir = File::Spec->catdir($srcdir, 'maintain');



reply via email to

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