texinfo-commits
[Top][All Lists]
Advanced

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

texinfo Pod-Simple-Texinfo/pod2texi.pl util/txi...


From: Patrice Dumas
Subject: texinfo Pod-Simple-Texinfo/pod2texi.pl util/txi...
Date: Tue, 20 Nov 2012 02:34:40 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        12/11/20 02:34:40

Modified files:
        Pod-Simple-Texinfo: pod2texi.pl 
        util           : txixml2texi.pl 

Log message:
        Make the scripts relocatable.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/Pod-Simple-Texinfo/pod2texi.pl?cvsroot=texinfo&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/texinfo/util/txixml2texi.pl?cvsroot=texinfo&r1=1.4&r2=1.5

Patches:
Index: Pod-Simple-Texinfo/pod2texi.pl
===================================================================
RCS file: /sources/texinfo/texinfo/Pod-Simple-Texinfo/pod2texi.pl,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- Pod-Simple-Texinfo/pod2texi.pl      19 Nov 2012 23:54:09 -0000      1.19
+++ Pod-Simple-Texinfo/pod2texi.pl      20 Nov 2012 02:34:40 -0000      1.20
@@ -29,34 +29,48 @@
 
 BEGIN
 {
-  my $dir;
+  my $updir = File::Spec->updir();
+  my ($real_command_name, $command_directory, $command_suffix)
+     = fileparse($0, '.pl');
+
+  my $maintain_dir;
+  my $modules_dir;
   if ('@datadir@' ne '@' . 'datadir@') {
     my $package = '@PACKAGE@';
     my $datadir = eval '"@datadir@"';
     if ($datadir ne '') {
-      $dir = File::Spec->catdir($datadir, $package);
-      unshift @INC, (File::Spec->catdir($dir, 'Pod-Simple-Texinfo'), $dir);
+      # try to find modules in directories relative to the script
+      $modules_dir = File::Spec->catdir($datadir, $package);
+      if (! -f File::Spec->catfile($modules_dir, 'Texinfo', 'Parser.pm')
+          and -f File::Spec->catfile($command_directory, $updir, 'share', 
+                                     'texinfo', 'Texinfo', 'Parser.pm')) {
+        $modules_dir = File::Spec->catdir($command_directory, 
+                                          $updir, 'share', 'texinfo');
+      }
+      $maintain_dir = $modules_dir;
+      unshift @INC, (File::Spec->catdir($modules_dir, 'Pod-Simple-Texinfo'), 
$modules_dir);
     }
   } elsif (($0 =~ /\.pl$/ and !(defined($ENV{'TEXINFO_DEV_SOURCE'})
      and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-    my $srcdir = defined $ENV{'srcdir'} ? $ENV{'srcdir'} : dirname $0;
-    my $tpdir = File::Spec->catdir($srcdir, File::Spec->updir(), 'tp');
-    $dir = File::Spec->catdir($tpdir, 'maintain');
-    unshift @INC, (File::Spec->catdir($srcdir, 'lib'), $tpdir);
+    my $srcdir = defined $ENV{'srcdir'} ? $ENV{'srcdir'} : $command_directory;
+    $modules_dir = File::Spec->catdir($srcdir, File::Spec->updir(), 'tp');
+    $maintain_dir = File::Spec->catdir($modules_dir, 'maintain');
+    unshift @INC, (File::Spec->catdir($srcdir, 'lib'), $modules_dir);
   }
-  if (defined($dir)) {
+  if (defined($maintain_dir)) {
     if ('@USE_EXTERNAL_LIBINTL@' ne 'yes') {
-      unshift @INC, File::Spec->catdir($dir, 'lib', 'libintl-perl', 'lib');
+      unshift @INC, File::Spec->catdir($maintain_dir, 'lib', 'libintl-perl', 
'lib');
     }
     if ('@USE_EXTERNAL_EASTASIANWIDTH@' ne 'yes') {
-      unshift @INC, File::Spec->catdir($dir, 'lib', 
+      unshift @INC, File::Spec->catdir($maintain_dir, 'lib', 
                                             'Unicode-EastAsianWidth', 'lib');
     }
     if ('@USE_EXTERNAL_UNIDECODE@' ne 'yes') {
-      unshift @INC, File::Spec->catdir($dir, 'lib', 'Text-Unidecode', 'lib');
+      unshift @INC, File::Spec->catdir($maintain_dir, 'lib', 'Text-Unidecode', 
'lib');
     }
   }
 }
+
 use Pod::Simple::Texinfo;
 use Texinfo::Common;
 use Texinfo::Parser;

Index: util/txixml2texi.pl
===================================================================
RCS file: /sources/texinfo/texinfo/util/txixml2texi.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- util/txixml2texi.pl 19 Nov 2012 23:54:09 -0000      1.4
+++ util/txixml2texi.pl 20 Nov 2012 02:34:40 -0000      1.5
@@ -27,32 +27,46 @@
 
 Getopt::Long::Configure("gnu_getopt");
 
-BEGIN {
-  my $dir;
+BEGIN
+{
+  my $updir = File::Spec->updir();
+  my ($real_command_name, $command_directory, $command_suffix)
+     = fileparse($0, '.pl');
+
+  my $maintain_dir;
+  my $modules_dir;
   if ('@datadir@' ne '@' . 'datadir@') {
     my $package = '@PACKAGE@';
     my $datadir = eval '"@datadir@"';
     if ($datadir ne '') {
-      $dir = File::Spec->catdir($datadir, $package);
-      unshift @INC, ($dir);
+      # try to find modules in directories relative to the script
+      $modules_dir = File::Spec->catdir($datadir, $package);
+      if (! -f File::Spec->catfile($modules_dir, 'Texinfo', 'Parser.pm')
+          and -f File::Spec->catfile($command_directory, $updir, 'share', 
+                                     'texinfo', 'Texinfo', 'Parser.pm')) {
+        $modules_dir = File::Spec->catdir($command_directory, 
+                                          $updir, 'share', 'texinfo');
+      }
+      $maintain_dir = $modules_dir;
+      unshift @INC, $modules_dir;
     }
   } elsif (($0 =~ /\.pl$/ and !(defined($ENV{'TEXINFO_DEV_SOURCE'})
      and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-    my $srcdir = defined $ENV{'srcdir'} ? $ENV{'srcdir'} : dirname $0;
-    my $tpdir = File::Spec->catdir($srcdir, File::Spec->updir(), 'tp');
-    $dir = File::Spec->catdir($tpdir, 'maintain');
-    unshift @INC, $tpdir;
+    my $srcdir = defined $ENV{'srcdir'} ? $ENV{'srcdir'} : $command_directory;
+    $modules_dir = File::Spec->catdir($srcdir, File::Spec->updir(), 'tp');
+    $maintain_dir = File::Spec->catdir($modules_dir, 'maintain');
+    unshift @INC, $modules_dir;
   }
-  if (defined($dir)) {
+  if (defined($maintain_dir)) {
     if ('@USE_EXTERNAL_LIBINTL@' ne 'yes') {
-      unshift @INC, File::Spec->catdir($dir, 'lib', 'libintl-perl', 'lib');
+      unshift @INC, File::Spec->catdir($maintain_dir, 'lib', 'libintl-perl', 
'lib');
     }
     if ('@USE_EXTERNAL_EASTASIANWIDTH@' ne 'yes') {
-      unshift @INC, File::Spec->catdir($dir, 'lib', 
+      unshift @INC, File::Spec->catdir($maintain_dir, 'lib', 
                                             'Unicode-EastAsianWidth', 'lib');
     }
     if ('@USE_EXTERNAL_UNIDECODE@' ne 'yes') {
-      unshift @INC, File::Spec->catdir($dir, 'lib', 'Text-Unidecode', 'lib');
+      unshift @INC, File::Spec->catdir($maintain_dir, 'lib', 'Text-Unidecode', 
'lib');
     }
   }
 }



reply via email to

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