texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: Unconditionally use / as directory separator


From: Gavin D. Smith
Subject: branch master updated: Unconditionally use / as directory separator
Date: Sun, 15 Dec 2024 08:34:07 -0500

This is an automated email from the git hooks/post-receive script.

gavin pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 8a0005d422 Unconditionally use / as directory separator
8a0005d422 is described below

commit 8a0005d422ece280497dd1e9c648ffcc5cfd4fa4
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sun Dec 15 13:32:30 2024 +0000

    Unconditionally use / as directory separator
    
    * tp/texi2any.pl,
    * tp/Texinfo/ModulePath.pm.in (init),
    * tp/Texinfo/Common.pm
    (locate_file_in_dirs, locate_include_file),
    * tp/Texinfo/Convert/Converter.pm
    (set_file_path, determine_files_and_directory),
    * tp/Texinfo/Convert/HTML.pm
    (_load_htmlxref_files, _do_jslicenses_file, _do_js_files)
    (_node_redirections),
    * tp/Texinfo/Convert/Plaintext.pm (output),
    * tp/Texinfo/Convert/Text.pm (output),
    * tp/ext/epub3.pm
    (epub_convert_image_command, epub_setup, epub_finish),
    * tp/ext/latex2html.pm
    (l2h_process, l2h_retrieve_from_html, l2h_init_cache, l2h_from_cache),
    * tp/ext/tex4ht.pm (tex4ht_prepare),
    * tp/init/chm.pm (chm_init),
    * tp/t/test_utils.pl:
    Concatenate directory components of file
    name with '/' separator rather than calling File::Spec->catdir.
---
 ChangeLog                       | 25 ++++++++++++
 tp/Texinfo/Common.pm            | 13 ++++---
 tp/Texinfo/Convert/Converter.pm |  4 +-
 tp/Texinfo/Convert/HTML.pm      | 26 ++++++-------
 tp/Texinfo/Convert/Plaintext.pm |  4 +-
 tp/Texinfo/Convert/Text.pm      |  2 +-
 tp/Texinfo/ModulePath.pm.in     | 17 ++++-----
 tp/ext/epub3.pm                 | 58 ++++++++++++----------------
 tp/ext/latex2html.pm            | 16 +++-----
 tp/ext/tex4ht.pm                |  4 +-
 tp/init/chm.pm                  |  6 +--
 tp/t/test_utils.pl              | 14 +++----
 tp/texi2any.pl                  | 84 ++++++++++++++++++++---------------------
 13 files changed, 142 insertions(+), 131 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e2bee29155..6c135168bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2024-12-15  Patrice Dumas  <pertusus@free.fr>
+
+       Unconditionally use / as directory separator
+
+       * tp/texi2any.pl,
+       * tp/Texinfo/ModulePath.pm.in (init),
+       * tp/Texinfo/Common.pm
+       (locate_file_in_dirs, locate_include_file),
+       * tp/Texinfo/Convert/Converter.pm
+       (set_file_path, determine_files_and_directory),
+       * tp/Texinfo/Convert/HTML.pm
+       (_load_htmlxref_files, _do_jslicenses_file, _do_js_files)
+       (_node_redirections),
+       * tp/Texinfo/Convert/Plaintext.pm (output),
+       * tp/Texinfo/Convert/Text.pm (output),
+       * tp/ext/epub3.pm
+       (epub_convert_image_command, epub_setup, epub_finish),
+       * tp/ext/latex2html.pm
+       (l2h_process, l2h_retrieve_from_html, l2h_init_cache, l2h_from_cache),
+       * tp/ext/tex4ht.pm (tex4ht_prepare),
+       * tp/init/chm.pm (chm_init),
+       * tp/t/test_utils.pl:
+       Concatenate directory components of file
+       name with '/' separator rather than calling File::Spec->catdir.
+
 2024-12-13  Gavin Smith <gavinsmith0123@gmail.com>
 
        pretest 7.1.92
diff --git a/tp/Texinfo/Common.pm b/tp/Texinfo/Common.pm
index 449498c3ef..34df538e03 100644
--- a/tp/Texinfo/Common.pm
+++ b/tp/Texinfo/Common.pm
@@ -1018,7 +1018,7 @@ sub locate_file_in_dirs($$$;$)
       my @files;
       foreach my $dir (@$directories) {
         next unless (-d $dir);
-        my $possible_file = File::Spec->catfile($dir, $input_file_path);
+        my $possible_file = "$dir/$input_file_path";
         if (-e $possible_file and -r $possible_file) {
           if ($deprecated_dirs and $deprecated_dirs->{$dir}) {
             $deprecated_dirs_used = [] if (!defined($deprecated_dirs_used));
@@ -1130,17 +1130,18 @@ sub locate_include_file($;$)
       return undef;
     }
     foreach my $include_dir (@$include_directories) {
-      my ($include_volume, $include_dir_path, $include_filename)
-         = File::Spec->splitpath($include_dir, 1);
+      #my ($include_volume, $include_dir_path, $include_filename)
+      #   = File::Spec->splitpath($include_dir, 1);
 
       # catpath/catdir remove leading . and remove empty directories
       # within paths.  To be more like XS/C output, we do it more simply
       #my $possible_file = File::Spec->catpath($include_volume,
       #  File::Spec->catdir(File::Spec->splitdir($include_dir_path),
       #                     @directories), $filename);
-      my $filepath = $directories . $filename;
-      my $possible_file = File::Spec->catpath($include_volume,
-                      $include_dir_path, $filepath);
+      #my $filepath = $directories . $filename;
+      #my $possible_file = File::Spec->catpath($include_volume,
+      #                $include_dir_path, $filepath);
+      my $possible_file = "$include_dir/$input_file_path";
       if (-e $possible_file and -r $possible_file) {
         return $possible_file;
       }
diff --git a/tp/Texinfo/Convert/Converter.pm b/tp/Texinfo/Convert/Converter.pm
index 07df6963c6..2a78f1f140 100644
--- a/tp/Texinfo/Convert/Converter.pm
+++ b/tp/Texinfo/Convert/Converter.pm
@@ -826,7 +826,7 @@ sub set_file_path($$$;$)
 
   if (not defined($filepath)) {
     if (defined($destination_directory) and $destination_directory ne '') {
-      $filepath = File::Spec->catfile($destination_directory, $filename);
+      $filepath = join('/', ($destination_directory, $filename));
     } else {
       $filepath = $filename;
     }
@@ -1127,7 +1127,7 @@ sub determine_files_and_directory($$)
     }
     if (defined($self->get_conf('SUBDIR')) and $output_file ne '') {
       my $dir = File::Spec->canonpath($self->get_conf('SUBDIR'));
-      $output_file = File::Spec->catfile($dir, $output_file);
+      $output_file = join('/', ($dir, $output_file));
     }
   } else {
     $document_path = $self->get_conf('OUTFILE');
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index 64c0f7879d..3dc4a492eb 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -8523,11 +8523,11 @@ sub _load_htmlxref_files {
       my $curdir = File::Spec->curdir();
       # to have reproducible tests, do not use system or user
       # directories if TEST is set.
-      @htmlxref_dirs = File::Spec->catdir($curdir, '.texinfo');
+      @htmlxref_dirs = join('/', ($curdir, '.texinfo'));
 
       if ($Texinfo::ModulePath::texinfo_uninstalled) {
-        unshift @htmlxref_dirs, File::Spec->catdir(
-          $Texinfo::ModulePath::top_srcdir, 'tp', 't', 'input_files');
+        unshift @htmlxref_dirs, join('/', (
+          $Texinfo::ModulePath::top_srcdir, 'tp', 't', 'input_files'));
       }
     } elsif ($self->get_conf('TEXINFO_LANGUAGE_DIRECTORIES')
        and scalar(@{$self->get_conf('TEXINFO_LANGUAGE_DIRECTORIES')}) > 0) {
@@ -11801,7 +11801,7 @@ sub _do_jslicenses_file {
 
   my $license_file;
   if ($destination_directory ne '') {
-    $license_file = File::Spec->catdir($destination_directory, $path);
+    $license_file = join('/', ($destination_directory, $path));
   } else {
     $license_file = $path;
   }
@@ -12499,7 +12499,7 @@ sub _do_js_files($$)
     my $info_js_dir = $self->get_conf('INFO_JS_DIR');
     my $jsdir;
     if ($destination_directory ne '') {
-      $jsdir = File::Spec->catdir($destination_directory, $info_js_dir);
+      $jsdir = join('/', ($destination_directory, $info_js_dir));
     } else {
       $jsdir = $info_js_dir;
     }
@@ -12512,14 +12512,14 @@ sub _do_js_files($$)
       if (!$self->get_conf('TEST')) {
         my $jssrcdir;
         if (!$Texinfo::ModulePath::texinfo_uninstalled) {
-          $jssrcdir = File::Spec->catdir(
-            $Texinfo::ModulePath::converterdatadir, 'js');
+          $jssrcdir = join('/', (
+            $Texinfo::ModulePath::converterdatadir, 'js'));
         } else {
-          $jssrcdir = File::Spec->catdir(
-            $Texinfo::ModulePath::top_srcdir, 'js');
+          $jssrcdir = join('/', (
+            $Texinfo::ModulePath::top_srcdir, 'js'));
         }
         for my $f ('info.js', 'modernizr.js', 'info.css') {
-          my $from = File::Spec->catfile($jssrcdir, $f);
+          my $from = join('/', ($jssrcdir, $f));
 
           if (!copy($from, $jsdir)) {
             $self->converter_document_error(
@@ -12529,7 +12529,7 @@ sub _do_js_files($$)
       } else {
       # create empty files for tests to keep results stable.
         for my $f ('info.js', 'modernizr.js', 'info.css') {
-          my $filename = File::Spec->catfile($jsdir, $f);
+          my $filename = join('/', ($jsdir, $f));
           if (!open(FH, '>', $filename)) {
             $self->converter_document_error(
               sprintf(__("error on creating empty %s: %s"),
@@ -12999,8 +12999,8 @@ sub _node_redirections($$$$)
 
         my $out_filepath;
         if ($destination_directory ne '') {
-          $out_filepath = File::Spec->catfile($destination_directory,
-                                              $redirection_filename);
+          $out_filepath = join('/', ($destination_directory,
+                                     $redirection_filename));
         } else {
           $out_filepath = $redirection_filename;
         }
diff --git a/tp/Texinfo/Convert/Plaintext.pm b/tp/Texinfo/Convert/Plaintext.pm
index cc905efac9..e8b083acf4 100644
--- a/tp/Texinfo/Convert/Plaintext.pm
+++ b/tp/Texinfo/Convert/Plaintext.pm
@@ -720,8 +720,8 @@ sub output($$)
       if ($self->get_conf('SPLIT')) {
         my $top_node_file_name = $self->top_node_filename($document_name);
         if ($destination_directory ne '') {
-          $outfile_name = File::Spec->catfile($destination_directory,
-                                              $top_node_file_name);
+          $outfile_name = join('/', ($destination_directory,
+                                     $top_node_file_name));
         } else {
           $outfile_name = $top_node_file_name;
         }
diff --git a/tp/Texinfo/Convert/Text.pm b/tp/Texinfo/Convert/Text.pm
index 7bf5a6bfcd..563c3dca71 100644
--- a/tp/Texinfo/Convert/Text.pm
+++ b/tp/Texinfo/Convert/Text.pm
@@ -993,7 +993,7 @@ sub output($$)
           return undef;
         }
       }
-      $outfile = File::Spec->catfile($destination_directory, $outfile);
+      $outfile = join('/', ($destination_directory, $outfile));
     }
   } else {
     $outfile = $self->{'OUTFILE'};
diff --git a/tp/Texinfo/ModulePath.pm.in b/tp/Texinfo/ModulePath.pm.in
index 4ad6acffa6..82c7b3f5b8 100644
--- a/tp/Texinfo/ModulePath.pm.in
+++ b/tp/Texinfo/ModulePath.pm.in
@@ -68,14 +68,14 @@ sub init {
       my $count = $named_args{'updirs'};
       $top_srcdir = $command_directory;
       while ($count-- > 0) {
-        $top_srcdir = File::Spec->catdir($top_srcdir, $updir);
+        $top_srcdir = join('/', ($top_srcdir, $updir));
       }
     }
 
     if (defined($top_srcdir)) {
       # For Texinfo::Parser and the rest.
-      unshift @INC, File::Spec->catdir($top_srcdir, 'tp');
-      $lib_dir = File::Spec->catdir($top_srcdir, 'tp', 'maintain');
+      unshift @INC, "$top_srcdir/tp";
+      $lib_dir = join('/', ($top_srcdir, 'tp', 'maintain'));
     }
 
     # Find XS modules in the build directory
@@ -86,10 +86,9 @@ sub init {
       $top_builddir = $top_srcdir;
     }
     if (defined($top_builddir)) {
-      unshift @INC, File::Spec->catdir($top_builddir, 'tp',
-        'Texinfo', 'XS');
+      unshift @INC, join('/', ($top_builddir, 'tp', 'Texinfo', 'XS'));
 
-      $tp_builddir = File::Spec->catdir($top_builddir, 'tp');
+      $tp_builddir = "$top_builddir/tp";
     }
 
   } else {
@@ -109,13 +108,13 @@ sub init {
     # Bundled libraries
     # '@USE_EXTERNAL_LIBINTL @' and similar are substituted
     if ('@USE_EXTERNAL_LIBINTL@' ne 'yes') {
-      unshift @INC, (File::Spec->catdir($lib_dir, 'lib', 'libintl-perl', 
'lib'));
+      unshift @INC, join('/', ($lib_dir, 'lib', 'libintl-perl', 'lib'));
     }
     if ('@USE_EXTERNAL_EASTASIANWIDTH@' ne 'yes') {
-      unshift @INC, (File::Spec->catdir($lib_dir, 'lib', 
'Unicode-EastAsianWidth', 'lib'));
+      unshift @INC, join('/', ($lib_dir, 'lib', 'Unicode-EastAsianWidth', 
'lib'));
     }
     if ('@USE_EXTERNAL_UNIDECODE@' ne 'yes') {
-      unshift @INC, (File::Spec->catdir($lib_dir, 'lib', 'Text-Unidecode', 
'lib'));
+      unshift @INC, join('/', ($lib_dir, 'lib', 'Text-Unidecode', 'lib'));
     }
   }
 }
diff --git a/tp/ext/epub3.pm b/tp/ext/epub3.pm
index 07da9bcfe0..966a3b5992 100644
--- a/tp/ext/epub3.pm
+++ b/tp/ext/epub3.pm
@@ -320,8 +320,8 @@ sub epub_convert_image_command($$$$)
                      $image_basefile));
       } else {
         my $images_destination_dir
-               = File::Spec->catdir($epub_destination_directory,
-                                    $epub_document_dir_name, 
$epub_images_dir_name);
+               = join('/', ($epub_destination_directory,
+                            $epub_document_dir_name, $epub_images_dir_name));
         my ($encoded_images_destination_dir, $images_destination_dir_encoding)
           = $self->encoded_output_file_name($images_destination_dir);
         my $error_creating_dir;
@@ -335,8 +335,8 @@ sub epub_convert_image_command($$$$)
         }
         if (not $error_creating_dir) {
           my $image_destination_path_name
-             = File::Spec->catfile($images_destination_dir,
-                                   $destination_basefile_name);
+             = join('/', ($images_destination_dir,
+                          $destination_basefile_name));
           my ($encoded_image_dest_path_name, $image_dest_path_encoding)
             = $self->encoded_output_file_name($image_destination_path_name);
           my $copy_succeeded = copy($image_path, 
$encoded_image_dest_path_name);
@@ -492,16 +492,8 @@ sub epub_setup($)
     # css files in a directory rooted at $epub_document_dir_name
     $epub_info_js_dir_name = $self->get_conf('INFO_JS_DIR');
     my $updir = File::Spec->updir();
-    # FIXME INFO_JS_DIR is used both as a filesystem directory name
-    # and as path in HTML files.  As a path in HTML, / should always be
-    # used.  File::Spec->catdir is better for filesystem paths.  We finally
-    # hardocde '/' as separator because it is needed for HTML paths and it
-    # works for both for Unix and Windows filesystems, but it is not
-    # clean.
-    #$self->force_conf('INFO_JS_DIR', File::Spec->catdir($updir,
-    #                                              $epub_info_js_dir_name));
     $self->force_conf('INFO_JS_DIR', join('/', ($updir,
-                                                  $epub_info_js_dir_name)));
+                                                $epub_info_js_dir_name)));
     # TODO make sure it is SPLIT and set SPLIT if not?
   }
 
@@ -527,16 +519,16 @@ sub epub_setup($)
   # so we try to set it to a directory that the user would not create
   # nor populate with files.
   if (defined($self->get_conf('SUBDIR'))) {
-    $epub_destination_directory = File::Spec->catdir($self->get_conf('SUBDIR'),
-                                          $document_name . '_epub_package');
+    $epub_destination_directory = join('/', ($self->get_conf('SUBDIR'),
+                                          $document_name . '_epub_package'));
   } elsif ($split) {
     $epub_destination_directory = $destination_directory;
   } else {
     $epub_destination_directory = $document_name . '_epub_package';
   }
   $epub_document_destination_directory
-             = File::Spec->catdir($epub_destination_directory,
-                                  $epub_document_dir_name, $epub_xhtml_dir);
+             = join('/', ($epub_destination_directory,
+                          $epub_document_dir_name, $epub_xhtml_dir));
   # set for XHTML conversion
   if ($split) {
     $self->force_conf('SUBDIR', $epub_document_destination_directory);
@@ -551,7 +543,7 @@ sub epub_setup($)
       $nav_filename = 'Gtexinfo_' . $default_nav_filename;
     }
     $self->force_conf('OUTFILE',
-     File::Spec->catfile($epub_document_destination_directory, 
$xhtml_output_file));
+     join('/', ($epub_document_destination_directory, $xhtml_output_file)));
   }
 
   my $epub_destination_dir_encoding;
@@ -608,8 +600,8 @@ sub epub_finish($$)
   }
 
   my $meta_inf_directory_name = 'META-INF';
-  my $meta_inf_directory = File::Spec->catdir($epub_destination_directory,
-                                              $meta_inf_directory_name);
+  my $meta_inf_directory = join('/', ($epub_destination_directory,
+                                      $meta_inf_directory_name));
   my ($encoded_meta_inf_directory, $meta_inf_directory_encoding)
     = $self->encoded_output_file_name($meta_inf_directory);
   if (!mkdir($encoded_meta_inf_directory, oct(755))) {
@@ -618,8 +610,8 @@ sub epub_finish($$)
                                          $meta_inf_directory, $!));
     return 1;
   }
-  my $container_file_path_name = File::Spec->catfile($meta_inf_directory,
-                                           'container.xml');
+  my $container_file_path_name = join('/', ($meta_inf_directory,
+                                            'container.xml'));
   my ($encoded_container_file_path_name, $container_path_encoding)
     = $self->encoded_output_file_name($container_file_path_name);
   my ($container_fh, $error_message_container)
@@ -659,8 +651,8 @@ EOT
   }
 
   my $mimetype_filename = 'mimetype';
-  my $mimetype_file_path_name = 
File::Spec->catfile($epub_destination_directory,
-                                                    $mimetype_filename);
+  my $mimetype_file_path_name = join('/', ($epub_destination_directory,
+                                           $mimetype_filename));
   my ($encoded_mimetype_file_path_name, $mimetype_path_encoding)
     = $self->encoded_output_file_name($mimetype_file_path_name);
   my ($mimetype_fh, $error_message_mimetype)
@@ -696,7 +688,7 @@ EOT
 
   if ($sections_list) {
     $nav_file_path_name
-     = File::Spec->catfile($epub_document_destination_directory, 
$nav_filename);
+     = join('/', ($epub_document_destination_directory, $nav_filename));
     my ($encoded_nav_file_path_name, $nav_path_encoding)
       = $self->encoded_output_file_name($nav_file_path_name);
     my ($nav_fh, $error_message_nav)
@@ -827,8 +819,8 @@ EOT
   # Cf TODO, publication date
   # <dc:date>
 
-  my $opf_file_path_name = File::Spec->catfile($epub_destination_directory,
-                                        $epub_document_dir_name, 
$opf_filename);
+  my $opf_file_path_name = join('/', ($epub_destination_directory,
+                                     $epub_document_dir_name, $opf_filename));
   my ($encoded_opf_file_path_name, $opf_path_encoding)
     = $self->encoded_output_file_name($opf_file_path_name);
   my ($opf_fh, $error_message_opf)
@@ -912,8 +904,8 @@ EOT
   my $js_weblabels_id;
   if (defined($self->get_conf('JS_WEBLABELS_FILE'))) {
     my $js_weblabels_file_name = $self->get_conf('JS_WEBLABELS_FILE');
-    my $js_licenses_file_path = 
File::Spec->catfile($epub_document_destination_directory,
-                                                    $js_weblabels_file_name);
+    my $js_licenses_file_path = join('/', 
($epub_document_destination_directory,
+                                           $js_weblabels_file_name));
     if (-e $js_licenses_file_path) {
       $js_weblabels_id = 'jsweblabels';
       print $opf_fh "      <item id=\"${js_weblabels_id}\" "
@@ -937,8 +929,8 @@ EOT
   }
   if (defined($epub_info_js_dir_name)) {
     my $info_js_destination_dir
-               = File::Spec->catdir($epub_destination_directory,
-                                    $epub_document_dir_name, 
$epub_info_js_dir_name);
+          = join('/', ($epub_destination_directory,
+                       $epub_document_dir_name, $epub_info_js_dir_name));
     my $opendir_success = opendir(JSPATH, $info_js_destination_dir);
     if (not $opendir_success) {
       $self->converter_document_error(
@@ -1024,8 +1016,8 @@ EOT
       return 1;
     }
 
-    my $epub_document_dir_path = 
File::Spec->catdir($epub_destination_directory,
-                                                    $epub_document_dir_name);
+    my $epub_document_dir_path = join('/', ($epub_destination_directory,
+                                            $epub_document_dir_name));
     my ($encoded_epub_document_dir_path, $epub_document_dir_path_encoding)
       = $self->encoded_output_file_name($epub_document_dir_path);
     my $epub_document_dir_name_ret_code
diff --git a/tp/ext/latex2html.pm b/tp/ext/latex2html.pm
index 719dd4a664..345ed2f001 100644
--- a/tp/ext/latex2html.pm
+++ b/tp/ext/latex2html.pm
@@ -233,8 +233,7 @@ sub l2h_process($$)
   my $encoded_l2h_latex_file_name = encode('UTF-8', $l2h_latex_file_name);
   my $l2h_latex_path_string = 
File::Spec->catfile($destination_directory_string,
                                                   
$encoded_l2h_latex_file_name);
-  $l2h_cache_path_name = File::Spec->catfile($destination_directory,
-                                             "${docu_name}-l2h_cache.pm");
+  $l2h_cache_path_name = "$destination_directory/${docu_name}-l2h_cache.pm";
   # set consistently with $l2h_latex_file_name to ensure that
   # latex2html will create a file with this name.
   my $l2h_html_file_name = "${l2h_name}.html";
@@ -573,11 +572,10 @@ sub l2h_retrieve_from_html($$)
 
   my @html_retrieved_text_indices;   # the text indices retrieved
 
-  my $l2h_html_path_name = File::Spec->catfile($destination_directory,
-                                               $l2h_html_file_name);
+  my $l2h_html_path_name = "$destination_directory/$l2h_html_file_name";
   my $encoded_l2h_html_file_name = encode('UTF-8', $l2h_html_file_name);
-  my $l2h_html_path_string = File::Spec->catfile($destination_directory_string,
-                                                 $encoded_l2h_html_file_name);
+  my $l2h_html_path_string
+      = "$destination_directory_string/$encoded_l2h_html_file_name";
 
   if (! open(L2H_HTML, "<$l2h_html_path_string")) {
     $self->converter_document_error(
@@ -778,8 +776,7 @@ sub l2h_init_cache($)
     my $loaded_path;
     # do require a relative path, or to have . in INC
     if (not File::Spec->file_name_is_absolute($l2h_cache_path_name)) {
-      $loaded_path = File::Spec->catfile(File::Spec->curdir(),
-                                       $encoded_l2h_cache_path_name);
+      $loaded_path = File::Spec->curdir()."/$encoded_l2h_cache_path_name";
     } else {
       $loaded_path = $encoded_l2h_cache_path_name;
     }
@@ -861,8 +858,7 @@ sub l2h_from_cache($$)
       my $encoded_cached_image_file_name
             = encode('UTF-8', $cached_image_file_name);
       my $cached_image_path_string
-         = File::Spec->catfile($destination_directory_string,
-                               $encoded_cached_image_file_name);
+         = "$destination_directory_string/$encoded_cached_image_file_name";
       unless (-e $cached_image_path_string) {
         return undef;
       }
diff --git a/tp/ext/tex4ht.pm b/tp/ext/tex4ht.pm
index 7e5492e664..01dbb0d734 100644
--- a/tp/ext/tex4ht.pm
+++ b/tp/ext/tex4ht.pm
@@ -196,8 +196,8 @@ sub tex4ht_prepare($$)
        = 
$self->encoded_output_file_name($formats{$format}->{'html_basefile_name'});
     $formats{$format}->{'html_basefile_path'} = $encoded_html_basefile_name;
 
-    my $tex4ht_file_path_name = File::Spec->catfile($tex4ht_out_dir,
-                                    $formats{$format}->{'basefile_name'});
+    my $tex4ht_file_path_name
+      = "$tex4ht_out_dir/$formats{$format}->{'basefile_name'}";
     my ($encoded_tex4ht_file_path_name, $tex4ht_path_encoding)
       = $self->encoded_output_file_name($tex4ht_file_path_name);
     $formats{$format}->{'counter'} = 0;
diff --git a/tp/init/chm.pm b/tp/init/chm.pm
index c63e4509bc..17faceb98a 100644
--- a/tp/init/chm.pm
+++ b/tp/init/chm.pm
@@ -214,7 +214,7 @@ sub chm_init($)
   $outdir = File::Spec->curdir() if ($outdir eq '');
 
   my $hhk_filename = $document_name . ".hhk";
-  my $hhk_file_path_name = File::Spec->catfile($outdir, $hhk_filename);
+  my $hhk_file_path_name = join('/', ($outdir, $hhk_filename));
   my ($encoded_hhk_file_path_name, $hhk_path_encoding)
     = $self->encoded_output_file_name($hhk_file_path_name);
   my ($hhk_fh, $hhk_error_message)
@@ -296,7 +296,7 @@ sub chm_init($)
   }
 
   my $hhc_filename = $document_name . ".hhc";
-  my $hhc_file_path_name = File::Spec->catfile($outdir, $hhc_filename);
+  my $hhc_file_path_name = join('/', ($outdir, $hhc_filename));
   my ($encoded_hhc_file_path_name, $hhc_path_encoding)
     = $self->encoded_output_file_name($hhc_file_path_name);
   my ($hhc_fh, $hhc_error_message)
@@ -378,7 +378,7 @@ sub chm_init($)
   }
 
   my $hhp_filename = $document_name . ".hhp";
-  my $hhp_file_path_name = File::Spec->catfile($outdir, $hhp_filename);
+  my $hhp_file_path_name = join('/', ($outdir, $hhp_filename));
   my ($encoded_hhp_file_path_name, $hhp_path_encoding)
     = $self->encoded_output_file_name($hhp_file_path_name);
   my ($hhp_fh, $hhp_error_message)
diff --git a/tp/t/test_utils.pl b/tp/t/test_utils.pl
index cde82b9b72..509ab51266 100644
--- a/tp/t/test_utils.pl
+++ b/tp/t/test_utils.pl
@@ -98,7 +98,7 @@ Locale::Messages->select_package('gettext_pp');
 my $srcdir = $ENV{'srcdir'};
 # fallback based on Texinfo::ModulePath $top_srcdir
 if (!defined($srcdir) and defined($Texinfo::ModulePath::top_srcdir)) {
-  $srcdir = File::Spec->catdir($Texinfo::ModulePath::top_srcdir, 'tp');
+  $srcdir = join('/', ($Texinfo::ModulePath::top_srcdir, 'tp'));
 }
 
 my $locales_srcdir;
@@ -1722,16 +1722,14 @@ sub test($$)
               foreach my $dir_name (@epub_package_dirs) {
                 my $reference_EPUB_dir;
                 my $reference_xhtml_dir;
-                my $ref_epub_package = File::Spec->catdir($reference_dir,
-                                                          $dir_name);
+                my $ref_epub_package = join('/', ($reference_dir, $dir_name));
                 if (-r $ref_epub_package and -d $ref_epub_package) {
-                  $reference_EPUB_dir = File::Spec->catdir($ref_epub_package,
-                                                           'EPUB');
+                  $reference_EPUB_dir = join('/', ($ref_epub_package, 'EPUB'));
                   if (-r $reference_EPUB_dir and -d $reference_EPUB_dir) {
                     $used_dir = 1;
 
                     my $results_EPUB_dir
-                      = File::Spec->catdir($results_dir, $dir_name, 'EPUB');
+                      = join('/', ($results_dir, $dir_name, 'EPUB'));
                     my $EPUB_dir_errors
                       = compare_dirs_files($reference_EPUB_dir,
                                            $results_EPUB_dir);
@@ -1743,10 +1741,10 @@ sub test($$)
                     }
 
                     $reference_xhtml_dir
-                      = File::Spec->catdir($reference_EPUB_dir, 'xhtml');
+                      = join('/', ($reference_EPUB_dir, 'xhtml'));
                     if (-r $reference_xhtml_dir and -d $reference_xhtml_dir) {
                       my $results_xhtml_dir
-                        = File::Spec->catdir($results_EPUB_dir, 'xhtml');
+                        = join('/', ($results_EPUB_dir, 'xhtml'));
                       my $xhtml_dir_errors
                         = compare_dirs_files($reference_xhtml_dir,
                                              $results_xhtml_dir);
diff --git a/tp/texi2any.pl b/tp/texi2any.pl
index ab015139a2..85d69d1081 100755
--- a/tp/texi2any.pl
+++ b/tp/texi2any.pl
@@ -80,34 +80,34 @@ BEGIN
 
     # To find Texinfo::ModulePath
     if (defined($ENV{'top_builddir'})) {
-      unshift @INC, File::Spec->catdir($ENV{'top_builddir'}, 'tp');
+      unshift @INC, join('/', ($ENV{'top_builddir'}, 'tp'));
     } else {
-      unshift @INC, File::Spec->catdir($command_directory);
+      unshift @INC, $command_directory;
     }
 
     require Texinfo::ModulePath;
     Texinfo::ModulePath::init(undef, undef, undef, 'updirs' => 1);
   } else {
     # Look for modules in their installed locations.
-    my $modules_dir = File::Spec->catdir($datadir, $converter);
+    my $modules_dir = join('/', ($datadir, $converter));
     # look for package data in the installed location.
     # actually the same as $converterdatadir in main program below, but use
     # another name to avoid confusion.
     my $modules_converterdatadir = $modules_dir;
-    $xsdir = File::Spec->catdir($libdir, $converter);
+    $xsdir = join('/', ($libdir, $converter));
 
     # try to make package relocatable, will only work if
     # standard relative paths are used
-    if (! -f File::Spec->catfile($modules_dir, 'Texinfo', 'Parser.pm')
-        and -f File::Spec->catfile($command_directory, $updir, 'share',
-                                   $converter, 'Texinfo', 'Parser.pm')) {
-      $modules_dir = File::Spec->catdir($command_directory, $updir,
-                                          'share', $converter);
+    if (! -f join('/', ($modules_dir, 'Texinfo', 'Parser.pm'))
+        and -f join('/', ($command_directory, $updir, 'share',
+                          $converter, 'Texinfo', 'Parser.pm'))) {
+      $modules_dir = join('/', ($command_directory, $updir,
+                                'share', $converter));
       $modules_converterdatadir
-                  = File::Spec->catdir($command_directory, $updir,
-                                               'share', $converter);
-      $xsdir = File::Spec->catdir($command_directory, $updir,
-                                          'lib', $converter);
+                  = join('/', ($command_directory, $updir,
+                                               'share', $converter));
+      $xsdir = join('/', ($command_directory, $updir,
+                                          'lib', $converter));
     }
 
     unshift @INC, $modules_dir;
@@ -156,6 +156,9 @@ my $sysconfdir;
 #my $pkgdatadir;
 my $converter;
 
+# the result is not good when using rootdir, maybe using a concatenation
+# of rootdir would be better.
+#my $fallback_prefix = join('/', (File::Spec->rootdir(), 'usr', 'local'));
 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
@@ -164,33 +167,30 @@ my $fallback_prefix = 
File::Spec->catdir(File::Spec->rootdir(), 'usr', 'local');
 if ('@sysconfdir@' ne '@' . 'sysconfdir@') {
   $sysconfdir = eval '"@sysconfdir@"';
 } else {
-  $sysconfdir = File::Spec->catdir($fallback_prefix, 'etc');
+  $sysconfdir = "$fallback_prefix/etc";
 }
 
 if ('@datarootdir@' ne '@' . 'datarootdir@') {
   $datarootdir = eval '"@datarootdir@"';
 } else {
-  $datarootdir = File::Spec->catdir($fallback_prefix, 'share');
+  $datarootdir = "$fallback_prefix/share";
 }
 
 if ('@datadir@' ne '@' . 'datadir@' and '@PACKAGE@' ne '@' . 'PACKAGE@') {
   $datadir = eval '"@datadir@"';
   my $package = '@PACKAGE@';
   $converter = '@CONVERTER@';
-  #$pkgdatadir = File::Spec->catdir($datadir, $package);
 } else {
-  $datadir = File::Spec->catdir($fallback_prefix, 'share');
-  #$pkgdatadir = File::Spec->catdir($datadir, 'texinfo');
+  $datadir = "$fallback_prefix/share";
   $converter = 'texi2any';
 }
 
 my $extensions_dir;
 if ($Texinfo::ModulePath::texinfo_uninstalled) {
-  $extensions_dir = File::Spec->catdir($Texinfo::ModulePath::top_srcdir,
-                                       'tp', 'ext');
+  $extensions_dir = join('/', ($Texinfo::ModulePath::top_srcdir, 'tp', 'ext'));
 } else {
   $extensions_dir
-    = File::Spec->catdir($Texinfo::ModulePath::converterdatadir, 'ext');
+    = join('/', ($Texinfo::ModulePath::converterdatadir, 'ext'));
 }
 
 my $internal_extension_dirs = [$extensions_dir];
@@ -417,7 +417,7 @@ sub add_config_paths($$$$;$$) {
   if (defined($ENV{$env_string}) and $ENV{$env_string} ne '') {
     foreach my $dir (split(':', $ENV{$env_string})) {
       if ($dir ne '') {
-        push @xdg_result_dirs, File::Spec->catdir($dir, $subdir);
+        push @xdg_result_dirs, "$dir/$subdir";
         $used_xdg_base_dirs{$dir} = 1;
       }
     }
@@ -426,12 +426,12 @@ sub add_config_paths($$$$;$$) {
   my %used_base_dirs;
   if (defined($installation_dir)) {
       #and not $used_base_dirs{$installation_dir}) {
-    my $install_result_dir = File::Spec->catdir($installation_dir, $subdir);
+    my $install_result_dir = "$installation_dir/$subdir";
     push @result_dirs, $install_result_dir;
     $used_base_dirs{$installation_dir} = 1;
     if ($overriding_dirs and $overriding_dirs->{$installation_dir}) {
       my $deprecated_dir
-       = File::Spec->catdir($overriding_dirs->{$installation_dir}, $subdir);
+       = "$overriding_dirs->{$installation_dir}/$subdir";
       if (not $used_xdg_base_dirs{$deprecated_dir}) {
         $deprecated_dirs->{$deprecated_dir} = $install_result_dir;
         push @result_dirs, $deprecated_dir;
@@ -442,7 +442,7 @@ sub add_config_paths($$$$;$$) {
 
   foreach my $dir (@xdg_result_dirs) {
     if (!$used_base_dirs{$dir}) {
-      push @result_dirs, File::Spec->catdir($dir, $subdir);
+      push @result_dirs, "$dir/$subdir";
       $used_base_dirs{$dir} = 1;
     }
   }
@@ -450,7 +450,7 @@ sub add_config_paths($$$$;$$) {
   # to also use XDG Base Directory Specification defaults
   #foreach my $dir (@$default_base_dirs) {
   #  if (!$used_base_dirs{$dir}) {
-  #    push @result_dirs, File::Spec->catdir($dir, $subdir);
+  #    push @result_dirs, "$dir/$subdir";
   #  }
   #}
   return \@result_dirs;
@@ -460,16 +460,16 @@ sub set_subdir_directories($$) {
   my $subdir = shift;
   my $deprecated_dirs = shift;
 
-  my @result = File::Spec->catdir('.'.$subdir);
+  my @result = ('.'."/$subdir");
 
   my $config_home;
   my $deprecated_config_home;
   if (defined($ENV{'XDG_CONFIG_HOME'}) and $ENV{'XDG_CONFIG_HOME'} ne '') {
-    $config_home = File::Spec->catdir($ENV{'XDG_CONFIG_HOME'}, $subdir);
+    $config_home = $ENV{'XDG_CONFIG_HOME'}."/$subdir";
   } else {
     if (defined($ENV{'HOME'})) {
-      $config_home = File::Spec->catdir($ENV{'HOME'}, '.config', $subdir);
-      $deprecated_config_home = File::Spec->catdir($ENV{'HOME'}, '.'.$subdir);
+      $config_home = join('/', ($ENV{'HOME'}, '.config', $subdir));
+      $deprecated_config_home = $ENV{'HOME'}.'/.'.$subdir;
       $deprecated_dirs->{$deprecated_config_home} = $config_home;
     }
   }
@@ -479,12 +479,12 @@ sub set_subdir_directories($$) {
   push @result, $deprecated_config_home
     if (defined($deprecated_config_home));
 
-  my $sysconf_install_dir = File::Spec->catdir($sysconfdir, 'xdg');
+  my $sysconf_install_dir = "$sysconfdir/xdg";
   # associate new location to deprecated location
   my $overriding_dirs = {$sysconf_install_dir => $sysconfdir};
   # in 2024, mark $sysconfdir overriden by $sysconfdir/xdg.
   my $config_dirs = add_config_paths('XDG_CONFIG_DIRS', $subdir,
-                       ['/etc/xdg'], File::Spec->catdir($sysconfdir, 'xdg'),
+                       ['/etc/xdg'], "$sysconfdir/xdg",
                        $overriding_dirs, $deprecated_dirs);
   push @result, @$config_dirs;
 
@@ -498,7 +498,7 @@ sub set_subdir_directories($$) {
   # datadir, there is no need for customization of those directories
   # since the sysconfdir directories are already customized, just use
   # the installation directory.
-  push @result, File::Spec->catdir($datadir, $subdir);
+  push @result, "$datadir/$subdir";
 
   return \@result;
 }
@@ -510,9 +510,9 @@ my $language_config_dirs
   = set_subdir_directories('texinfo', \%deprecated_directories);
 my @texinfo_language_config_dirs = @$language_config_dirs;
 
-#push @texinfo_language_config_dirs, File::Spec->catdir($sysconfdir, 'texinfo')
+#push @texinfo_language_config_dirs, "$sysconfdir/texinfo"
 #                               if (defined($sysconfdir));
-#push @texinfo_language_config_dirs, File::Spec->catdir($datadir, 'texinfo')
+#push @texinfo_language_config_dirs, "$datadir/texinfo"
 #                               if (defined($datadir));
 
 # these variables are used as part of binary strings.
@@ -525,21 +525,21 @@ my $converter_config_dirs_array_ref
 @converter_config_dirs = ($curdir, @$converter_config_dirs_array_ref);
 
 #@converter_config_dirs
-#   = ($curdir, File::Spec->catdir($curdir, ".$converter"));
-#push @converter_config_dirs, File::Spec->catdir($ENV{'HOME'}, ".$converter")
+#   = ($curdir, "$curdir/.$converter");
+#push @converter_config_dirs, $ENV{'HOME'}."/.$converter")
 #       if (defined($ENV{'HOME'}));
-#push @converter_config_dirs, File::Spec->catdir($sysconfdir, $converter)
+#push @converter_config_dirs, "$sysconfdir/$converter"
 #       if (defined($sysconfdir));
-#push @converter_config_dirs, File::Spec->catdir($datadir, $converter)
+#push @converter_config_dirs, "$datadir/$converter"
 #  if (defined($datadir));
 
 @converter_init_dirs = @converter_config_dirs;
 foreach my $texinfo_config_dir (@texinfo_language_config_dirs) {
-  my $init_dir = File::Spec->catdir($texinfo_config_dir, 'init');
+  my $init_dir = "$texinfo_config_dir/init";
   push @converter_init_dirs, $init_dir;
   if ($deprecated_directories{$texinfo_config_dir}) {
     $deprecated_directories{$init_dir}
-   = File::Spec->catdir($deprecated_directories{$texinfo_config_dir}, 'init');
+      = "$deprecated_directories{$texinfo_config_dir}/init";
   }
 }
 
@@ -1527,7 +1527,7 @@ Texinfo::Convert::Utils->import();
 
 if (not get_conf('TEST') and $Texinfo::ModulePath::texinfo_uninstalled) {
   push @texinfo_language_config_dirs,
-    File::Spec->catdir($Texinfo::ModulePath::top_srcdir, 'util');
+    join('/', ($Texinfo::ModulePath::top_srcdir, 'util'));
 }
 
 if ($Texinfo::ModulePath::texinfo_uninstalled) {



reply via email to

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