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:22:38 +0000

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

Modified files:
        tp             : texi2any.pl 

Log message:
        Use a function for setting INC for modules to avoid redundant code.

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

Patches:
Index: texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -b -r1.143 -r1.144
--- texi2any.pl 17 Nov 2012 23:58:52 -0000      1.143
+++ texi2any.pl 18 Nov 2012 00:22:38 -0000      1.144
@@ -127,22 +127,36 @@
 
 require Texinfo::Convert::Texinfo;
 
-#sub add_module_path_to_INC($$$)
+# find module location either in source, in pkgdatadir or in the perl paths.
+sub add_module_path_to_INC($$$$$$@)
+{
+  my $module_name = shift;
+  my $command_suffix = shift;
+  my $dev_source_environment = shift;
+  my $libsrcdir = shift;
+  my $pkgdatadir = shift;
+  my $command_directory = shift;
+  my @directories = @_;
+
+  if (($command_suffix eq '.pl' and !(defined($dev_source_environment)
+     and $dev_source_environment eq 0)) or $dev_source_environment) {
+    unshift @INC, File::Spec->catdir($libsrcdir, @directories);
+  } elsif ('@USE_EXTERNAL_LIBINTL@' ne 'yes'
+         and -d File::Spec->catdir($pkgdatadir, @directories)) {
+    unshift @INC, File::Spec->catdir($pkgdatadir, @directories);
+  } else {
+    eval "require $module_name; ";
+    if ($@ and -d File::Spec->catdir($pkgdatadir, @directories)) {
+      unshift @INC, File::Spec->catdir($pkgdatadir, @directories);
+    }
+  }
+}
 
 my $libsrcdir = File::Spec->catdir($srcdir, 'maintain');
 
-if (($command_suffix eq '.pl' and !(defined($ENV{'TEXINFO_DEV_SOURCE'}) 
-     and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-  unshift @INC, File::Spec->catdir($libsrcdir, 'lib', 'libintl-perl', 'lib');
-} elsif ('@USE_EXTERNAL_LIBINTL@' ne 'yes'
-         and -d File::Spec->catdir($pkgdatadir, 'lib', 'libintl-perl', 'lib')) 
{
-  unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 'libintl-perl', 'lib');
-} else {
-  eval { require Locale::Messages; };
-  if ($@ and -d File::Spec->catdir($pkgdatadir, 'lib', 'libintl-perl', 'lib')) 
{
-    unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 'libintl-perl', 
'lib');
-  }
-}
+add_module_path_to_INC("Locale::Messages", $command_suffix, 
+   $ENV{'TEXINFO_DEV_SOURCE'}, $libsrcdir, $pkgdatadir, $command_directory,
+   'lib', 'libintl-perl', 'lib');
 
 require Locale::Messages;
 # we want a reliable way to switch locale, so we don't use the system
@@ -178,33 +192,16 @@
 Locale::Messages::bindtextdomain ($messages_textdomain, 
                                   File::Spec->catdir($datadir, 'locale'));
 
-if (($command_suffix eq '.pl' and !(defined($ENV{'TEXINFO_DEV_SOURCE'}) 
-     and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-  unshift @INC, 
-    File::Spec->catdir($libsrcdir, 'lib', 'Unicode-EastAsianWidth', 'lib');
-} elsif ('@USE_EXTERNAL_EASTASIANWIDTH@' ne 'yes'
-         and -d File::Spec->catdir($pkgdatadir, 'lib', 
'Unicode-EastAsianWidth', 'lib')) {
-  unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 
'Unicode-EastAsianWidth', 'lib');
-} else {
-  eval { require Unicode::EastAsianWidth; };
-  if ($@ and -d File::Spec->catdir($pkgdatadir, 'lib', 
'Unicode-EastAsianWidth', 'lib')) {
-    unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 
'Unicode-EastAsianWidth', 'lib');
-  }
-}
+add_module_path_to_INC("Unicode::EastAsianWidth", $command_suffix, 
+   $ENV{'TEXINFO_DEV_SOURCE'}, $libsrcdir, $pkgdatadir, $command_directory,
+   'lib', 'Unicode-EastAsianWidth', 'lib');
+
 require Unicode::EastAsianWidth;
 
-if (($command_suffix eq '.pl' and !(defined($ENV{'TEXINFO_DEV_SOURCE'}) 
-     and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-  unshift @INC, File::Spec->catdir($libsrcdir, 'lib', 'Text-Unidecode', 'lib');
-} elsif ('@USE_EXTERNAL_UNIDECODE@' ne 'yes'
-          and -d File::Spec->catdir($pkgdatadir, 'lib', 'Text-Unidecode', 
'lib')) {
-  unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 'Text-Unidecode', 
'lib');
-} else {
-  eval { require Text::Unidecode; };
-  if ($@ and -d File::Spec->catdir($pkgdatadir, 'lib', 'Text-Unidecode', 
'lib')) {
-    unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 'Text-Unidecode', 
'lib');
-  }
-}
+add_module_path_to_INC("Text::Unidecode", $command_suffix, 
+   $ENV{'TEXINFO_DEV_SOURCE'}, $libsrcdir, $pkgdatadir, $command_directory,
+   'lib', 'Text-Unidecode', 'lib');
+
 require Text::Unidecode;
 
 # This is done at runtime because the modules above are also found at runtime.



reply via email to

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