texinfo-commits
[Top][All Lists]
Advanced

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

texinfo tp/Makefile.PL tp/texi2any.pl tp/Texinf...


From: Patrice Dumas
Subject: texinfo tp/Makefile.PL tp/texi2any.pl tp/Texinf...
Date: Wed, 12 Sep 2012 00:40:25 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        12/09/12 00:40:25

Modified files:
        tp             : Makefile.PL texi2any.pl 
        tp/Texinfo     : Parser.pm Report.pm 
        tp/Texinfo/Convert: Converter.pm HTML.pm Text.pm 
        tp/init        : chm.pm latex2html.pm tex4ht.pm 
        tp/maintain    : regenerate_documentlanguages.pl 
                         regenerate_file_lists.pl 
        tp/tests       : run_parser_all.sh 
        tp/tests/many_input_files: tex_l2h.sh 
        util           : txixml2texi.pl 
        Pod-Simple-Texinfo: Makefile.PL pod2texi.pl 

Log message:
        Handle file operations in a portable way.
        Fix the cleaning with latex2html, with L2H_CLEAN set.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Makefile.PL?cvsroot=texinfo&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/texi2any.pl?cvsroot=texinfo&r1=1.139&r2=1.140
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Parser.pm?cvsroot=texinfo&r1=1.396&r2=1.397
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Report.pm?cvsroot=texinfo&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Converter.pm?cvsroot=texinfo&r1=1.87&r2=1.88
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/HTML.pm?cvsroot=texinfo&r1=1.255&r2=1.256
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/Texinfo/Convert/Text.pm?cvsroot=texinfo&r1=1.95&r2=1.96
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/init/chm.pm?cvsroot=texinfo&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/init/latex2html.pm?cvsroot=texinfo&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/init/tex4ht.pm?cvsroot=texinfo&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/maintain/regenerate_documentlanguages.pl?cvsroot=texinfo&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/maintain/regenerate_file_lists.pl?cvsroot=texinfo&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/run_parser_all.sh?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/tests/many_input_files/tex_l2h.sh?cvsroot=texinfo&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/texinfo/util/txixml2texi.pl?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/Pod-Simple-Texinfo/Makefile.PL?cvsroot=texinfo&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/texinfo/Pod-Simple-Texinfo/pod2texi.pl?cvsroot=texinfo&r1=1.17&r2=1.18

Patches:
Index: tp/Makefile.PL
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Makefile.PL,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- tp/Makefile.PL      23 Feb 2012 22:14:42 -0000      1.12
+++ tp/Makefile.PL      12 Sep 2012 00:40:23 -0000      1.13
@@ -13,6 +13,7 @@
                           "Carp" => 0,
                           "Unicode::Normalize" => 0,
                           "File::Basename" => 0,
+                          "File::Copy" => 0,
                           "Getopt::Long" => 0,
                           "Unicode::EastAsianWidth" => 0,
                           "Text::Unidecode" => 0,

Index: tp/texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -b -r1.139 -r1.140
--- tp/texi2any.pl      11 Sep 2012 00:05:32 -0000      1.139
+++ tp/texi2any.pl      12 Sep 2012 00:40:23 -0000      1.140
@@ -25,7 +25,7 @@
 
 use strict;
 
-# for file_name_is_absolute
+# for file names portability
 use File::Spec;
 # to determine the path separator and null file
 use Config;
@@ -38,14 +38,16 @@
 
 BEGIN
 {
-  my $texinfolibdir = '@datadir@/@PACKAGE@';
-  unshift @INC, ($texinfolibdir) 
-    if ($texinfolibdir ne '' 
-        and $texinfolibdir ne '@' .'datadir@/@PACKAGE'.'@');
+  my $datadir = '@datadir@';
+  my $package = '@PACKAGE@';
+  if ($datadir ne '@' .'datadir@' and $package ne '@' . 'PACKAGE@'
+      and $datadir ne '') {
+    my $texinfolibdir = File::Spec->catdir($datadir, $package);
+    unshift @INC, ($texinfolibdir);
+  }
 }
 
-my ($filename, $directories, $suffix) = fileparse($0);
-my $real_command_name = $filename;
+my ($real_command_name, $directories, $suffix) = fileparse($0);
 $real_command_name =~ s/\.pl$//;
 
 # this associates the command line options to the arrays set during
@@ -61,34 +63,41 @@
 my $quoted_path_separator = quotemeta($path_separator);
 
 # Paths and file names
+my $curdir = File::Spec->curdir();
+my $updir = File::Spec->updir();
 
 # set by configure, prefix for the sysconfdir and so on
+# This could be used in the eval
 my $prefix = '@prefix@';
-my $datarootdir;# = '@datarootdir@';
+my $datarootdir;
 my $sysconfdir;
 my $pkgdatadir;
 my $datadir;
 
+my $fallback_prefix = File::Spec->catdir(File::Spec->rootdir(), 'usr', 
'local');
+
 # We need to eval as $prefix has to be expanded. However when we haven't
 # run configure @sysconfdir will be expanded as an array, thus we verify
 # whether configure was run or not
 if ('@sysconfdir@' ne '@' . 'sysconfdir@') {
   $sysconfdir = eval '"@sysconfdir@"';
 } else {
-  $sysconfdir = '/usr/local/etc';
+  $sysconfdir = File::Spec->catdir($fallback_prefix, 'etc');
 }
 
 if ('@datarootdir@' ne '@' . 'datarootdir@') {
   $datarootdir = eval '"@datarootdir@"';
 } else {
-  $datarootdir = '/usr/local/share';
+  $datarootdir = File::Spec->catdir($fallback_prefix, 'share');
 }
-if ('@datadir@' ne '@' . 'datadir@') {
+
+if ('@datadir@' ne '@' . 'datadir@' and '@PACKAGE@' ne '@' . 'PACKAGE@') {
   $datadir = eval '"@datadir@"';
-  $pkgdatadir = eval '"@datadir@/@PACKAGE@"';
+  my $package = '@PACKAGE@';
+  $pkgdatadir = File::Spec->catdir($datadir, $package);
 } else {
-  $pkgdatadir = '/usr/local/share/texinfo';
-  $datadir = '/usr/local/share';
+  $datadir = File::Spec->catdir($fallback_prefix, 'share');
+  $pkgdatadir = File::Spec->catdir($datadir, 'texinfo');
 }
 
 #my $messages_textdomain = 'texinfo';
@@ -118,17 +127,17 @@
 
 require Texinfo::Convert::Texinfo;
 
-my $libsrcdir = "$srcdir/maintain";
+my $libsrcdir = File::Spec->catdir($srcdir, 'maintain');
 if (($0 =~ /\.pl$/ and !(defined($ENV{'TEXINFO_DEV_SOURCE'}) 
      and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-  unshift @INC, "$libsrcdir/lib/libintl-perl/lib";
+  unshift @INC, File::Spec->catdir($libsrcdir, 'lib', 'libintl-perl', 'lib');
 } elsif ('@USE_EXTERNAL_LIBINTL@' ne 'yes'
-         and -d "$pkgdatadir/lib/libintl-perl/lib") {
-  unshift @INC, "$pkgdatadir/lib/libintl-perl/lib";
+         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 "$pkgdatadir/lib/libintl-perl/lib") {
-    unshift @INC, "$pkgdatadir/lib/libintl-perl/lib";
+  if ($@ and -d File::Spec->catdir($pkgdatadir, 'lib', 'libintl-perl', 'lib')) 
{
+    unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 'libintl-perl', 
'lib');
   }
 }
 
@@ -145,8 +154,10 @@
   # in case of build from the source directory, out of source build, 
   # this helps to locate the locales.
   my $locales_dir_found = 0;
-  foreach my $locales_dir ("$libsrcdir/../LocaleData", "./LocaleData", 
-       "../../../tp/LocaleData") {
+  foreach my $locales_dir (
+    File::Spec->catdir($libsrcdir, $updir, 'LocaleData'),
+    File::Spec->catdir($curdir, 'LocaleData'), 
+    File::Spec->catdir($updir, $updir, $updir, 'tp', 'LocaleData')) {
     if (-d $locales_dir) {
       Locale::Messages::bindtextdomain ($strings_textdomain, $locales_dir);
       $locales_dir_found = 1;
@@ -157,35 +168,38 @@
     warn "Locales dir for document strings not found\n";
   }
 } else {
-  Locale::Messages::bindtextdomain ($strings_textdomain, "$datadir/locale");
+  Locale::Messages::bindtextdomain ($strings_textdomain, 
+                                    File::Spec->catdir($datadir, 'locale'));
 }
 
-Locale::Messages::bindtextdomain ($messages_textdomain, "$datadir/locale");
+Locale::Messages::bindtextdomain ($messages_textdomain, 
+                                  File::Spec->catdir($datadir, 'locale'));
 
 if (($0 =~ /\.pl$/ and !(defined($ENV{'TEXINFO_DEV_SOURCE'}) 
      and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-  unshift @INC, "$libsrcdir/lib/Unicode-EastAsianWidth/lib";
+  unshift @INC, 
+    File::Spec->catdir($libsrcdir, 'lib', 'Unicode-EastAsianWidth', 'lib');
 } elsif ('@USE_EXTERNAL_EASTASIANWIDTH@' ne 'yes'
-         and -d "$pkgdatadir/lib/Unicode-EastAsianWidth/lib") {
-  unshift @INC, "$pkgdatadir/lib/Unicode-EastAsianWidth/lib";
+         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 "$pkgdatadir/lib/Unicode-EastAsianWidth/lib") {
-    unshift @INC, "$pkgdatadir/lib/Unicode-EastAsianWidth/lib";
+  if ($@ and -d File::Spec->catdir($pkgdatadir, 'lib', 
'Unicode-EastAsianWidth', 'lib')) {
+    unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 
'Unicode-EastAsianWidth', 'lib');
   }
 }
 require Unicode::EastAsianWidth;
 
 if (($0 =~ /\.pl$/ and !(defined($ENV{'TEXINFO_DEV_SOURCE'}) 
      and $ENV{'TEXINFO_DEV_SOURCE'} eq 0)) or $ENV{'TEXINFO_DEV_SOURCE'}) {
-  unshift @INC, "$libsrcdir/lib/Text-Unidecode/lib";
+  unshift @INC, File::Spec->catdir($libsrcdir, 'lib', 'Text-Unidecode', 'lib');
 } elsif ('@USE_EXTERNAL_UNIDECODE@' ne 'yes'
-          and "$pkgdatadir/lib/Text-Unidecode/lib") {
-  unshift @INC, "$pkgdatadir/lib/Text-Unidecode/lib";
+          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 "$pkgdatadir/lib/Text-Unidecode/lib") {
-    unshift @INC, "$pkgdatadir/lib/Text-Unidecode/lib";
+  if ($@ and -d File::Spec->catdir($pkgdatadir, 'lib', 'Text-Unidecode', 
'lib')) {
+    unshift @INC, File::Spec->catdir($pkgdatadir, 'lib', 'Text-Unidecode', 
'lib');
   }
 }
 require Text::Unidecode;
@@ -218,7 +232,8 @@
   # if not configured, and $hardcoded_version is set search for the version 
   # in configure.ac
   if (defined($hardcoded_version)) {
-    if (open (CONFIGURE, "$srcdir/../configure.ac")) {
+    if (open (CONFIGURE, 
+              "< ".File::Spec->catfile($srcdir, $updir, 'configure.ac'))) {
       while (<CONFIGURE>) {
         if (/^AC_INIT\(\[[^\]]+\]\s*,\s*\[([^\]]+)\]\s*,/) {
           $configured_version = "$1+dev"; # +dev to distinguish from installed
@@ -266,25 +281,30 @@
 my $texinfo_htmlxref = 'htmlxref.cnf';
 
 # directories for texinfo configuration files
-my @language_config_dirs = ('./.texinfo');
-push @language_config_dirs, "$ENV{'HOME'}/.texinfo" if (defined($ENV{'HOME'}));
-push @language_config_dirs, "$sysconfdir/texinfo" if (defined($sysconfdir));
-push @language_config_dirs, "$datadir/texinfo" if (defined($datadir));
-my @texinfo_config_dirs = ('.', @language_config_dirs);
+my @language_config_dirs = File::Spec->catdir($curdir, '.texinfo');
+push @language_config_dirs, File::Spec->catdir($ENV{'HOME'}, '.texinfo') 
+                                if (defined($ENV{'HOME'}));
+push @language_config_dirs, File::Spec->catdir($sysconfdir, 'texinfo') 
+                               if (defined($sysconfdir));
+push @language_config_dirs, File::Spec->catdir($datadir, 'texinfo') 
+                               if (defined($datadir));
+my @texinfo_config_dirs = ($curdir, @language_config_dirs);
 
 my @program_config_dirs;
 my @program_init_dirs;
 
 my $program_name = 'texi2any';
address@hidden = ('.', "./.$program_name");
-push @program_config_dirs, "$ENV{'HOME'}/.$program_name" 
address@hidden = ($curdir, File::Spec->catdir($curdir, ".$program_name"));
+push @program_config_dirs, File::Spec->catdir($ENV{'HOME'}, ".$program_name")
        if (defined($ENV{'HOME'}));
-push @program_config_dirs, "$sysconfdir/$program_name" if 
(defined($sysconfdir));
-push @program_config_dirs, "$datadir/$program_name" if (defined($datadir));
+push @program_config_dirs, File::Spec->catdir($sysconfdir, $program_name) 
+       if (defined($sysconfdir));
+push @program_config_dirs, File::Spec->catdir($datadir, $program_name) 
+  if (defined($datadir));
 
 @program_init_dirs = @program_config_dirs;
 foreach my $texinfo_config_dir (@language_config_dirs) {
-  push @program_init_dirs, "${texinfo_config_dir}/init";
+  push @program_init_dirs, File::Spec->catdir($texinfo_config_dir, 'init');
 }
 
 # Namespace for configuration
@@ -378,11 +398,13 @@
   } else {
     my @files;
     foreach my $dir (@$directories) {
-      next unless (-d "$dir");
+      next unless (-d $dir);
+      my $possible_file = File::Spec->catfile($dir, $file);
       if ($all_files) {
-        push (@files, "$dir/$file") if (-e "$dir/$file" and -r "$dir/$file");
+        push (@files, $possible_file) 
+          if (-e $possible_file and -r $possible_file);
       } else {
-        return "$dir/$file" if (-e "$dir/$file" and -r "$dir/$file");
+        return $possible_file if (-e $possible_file and -r $possible_file);
       }
     }
     return @files if ($all_files);
@@ -1001,9 +1023,9 @@
   # in case no file was found, still set the file name
   $input_file_name = $input_file_arg if (!defined($input_file_name));
 
-  my $input_directory = '.';
-  if ($input_file_name =~ /(.*\/)/) {
-    $input_directory = $1;
+  my ($input_filename, $input_directory, $suffix) = 
fileparse($input_file_name);
+  if (!defined($input_directory) or $input_directory eq '') {
+    $input_directory = $curdir;
   }
 
   my $input_file_base = $input_file_name;

Index: tp/Texinfo/Parser.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Parser.pm,v
retrieving revision 1.396
retrieving revision 1.397
diff -u -b -r1.396 -r1.397
--- tp/Texinfo/Parser.pm        9 Sep 2012 21:59:49 -0000       1.396
+++ tp/Texinfo/Parser.pm        12 Sep 2012 00:40:23 -0000      1.397
@@ -39,6 +39,9 @@
 # to detect if an encoding may be used to open the files
 use Encode;
 
+# for fileparse
+use File::Basename;
+
 #use POSIX qw(setlocale LC_ALL LC_CTYPE LC_MESSAGES);
 
 # commands definitions
@@ -842,8 +845,9 @@
                                      'type' => 'preamble_text' };
     }
   }
-
-  $file_name =~ s/^.*\/// if ($self->{'TEST'});
+  my ($directories, $suffix);
+  ($file_name, $directories, $suffix) = fileparse($file_name)
+            if ($self->{'TEST'});
   $self = parser() if (!defined($self));
   $self->{'input'} = [{
        'pending' => [],

Index: tp/Texinfo/Report.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Report.pm,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- tp/Texinfo/Report.pm        4 Feb 2012 14:22:33 -0000       1.21
+++ tp/Texinfo/Report.pm        12 Sep 2012 00:40:24 -0000      1.22
@@ -43,6 +43,9 @@
 use 5.00405;
 use strict;
 
+# for fileparse
+use File::Basename;
+
 use Locale::Messages;
 # to be able to load a parser if none was given to gdt.
 use Texinfo::Parser;
@@ -81,7 +84,9 @@
   return if (!defined($line_number) or $self->{'ignore_notice'});
   my $file = $line_number->{'file_name'};
   # otherwise out of source build fail since the file names are different
-  $file =~ s/^.*\/// if ($self->get_conf('TEST'));
+  my ($directories, $suffix);
+  ($file, $directories, $suffix) = fileparse($file)
+    if ($self->get_conf('TEST'));
   my $warn_line;
   if ($line_number->{'macro'} ne '') {
     $warn_line = sprintf($self->__(
@@ -108,7 +113,9 @@
   return if ($self->{'ignore_notice'});
   if (defined($line_number)) {
     my $file = $line_number->{'file_name'};
-    $file =~ s/^.*\/// if ($self->get_conf('TEST'));
+    my ($directories, $suffix);
+    ($file, $directories, $suffix) = fileparse($file)
+       if ($self->get_conf('TEST'));
     my $macro_text = '';
     $macro_text = " (possibly involving address@hidden>{'macro'})"
        if ($line_number->{'macro'} ne '');

Index: tp/Texinfo/Convert/Converter.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Converter.pm,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -b -r1.87 -r1.88
--- tp/Texinfo/Convert/Converter.pm     9 Sep 2012 20:11:33 -0000       1.87
+++ tp/Texinfo/Convert/Converter.pm     12 Sep 2012 00:40:24 -0000      1.88
@@ -22,6 +22,11 @@
 use 5.00405;
 use strict;
 
+# for fileparse
+use File::Basename;
+# for file names portability
+use File::Spec;
+
 use Texinfo::Report;
 use Texinfo::Common;
 use Texinfo::Convert::Text;
@@ -405,12 +410,13 @@
   # determine input file base name
   my $input_basename;
   if (defined($self->{'info'}->{'input_file_name'})) {
-    $input_basename = $self->{'info'}->{'input_file_name'};
+    my ($directories, $suffix);
+    ($input_basename, $directories, $suffix) 
+       = fileparse($self->{'info'}->{'input_file_name'});
   } else {
     # This could happen if called on a piece of texinfo
     $input_basename = '';
   }
-  $input_basename =~ s/^.*\///;
   $self->{'input_basename'} = $input_basename;
   $input_basename = $STDIN_DOCU_NAME if ($input_basename eq '-');
   $input_basename =~ s/\.te?x(i|info)?$//;
@@ -454,10 +460,8 @@
       $document_name = $outfile;
     }
     if (defined($self->get_conf('SUBDIR')) and $outfile ne '') {
-      my $dir = $self->get_conf('SUBDIR');
-      $dir =~ s/\/*$//;
-      $dir .= '/';
-      $outfile = $dir.$outfile;
+      my $dir = File::Spec->canonpath($self->get_conf('SUBDIR'));
+      $outfile = File::Spec->catfile($dir, $outfile);
     }
     #$self->set_conf('OUTFILE', $outfile);
   } else {
@@ -476,9 +480,14 @@
     $document_name = $setfilename;
     $document_name =~ s/\.[^\.]*$//;
   }
-  $document_name =~ s/^.*\///;
+  my ($directories, $suffix);
+  # We may be handling setfilename there, so it is not obvious that we
+  # want to use fileparse and not consider unixish separators.  However, 
+  # if this is setfilename, it should be a simple file name, so it 
+  # should hopefully be harmless to use fileparse
+  ($document_name, $directories, $suffix) = fileparse($document_name);
   $self->{'document_name'} = $document_name;
-  $output_filename =~ s/^.*\///;
+  ($output_filename, $directories, $suffix) = fileparse($output_filename);
   $self->{'output_filename'} = $output_filename;
   if ($self->get_conf('SPLIT')) {
     if (defined($self->get_conf('OUTFILE'))) {
@@ -489,16 +498,15 @@
       $self->{'destination_directory'} = $document_name;
     }
   } else {
-    my $output_dir = $outfile;
-    $output_dir =~ s|[^/]*$||;
+    my ($out_filename, $output_dir, $suffix) = fileparse($outfile);
     if ($output_dir ne '') {
       $self->{'destination_directory'} = $output_dir;
     }
   }
   if (defined($self->{'destination_directory'}) 
       and $self->{'destination_directory'} ne '') {
-    $self->{'destination_directory'} =~ s/\/*$//;
-    $self->{'destination_directory'} .= '/';
+    $self->{'destination_directory'} 
+      = File::Spec->canonpath($self->{'destination_directory'});
   }
   $self->{'output_file'} = $outfile;
 }
@@ -564,9 +572,10 @@
       if ($self->get_conf('SPLIT') 
           and $self->get_conf('EXTENSION') 
           and $self->get_conf('EXTENSION') ne '') {
-        my $new_directory = $self->{'destination_directory'};
-        $new_directory =~ s/\/*$//;
-        $new_directory .= '.' . $self->get_conf('EXTENSION') . '/';
+        my ($volume, $directories, $file) 
+           = File::Spec->splitpath($self->{'destination_directory'}, 1);
+        my $new_directory = catpath($volume, 
+                 $directories . '.' . $self->get_conf('EXTENSION'), $file);
         if (! -d $new_directory) {
           if (!mkdir($new_directory, oct(755))) {
             $self->document_error(sprintf($self->__(

Index: tp/Texinfo/Convert/HTML.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/HTML.pm,v
retrieving revision 1.255
retrieving revision 1.256
diff -u -b -r1.255 -r1.256
--- tp/Texinfo/Convert/HTML.pm  26 Aug 2012 23:00:45 -0000      1.255
+++ tp/Texinfo/Convert/HTML.pm  12 Sep 2012 00:40:24 -0000      1.256
@@ -4773,7 +4773,7 @@
           push @$imports, $text . $line;
           last;
         }
-      } elsif (!$in_string and $line =~ s/^\///) { # what do '\' do here ?
+      } elsif (!$in_string and $line =~ s/^\///) {
         if ($line =~ s/^\*//) {
           $text .= '/*';
           $in_comment = 1;
@@ -5138,8 +5138,10 @@
     }
   }
   $element->{'filename'} = $filename;
-  if (defined($self->{'destination_directory'})) {
-    $element->{'out_filename'} = $self->{'destination_directory'} . $filename;
+  if (defined($self->{'destination_directory'}) 
+      and $self->{'destination_directory'} ne '') {
+    $element->{'out_filename'} = 
+      File::Spec->catfile($self->{'destination_directory'}, $filename);
   } else {
     $element->{'out_filename'} = $filename;
   }
@@ -6444,16 +6446,20 @@
 
   my $frame_file = $self->{'frame_pages_filenames'}->{'Frame'};
   my $frame_outfile;
-  if (defined($self->{'destination_directory'})) {
-    $frame_outfile = $self->{'destination_directory'} . $frame_file;
+  if (defined($self->{'destination_directory'}) 
+      and $self->{'destination_directory'} ne '') {
+    $frame_outfile = File::Spec->catfile($self->{'destination_directory'}, 
+                                         $frame_file);
   } else {
     $frame_outfile = $frame_file;
   }
   
   my $toc_frame_file = $self->{'frame_pages_filenames'}->{'Toc_Frame'};
   my $toc_frame_outfile;
-  if (defined($self->{'destination_directory'})) {
-    $toc_frame_outfile = $self->{'destination_directory'} . $toc_frame_file;
+  if (defined($self->{'destination_directory'}) 
+      and $self->{'destination_directory'} ne '') {
+    $toc_frame_outfile = File::Spec->catfile($self->{'destination_directory'}, 
+                                             $toc_frame_file);
   } else {
     $toc_frame_outfile = $toc_frame_file;
   }
@@ -6870,8 +6876,10 @@
     if ($self->{'output_file'} ne '') {
       if ($self->get_conf('SPLIT')) {
         $outfile = $self->_top_node_filename();
-        if (defined($self->{'destination_directory'})) {
-          $outfile = $self->{'destination_directory'} . $outfile;
+        if (defined($self->{'destination_directory'}) 
+            and $self->{'destination_directory'} ne '') {
+          $outfile = File::Spec->catfile($self->{'destination_directory'}, 
+                                         $outfile);
         }
       } else {
         $outfile = $self->{'output_file'};
@@ -7005,9 +7013,10 @@
         my $redirection_page 
           = &{$self->{'format_node_redirection_page'}}($self, $node);
         my $out_filename;
-        if (defined($self->{'destination_directory'})) {
-          $out_filename = $self->{'destination_directory'} 
-               .$node_filename;
+        if (defined($self->{'destination_directory'}) 
+            and $self->{'destination_directory'} ne '') {
+          $out_filename = 
File::Spec->catfile($self->{'destination_directory'}, 
+                                              $node_filename);
         } else {
           $out_filename = $node_filename;
         }
@@ -7072,9 +7081,10 @@
           = &{$self->{'format_node_redirection_page'}}($self, 
                        $self->label_command($parsed_new_node->{'normalized'}));
         my $out_filename;
-        if (defined($self->{'destination_directory'})) {
-          $out_filename = $self->{'destination_directory'} 
-               .$filename;
+        if (defined($self->{'destination_directory'}) 
+            and $self->{'destination_directory'} ne '') {
+          $out_filename = 
File::Spec->catfile($self->{'destination_directory'}, 
+                                              $filename);
         } else {
           $out_filename = $filename;
         }

Index: tp/Texinfo/Convert/Text.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/Texinfo/Convert/Text.pm,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -b -r1.95 -r1.96
--- tp/Texinfo/Convert/Text.pm  21 Aug 2012 17:44:24 -0000      1.95
+++ tp/Texinfo/Convert/Text.pm  12 Sep 2012 00:40:24 -0000      1.96
@@ -621,12 +621,13 @@
   #print STDERR "OUTPUT\n";
   my $input_basename;
   if (defined($self->{'info'}->{'input_file_name'})) {
-    $input_basename = $self->{'info'}->{'input_file_name'};
+    my ($directories, $suffix);
+    ($input_basename, $directories, $suffix)
+       = fileparse($self->{'info'}->{'input_file_name'});
   } else {
     # This could happen if called on a piece of texinfo
     $input_basename = '';
   }
-  $input_basename =~ s/^.*\///;
   $self->{'input_basename'} = $input_basename;
   $input_basename = $STDIN_DOCU_NAME if ($input_basename eq '-');
   $input_basename =~ s/\.te?x(i|info)?$//;

Index: tp/init/chm.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/init/chm.pm,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- tp/init/chm.pm      13 Nov 2011 23:55:22 -0000      1.10
+++ tp/init/chm.pm      12 Sep 2012 00:40:24 -0000      1.11
@@ -25,6 +25,8 @@
 
 use strict;
 
+use File::Spec;
+
 main::set_format('html');
 
 set_from_init_file('TOP_NODE_FILE', undef);
@@ -208,9 +210,11 @@
   return if (defined($self->get_conf('OUTFILE'))
         and $Texinfo::Common::null_device_file{$self->get_conf('OUTFILE')});
   my $document_name = $self->{'document_name'};
+  my $outdir = $self->{'destination_directory'};
+  $outdir = File::Spec->curdir() if ($outdir eq '');
 
   my $hhk_filename = $document_name . ".hhk";
-  my $hhk_file = $self->{'destination_directory'} . $hhk_filename;
+  my $hhk_file = File::Spec->catfile($outdir, $hhk_filename);
   my $hhk_fh = Texinfo::Common::open_out($self, $hhk_file);
   # Not sure $! is still valid
   if (!defined($hhk_fh)) {
@@ -266,7 +270,7 @@
   }
 
   my $hhc_filename = $document_name . ".hhc";
-  my $hhc_file = $self->{'destination_directory'} . $hhc_filename;
+  my $hhc_file = File::Spec->catfile($outdir, $hhc_filename);
   my $hhc_fh = Texinfo::Common::open_out($self, $hhc_file);
   # Not sure $! is still valid
   if (!defined($hhc_fh)) {
@@ -337,7 +341,7 @@
   }
 
   my $hhp_filename = $document_name . ".hhp";
-  my $hhp_file = $self->{'destination_directory'} . $hhp_filename;
+  my $hhp_file = File::Spec->catfile($outdir, $hhp_filename);
   my $hhp_fh = Texinfo::Common::open_out($self, $hhp_file);
   # Not sure $! is still valid
   if (!defined($hhp_fh)) {

Index: tp/init/latex2html.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/init/latex2html.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- tp/init/latex2html.pm       3 Jan 2012 01:47:53 -0000       1.3
+++ tp/init/latex2html.pm       12 Sep 2012 00:40:24 -0000      1.4
@@ -28,6 +28,8 @@
 use strict;
 
 use Cwd;
+use File::Copy;
+use File::Spec;
 
 my $global_cmds = get_conf('GLOBAL_COMMANDS');
 if (!defined($global_cmds)) {
@@ -87,6 +89,8 @@
 my $debug;
 my $verbose;
 my $docu_rdir;
+my $docu_volume;
+my $docu_directories;
 my $docu_name;
 
 my %commands_counters;
@@ -174,12 +178,18 @@
   $docu_name = $self->{'document_name'};
   $docu_rdir = $self->{'destination_directory'};
   $docu_rdir = '' if (!defined($docu_rdir));
+  my $no_file;
+  ($docu_volume, $docu_directories, $no_file) 
+      = File::Spec->splitpath($docu_rdir, 1);
   $l2h_name =  "${docu_name}_l2h";
-  $l2h_latex_file = "$docu_rdir${l2h_name}.tex";
-  $l2h_cache_file = "${docu_rdir}${docu_name}-l2h_cache.pm";
+  $l2h_latex_file = File::Spec->catpath($docu_volume, $docu_directories,
+                                        "${l2h_name}.tex");
+  $l2h_cache_file = File::Spec->catpath($docu_volume, $docu_directories, 
+                                        "${docu_name}-l2h_cache.pm");
   # destination dir -- generated images are put there, should be the same
   # as dir of enclosing html document --
-  $l2h_html_file = "$docu_rdir${l2h_name}.html";
+  $l2h_html_file = File::Spec->catpath($docu_volume, $docu_directories,
+                                       "${l2h_name}.html");
   $l2h_prefix = "${l2h_name}_";
   $debug = $self->get_conf('DEBUG');
   $verbose = $self->get_conf('VERBOSE');
@@ -408,20 +418,23 @@
         $self->document_warn ("L2h image $src has invalid extension");
         next;
       }
-      while (-e "$docu_rdir${docu_name}_${image_count}$ext") {
+      while (-e File::Spec->catpath($docu_volume, $docu_directories,
+                                    "${docu_name}_${image_count}$ext")) {
         $image_count++;
       }
+      my $file_src
+        = File::Spec->catpath($docu_volume, $docu_directories, $src);
       $dest = "${docu_name}_${image_count}$ext";
+      my $file_dest 
+        = File::Spec->catpath($docu_volume, $docu_directories, $dest);
       if ($debug) {
-        # not portable, but only used with debug.
-        system("cp -f $docu_rdir$src $docu_rdir$dest");
+        copy($file_src, $file_dest);
       } else {
-        if (!rename ("$docu_rdir$src", "$docu_rdir$dest")) {
-          $self->document_warn ("Error renaming $docu_rdir$src as 
$docu_rdir$dest: $!");
+        if (!rename ($file_src, $file_dest)) {
+          $self->document_warn ("Error renaming $file_src as $file_dest: $!");
         }
       }
       $l2h_img{$src} = $dest;
-      #unlink "$docu_rdir$src" unless ($debug);
     }
   $content =~ s/SRC="$src"/SRC="$dest"/g;
   }
@@ -563,12 +576,16 @@
   }
   l2h_store_cache($self);
   if ($self->get_conf('L2H_CLEAN')) {
-    local ($_);
     warn "# l2h: removing temporary files generated by l2h extension\n"
      if ($verbose);
-    while (<"$docu_rdir$l2h_name"*>) {
+    my $quoted_l2h_name = quotemeta($l2h_name);
+    my $dir = $docu_rdir;
+    $dir = File::Spec->curdir() if ($dir eq '');
+    if (opendir (DIR, $dir)) {
+      foreach my $file (grep { /^$quoted_l2h_name/ } readdir(DIR)) {
       # FIXME error condition not checked
-      unlink $_;
+        unlink File::Spec->catpath($docu_volume, $docu_directories, $file);
+      }
     }
   }
   warn "# l2h: Finished\n" if $verbose;
@@ -578,7 +595,7 @@
 ##############################
 # stuff for l2h caching
 #
-# FIXME it is clear that l2h stuff takes very long compared with texi2html
+# FIXME it is clear that l2h stuff takes very long compared with texi2any
 # which is already quite long. However this also adds some complexity 
 
 # I tried doing this with a dbm data base, but it did not store all
@@ -586,9 +603,9 @@
 sub l2h_init_cache($)
 {
   my $self = shift;
-  if (-r "$l2h_cache_file") {
+  if (-r $l2h_cache_file) {
     my $rdo = do "$l2h_cache_file";
-    $self->document_error ("l2h: could not load $docu_rdir$l2h_cache_file: $@")
+    $self->document_error ("l2h: could not load $l2h_cache_file: $@")
       unless ($rdo);
   }
 }
@@ -600,7 +617,7 @@
   return unless $latex_count;
   my ($key, $value);
   unless (open(FH, ">$l2h_cache_file")) { 
-    $self->document_error ("l2h: could not open $docu_rdir$l2h_cache_file for 
writing: $!");
+    $self->document_error ("l2h: could not open $l2h_cache_file for writing: 
$!");
     return;
   }
   while (($key, $value) = each %l2h_cache) {
@@ -628,7 +645,7 @@
   my $cached = $l2h_cache{$text};
   if (defined($cached)) {
     while ($cached =~ m/SRC="(.*?)"/g) {
-      unless (-e "$docu_rdir$1") {
+      unless (-e File::Spec->catpath($docu_volume, $docu_directories, $1)) {
         return undef;
       }
     }

Index: tp/init/tex4ht.pm
===================================================================
RCS file: /sources/texinfo/texinfo/tp/init/tex4ht.pm,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- tp/init/tex4ht.pm   3 Jan 2012 01:47:53 -0000       1.9
+++ tp/init/tex4ht.pm   12 Sep 2012 00:40:24 -0000      1.10
@@ -92,7 +92,7 @@
 
   $tex4ht_initial_dir = Cwd::abs_path;
   $tex4ht_out_dir = $self->{'destination_directory'};
-  $tex4ht_out_dir = './'
+  $tex4ht_out_dir = File::Spec->curdir()
     if (!defined($tex4ht_out_dir) or $tex4ht_out_dir =~ /^\s*$/);
 
   my $document_name = $self->{'document_name'};
@@ -111,7 +111,8 @@
     $suffix = '.texi' if ($style eq 'texi');
     $commands{$command}->{'basefile'} = $commands{$command}->{'basename'} . 
$suffix;
     $commands{$command}->{'html_file'} = $commands{$command}->{'basename'} . 
'.html';
-    $commands{$command}->{'rfile'} = $tex4ht_out_dir . 
$commands{$command}->{'basefile'};
+    $commands{$command}->{'rfile'} = File::Spec->catfile($tex4ht_out_dir, 
+                                          $commands{$command}->{'basefile'});
     my $rfile = $commands{$command}->{'rfile'};
     $commands{$command}->{'counter'} = 0;
 
@@ -201,7 +202,7 @@
         print $fh "address@hidden";
       }
       close ($fh);
-      # this have to be done during the 'process' phase, in 'output' it is 
+      # this has to be done during the 'process' phase, in 'output' it is 
       # too late.
       push @{$self->{'css_import_lines'}}, 
          "address@hidden \"$commands{$command}->{'basename'}.css\";\n";

Index: tp/maintain/regenerate_documentlanguages.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/maintain/regenerate_documentlanguages.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- tp/maintain/regenerate_documentlanguages.pl 22 Sep 2011 22:48:00 -0000      
1.1
+++ tp/maintain/regenerate_documentlanguages.pl 12 Sep 2012 00:40:24 -0000      
1.2
@@ -23,17 +23,12 @@
 
 my $entry;
 my @entries;
-while (<TXT>)
-{
-   if (/^%%/)
-   {
+while (<TXT>) {
+ if (/^%%/) {
       push @entries, $entry if (defined($entry));
       $entry = undef;
-   }
-   else
-   {
-       if (/^(\w+): (.*)/)
-       {
+ } else {
+   if (/^(\w+): (.*)/) {
            $entry->{$1} = $2;
        }
    }
@@ -54,12 +49,13 @@
 {
    # Scope collection macrolanguage are used
    if ($entry->{'Type'} eq 'language' and !defined($entry->{'Preferred-Value'})
-         and !defined($entry->{'Macrolanguage'}) and 
-         (!defined($entry->{'Scope'}) or ($entry->{'Scope'} ne 'special' and
-           $entry->{'Scope'} ne 'private-use')))
-   {
+       and !defined($entry->{'Macrolanguage'})
+       and (!defined($entry->{'Scope'}) 
+            or ($entry->{'Scope'} ne 'special' 
+                and $entry->{'Scope'} ne 'private-use'))) {
        print OUT "'$entry->{'Subtag'}' => 1,\n";
-       print STDERR "$entry->{'Subtag'} Scope $entry->{'Scope'}\n" if 
defined($entry->{'Scope'});
+    print STDERR "$entry->{'Subtag'} Scope $entry->{'Scope'}\n" 
+       if defined($entry->{'Scope'});
    }
 }
 print OUT ");\n\n";
@@ -68,8 +64,8 @@
 foreach my $entry (@entries)
 {
    if ($entry->{'Type'} eq 'region' and !defined($entry->{'Preferred-Value'})
-        and $entry->{'Description'} ne 'Private use' and $entry->{'Subtag'} !~ 
/^\d{3}$/)
-   {
+      and $entry->{'Description'} ne 'Private use' 
+      and $entry->{'Subtag'} !~ /^\d{3}$/) {
        print OUT "'$entry->{'Subtag'}' => 1,\n";
    }
 }

Index: tp/maintain/regenerate_file_lists.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/maintain/regenerate_file_lists.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- tp/maintain/regenerate_file_lists.pl        9 Feb 2012 23:51:51 -0000       
1.7
+++ tp/maintain/regenerate_file_lists.pl        12 Sep 2012 00:40:24 -0000      
1.8
@@ -15,11 +15,13 @@
 use strict;
 use File::Find;
 use File::Basename;
+use File::Spec;
 
 my %files;
 
-(my $mydir = $0) =~ s,/[^/]+$,,;
-chdir("$mydir/..") || die "chdir $mydir/..: $!";
+my ($command, $mydir, $suffix) = fileparse($0);
+my $parent = File::Spec->catdir($mydir, File::Spec->updir());
+chdir($parent) || die "chdir $parent: $!";
 -d "t" || (die "goodbye, no t directory in " . `pwd`);
 
 find (\&wanted, ('t'));

Index: tp/tests/run_parser_all.sh
===================================================================
RCS file: /sources/texinfo/texinfo/tp/tests/run_parser_all.sh,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tp/tests/run_parser_all.sh  28 Jul 2012 23:47:37 -0000      1.4
+++ tp/tests/run_parser_all.sh  12 Sep 2012 00:40:24 -0000      1.5
@@ -225,8 +225,8 @@
       # @setfilename
       echo "$command $dir" >> $logfile
       #echo "$dir($format)"
-      echo "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init --error-limit=1000 
--set-customization-variable TEST=1 --output ${outdir}$dir/ -I 
$testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ 
--set-customization-variable=DUMP_TEXI=1 
--macro-expand=${outdir}$dir/$basename.texi $remaining_out_dir $src_file 
2>${outdir}$dir/$basename.2" >> $logfile
-      eval "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init --error-limit=1000 
--set-customization-variable TEST=1 --output ${outdir}$dir/ -I 
$testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ 
--set-customization-variable=DUMP_TEXI=1 
--macro-expand=${outdir}$dir/$basename.texi $remaining_out_dir $src_file 
2>${outdir}$dir/$basename.2"
+      echo "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init --error-limit=1000 
--set-customization-variable TEST=1 --set-customization-variable L2H_CLEAN=0 
--output ${outdir}$dir/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ 
--set-customization-variable=DUMP_TEXI=1 
--macro-expand=${outdir}$dir/$basename.texi $remaining_out_dir $src_file 
2>${outdir}$dir/$basename.2" >> $logfile
+      eval "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init --error-limit=1000 
--set-customization-variable TEST=1 --set-customization-variable L2H_CLEAN=0 
--output ${outdir}$dir/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ 
--set-customization-variable=DUMP_TEXI=1 
--macro-expand=${outdir}$dir/$basename.texi $remaining_out_dir $src_file 
2>${outdir}$dir/$basename.2"
       ret=$?
     else
       one_test_done=yes
@@ -268,8 +268,8 @@
       remaining_out_dir=`echo $remaining | sed 
's,@OUT_DIR@,'"${outdir}$dir/"',g'`
       echo "$command $dir" >> $logfile
       #echo "$dir($format)"
-      echo "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init -I $testdir/$srcdir_test/ -I 
$testdir/$srcdir_test/../ --set-customization-variable 
L2H_FILE=$testdir/$srcdir_test/../../t/init/l2h.init --error-limit=1000 
--set-customization-variable TEST=1 $l2h_tmp_dir --output ${outdir}$dir/ 
$remaining_out_dir $src_file > ${outdir}$dir/$basename.1 
2>${outdir}$dir/$basename.2" >> $logfile
-      eval "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init -I $testdir/$srcdir_test/ -I 
$testdir/$srcdir_test/../ --set-customization-variable 
L2H_FILE=$testdir/$srcdir_test/../../t/init/l2h.init --error-limit=1000 
--set-customization-variable TEST=1 $l2h_tmp_dir --output ${outdir}$dir/ 
$remaining_out_dir $src_file > ${outdir}$dir/$basename.1 
2>${outdir}$dir/$basename.2"
+      echo "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init -I $testdir/$srcdir_test/ -I 
$testdir/$srcdir_test/../ --set-customization-variable 
L2H_FILE=$testdir/$srcdir_test/../../t/init/l2h.init --error-limit=1000 
--set-customization-variable TEST=1 --set-customization-variable L2H_CLEAN=0 
$l2h_tmp_dir --output ${outdir}$dir/ $remaining_out_dir $src_file > 
${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2" >> $logfile
+      eval "$prepended_command perl -w -I $testdir/$srcdir_test/../../ -I 
$testdir/$srcdir_test/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/libintl-perl/lib/ -I 
$testdir/$srcdir_test/../../maintain/lib/Text-Unidecode/lib/ $command_run 
$format_option --force --conf-dir $testdir/$srcdir_test/../../t/init/ 
--conf-dir $testdir/$srcdir_test/../../init -I $testdir/$srcdir_test/ -I 
$testdir/$srcdir_test/../ --set-customization-variable 
L2H_FILE=$testdir/$srcdir_test/../../t/init/l2h.init --error-limit=1000 
--set-customization-variable TEST=1 --set-customization-variable L2H_CLEAN=0 
$l2h_tmp_dir --output ${outdir}$dir/ $remaining_out_dir $src_file > 
${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2"
       ret=$?
       rm -f ${outdir}$dir/*_l2h_images.log ${outdir}$dir/*_tex4ht_*.log \
         ${outdir}$dir/*_tex4ht_*.idv ${outdir}$dir/*_tex4ht_*.dvi \

Index: tp/tests/many_input_files/tex_l2h.sh
===================================================================
RCS file: /sources/texinfo/texinfo/tp/tests/many_input_files/tex_l2h.sh,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- tp/tests/many_input_files/tex_l2h.sh        28 Jul 2012 23:47:38 -0000      
1.6
+++ tp/tests/many_input_files/tex_l2h.sh        12 Sep 2012 00:40:24 -0000      
1.7
@@ -31,8 +31,8 @@
 
 [ -d $basename ] && rm -rf $basename
 mkdir $basename
-echo "perl -I $srcdir/../.. -I 
$srcdir/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$srcdir/../../maintain/lib/libintl-perl/lib -I 
$srcdir/../../maintain/lib/Text-Unidecode/lib/ -w $srcdir/../../texi2any.pl 
--set-customization-variable 'TEXI2HTML 1' --set-customization-variable 'TEST 
1' --set-customization-variable L2H_TMP=$tmp_dir --conf-dir $srcdir/../../init 
--set-customization-variable 'L2H 1' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init --iftex --out $basename/ 
$srcdir/../tex_html/tex_complex.texi $srcdir/../tex_html/tex.texi --force >> 
$stdout_file 2>$basename/${basename}.2" >> $logfile
-perl -I $srcdir/../.. -I 
$srcdir/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$srcdir/../../maintain/lib/libintl-perl/lib -I 
$srcdir/../../maintain/lib/Text-Unidecode/lib/ -w $srcdir/../../texi2any.pl 
--set-customization-variable 'TEXI2HTML 1' --set-customization-variable 'TEST 
1' --set-customization-variable L2H_TMP=$tmp_dir --conf-dir $srcdir/../../init 
--set-customization-variable 'L2H 1' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init --iftex --out $basename/ 
$srcdir/../tex_html/tex_complex.texi $srcdir/../tex_html/tex.texi --force >> 
$stdout_file 2>$basename/${basename}.2
+echo "perl -I $srcdir/../.. -I 
$srcdir/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$srcdir/../../maintain/lib/libintl-perl/lib -I 
$srcdir/../../maintain/lib/Text-Unidecode/lib/ -w $srcdir/../../texi2any.pl 
--set-customization-variable 'TEXI2HTML 1' --set-customization-variable 'TEST 
1' --set-customization-variable L2H_TMP=$tmp_dir --conf-dir $srcdir/../../init 
--set-customization-variable 'L2H 1' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init --set-customization-variable 
'L2H_CLEAN=0' --iftex --out $basename/ $srcdir/../tex_html/tex_complex.texi 
$srcdir/../tex_html/tex.texi --force >> $stdout_file 2>$basename/${basename}.2" 
>> $logfile
+perl -I $srcdir/../.. -I 
$srcdir/../../maintain/lib/Unicode-EastAsianWidth/lib/ -I 
$srcdir/../../maintain/lib/libintl-perl/lib -I 
$srcdir/../../maintain/lib/Text-Unidecode/lib/ -w $srcdir/../../texi2any.pl 
--set-customization-variable 'TEXI2HTML 1' --set-customization-variable 'TEST 
1' --set-customization-variable L2H_TMP=$tmp_dir --conf-dir $srcdir/../../init 
--set-customization-variable 'L2H 1' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init  --set-customization-variable 
'L2H_CLEAN=0' --iftex --out $basename/ $srcdir/../tex_html/tex_complex.texi 
$srcdir/../tex_html/tex.texi --force >> $stdout_file 2>$basename/${basename}.2
 
 return_code=0
 ret=$?

Index: util/txixml2texi.pl
===================================================================
RCS file: /sources/texinfo/texinfo/util/txixml2texi.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- util/txixml2texi.pl 10 Sep 2012 23:44:40 -0000      1.2
+++ util/txixml2texi.pl 12 Sep 2012 00:40:25 -0000      1.3
@@ -23,28 +23,31 @@
 use Getopt::Long qw(GetOptions);
 # for dirname.
 use File::Basename;
+use File::Spec;
 
 Getopt::Long::Configure("gnu_getopt");
 
 BEGIN {
   my $dir;
   if ('@datadir@' ne '@' . 'datadir@') {
-    my $pkgdatadir = eval '"@datadir@/@PACKAGE@"';
+    my $package = '@PACKAGE@';
     my $datadir = eval '"@datadir@"';
-    $dir = $pkgdatadir;
+    if ($datadir ne '') {
+      $dir = File::Spec->catdir($datadir, $package);
     unshift @INC, ($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 = "$srcdir/../tp";
-    $dir = "$tpdir/maintain";
+    my $tpdir = File::Spec->catdir($srcdir, File::Spec->updir(), 'tp');
+    $dir = File::Spec->catdir($tpdir, 'maintain');
     unshift @INC, $tpdir;
   }
   if (defined($dir)) {
     unshift @INC, (
-        "$dir/lib/libintl-perl/lib",
-        "$dir/lib/Unicode-EastAsianWidth/lib",
-        "$dir/lib/Text-Unidecode/lib");
+        File::Spec->catdir($dir, 'lib', 'libintl-perl', 'lib'),
+        File::Spec->catdir($dir, 'lib', 'Unicode-EastAsianWidth', 'lib'),
+        File::Spec->catdir($dir, 'lib', 'Text-Unidecode', 'lib'));
   }
 }
 

Index: Pod-Simple-Texinfo/Makefile.PL
===================================================================
RCS file: /sources/texinfo/texinfo/Pod-Simple-Texinfo/Makefile.PL,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- Pod-Simple-Texinfo/Makefile.PL      19 Jan 2012 20:38:11 -0000      1.2
+++ Pod-Simple-Texinfo/Makefile.PL      12 Sep 2012 00:40:25 -0000      1.3
@@ -8,7 +8,9 @@
     EXE_FILES         => [ 'pod2texi.pl' ],
     PREREQ_PM         => { "Pod::Simple::PullParser" => 0,
                            "Texinfo::Parser" => 0,
-                           "Getopt::Long" => 0 }, # e.g., Module::Name => 1.1
+                           "Getopt::Long" => 0,
+                           "File::Spec" => 0,
+                           "File::Basename" => 0, }, # e.g., Module::Name => 
1.1
     ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
       (ABSTRACT_FROM  => 'lib/Pod/Simple/Texinfo.pm', # retrieve abstract from 
module
        AUTHOR         => 'Patrice Dumas <address@hidden>') : ()),

Index: Pod-Simple-Texinfo/pod2texi.pl
===================================================================
RCS file: /sources/texinfo/texinfo/Pod-Simple-Texinfo/pod2texi.pl,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- Pod-Simple-Texinfo/pod2texi.pl      21 Apr 2012 16:04:49 -0000      1.17
+++ Pod-Simple-Texinfo/pod2texi.pl      12 Sep 2012 00:40:25 -0000      1.18
@@ -23,6 +23,7 @@
 use Getopt::Long qw(GetOptions);
 # for dirname.
 use File::Basename;
+use File::Spec;
 
 Getopt::Long::Configure("gnu_getopt");
 
@@ -30,22 +31,24 @@
 {
   my $dir;
   if ('@datadir@' ne '@' . 'datadir@') {
-    my $pkgdatadir = eval '"@datadir@/@PACKAGE@"';
+    my $package = '@PACKAGE@';
     my $datadir = eval '"@datadir@"';
-    $dir = $pkgdatadir;
-    unshift @INC, ("$dir/Pod-Simple-Texinfo", $dir);
+    if ($datadir ne '') {
+      $dir = File::Spec->catdir($datadir, $package);
+      unshift @INC, (File::Spec->catdir($dir, 'Pod-Simple-Texinfo'), $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 = "$srcdir/../tp";
-    $dir = "$tpdir/maintain";
-    unshift @INC, ("$srcdir/lib", $tpdir);
+    my $tpdir = File::Spec->catdir($srcdir, File::Spec->updir(), 'tp');
+    $dir = File::Spec->catdir($tpdir, 'maintain');
+    unshift @INC, (File::Spec->catdir($srcdir, 'lib'), $tpdir);
   }
   if (defined($dir)) {
     unshift @INC, (
-        "$dir/lib/libintl-perl/lib", 
-        "$dir/lib/Unicode-EastAsianWidth/lib",
-        "$dir/lib/Text-Unidecode/lib");
+        File::Spec->catdir($dir, 'lib', 'libintl-perl', 'lib'), 
+        File::Spec->catdir($dir, 'lib', 'Unicode-EastAsianWidth', 'lib'),
+        File::Spec->catdir($dir, 'lib', 'Text-Unidecode', 'lib'));
   }
 }
 use Pod::Simple::Texinfo;
@@ -67,8 +70,7 @@
 sub run(){};
 }
 
-my $real_command_name = $0;
-$real_command_name =~ s/.*\///;
+my ($real_command_name, $directories, $suffix) = fileparse($0);
 
 # placeholder for string translations, not used for now
 sub __($)
@@ -139,10 +141,6 @@
 
 exit 1 if (!$result_options);
 
-if (defined($subdir) and ($subdir ne '/')) {
-  $subdir =~ s:/*$:/:;
-}
-
 if (defined($subdir)) {
   if (! -d $subdir) {
     if (!mkdir($subdir)) {
@@ -305,7 +303,8 @@
         $outfile .= '.texi';
       }
     }
-    $outfile = $subdir . $outfile if (defined($subdir));
+    $outfile = File::Spec->catfile($subdir, $outfile) 
+      if (defined($subdir));
   }
 
   my $new = Pod::Simple::Texinfo->new();
@@ -374,7 +373,8 @@
         my $new_outfile 
          = Pod::Simple::Texinfo::_pod_title_to_file_name($short_title);
         $new_outfile .= '.texi';
-        $new_outfile = $subdir . $new_outfile if (defined($subdir));
+        $new_outfile = File::Spec->catfile($subdir, $new_outfile) 
+           if (defined($subdir));
         if ($new_outfile ne $outfile) {
           unless (rename ($outfile, $new_outfile)) {
             die sprintf(__("%s: Rename %s failed: %s\n"), 



reply via email to

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