texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: Decode/encode fixes


From: Patrice Dumas
Subject: branch master updated: Decode/encode fixes
Date: Mon, 28 Feb 2022 06:03:43 -0500

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

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 2124a851e8 Decode/encode fixes
2124a851e8 is described below

commit 2124a851e81954f9ca66bab55dc8073cb9809338
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Mon Feb 28 12:03:30 2022 +0100

    Decode/encode fixes
    
    * tp/Texinfo/Convert/HTML.pm (output): set 'destination_directory'
    global info to a decoded string.
    
    * tp/Texinfo/Convert/HTML.pm (html_image_file_location_name):
    return the image path encoding.
    
    * tp/init/epub3.pm, tp/init/latex2html.pm, tp/init/tex4ht.pm:
    more decoding/encoding fixes.
---
 .gitignore                                         |   4 +
 ChangeLog                                          |  13 ++
 tp/TODO                                            |  22 ++-
 tp/Texinfo/Convert/HTML.pm                         |   9 +-
 tp/init/epub3.pm                                   |  35 +++-
 tp/init/latex2html.pm                              |  22 ++-
 tp/init/tex4ht.pm                                  |  23 ++-
 tp/tests/many_input_files/Makefile.am              |  17 +-
 .../many_input_files/output_dir_file_non_ascii.sh  |  74 ++++++++
 .../encod\303\251/non_as\303\247\303\256_i.info"   |  25 +++
 .../output_dir_file_non_ascii.2                    |   0
 .../stdout_output_dir_file_non_ascii.out           |   0
 tp/tests/many_input_files/output_dir_non_ascii.sh  |  74 ++++++++
 .../encod\303\251/simplest.info"                   |  24 +++
 .../output_dir_non_ascii.2                         |   0
 .../stdout_output_dir_non_ascii.out                |   0
 tp/tests/many_input_files/tex_l2h.sh               |   2 -
 ...{tex_l2h.sh => tex_l2h_output_dir_non_ascii.sh} |  31 ++-
 .../encod\303\251/tex_complex-l2h_cache.pm"        |  75 ++++++++
 .../encod\303\251/tex_complex.html"                | 134 +++++++++++++
 .../encod\303\251/tex_complex_l2h.html"            | 102 ++++++++++
 .../encod\303\251/tex_complex_l2h.tex"             |  65 +++++++
 .../encod\303\251/tex_complex_l2h_images.tex"      | 160 ++++++++++++++++
 .../encod\303\251/tex_complex_l2h_labels.pl"       |  13 ++
 .../encod\303\251/tex_encod\303\251-l2h_cache.pm"  |  45 +++++
 .../encod\303\251/tex_encod\303\251.html"          | 207 +++++++++++++++++++++
 .../encod\303\251/tex_encod\303\251_l2h.html"      |  68 +++++++
 .../encod\303\251/tex_encod\303\251_l2h.tex"       |  36 ++++
 .../tex_encod\303\251_l2h_images.tex"              | 141 ++++++++++++++
 .../encod\303\251/tex_encod\303\251_l2h_labels.pl" |  13 ++
 .../tex_l2h_output_dir_non_ascii.2                 |   2 +
 tp/tests/many_input_files/tex_t4ht.sh              |   2 -
 ...ex_t4ht.sh => tex_t4ht_output_dir_non_ascii.sh} |  18 +-
 .../encod\303\251/tex_complex.html"                | 107 +++++++++++
 .../encod\303\251/tex_complex_tex4ht_tex.4ct"      |   2 +
 .../encod\303\251/tex_complex_tex4ht_tex.4tc"      |   1 +
 .../encod\303\251/tex_complex_tex4ht_tex.css"      |  44 +++++
 .../encod\303\251/tex_complex_tex4ht_tex.lg"       |  58 ++++++
 .../encod\303\251/tex_complex_tex4ht_tex.tex"      |  24 +++
 .../encod\303\251/tex_complex_tex4ht_tex.tmp"      |   2 +
 .../encod\303\251/tex_complex_tex4ht_tex.xref"     |   1 +
 .../encod\303\251/tex_encod\303\251.html"          | 197 ++++++++++++++++++++
 .../tex_encod\303\251_tex4ht_tex.4ct"              |   2 +
 .../tex_encod\303\251_tex4ht_tex.4tc"              |   1 +
 .../tex_encod\303\251_tex4ht_tex.css"              |  43 +++++
 .../encod\303\251/tex_encod\303\251_tex4ht_tex.lg" |  56 ++++++
 .../tex_encod\303\251_tex4ht_tex.tex"              |  16 ++
 .../tex_encod\303\251_tex4ht_tex.tmp"              |   2 +
 .../tex_encod\303\251_tex4ht_tex.xref"             |   1 +
 .../tex_t4ht_output_dir_non_ascii.2                |   0
 50 files changed, 1955 insertions(+), 58 deletions(-)

diff --git a/.gitignore b/.gitignore
index 81ac6b313a..ee21815143 100644
--- a/.gitignore
+++ b/.gitignore
@@ -211,8 +211,12 @@ tp/tests/test_scripts/*.trs
 tp/tests/many_input_files/different_encodings
 tp/tests/many_input_files/different_languages_gen_master_menu
 tp/tests/many_input_files/input_dir_non_ascii
+tp/tests/many_input_files/output_dir_non_ascii
+tp/tests/many_input_files/output_dir_file_non_ascii
 tp/tests/many_input_files/tex_l2h
 tp/tests/many_input_files/tex_t4ht
+tp/tests/many_input_files/tex_l2h_output_dir_non_ascii
+tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii
 tp/tests/many_input_files/raw_out
 tp/tests/many_input_files/*.log
 tp/tests/many_input_files/*.trs
diff --git a/ChangeLog b/ChangeLog
index 12789c833a..62cfd1545f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2022-02-28  Patrice Dumas  <pertusus@free.fr>
+
+       Decode/encode fixes
+
+       * tp/Texinfo/Convert/HTML.pm (output): set 'destination_directory'
+       global info to a decoded string.
+
+       * tp/Texinfo/Convert/HTML.pm (html_image_file_location_name):
+       return the image path encoding.
+
+       * tp/init/epub3.pm, tp/init/latex2html.pm, tp/init/tex4ht.pm:
+       more decoding/encoding fixes.
+
 2022-02-27  Patrice Dumas  <pertusus@free.fr>
 
        Output and read latex2html files in utf-8
diff --git a/tp/TODO b/tp/TODO
index fe6c2fe554..e836898c95 100644
--- a/tp/TODO
+++ b/tp/TODO
@@ -64,14 +64,25 @@ CPP line directive with accented characters already in 
tests:
 But the test needs also to be done in non utf8 locale (still TODO for XS 
Parser)
 ./texi2any.pl cpp_line_latin1.texi
 
+test l2h and tex4ht with non ascii file names in non utf8 locale.
+corresponds to tex_l2h_output_dir_non_ascii.sh
+tex_t4ht_output_dir_non_ascii.sh.
+Maybe with non utf8 input files too?
+
+epub tests would also be interesting in 8 byte locale, with
+8 byte documents.  In the EPUB specification it is said
+6.1.3 File Paths and File Names
+ File Names and Paths MUST be UTF-8 [Unicode] encoded.
+
+
+
 Add tests even if not as interesting in UTF8 locale as in non UTF8
 ./texi2any.pl --set TEXINFO_OUTPUT_FORMAT=debugtree --set USE_NODES=0 -o 
résultat/encodé.txt ./t/input_files/simplest_no_node_section.texi
 
-./texi2any.pl -o encodé/ ./t/input_files/simplest.texi
 
-./texi2any.pl -o encodé/assé.info ./t/input_files/simplest.texi
 
-test l2h with non ascii file names
+Texinfo/Convert/Text.pm output()
+checks decoded/encoded + fix.  Need to verify input available information
 
 
 Should we warn if output is on STDOUT and OUTPUT_ENCODING_NAME != 
MESSAGE_OUTPUT_ENCODING_NAME?
@@ -86,6 +97,11 @@ output_files_register_closed
 output_files_open_out
 locate_include_file (also in output)
 
+Document bytes in output
+html_image_file_location_name: $image_path
+
+Document new return of html_image_file_location_name
+
 
 Test of init/highlight_syntax.pm with non ascii characters in highlighted
 @example contents.
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index 8c1ffc0b7d..5ab3c2fddf 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -262,7 +262,7 @@ sub html_image_file_location_name($$$$)
   my $image_basefile;
   my $image_extension;
   # this variable is bytes encoded in the filesystem encoding
-  my $image_path;
+  my ($image_path, $image_path_encoding);
   if (defined($args->[0]->{'monospacetext'}) and $args->[0]->{'monospacetext'} 
ne '') {
     $image_basefile = $args->[0]->{'monospacetext'};
     my $extension;
@@ -277,6 +277,7 @@ sub html_image_file_location_name($$$$)
            = $self->Texinfo::Common::locate_include_file($file_name);
       if (defined($located_image_path) and $located_image_path ne '') {
         $image_path = $located_image_path;
+        $image_path_encoding = $file_name_encoding;
         # use the @-command argument and not the file found using the
         # include paths.  It is considered that the files in include paths
         # will be moved by the caller anyway.
@@ -297,8 +298,8 @@ sub html_image_file_location_name($$$$)
       }
     }
   }
-  # TODO set and return $image_path_encoding?
-  return ($image_file, $image_basefile, $image_extension, $image_path);
+  return ($image_file, $image_basefile, $image_extension, $image_path,
+          $image_path_encoding);
 }
 
 sub css_add_info($$$;$)
@@ -9315,7 +9316,7 @@ sub output($$)
 
   # set for init files
   $self->{'document_name'} = $document_name;
-  $self->{'destination_directory'} = $created_directory;
+  $self->{'destination_directory'} = $destination_directory;
 
   # set information, to have it available for the conversions below,
   # in translate_names called by _prepare_conversion_tree_units and in
diff --git a/tp/init/epub3.pm b/tp/init/epub3.pm
index f23c02f032..bcb5b32141 100644
--- a/tp/init/epub3.pm
+++ b/tp/init/epub3.pm
@@ -44,6 +44,8 @@ use File::Copy;
 # for fileparse
 use File::Basename;
 
+use Encode qw(decode);
+
 # the Archive::Zip module is required below only if needed, that is
 # if EPUB_CREATE_CONTAINER is set.
 #use Archive::Zip;
@@ -153,8 +155,9 @@ sub epub_convert_image_command($$$$)
   my $result = &{$self->default_command_conversion($cmdname)}($self,
                                                  $cmdname, $command, $args);
 
-  my ($image_file, $image_basefile, $image_extension, $image_path)
-      = $self->html_image_file_location_name($cmdname, $command, $args);
+  my ($image_file, $image_basefile, $image_extension, $image_path,
+      $image_path_encoding)
+        = $self->html_image_file_location_name($cmdname, $command, $args);
   if (defined($image_file)) {
     if (not defined($image_path)) {
       $self->document_error($self,
@@ -164,21 +167,31 @@ sub epub_convert_image_command($$$$)
       my $images_destination_dir
                = File::Spec->catdir($epub_destination_directory,
                                     $epub_document_dir_name, 
$epub_images_dir_name);
-      if (! -d $images_destination_dir) {
-        if (!mkdir($images_destination_dir, oct(755))) {
+      my ($encoded_images_destination_dir, $images_destination_dir_encoding)
+        = $self->encoded_file_name($images_destination_dir);
+      if (! -d $encoded_images_destination_dir) {
+        if (!mkdir($encoded_images_destination_dir, oct(755))) {
           $self->document_error($self, sprintf(__(
                                  "could not create directory `%s': %s"),
                                          $images_destination_dir, $!));
           return $result;
         }
       }
-      my $image_destination_path = File::Spec->catfile($images_destination_dir,
-                                                       $image_file);
-      my $copy_succeeded = copy($image_path, $image_destination_path);
+      my $image_destination_path_name
+         = File::Spec->catfile($images_destination_dir, $image_file);
+      my ($encoded_image_dest_path_name, $image_dest_path_encoding)
+        = $self->encoded_file_name($image_destination_path_name);
+      my $copy_succeeded = copy($image_path, $encoded_image_dest_path_name);
       if (not $copy_succeeded) {
+        my $image_path_text;
+        if (defined($image_path_encoding)) {
+          $image_path_text = decode($image_path_encoding, $image_path);
+        } else {
+          $image_path_text = $image_path;
+        }
         $self->document_error($self, sprintf(__(
-                            "could not copy `%s' to `%s': %s"),
-                            $image_path, $image_destination_path, $!));
+                     "could not copy `%s' to `%s': %s"),
+                        $image_path_text, $image_destination_path_name, $!));
       }
       $epub_images{$image_file} = $image_extension;
     }
@@ -341,7 +354,9 @@ sub epub_finish($$)
   my $meta_inf_directory_name = 'META-INF';
   my $meta_inf_directory = File::Spec->catdir($epub_destination_directory,
                                               $meta_inf_directory_name);
-  if (!mkdir($meta_inf_directory, oct(755))) {
+  my ($encoded_meta_inf_directory, $meta_inf_directory_encoding)
+    = $self->encoded_file_name($meta_inf_directory);
+  if (!mkdir($encoded_meta_inf_directory, oct(755))) {
     $self->document_error($self, sprintf(__(
                                  "could not create directory `%s': %s"),
                                          $meta_inf_directory, $!));
diff --git a/tp/init/latex2html.pm b/tp/init/latex2html.pm
index ab1ac26103..5482d1a459 100644
--- a/tp/init/latex2html.pm
+++ b/tp/init/latex2html.pm
@@ -639,10 +639,24 @@ sub l2h_finish($)
     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 File::Spec->catpath($docu_volume, $docu_directories, $file);
+    my ($encoded_dir, $dir_encoding) = $self->encoded_file_name($dir);
+    my ($encoded_docu_directories, $docu_directories_encoding)
+      = $self->encoded_file_name($docu_directories);
+    my ($encoded_docu_volume, $docu_volume_encoding)
+      = $self->encoded_file_name($docu_volume);
+    if (opendir (DIR, $encoded_dir)) {
+      foreach my $file (readdir(DIR)) {
+        # FIXME there is a mix of files created by texi2any and files
+        # created by latex2html.  The encoding of files created by
+        # texi2any and by latex2html could be different.  We could imagine
+        # that for latex2html it would be DATA_INPUT_ENCODING_NAME, without
+        # certainty.  We use the encoding used to encode our files
+        my $file_name = decode($dir_encoding, $file);
+        if ($file_name =~ /^$quoted_l2h_name/) {
+          # FIXME error condition not checked
+          unlink File::Spec->catpath($encoded_docu_volume,
+                                     $encoded_docu_directories, $file);
+        }
       }
     }
   }
diff --git a/tp/init/tex4ht.pm b/tp/init/tex4ht.pm
index 9e62814a63..2eb27bd24d 100644
--- a/tp/init/tex4ht.pm
+++ b/tp/init/tex4ht.pm
@@ -156,7 +156,6 @@ sub tex4ht_prepare($$)
     # perl encode to latin1.  But with other non ascii characters than
     # latin1 characters, there will be utf8 output anyway.
     if (scalar(@{$format_collected_commands{$format}}) > 0) {
-      
       local *TEX4HT_TEXFILE;
       unless (open(*TEX4HT_TEXFILE, ">$encoded_tex4ht_file_path_name")) {
         $self->document_warn($self,
@@ -257,13 +256,15 @@ sub tex4ht_prepare($$)
 sub tex4ht_convert($)
 {
   my $self = shift;
-  unless (chdir $tex4ht_out_dir) {
+  my ($encoded_tex4ht_out_dir, $tex4ht_out_dir_encoding)
+    = $self->encoded_file_name($tex4ht_out_dir);
+  unless (chdir $encoded_tex4ht_out_dir) {
     $self->document_warn($self,
             sprintf(__("tex4ht.pm: chdir %s failed: %s"),
                          $tex4ht_out_dir, $!));
     return 0;
   }
-  print STDERR "cwd($tex4ht_out_dir): " . Cwd::cwd() ."\n"
+  print STDERR "cwd($encoded_tex4ht_out_dir): " . Cwd::cwd() ."\n"
     if ($self->get_conf('VERBOSE'));
 
   my $errors = 0;
@@ -397,8 +398,20 @@ sub tex4ht_finish($)
   # this is different from the warning in tex4ht_process_command as, here,
   # this is the number of retrieved fragment, not processed fragment.
   if ($self->get_conf('VERBOSE')) {
-    foreach my $command (keys(%commands)) {
-      if ($commands{$command}->{'output_counter'} != 
$commands{$command}->{'counter'}) {
+    foreach my $command (sort(keys(%commands))) {
+      if (not defined($commands{$command}->{'output_counter'})) {
+        if (defined($commands{$command}->{'counter'})) {
+          $self->document_warn($self, sprintf(__(
+           "tex4ht.pm: output counter UNDEF; expected %d, the number of items 
found in the document for \@%s"),
+                                 $commands{$command}->{'counter'}, $command));
+        } else {
+          $self->document_warn($self, sprintf(__(
+            "tex4ht.pm: UNDEF expected items in the document for \@%s"),
+                                             $command));
+        }
+      } elsif ($commands{$command}->{'output_counter'} != 
$commands{$command}->{'counter'}) {
+        # NOTE with math commands in @copying and multiple @insertcopying,
+        # there may be more items output than found in the document tree
         $self->document_warn($self, sprintf(__(
            "tex4ht.pm: processing retrieved %d items in HTML; expected %d, the 
number of items found in the document for \@%s"),
                                   $commands{$command}->{'output_counter'},
diff --git a/tp/tests/many_input_files/Makefile.am 
b/tp/tests/many_input_files/Makefile.am
index a595b0fc5f..be4d800622 100644
--- a/tp/tests/many_input_files/Makefile.am
+++ b/tp/tests/many_input_files/Makefile.am
@@ -11,6 +11,9 @@
 
 EXTRA_DIST = $(TESTS) \
   tex_l2h_res tex_t4ht_res different_encodings_res 
different_languages_gen_master_menu_res \
+  input_dir_non_ascii_res output_dir_non_ascii_res \
+  output_dir_file_non_ascii_res tex_t4ht_output_dir_non_ascii_res \
+  tex_l2h_output_dir_non_ascii_res \
   input_files/no_master_menu_fr.texi \
   input_files/no_master_menu_no_documentlanguage.texi \
   input_files/simple_including_file.texi \
@@ -19,13 +22,17 @@ EXTRA_DIST = $(TESTS) \
 
 TESTS = tex_l2h.sh tex_t4ht.sh \
   different_encodings.sh different_languages_gen_master_menu.sh \
-  input_dir_non_ascii.sh
+  input_dir_non_ascii.sh output_dir_non_ascii.sh \
+  output_dir_file_non_ascii.sh tex_t4ht_output_dir_non_ascii.sh \
+  tex_l2h_output_dir_non_ascii.sh
+
 AM_TESTS_ENVIRONMENT = srcdir="$(srcdir)"; export srcdir; 
top_srcdir="$(top_srcdir)"; export top_srcdir; builddir="$(builddir)"; export 
buildir; top_builddir="$(top_builddir)"; export top_builddir;
 
-tex_html_dirs = tex_l2h tex_t4ht
+tex_html_dirs = tex_l2h tex_t4ht tex_t4ht_output_dir_non_ascii \
+  tex_l2h_output_dir_non_ascii
 
 tests_dirs = different_encodings different_languages_gen_master_menu \
-  input_dir_non_ascii
+  input_dir_non_ascii output_dir_non_ascii output_dir_file_non_ascii
 
 long-checks: all
        $(MAKE) $(AM_MAKEFLAGS) check LONG_TESTS=yes
@@ -47,6 +54,8 @@ copy-tex-html:
                        echo "No dir $$dir/"; \
                fi; \
        done
+       cp -fpR tex_t4ht_output_dir_non_ascii/encodé/ 
tex_t4ht_output_dir_non_ascii_res/
+       cp -fpR tex_l2h_output_dir_non_ascii/encodé/ 
tex_l2h_output_dir_non_ascii_res/
 
 copy-tests:
        for dir in $(tests_dirs); do \
@@ -61,6 +70,8 @@ copy-tests:
                        echo "No dir $$dir/"; \
                fi; \
        done
+       cp -fpR output_dir_non_ascii/encodé/ output_dir_non_ascii_res/
+       cp -fpR output_dir_file_non_ascii/encodé/ output_dir_file_non_ascii_res/
 
 DISTCLEANFILES = *.log
 
diff --git a/tp/tests/many_input_files/output_dir_file_non_ascii.sh 
b/tp/tests/many_input_files/output_dir_file_non_ascii.sh
new file mode 100755
index 0000000000..d313ec35fd
--- /dev/null
+++ b/tp/tests/many_input_files/output_dir_file_non_ascii.sh
@@ -0,0 +1,74 @@
+#! /bin/sh
+#
+# Copyright 2022 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Originally written by Patrice Dumas.
+
+LC_ALL=C.UTF-8; export LC_ALL
+LANGUAGE=C.UTF-8; export LANGUAGE
+
+basename=output_dir_file_non_ascii
+diffs_dir=diffs
+raw_output_dir=raw_out
+logfile=$basename.log
+stdout_file=stdout_$basename.out
+
+[ "z$srcdir" = 'z' ] && srcdir=.
+
+. ../../defs || exit 1
+
+[ -d $diffs_dir ] || mkdir $diffs_dir
+staging_dir=$diffs_dir/staging
+[ -d $staging_dir ] || mkdir $staging_dir
+[ -d $raw_output_dir ] || mkdir $raw_output_dir
+
+echo "$basename" > $logfile
+
+[ -d $basename ] && rm -rf $basename
+raw_outdir=$raw_output_dir/$basename
+[ -d $raw_outdir ] && rm -rf $raw_outdir
+mkdir $basename
+: > $basename/$stdout_file
+
+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 
--html --no-split --set-customization-variable 'TEST 1' --conf-dir 
$srcdir/../../init --out $basename/encodé/non_asçî_i.info 
$srcdir/../formatting/simplest.texi --force >> $basename/$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 'TEST 1' --conf-dir $srcdir/../../init --out 
$basename/encodé/non_asçî_i.info $srcdir/../formatting/simplest.texi --force >> 
$basename/$stdout_file 2>$basename/${basename}.2
+
+return_code=0
+ret=$?
+if [ $ret != 0 ]; then
+  echo "F: $basename/$basename.2"
+  return_code=1
+else
+  outdir=$basename
+  cp -pr $outdir $raw_output_dir
+
+  dir=$basename
+  if [ -d "$srcdir/${dir}_res" ]; then
+    rm -rf $staging_dir/${dir}_res
+    cp -pr "$srcdir/${dir}_res" $staging_dir
+    chmod -R u+w "$staging_dir/${dir}_res"
+    diff $DIFF_U_OPTION -r "$staging_dir/${dir}_res" "$outdir" 2>>$logfile > 
"$diffs_dir/$dir.diff"
+    dif_ret=$?
+    if [ $dif_ret != 0 ]; then
+      echo "D: $diffs_dir/$dir.diff"
+      return_code=1
+    else
+      rm "$diffs_dir/$dir.diff"
+    fi
+  else
+    echo "no res: ${dir}_res"
+  fi
+fi
+
+rm -rf $tmp_dir
+
+exit $return_code
+
diff --git 
"a/tp/tests/many_input_files/output_dir_file_non_ascii_res/encod\303\251/non_as\303\247\303\256_i.info"
 
"b/tp/tests/many_input_files/output_dir_file_non_ascii_res/encod\303\251/non_as\303\247\303\256_i.info"
new file mode 100644
index 0000000000..769178982a
--- /dev/null
+++ 
"b/tp/tests/many_input_files/output_dir_file_non_ascii_res/encod\303\251/non_as\303\247\303\256_i.info"
@@ -0,0 +1,25 @@
+This is non_asçî_i.info, produced by texi2any version from
+simplest.texi.
+
+
+File: non_asçî_i.info,  Node: Top,  Up: (dir)
+
+top section
+***********
+
+1 Chapter
+*********
+
+This is a very simple texi manual   <>.
+
+
+
+Tag Table:
+Node: Top77
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git 
a/tp/tests/many_input_files/output_dir_file_non_ascii_res/output_dir_file_non_ascii.2
 
b/tp/tests/many_input_files/output_dir_file_non_ascii_res/output_dir_file_non_ascii.2
new file mode 100644
index 0000000000..e69de29bb2
diff --git 
a/tp/tests/many_input_files/output_dir_file_non_ascii_res/stdout_output_dir_file_non_ascii.out
 
b/tp/tests/many_input_files/output_dir_file_non_ascii_res/stdout_output_dir_file_non_ascii.out
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tp/tests/many_input_files/output_dir_non_ascii.sh 
b/tp/tests/many_input_files/output_dir_non_ascii.sh
new file mode 100755
index 0000000000..d3da66dc86
--- /dev/null
+++ b/tp/tests/many_input_files/output_dir_non_ascii.sh
@@ -0,0 +1,74 @@
+#! /bin/sh
+#
+# Copyright 2022 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Originally written by Patrice Dumas.
+
+LC_ALL=C.UTF-8; export LC_ALL
+LANGUAGE=C.UTF-8; export LANGUAGE
+
+basename=output_dir_non_ascii
+diffs_dir=diffs
+raw_output_dir=raw_out
+logfile=$basename.log
+stdout_file=stdout_$basename.out
+
+[ "z$srcdir" = 'z' ] && srcdir=.
+
+. ../../defs || exit 1
+
+[ -d $diffs_dir ] || mkdir $diffs_dir
+staging_dir=$diffs_dir/staging
+[ -d $staging_dir ] || mkdir $staging_dir
+[ -d $raw_output_dir ] || mkdir $raw_output_dir
+
+echo "$basename" > $logfile
+
+[ -d $basename ] && rm -rf $basename
+raw_outdir=$raw_output_dir/$basename
+[ -d $raw_outdir ] && rm -rf $raw_outdir
+mkdir $basename
+: > $basename/$stdout_file
+
+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 
--html --no-split --set-customization-variable 'TEST 1' --conf-dir 
$srcdir/../../init --out $basename/encodé/ $srcdir/../formatting/simplest.texi 
--force >> $basename/$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 'TEST 1' --conf-dir $srcdir/../../init --out 
$basename/encodé/ $srcdir/../formatting/simplest.texi --force >> 
$basename/$stdout_file 2>$basename/${basename}.2
+
+return_code=0
+ret=$?
+if [ $ret != 0 ]; then
+  echo "F: $basename/$basename.2"
+  return_code=1
+else
+  outdir=$basename
+  cp -pr $outdir $raw_output_dir
+
+  dir=$basename
+  if [ -d "$srcdir/${dir}_res" ]; then
+    rm -rf $staging_dir/${dir}_res
+    cp -pr "$srcdir/${dir}_res" $staging_dir
+    chmod -R u+w "$staging_dir/${dir}_res"
+    diff $DIFF_U_OPTION -r "$staging_dir/${dir}_res" "$outdir" 2>>$logfile > 
"$diffs_dir/$dir.diff"
+    dif_ret=$?
+    if [ $dif_ret != 0 ]; then
+      echo "D: $diffs_dir/$dir.diff"
+      return_code=1
+    else
+      rm "$diffs_dir/$dir.diff"
+    fi
+  else
+    echo "no res: ${dir}_res"
+  fi
+fi
+
+rm -rf $tmp_dir
+
+exit $return_code
+
diff --git 
"a/tp/tests/many_input_files/output_dir_non_ascii_res/encod\303\251/simplest.info"
 
"b/tp/tests/many_input_files/output_dir_non_ascii_res/encod\303\251/simplest.info"
new file mode 100644
index 0000000000..f7e9f5b003
--- /dev/null
+++ 
"b/tp/tests/many_input_files/output_dir_non_ascii_res/encod\303\251/simplest.info"
@@ -0,0 +1,24 @@
+This is simplest.info, produced by texi2any version from simplest.texi.
+
+
+File: simplest.info,  Node: Top,  Up: (dir)
+
+top section
+***********
+
+1 Chapter
+*********
+
+This is a very simple texi manual   <>.
+
+
+
+Tag Table:
+Node: Top73
+
+End Tag Table
+
+
+Local Variables:
+coding: utf-8
+End:
diff --git 
a/tp/tests/many_input_files/output_dir_non_ascii_res/output_dir_non_ascii.2 
b/tp/tests/many_input_files/output_dir_non_ascii_res/output_dir_non_ascii.2
new file mode 100644
index 0000000000..e69de29bb2
diff --git 
a/tp/tests/many_input_files/output_dir_non_ascii_res/stdout_output_dir_non_ascii.out
 
b/tp/tests/many_input_files/output_dir_non_ascii_res/stdout_output_dir_non_ascii.out
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tp/tests/many_input_files/tex_l2h.sh 
b/tp/tests/many_input_files/tex_l2h.sh
index e135b6e6f4..1c448d8c82 100755
--- a/tp/tests/many_input_files/tex_l2h.sh
+++ b/tp/tests/many_input_files/tex_l2h.sh
@@ -90,8 +90,6 @@ else
     rm -rf $staging_dir/${dir}_res
     cp -pr "$srcdir/${dir}_res" $staging_dir
     chmod -R u+w "$staging_dir/${dir}_res"
-    rm -rf $staging_dir/${dir}_res/CVS $staging_dir/${dir}_res/.svn
-    #diff -u --exclude=CVS --exclude='*.png' -r "$srcdir/${dir}_res" "${dir}" 
2>>$logfile > "$diffs_dir/$dir.diff"
     diff $DIFF_U_OPTION -r "$staging_dir/${dir}_res" "$outdir" 2>>$logfile > 
"$diffs_dir/$dir.diff"
     dif_ret=$?
     if [ $dif_ret != 0 ]; then
diff --git a/tp/tests/many_input_files/tex_l2h.sh 
b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii.sh
similarity index 72%
copy from tp/tests/many_input_files/tex_l2h.sh
copy to tp/tests/many_input_files/tex_l2h_output_dir_non_ascii.sh
index e135b6e6f4..60e3d652bf 100755
--- a/tp/tests/many_input_files/tex_l2h.sh
+++ b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii.sh
@@ -12,14 +12,15 @@
 #
 # Originally written by Patrice Dumas.
 
-LC_ALL=C; export LC_ALL
+LC_ALL=C.UTF-8; export LC_ALL
+LANGUAGE=C.UTF-8; export LANGUAGE
 
 if test "z$TEX_HTML_TESTS" != z'yes'; then
   echo "Skipping HTML TeX tests that are not easily reproducible ($0)"
   exit 77
 fi
 
-basename=tex_l2h
+basename=tex_l2h_output_dir_non_ascii
 diffs_dir=diffs
 raw_output_dir=raw_out
 logfile=$basename.log
@@ -53,8 +54,8 @@ raw_outdir=$raw_output_dir/$basename
 [ -d $raw_outdir ] && rm -rf $raw_outdir
 mkdir $basename
 : > $basename/$stdout_file
-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 'HTML_MATH l2h' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init --set-cus [...]
-$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 'HTML_MATH l2h' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init  --set-customiz [...]
+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 'HTML_MATH l2h' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init  --set-cu [...]
+$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 'HTML_MATH l2h' --set-customization-variable 
L2H_FILE=$srcdir/../../t/init/l2h.init  --set-customiz [...]
 
 return_code=0
 ret=$?
@@ -63,26 +64,26 @@ if [ $ret != 0 ]; then
   return_code=1
 else
   outdir=$basename
-  cp -pr $outdir $raw_output_dir
-  rm -f $outdir/*_l2h_images.log $outdir/*.aux $outdir/*_l2h.css \
-        $outdir/*_l2h_images.out $outdir/*_l2h_images.pl 
$outdir/*_l2h_images.pdf \
-        $outdir/*.png $outdir/*.svg $outdir/$stdout_file
+  cp -pr "$outdir" "$raw_output_dir"
+  destination_outdir="$outdir/encodé/"
+  destination_raw_outdir="$raw_outdir/encodé/"
+  rm -f $destination_outdir/*_l2h_images.log $destination_outdir/*.aux 
$destination_outdir/*_l2h.css \
+        $destination_outdir/*_l2h_images.out 
$destination_outdir/*_l2h_images.pl $destination_outdir/*_l2h_images.pdf \
+        $destination_outdir/*.png $destination_outdir/*.svg 
$outdir/$stdout_file
   sed -e 's/^texexpand.*/texexpand /' \
       -e '/is no longer supported at.*line/d' "$raw_outdir/$basename.2" > 
"$outdir/$basename.2"
 
-  #for file in "$raw_outdir/"*.html "$raw_outdir/"*_l2h_images.pl 
"$raw_outdir/"*-l2h_cache.pm; do
-  for file in "$raw_outdir/"*.html "$raw_outdir/"*-l2h_cache.pm; do
+  for file in "$destination_raw_outdir/"*.html 
"$destination_raw_outdir/"*-l2h_cache.pm; do
     filename=`basename "$file"`
     sed -e 's/WIDTH="\([0-9]*\)\([0-9]\)"/WIDTH="100"/' \
         -e 's/CONTENT="LaTeX2HTML.*/CONTENT="LaTeX2HTML">/' \
         -e 's/with LaTeX2HTML.*/with LaTeX2HTML/' \
         -e 's/^# LaTeX2HTML.*/# LaTeX2HTML/' \
-         "$file" > "$outdir/$filename"
+         "$file" > "$destination_outdir/$filename"
   done
-    
-  for file in "$raw_outdir/"*_l2h_labels.pl; do
+  for file in "$destination_raw_outdir/"*_l2h_labels.pl; do
     filename=`basename "$file"`
-    sed -e 's/^# LaTeX2HTML.*/# LaTeX2HTML/' "$file" > "$outdir/$filename"
+    sed -e 's/^# LaTeX2HTML.*/# LaTeX2HTML/' "$file" > 
"$destination_outdir/$filename"
   done
 
   dir=$basename
@@ -90,8 +91,6 @@ else
     rm -rf $staging_dir/${dir}_res
     cp -pr "$srcdir/${dir}_res" $staging_dir
     chmod -R u+w "$staging_dir/${dir}_res"
-    rm -rf $staging_dir/${dir}_res/CVS $staging_dir/${dir}_res/.svn
-    #diff -u --exclude=CVS --exclude='*.png' -r "$srcdir/${dir}_res" "${dir}" 
2>>$logfile > "$diffs_dir/$dir.diff"
     diff $DIFF_U_OPTION -r "$staging_dir/${dir}_res" "$outdir" 2>>$logfile > 
"$diffs_dir/$dir.diff"
     dif_ret=$?
     if [ $dif_ret != 0 ]; then
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex-l2h_cache.pm"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex-l2h_cache.pm"
new file mode 100644
index 0000000000..14e12dac1d
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex-l2h_cache.pm"
@@ -0,0 +1,75 @@
+# Automatically generated
+use utf8;
+
+$l2h_cache_key = q/$$
+ U w V^\dagger
+$$/;
+$l2h_cache{$l2h_cache_key} = q|<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+U w V^\dagger
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.54ex; vertical-align: -0.12ex; " SRC="tex_complex_3.svg"
+ ALT="$\displaystyle U w V^\dagger
+$">
+</DIV>
+|;
+
+$l2h_cache_key = q/$$
+\omega = h ( \eta , \varphi) 
+$$/;
+$l2h_cache{$l2h_cache_key} = q|<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+\omega = h ( \eta , \varphi)
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " SRC="tex_complex_5.svg"
+ ALT="$\displaystyle \omega = h ( \eta , \varphi)
+$">
+</DIV>
+|;
+
+$l2h_cache_key = q/$$\partial_{\eta} g(\eta(t),\varphi(t));
+$$/;
+$l2h_cache{$l2h_cache_key} = q|<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+\partial_{\eta} g(\eta(t),\varphi(t));
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.86ex; vertical-align: -0.78ex; " SRC="tex_complex_1.svg"
+ ALT="$\displaystyle \partial_{\eta} g(\eta(t),\varphi(t));
+$">
+</DIV>
+|;
+
+$l2h_cache_key = q/$(I-D) \varphi(t)$/;
+$l2h_cache{$l2h_cache_key} = q|<!-- MATH
+ $(I-D) \varphi(t)$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " SRC="tex_complex_2.svg"
+ ALT="$(I-D) \varphi(t)$"></SPAN>|;
+
+$l2h_cache_key = q/$\phi w V^t$/;
+$l2h_cache{$l2h_cache_key} = q|<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.75ex; vertical-align: -0.57ex; " SRC="tex_complex_4.svg"
+ ALT="$\phi w V^t$"></SPAN>|;
+
+$l2h_cache_key = q/$h \dot \psi^\phi$/;
+$l2h_cache{$l2h_cache_key} = q|<!-- MATH
+ $h \dot \psi^\phi$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 3.07ex; vertical-align: -0.57ex; " SRC="tex_complex_6.svg"
+ ALT="$h \dot \psi^\phi$"></SPAN>|;
+
+1;
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex.html"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex.html"
new file mode 100644
index 0000000000..aed5247b16
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex.html"
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<!-- $$\partial_{\eta} g(\eta(t),\varphi(t));
+$$
+
+Some (I-D) \varphi(t) math. -->
+<title>The title</title>
+
+<meta name="description" content="The title">
+<meta name="keywords" content="The title">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2any">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<style type="text/css">
+<!--
+span.program-in-footer {font-size: smaller}
+-->
+</style>
+
+
+</head>
+
+<body lang="en">
+<h1 class="title">The title</h1>
+
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+\partial_{\eta} g(\eta(t),\varphi(t));
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.86ex; vertical-align: -0.78ex; " SRC="tex_complex_1.svg"
+ ALT="$\displaystyle \partial_{\eta} g(\eta(t),\varphi(t));
+$">
+</DIV>
+
+
+<p>Some <!-- MATH
+ $(I-D) \varphi(t)$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " SRC="tex_complex_2.svg"
+ ALT="$(I-D) \varphi(t)$"></SPAN> math.
+</p><hr>
+
+
+<div class="top-level-extent" id="Top">
+<h1 class="top" id="The-title">The title</h1>
+
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+\partial_{\eta} g(\eta(t),\varphi(t));
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.86ex; vertical-align: -0.78ex; " SRC="tex_complex_1.svg"
+ ALT="$\displaystyle \partial_{\eta} g(\eta(t),\varphi(t));
+$">
+</DIV>
+
+
+<p>Some <!-- MATH
+ $(I-D) \varphi(t)$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " SRC="tex_complex_2.svg"
+ ALT="$(I-D) \varphi(t)$"></SPAN> math.
+</p>
+<p>Tex:
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+U w V^\dagger
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.54ex; vertical-align: -0.12ex; " SRC="tex_complex_3.svg"
+ ALT="$\displaystyle U w V^\dagger
+$">
+</DIV>
+
+</p>
+<p>and math <SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.75ex; vertical-align: -0.57ex; " SRC="tex_complex_4.svg"
+ ALT="$\phi w V^t$"></SPAN>.
+</p>
+<p>Now there is a footnote<a class="footnote" id="DOCF1" 
href="#FOOT1"><sup>1</sup></a>
+</p>
+<div class="footnotes-segment">
+<hr>
+<h3 class="footnotes-heading">Footnotes</h3>
+
+<h5 class="footnote-body-heading"><a id="FOOT1" href="#DOCF1">(1)</a></h5>
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+\omega = h ( \eta , \varphi)
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " SRC="tex_complex_5.svg"
+ ALT="$\displaystyle \omega = h ( \eta , \varphi)
+$">
+</DIV>
+
+
+<p>and math <!-- MATH
+ $h \dot \psi^\phi$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 3.07ex; vertical-align: -0.57ex; " SRC="tex_complex_6.svg"
+ ALT="$h \dot \psi^\phi$"></SPAN>.
+</p>
+</div>
+<hr>
+</div>
+<p>
+  <span class="program-in-footer">This document was generated on <em 
class="emph">a sunny day</em> using <a class="uref" 
href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.</span>
+</p>
+
+
+</body>
+</html>
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h.html"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h.html"
new file mode 100644
index 0000000000..d8b53cfe37
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h.html"
@@ -0,0 +1,102 @@
+<!DOCTYPE HTML>
+
+<!--Converted with LaTeX2HTML
+<HTML lang="en">
+<HEAD>
+<TITLE>tex_complex_l2h</TITLE>
+<META NAME="description" CONTENT="tex_complex_l2h">
+<META NAME="keywords" CONTENT="tex_complex_l2h">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<META NAME="viewport" CONTENT="width=device-width, initial-scale=1.0">
+<META NAME="Generator" CONTENT="LaTeX2HTML">
+
+<LINK REL="STYLESHEET" HREF="tex_complex_l2h.css">
+
+</HEAD>
+
+<BODY >
+
+<!-- l2h_begin tex_complex_l2h 1 -->
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+\partial_{\eta} g(\eta(t),\varphi(t));
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.86ex; vertical-align: -0.78ex; " 
SRC="tex_complex_l2h_img1.svg"
+ ALT="$\displaystyle \partial_{\eta} g(\eta(t),\varphi(t));
+$">
+</DIV>
+
+
+<!-- l2h_end tex_complex_l2h 1 -->
+
+<!-- l2h_begin tex_complex_l2h 2 -->
+<!-- MATH
+ $(I-D) \varphi(t)$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " 
SRC="tex_complex_l2h_img2.svg"
+ ALT="$(I-D) \varphi(t)$"></SPAN>
+
+<!-- l2h_end tex_complex_l2h 2 -->
+
+<!-- l2h_begin tex_complex_l2h 3 -->
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+U w V^\dagger
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.54ex; vertical-align: -0.12ex; " 
SRC="tex_complex_l2h_img3.svg"
+ ALT="$\displaystyle U w V^\dagger
+$">
+</DIV>
+
+
+<!-- l2h_end tex_complex_l2h 3 -->
+
+<!-- l2h_begin tex_complex_l2h 4 -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.75ex; vertical-align: -0.57ex; " 
SRC="tex_complex_l2h_img4.svg"
+ ALT="$\phi w V^t$"></SPAN>
+
+<!-- l2h_end tex_complex_l2h 4 -->
+
+<!-- l2h_begin tex_complex_l2h 5 -->
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+\omega = h ( \eta , \varphi)
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " 
SRC="tex_complex_l2h_img5.svg"
+ ALT="$\displaystyle \omega = h ( \eta , \varphi)
+$">
+</DIV>
+
+
+<!-- l2h_end tex_complex_l2h 5 -->
+
+<!-- l2h_begin tex_complex_l2h 6 -->
+<!-- MATH
+ $h \dot \psi^\phi$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 3.07ex; vertical-align: -0.57ex; " 
SRC="tex_complex_l2h_img6.svg"
+ ALT="$h \dot \psi^\phi$"></SPAN>
+
+<!-- l2h_end tex_complex_l2h 6 -->
+<BR>
+<HR>
+</BODY>
+</HTML>
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h.tex"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h.tex"
new file mode 100644
index 0000000000..8431099b54
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h.tex"
@@ -0,0 +1,65 @@
+% This document was automatically generated by the l2h extenstion of texi2html
+% DO NOT EDIT !!!
+\documentclass{article}
+\usepackage{html}
+\begin{document}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_complex_l2h 1 -->
+\end{rawhtml}
+$$\partial_{\eta} g(\eta(t),\varphi(t));
+$$
+\begin{rawhtml}
+<!-- l2h_end tex_complex_l2h 1 -->
+
+\end{rawhtml}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_complex_l2h 2 -->
+\end{rawhtml}
+$(I-D) \varphi(t)$
+\begin{rawhtml}
+<!-- l2h_end tex_complex_l2h 2 -->
+
+\end{rawhtml}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_complex_l2h 3 -->
+\end{rawhtml}
+$$
+ U w V^\dagger
+$$
+\begin{rawhtml}
+<!-- l2h_end tex_complex_l2h 3 -->
+
+\end{rawhtml}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_complex_l2h 4 -->
+\end{rawhtml}
+$\phi w V^t$
+\begin{rawhtml}
+<!-- l2h_end tex_complex_l2h 4 -->
+
+\end{rawhtml}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_complex_l2h 5 -->
+\end{rawhtml}
+$$
+\omega = h ( \eta , \varphi) 
+$$
+\begin{rawhtml}
+<!-- l2h_end tex_complex_l2h 5 -->
+
+\end{rawhtml}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_complex_l2h 6 -->
+\end{rawhtml}
+$h \dot \psi^\phi$
+\begin{rawhtml}
+<!-- l2h_end tex_complex_l2h 6 -->
+
+\end{rawhtml}
+\end{document}
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h_images.tex"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h_images.tex"
new file mode 100644
index 0000000000..890c3f7c8f
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h_images.tex"
@@ -0,0 +1,160 @@
+\batchmode
+
+\documentclass{article}
+\RequirePackage{ifthen}
+
+
+\usepackage{html}
+
+
+\usepackage{xcolor}
+
+
+
+\makeatletter
+
+\makeatletter
+\count@=\the\catcode`\_ \catcode`\_=8 
+\newenvironment{tex2html_wrap}{}{}%
+\catcode`\<=12\catcode`\_=\count@
+\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname 
#1\endcsname}%
+\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname 
#1\endcsname{}%
+  \expandafter\renewcommand\csname #1\endcsname}%
+\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
+\let\newedcommand\renewedcommand
+\let\renewedenvironment\newedenvironment
+\makeatother
+\let\mathon=$
+\let\mathoff=$
+\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
+\newbox\sizebox
+\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
+\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
+\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
+\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
+\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
+\setlength{\textheight}{554pt}
+\newwrite\lthtmlwrite
+\makeatletter
+\let\realnormalsize=\normalsize
+\global\topskip=2sp
+\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
+\def\@float{\let\@savefreelist\@freelist\real@float}
+\def\liih@math{\ifmmode$\else\bad@math\fi}
+\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
+\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
+\let\@largefloatcheck=\relax
+\let\if@boxedmulticols=\iftrue
+\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
+\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
+ \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
+ \def\phantompar{\csname par\endcsname}\normalsize}%
+\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
+\usepackage[tightpage,active]{preview}
+\PreviewBorder=1bp
+\newbox\lthtmlPageBox
+\newdimen\lthtmlCropMarkHeight
+\newdimen\lthtmlCropMarkDepth
+\long\def\lthtmlTightVBoxA#1{\def\lthtmllabel{#1}
+    \setbox\lthtmlPageBox\vbox\bgroup\catcode`\_=8 }%
+\long\def\lthtmlTightVBoxZ{\egroup
+    \lthtmlCropMarkHeight=\ht\lthtmlPageBox \advance \lthtmlCropMarkHeight 6pt
+    \lthtmlCropMarkDepth=\dp\lthtmlPageBox
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkHeight:=\the\lthtmlCropMarkHeight}%
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkDepth:=\the\lthtmlCropMarkDepth:1ex:=\the
 \dimexpr 1ex}%
+    \begin{preview}\copy\lthtmlPageBox\end{preview}}%
+\long\def\lthtmlTightFBoxA#1{\def\lthtmllabel{#1}%
+    \adjustnormalsize\setbox\lthtmlPageBox=\vbox\bgroup\hbox\bgroup %
+    \let\ifinner=\iffalse \let\)\liih@math %
+    \bgroup\catcode`\_=8 }%
+\long\def\lthtmlTightFBoxZ{\egroup\egroup
+    \@next\next\@currlist{}{\def\next{\voidb@x}}%
+    \expandafter\box\next\egroup %
+    \lthtmlCropMarkHeight=\ht\lthtmlPageBox \advance \lthtmlCropMarkHeight 6pt
+    \lthtmlCropMarkDepth=\dp\lthtmlPageBox
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkHeight:=\the\lthtmlCropMarkHeight}%
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkDepth:=\the\lthtmlCropMarkDepth:1ex:=\the
 \dimexpr 1ex}%
+    \begin{preview}\copy\lthtmlPageBox\end{preview}}%
+    
\long\def\lthtmlinlinemathA#1#2\lthtmlindisplaymathZ{\lthtmlTightVBoxA{#1}{\hbox\bgroup#2\egroup}\lthtmlTightVBoxZ}
+    
\def\lthtmlinlineA#1#2\lthtmlinlineZ{\lthtmlTightVBoxA{#1}{\hbox\bgroup#2\egroup}\lthtmlTightVBoxZ}
+    
\long\def\lthtmldisplayA#1#2\lthtmldisplayZ{\lthtmlTightVBoxA{#1}{#2}\lthtmlTightVBoxZ}
+    
\long\def\lthtmldisplayB#1#2\lthtmldisplayZ{\\edef\preveqno{(\theequation)}%
+        \lthtmlTightVBoxA{#1}{\let\@eqnnum\relax#2}\lthtmlTightVBoxZ}
+    \long\def\lthtmlfigureA#1{\let\@savefreelist\@freelist
+        \lthtmlTightFBoxA{#1}}
+    \long\def\lthtmlfigureZ{
+        \lthtmlTightFBoxZ\global\let\@freelist\@savefreelist}
+    \long\def\lthtmlpictureA#1{\let\@savefreelist\@freelist
+        \lthtmlTightVBoxA{#1}}
+    \long\def\lthtmlpictureZ{
+        \lthtmlTightVBoxZ\global\let\@freelist\@savefreelist}
+\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize 
+  \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
+  \else\expandafter\vss\fi}%
+\providecommand{\selectlanguage}[1]{}%
+\makeatletter \tracingstats = 1 
+
+
+\begin{document}
+\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength 
oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
+\makeatletter
+\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
+\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
+\lthtmltypeout{}%
+\makeatother
+\setcounter{page}{1}
+\onecolumn
+
+% !!! IMAGES START HERE !!!
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_indisplay19}%
+$\displaystyle \partial_{\eta} g(\eta(t),\varphi(t));
+$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_inline8}%
+$(I-D) \varphi(t)$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_indisplay22}%
+$\displaystyle U w V^\dagger
+$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_inline12}%
+$\phi w V^t$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_indisplay25}%
+$\displaystyle \omega = h ( \eta , \varphi) 
+$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_inline16}%
+$h \dot \psi^\phi$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+
+\end{document}
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h_labels.pl"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h_labels.pl"
new file mode 100644
index 0000000000..ecc7b241c4
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_complex_l2h_labels.pl"
@@ -0,0 +1,13 @@
+# LaTeX2HTML
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251-l2h_cache.pm"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251-l2h_cache.pm"
new file mode 100644
index 0000000000..47a14fc616
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251-l2h_cache.pm"
@@ -0,0 +1,45 @@
+# Automatically generated
+use utf8;
+
+$l2h_cache_key = q/$$
+é \partial_{\eta} g(\eta(t),\varphi(t));
+$$/;
+$l2h_cache{$l2h_cache_key} = q|<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+é \partial_{\eta} g(\eta(t),\varphi(t));
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.86ex; vertical-align: -0.78ex; " SRC="tex_encodé_1.svg"
+ ALT="$\displaystyle é \partial_{\eta} g(\eta(t),\varphi(t));
+$">
+</DIV>
+|;
+
+$l2h_cache_key = q/$$ é ï î  \int v(t)\, dt = u(t) + C
+$$/;
+$l2h_cache{$l2h_cache_key} = q|<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+é ï î  \int v(t)\, dt = u(t) + C
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 5.61ex; vertical-align: -2.12ex; " SRC="tex_encodé_3.svg"
+ ALT="$\displaystyle é ï î \int v(t)\, dt = u(t) + C
+$">
+</DIV>
+|;
+
+$l2h_cache_key = q/$(I-D) é \varphi(t)$/;
+$l2h_cache{$l2h_cache_key} = q|<!-- MATH
+ $(I-D) é \varphi(t)$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " SRC="tex_encodé_2.svg"
+ ALT="$(I-D) é \varphi(t)$"></SPAN>|;
+
+1;
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251.html"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251.html"
new file mode 100644
index 0000000000..e82ff19219
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251.html"
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>top</title>
+
+<meta name="description" content="top">
+<meta name="keywords" content="top">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2any">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<style type="text/css">
+<!--
+span.program-in-footer {font-size: smaller}
+-->
+</style>
+
+
+</head>
+
+<body lang="en">
+<div class="top-level-extent" id="Top">
+<table class="nav-panel" cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[ &lt; ]</td>
+<td valign="middle" align="left">[<a href="#Chapter" title="Next section in 
reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[Contents]</td>
+<td valign="middle" align="left">[Index]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h1 class="top" id="top">top</h1>
+
+<hr style="height: 6px;">
+<div class="chapter-level-extent" id="Chapter">
+<table class="nav-panel" cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Previous section in 
reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[Contents]</td>
+<td valign="middle" align="left">[Index]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h1 class="chapter" id="chap">1 chap</h1>
+
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+é \partial_{\eta} g(\eta(t),\varphi(t));
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.86ex; vertical-align: -0.78ex; " SRC="tex_encodé_1.svg"
+ ALT="$\displaystyle é \partial_{\eta} g(\eta(t),\varphi(t));
+$">
+</DIV>
+
+
+<p>Some <!-- MATH
+ $(I-D) é \varphi(t)$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " SRC="tex_encodé_2.svg"
+ ALT="$(I-D) é \varphi(t)$"></SPAN> math.
+</p>
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+é ï î  \int v(t)\, dt = u(t) + C
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 5.61ex; vertical-align: -2.12ex; " SRC="tex_encodé_3.svg"
+ ALT="$\displaystyle é ï î \int v(t)\, dt = u(t) + C
+$">
+</DIV>
+
+<hr style="height: 6px;">
+</div>
+</div>
+<div class="element-about" id="SEC_About">
+<table class="nav-panel" cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[Contents]</td>
+<td valign="middle" align="left">[Index]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h1 class="about-heading">About This Document</h1>
+
+<p>
+  This document was generated on <em class="emph">a sunny day</em> using <a 
class="uref" href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong class="strong"> Example </strong> assumes that the current 
position is at <strong class="strong"> Subsubsection One-Two-Three </strong> of 
a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+</div><hr>
+<p>
+  <span class="program-in-footer">This document was generated on <em 
class="emph">a sunny day</em> using <a class="uref" 
href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.</span>
+</p>
+
+
+</body>
+</html>
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h.html"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h.html"
new file mode 100644
index 0000000000..8ffcbdd98f
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h.html"
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML>
+
+<!--Converted with LaTeX2HTML
+<HTML lang="en">
+<HEAD>
+<TITLE>tex_encodé_l2h</TITLE>
+<META NAME="description" CONTENT="tex_encodé_l2h">
+<META NAME="keywords" CONTENT="tex_encodé_l2h">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<META NAME="viewport" CONTENT="width=device-width, initial-scale=1.0">
+<META NAME="Generator" CONTENT="LaTeX2HTML">
+
+<LINK REL="STYLESHEET" HREF="tex_encodé_l2h.css">
+
+</HEAD>
+
+<BODY >
+
+<!-- l2h_begin tex_encodé_l2h 1 -->
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+é \partial_{\eta} g(\eta(t),\varphi(t));
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 2.86ex; vertical-align: -0.78ex; " 
SRC="tex_encodé_l2h_img1.svg"
+ ALT="$\displaystyle é \partial_{\eta} g(\eta(t),\varphi(t));
+$">
+</DIV>
+
+
+<!-- l2h_end tex_encodé_l2h 1 -->
+
+<!-- l2h_begin tex_encodé_l2h 2 -->
+<!-- MATH
+ $(I-D) é \varphi(t)$
+ -->
+<SPAN CLASS="MATH"><IMG
+ STYLE="height: 2.78ex; vertical-align: -0.70ex; " 
SRC="tex_encodé_l2h_img2.svg"
+ ALT="$(I-D) é \varphi(t)$"></SPAN>
+
+<!-- l2h_end tex_encodé_l2h 2 -->
+
+<!-- l2h_begin tex_encodé_l2h 3 -->
+<DIV CLASS="displaymath">
+<!-- MATH
+ \begin{displaymath}
+é ï î  \int v(t)\, dt = u(t) + C
+\end{displaymath}
+ -->
+
+<IMG
+ STYLE="height: 5.61ex; vertical-align: -2.12ex; " 
SRC="tex_encodé_l2h_img3.svg"
+ ALT="$\displaystyle é ï î \int v(t)\, dt = u(t) + C
+$">
+</DIV>
+
+
+<!-- l2h_end tex_encodé_l2h 3 -->
+<BR>
+<HR>
+</BODY>
+</HTML>
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h.tex"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h.tex"
new file mode 100644
index 0000000000..f2079f8fa0
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h.tex"
@@ -0,0 +1,36 @@
+% This document was automatically generated by the l2h extenstion of texi2html
+% DO NOT EDIT !!!
+\documentclass{article}
+\usepackage{html}
+\begin{document}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_encodé_l2h 1 -->
+\end{rawhtml}
+$$
+é \partial_{\eta} g(\eta(t),\varphi(t));
+$$
+\begin{rawhtml}
+<!-- l2h_end tex_encodé_l2h 1 -->
+
+\end{rawhtml}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_encodé_l2h 2 -->
+\end{rawhtml}
+$(I-D) é \varphi(t)$
+\begin{rawhtml}
+<!-- l2h_end tex_encodé_l2h 2 -->
+
+\end{rawhtml}
+\begin{rawhtml}
+
+<!-- l2h_begin tex_encodé_l2h 3 -->
+\end{rawhtml}
+$$ é ï î  \int v(t)\, dt = u(t) + C
+$$
+\begin{rawhtml}
+<!-- l2h_end tex_encodé_l2h 3 -->
+
+\end{rawhtml}
+\end{document}
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h_images.tex"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h_images.tex"
new file mode 100644
index 0000000000..6e5c06860a
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h_images.tex"
@@ -0,0 +1,141 @@
+\batchmode
+
+\documentclass{article}
+\RequirePackage{ifthen}
+
+
+\usepackage{html}
+
+
+\usepackage{xcolor}
+
+
+
+\makeatletter
+
+\makeatletter
+\count@=\the\catcode`\_ \catcode`\_=8 
+\newenvironment{tex2html_wrap}{}{}%
+\catcode`\<=12\catcode`\_=\count@
+\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname 
#1\endcsname}%
+\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname 
#1\endcsname{}%
+  \expandafter\renewcommand\csname #1\endcsname}%
+\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}%
+\let\newedcommand\renewedcommand
+\let\renewedenvironment\newedenvironment
+\makeatother
+\let\mathon=$
+\let\mathoff=$
+\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi
+\newbox\sizebox
+\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt}
+\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt}
+\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt}
+\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt}
+\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt}
+\setlength{\textheight}{554pt}
+\newwrite\lthtmlwrite
+\makeatletter
+\let\realnormalsize=\normalsize
+\global\topskip=2sp
+\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float
+\def\@float{\let\@savefreelist\@freelist\real@float}
+\def\liih@math{\ifmmode$\else\bad@math\fi}
+\def\end@float{\realend@float\global\let\@freelist\@savefreelist}
+\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float
+\let\@largefloatcheck=\relax
+\let\if@boxedmulticols=\iftrue
+\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt}
+\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize
+ \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}%
+ \def\phantompar{\csname par\endcsname}\normalsize}%
+\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}%
+\usepackage[tightpage,active]{preview}
+\PreviewBorder=1bp
+\newbox\lthtmlPageBox
+\newdimen\lthtmlCropMarkHeight
+\newdimen\lthtmlCropMarkDepth
+\long\def\lthtmlTightVBoxA#1{\def\lthtmllabel{#1}
+    \setbox\lthtmlPageBox\vbox\bgroup\catcode`\_=8 }%
+\long\def\lthtmlTightVBoxZ{\egroup
+    \lthtmlCropMarkHeight=\ht\lthtmlPageBox \advance \lthtmlCropMarkHeight 6pt
+    \lthtmlCropMarkDepth=\dp\lthtmlPageBox
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkHeight:=\the\lthtmlCropMarkHeight}%
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkDepth:=\the\lthtmlCropMarkDepth:1ex:=\the
 \dimexpr 1ex}%
+    \begin{preview}\copy\lthtmlPageBox\end{preview}}%
+\long\def\lthtmlTightFBoxA#1{\def\lthtmllabel{#1}%
+    \adjustnormalsize\setbox\lthtmlPageBox=\vbox\bgroup\hbox\bgroup %
+    \let\ifinner=\iffalse \let\)\liih@math %
+    \bgroup\catcode`\_=8 }%
+\long\def\lthtmlTightFBoxZ{\egroup\egroup
+    \@next\next\@currlist{}{\def\next{\voidb@x}}%
+    \expandafter\box\next\egroup %
+    \lthtmlCropMarkHeight=\ht\lthtmlPageBox \advance \lthtmlCropMarkHeight 6pt
+    \lthtmlCropMarkDepth=\dp\lthtmlPageBox
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkHeight:=\the\lthtmlCropMarkHeight}%
+    
\lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkDepth:=\the\lthtmlCropMarkDepth:1ex:=\the
 \dimexpr 1ex}%
+    \begin{preview}\copy\lthtmlPageBox\end{preview}}%
+    
\long\def\lthtmlinlinemathA#1#2\lthtmlindisplaymathZ{\lthtmlTightVBoxA{#1}{\hbox\bgroup#2\egroup}\lthtmlTightVBoxZ}
+    
\def\lthtmlinlineA#1#2\lthtmlinlineZ{\lthtmlTightVBoxA{#1}{\hbox\bgroup#2\egroup}\lthtmlTightVBoxZ}
+    
\long\def\lthtmldisplayA#1#2\lthtmldisplayZ{\lthtmlTightVBoxA{#1}{#2}\lthtmlTightVBoxZ}
+    
\long\def\lthtmldisplayB#1#2\lthtmldisplayZ{\\edef\preveqno{(\theequation)}%
+        \lthtmlTightVBoxA{#1}{\let\@eqnnum\relax#2}\lthtmlTightVBoxZ}
+    \long\def\lthtmlfigureA#1{\let\@savefreelist\@freelist
+        \lthtmlTightFBoxA{#1}}
+    \long\def\lthtmlfigureZ{
+        \lthtmlTightFBoxZ\global\let\@freelist\@savefreelist}
+    \long\def\lthtmlpictureA#1{\let\@savefreelist\@freelist
+        \lthtmlTightVBoxA{#1}}
+    \long\def\lthtmlpictureZ{
+        \lthtmlTightVBoxZ\global\let\@freelist\@savefreelist}
+\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize 
+  \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill
+  \else\expandafter\vss\fi}%
+\providecommand{\selectlanguage}[1]{}%
+\makeatletter \tracingstats = 1 
+
+
+\begin{document}
+\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}%
+\lthtmltypeout{latex2htmlLength 
oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}%
+\makeatletter
+\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}%
+\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi%
+\lthtmltypeout{}%
+\makeatother
+\setcounter{page}{1}
+\onecolumn
+
+% !!! IMAGES START HERE !!!
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_indisplay13}%
+$\displaystyle é \partial_{\eta} g(\eta(t),\varphi(t));
+$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_inline8}%
+$(I-D) é \varphi(t)$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+{\newpage\clearpage
+\lthtmlinlinemathA{tex2html_wrap_indisplay16}%
+$\displaystyle é ï î  \int v(t)\, dt = u(t) + C
+$%
+\lthtmlindisplaymathZ
+\lthtmlcheckvsize\clearpage}
+
+
+\end{document}
diff --git 
"a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h_labels.pl"
 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h_labels.pl"
new file mode 100644
index 0000000000..ecc7b241c4
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_l2h_labels.pl"
@@ -0,0 +1,13 @@
+# LaTeX2HTML
+# Associate labels original text with physical files.
+
+
+1;
+
+
+# LaTeX2HTML
+# labels from external_latex_labels array.
+
+
+1;
+
diff --git 
a/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/tex_l2h_output_dir_non_ascii.2
 
b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/tex_l2h_output_dir_non_ascii.2
new file mode 100644
index 0000000000..203b8542c8
--- /dev/null
+++ 
b/tp/tests/many_input_files/tex_l2h_output_dir_non_ascii_res/tex_l2h_output_dir_non_ascii.2
@@ -0,0 +1,2 @@
+texexpand 
+texexpand 
diff --git a/tp/tests/many_input_files/tex_t4ht.sh 
b/tp/tests/many_input_files/tex_t4ht.sh
index df5e5bfbd7..deb04017db 100755
--- a/tp/tests/many_input_files/tex_t4ht.sh
+++ b/tp/tests/many_input_files/tex_t4ht.sh
@@ -55,8 +55,6 @@ else
     rm -rf $staging_dir/${dir}_res
     cp -pr "$srcdir/${dir}_res" $staging_dir
     chmod -R u+w "$staging_dir/${dir}_res"
-    rm -rf $staging_dir/${dir}_res/CVS $staging_dir/${dir}_res/.svn
-    #diff -u --exclude=CVS --exclude='*.png' -r "$srcdir/${dir}_res" "${dir}" 
2>>$logfile > "$diffs_dir/$dir.diff"
     diff $DIFF_U_OPTION -r "$staging_dir/${dir}_res" "${outdir}" 2>>$logfile > 
"$diffs_dir/$dir.diff"
     dif_ret=$?
     if [ $dif_ret != 0 ]; then
diff --git a/tp/tests/many_input_files/tex_t4ht.sh 
b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii.sh
similarity index 72%
copy from tp/tests/many_input_files/tex_t4ht.sh
copy to tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii.sh
index df5e5bfbd7..c420618fc7 100755
--- a/tp/tests/many_input_files/tex_t4ht.sh
+++ b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii.sh
@@ -1,13 +1,14 @@
 #! /bin/sh
 
-LC_ALL=C; export LC_ALL
+LC_ALL=C.UTF-8; export LC_ALL
+LANGUAGE=C.UTF-8; export LANGUAGE
 
 if test "z$TEX_HTML_TESTS" != z'yes'; then
   echo "Skipping HTML TeX tests that are not easily reproducible"
   exit 77
 fi
 
-basename=tex_t4ht
+basename=tex_t4ht_output_dir_non_ascii
 diffs_dir=diffs
 raw_output_dir=raw_out
 logfile=$basename.log
@@ -35,8 +36,8 @@ raw_outdir=$raw_output_dir/$basename
 [ -d $raw_outdir ] && rm -rf $raw_outdir
 mkdir $basename
 : > $basename/$stdout_file
-echo "$PERL -w $srcdir/../../texi2any.pl --set-customization-variable 
'TEXI2HTML 1' --set-customization-variable 'TEST 1' --conf-dir 
$srcdir/../../init --init-file tex4ht.pm --iftex --out $basename/ 
$srcdir/../tex_html/tex_complex.texi $srcdir/../tex_html/tex.texi --force >> 
$basename/$stdout_file 2>$basename/${basename}.2" >> $logfile
-$PERL -w $srcdir/../../texi2any.pl --set-customization-variable 'TEXI2HTML 1' 
--set-customization-variable 'TEST 1' --conf-dir $srcdir/../../init --init-file 
tex4ht.pm --iftex --out $basename/  $srcdir/../tex_html/tex_complex.texi 
$srcdir/../tex_html/tex.texi --force >> $basename/$stdout_file 
2>$basename/${basename}.2
+echo "$PERL -w $srcdir/../../texi2any.pl --set-customization-variable 
'TEXI2HTML 1' --set-customization-variable 'TEST 1' --conf-dir 
$srcdir/../../init --init-file tex4ht.pm --iftex --out $basename/encodé/ 
$srcdir/../tex_html/tex_encodé.texi $srcdir/../tex_html/tex_complex.texi 
--force >> $basename/$stdout_file 2>$basename/${basename}.2" >> $logfile
+$PERL -w $srcdir/../../texi2any.pl --set-customization-variable 'TEXI2HTML 1' 
--set-customization-variable 'TEST 1' --conf-dir $srcdir/../../init --init-file 
tex4ht.pm --iftex --out $basename/encodé/ $srcdir/../tex_html/tex_encodé.texi 
$srcdir/../tex_html/tex_complex.texi --force >> $basename/$stdout_file 
2>$basename/${basename}.2
 
 return_code=0
 ret=$?
@@ -46,17 +47,16 @@ if [ $ret != 0 ]; then
 else
   outdir="$basename"
   cp -pr $outdir $raw_output_dir
-  rm -f $outdir/*_tex4ht_*.log \
-      $outdir/*_tex4ht_*.idv $outdir/*_tex4ht_*.dvi \
-      $outdir/*_tex4ht_tex.html $outdir/*.png $outdir/$stdout_file
+  destination_outdir=$outdir/encodé/
+  rm -f $destination_outdir/*_tex4ht_*.log \
+      $destination_outdir/*_tex4ht_*.idv $destination_outdir/*_tex4ht_*.dvi \
+      $destination_outdir/*_tex4ht_tex.html $destination_outdir/*.png 
$outdir/$stdout_file
 
   dir=${basename}
   if [ -d $srcdir/${dir}_res ]; then
     rm -rf $staging_dir/${dir}_res
     cp -pr "$srcdir/${dir}_res" $staging_dir
     chmod -R u+w "$staging_dir/${dir}_res"
-    rm -rf $staging_dir/${dir}_res/CVS $staging_dir/${dir}_res/.svn
-    #diff -u --exclude=CVS --exclude='*.png' -r "$srcdir/${dir}_res" "${dir}" 
2>>$logfile > "$diffs_dir/$dir.diff"
     diff $DIFF_U_OPTION -r "$staging_dir/${dir}_res" "${outdir}" 2>>$logfile > 
"$diffs_dir/$dir.diff"
     dif_ret=$?
     if [ $dif_ret != 0 ]; then
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex.html"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex.html"
new file mode 100644
index 0000000000..9f29f50179
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex.html"
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<!-- $$\partial_{\eta} g(\eta(t),\varphi(t));
+$$
+
+Some (I-D) \varphi(t) math. -->
+<title>The title</title>
+
+<meta name="description" content="The title">
+<meta name="keywords" content="The title">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2any">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<style type="text/css">
+<!--
+@import "tex_complex_tex4ht_tex.css";
+
+span.program-in-footer {font-size: smaller}
+-->
+</style>
+
+
+</head>
+
+<body lang="en">
+<h1 class="title">The title</h1>
+
+
+    <div class="math-display" >
+<img 
+src="tex_complex_tex4ht_tex0x.png" 
alt="&#x2202;&#x03B7;g(&#x03B7;(t),&#x03C6;(t));
+" class="math-display" ></div>
+<!--l. 6--><p class="indent" >     
+
+<p>Some  (<span 
+class="cmmi-10">I </span><span 
+class="cmsy-10">- </span><span 
+class="cmmi-10">D</span>)<span 
+class="cmmi-10">&#x03C6;</span>(<span 
+class="cmmi-10">t</span>)  math.
+</p><hr>
+
+
+<div class="top-level-extent" id="Top">
+<h1 class="top" id="The-title">The title</h1>
+
+
+    <div class="math-display" >
+<img 
+src="tex_complex_tex4ht_tex0x.png" 
alt="&#x2202;&#x03B7;g(&#x03B7;(t),&#x03C6;(t));
+" class="math-display" ></div>
+<!--l. 6--><p class="indent" >     
+
+<p>Some  (<span 
+class="cmmi-10">I </span><span 
+class="cmsy-10">- </span><span 
+class="cmmi-10">D</span>)<span 
+class="cmmi-10">&#x03C6;</span>(<span 
+class="cmmi-10">t</span>)  math.
+</p>
+<p>Tex:
+
+    <div class="math-display" >
+<img 
+src="tex_complex_tex4ht_tex1x.png" alt="    &#8224;
+UwV
+" class="math-display" ></div>
+<!--l. 13--><p class="indent" >     
+</p>
+<p>and math  <span 
+class="cmmi-10">&#x03D5;wV</span> <sup><span 
+class="cmmi-7">t</span></sup> .
+</p>
+<p>Now there is a footnote<a class="footnote" id="DOCF1" 
href="#FOOT1"><sup>1</sup></a>
+</p>
+<div class="footnotes-segment">
+<hr>
+<h3 class="footnotes-heading">Footnotes</h3>
+
+<h5 class="footnote-body-heading"><a id="FOOT1" href="#DOCF1">(1)</a></h5>
+
+    <div class="math-display" >
+<img 
+src="tex_complex_tex4ht_tex2x.png" alt="&#x03C9; = h(&#x03B7;,&#x03C6; )
+" class="math-display" ></div>
+<!--l. 20--><p class="indent" >     
+
+<p>and math  <span 
+class="cmmi-10">h</span><img 
+src="tex_complex_tex4ht_tex3x.png" alt="&#x03C8;&#x02D9;"  class="dot" 
><sup><span 
+class="cmmi-7">&#x03D5;</span></sup> .
+</p>
+</div>
+<hr>
+</div>
+<p>
+  <span class="program-in-footer">This document was generated on <em 
class="emph">a sunny day</em> using <a class="uref" 
href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.</span>
+</p>
+
+
+</body>
+</html>
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.4ct"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.4ct"
new file mode 100644
index 0000000000..9998f6203d
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.4ct"
@@ -0,0 +1,2 @@
+\expandafter\ifx\csname doTocEntry\endcsname\relax \expandafter\endinput\fi 
+\par 
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.4tc"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.4tc"
new file mode 100644
index 0000000000..4021816773
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.4tc"
@@ -0,0 +1 @@
+\expandafter\ifx\csname doTocEntry\endcsname\relax \expandafter\endinput\fi
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.css"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.css"
new file mode 100644
index 0000000000..59c6171d2e
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.css"
@@ -0,0 +1,44 @@
+ 
+/* start css.sty */
+.cmmi-10{font-style: italic;}
+.cmmi-7{font-size:70%;font-style: italic;}
+.cmsy-7{font-size:70%;}
+p{margin-top:0;margin-bottom:0}
+p.indent{text-indent:0;}
+p + p{margin-top:1em;}
+p + div, p + pre {margin-top:1em;}
+div + p, pre + p {margin-top:1em;}
+a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; 
hyphens: auto; }
+@media print {div.crosslinks {visibility:hidden;}}
+table.tabular{border-collapse: collapse; border-spacing: 0;}
+a img { border-top: 0; border-left: 0; border-right: 0; }
+center { margin-top:1em; margin-bottom:1em; }
+td center { margin-top:0em; margin-bottom:0em; }
+.Canvas { position:relative; }
+img.math{vertical-align:middle;}
+div.par-math-display, div.math-display{text-align:center;}
+.obeylines-h,.obeylines-v {white-space: nowrap; }
+div.obeylines-v p { margin-top:0; margin-bottom:0; }
+.overline{ text-decoration:overline; }
+.overline img{ border-top: 1px solid black; }
+td.displaylines {text-align:center; white-space:nowrap;}
+.centerline {text-align:center;}
+.rightline {text-align:right;}
+.underline{ text-decoration:underline; }
+.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
+div.proclaim { margin-top: 1em; margin-bottom: 1em; }
+p.item {text-indent:-2em; margin-left:2em;}
+p.itemitem {text-indent:-2em; margin-left:4em;}
+span.item, span.itemitem {width:2em; margin-right:0.4em;}
+td.eqalign3 { text-align:right; margin-left:10em;}
+.eqalign td { white-space: nowrap; }
+div.eqalign {text-align:center;}
+td.eqalignno3, td.leqalignno3 { text-align:right; margin-left:10em;}
+.leqalignno td, .eqalignno td { white-space: nowrap; }
+.leqalignno td.noalign, .eqalignno td.noalign { width:5%; white-space: normal; 
}
+table.leqalignno, table.eqalignno {width:100%;}
+img.cdots{vertical-align:middle;}
+div.pmatrix {text-align:center;}
+table.pmatrix {width:100%;}
+/* end css.sty */
+
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.lg"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.lg"
new file mode 100644
index 0000000000..054a95d96f
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.lg"
@@ -0,0 +1,58 @@
+htfcss: cmmi font-style: italic;
+htfcss: cmmib font-style: italic; font-weight: bold;
+File: tex_complex_tex4ht_tex.html
+File: tex_complex_tex4ht_tex.css
+File: tex_complex_tex4ht_tex.tmp
+Css: p{margin-top:0;margin-bottom:0}
+Css: p.indent{text-indent:0;}
+Css: p + p{margin-top:1em;}
+Css: p + div, p + pre {margin-top:1em;}
+Css: div + p, pre + p {margin-top:1em;}
+Css: a { overflow-wrap: break-word; word-wrap: break-word; word-break: 
break-word; hyphens: auto; }
+Css: @media print {div.crosslinks {visibility:hidden;}}
+Css: table.tabular{border-collapse: collapse; border-spacing: 0;}
+Css: a img { border-top: 0; border-left: 0; border-right: 0; }
+Font_Css("4"): .small-caps{font-variant: small-caps; }
+Font_Css("10"): .htf-cmbx {font-weight: bold; font-style:normal;}
+Font_Css("12"): .htf-calligraphy {font-family:cursive}
+Font_Css("14"): .htf-italic {font-style: italic;}
+Font_Css("16"): .htf-bold {font-weight: bold;}
+Font_Css("12"): .htf-calligraphy-bold {font-family:cursive ; font-weight: 
bold; }
+Css: center { margin-top:1em; margin-bottom:1em; }
+Css: td center { margin-top:0em; margin-bottom:0em; }
+Css: .Canvas { position:relative; }
+Css: img.math{vertical-align:middle;}
+Css: div.par-math-display, div.math-display{text-align:center;}
+Css: .obeylines-h,.obeylines-v {white-space: nowrap; }
+Css: div.obeylines-v p { margin-top:0; margin-bottom:0; }
+Css: .overline{ text-decoration:overline; }
+Css: .overline img{ border-top: 1px solid black; }
+Css: td.displaylines {text-align:center; white-space:nowrap;}
+Css: .centerline {text-align:center;}
+Css: .rightline {text-align:right;}
+Css: .underline{ text-decoration:underline; }
+Css: .underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
+Css: div.proclaim { margin-top: 1em; margin-bottom: 1em; }
+Css: p.item {text-indent:-2em; margin-left:2em;}
+Css: p.itemitem {text-indent:-2em; margin-left:4em;}
+Css: span.item, span.itemitem {width:2em; margin-right:0.4em;}
+Css: td.eqalign3 { text-align:right; margin-left:10em;}
+Css: .eqalign td { white-space: nowrap; }
+Css: div.eqalign {text-align:center;}
+Css: td.eqalignno3, td.leqalignno3 { text-align:right; margin-left:10em;}
+Css: .leqalignno td, .eqalignno td { white-space: nowrap; }
+Css: .leqalignno td.noalign, .eqalignno td.noalign { width:5%; white-space: 
normal; }
+Css: table.leqalignno, table.eqalignno {width:100%;}
+Css: img.cdots{vertical-align:middle;}
+Css: div.pmatrix {text-align:center;}
+Css: table.pmatrix {width:100%;}
+--- needs --- tex_complex_tex4ht_tex.idv[1] ==> tex_complex_tex4ht_tex0x.png 
---
+--- needs --- tex_complex_tex4ht_tex.idv[2] ==> tex_complex_tex4ht_tex1x.png 
---
+--- needs --- tex_complex_tex4ht_tex.idv[3] ==> tex_complex_tex4ht_tex2x.png 
---
+--- needs --- tex_complex_tex4ht_tex.idv[4] ==> tex_complex_tex4ht_tex3x.png 
---
+--- characters ---
+Font("cmr","10","10","100")
+Font("cmmi","10","10","100")
+Font("cmmi","7","7","100")
+Font("cmsy","10","10","100")
+Font("cmsy","7","7","100")
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.tex"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.tex"
new file mode 100644
index 0000000000..479366754f
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.tex"
@@ -0,0 +1,24 @@
+% Automatically generated
+\csname tex4ht\endcsname
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_complex_tex4ht_tex tex 1 
-->\Hnewline}
+$$\partial_{\eta} g(\eta(t),\varphi(t));
+$$
+\HCode{\Hnewline <!-- tex4ht_end tex_complex_tex4ht_tex tex 1 -->\Hnewline 
\Hnewline}
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_complex_tex4ht_tex math 2 
-->\Hnewline}
+\IgnorePar $(I-D) \varphi(t)$\HCode{\Hnewline <!-- tex4ht_end 
tex_complex_tex4ht_tex math 2 -->\Hnewline \Hnewline}
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_complex_tex4ht_tex tex 3 
-->\Hnewline}
+$$
+ U w V^\dagger
+$$
+\HCode{\Hnewline <!-- tex4ht_end tex_complex_tex4ht_tex tex 3 -->\Hnewline 
\Hnewline}
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_complex_tex4ht_tex math 4 
-->\Hnewline}
+\IgnorePar $\phi w V^t$\HCode{\Hnewline <!-- tex4ht_end tex_complex_tex4ht_tex 
math 4 -->\Hnewline \Hnewline}
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_complex_tex4ht_tex tex 5 
-->\Hnewline}
+$$
+\omega = h ( \eta , \varphi) 
+$$
+\HCode{\Hnewline <!-- tex4ht_end tex_complex_tex4ht_tex tex 5 -->\Hnewline 
\Hnewline}
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_complex_tex4ht_tex math 6 
-->\Hnewline}
+\IgnorePar $h \dot \psi^\phi$\HCode{\Hnewline <!-- tex4ht_end 
tex_complex_tex4ht_tex math 6 -->\Hnewline \Hnewline}
+
+\bye
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.tmp"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.tmp"
new file mode 100644
index 0000000000..41b58e2cf4
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.tmp"
@@ -0,0 +1,2 @@
+ 
+/* css.sty */
\ No newline at end of file
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.xref"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.xref"
new file mode 100644
index 0000000000..e09203f38d
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_complex_tex4ht_tex.xref"
@@ -0,0 +1 @@
+\:CrossWord{)F1F-}{tex_complex_tex4ht_tex.html}{1}%
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251.html"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251.html"
new file mode 100644
index 0000000000..8467f02ce5
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251.html"
@@ -0,0 +1,197 @@
+<!DOCTYPE html>
+<html>
+<!-- Created by texinfo, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>top</title>
+
+<meta name="description" content="top">
+<meta name="keywords" content="top">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2any">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<style type="text/css">
+<!--
+@import "tex_encodé_tex4ht_tex.css";
+
+span.program-in-footer {font-size: smaller}
+-->
+</style>
+
+
+</head>
+
+<body lang="en">
+<div class="top-level-extent" id="Top">
+<table class="nav-panel" cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[ &lt; ]</td>
+<td valign="middle" align="left">[<a href="#Chapter" title="Next section in 
reading order"> &gt; </a>]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[Contents]</td>
+<td valign="middle" align="left">[Index]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h1 class="top" id="top">top</h1>
+
+<hr style="height: 6px;">
+<div class="chapter-level-extent" id="Chapter">
+<table class="nav-panel" cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Beginning of this 
chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Previous section in 
reading order"> &lt; </a>]</td>
+<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up 
</a>]</td>
+<td valign="middle" align="left">[ &gt; ]</td>
+<td valign="middle" align="left">[ &gt;&gt; ]</td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left"> &nbsp; </td>
+<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[Contents]</td>
+<td valign="middle" align="left">[Index]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h1 class="chapter" id="chap">1 chap</h1>
+
+
+    <div class="math-display" >
+<img 
+src="tex_encodé_tex4ht_tex0x.png" 
alt="&#x2202;&#x03B7;g(&#x03B7;(t),&#x03C6;(t));
+" class="math-display" ></div>
+<!--l. 7--><p class="indent" >     
+
+<p>Some  (<span 
+class="cmmi-10">I </span><span 
+class="cmsy-10">- </span><span 
+class="cmmi-10">D</span>)<span 
+class="cmmi-10">&#x03C6;</span>(<span 
+class="cmmi-10">t</span>)  math.
+</p>
+
+    <div class="math-display" >
+<img 
+src="tex_encodé_tex4ht_tex1x.png" alt="&#x222B;
+  v(t)dt = u(t)+ C
+" class="math-display" ></div>
+<!--l. 14--><p class="indent" >     
+
+<hr style="height: 6px;">
+</div>
+</div>
+<div class="element-about" id="SEC_About">
+<table class="nav-panel" cellpadding="1" cellspacing="1" border="0">
+<tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of 
document">Top</a>]</td>
+<td valign="middle" align="left">[Contents]</td>
+<td valign="middle" align="left">[Index]</td>
+<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? 
</a>]</td>
+</tr></table>
+<h1 class="about-heading">About This Document</h1>
+
+<p>
+  This document was generated on <em class="emph">a sunny day</em> using <a 
class="uref" href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.
+</p>
+<p>
+  The buttons in the navigation panels have the following meaning:
+</p>
+<table border="1">
+  <tr>
+    <th> Button </th>
+    <th> Name </th>
+    <th> Go to </th>
+    <th> From 1.2.3 go to</th>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt;&lt; ] </td>
+    <td align="center">FastBack</td>
+    <td>Beginning of this chapter or previous chapter</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &lt; ] </td>
+    <td align="center">Back</td>
+    <td>Previous section in reading order</td>
+    <td>1.2.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ Up ] </td>
+    <td align="center">Up</td>
+    <td>Up section</td>
+    <td>1.2</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt; ] </td>
+    <td align="center">Forward</td>
+    <td>Next section in reading order</td>
+    <td>1.2.4</td>
+  </tr>
+  <tr>
+    <td align="center"> [ &gt;&gt; ] </td>
+    <td align="center">FastForward</td>
+    <td>Next chapter</td>
+    <td>2</td>
+  </tr>
+  <tr>
+    <td align="center"> [Top] </td>
+    <td align="center">Top</td>
+    <td>Cover (top) of document</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Contents] </td>
+    <td align="center">Contents</td>
+    <td>Table of contents</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [Index] </td>
+    <td align="center">Index</td>
+    <td>Index</td>
+    <td> &nbsp; </td>
+  </tr>
+  <tr>
+    <td align="center"> [ ? ] </td>
+    <td align="center">About</td>
+    <td>About (help)</td>
+    <td> &nbsp; </td>
+  </tr>
+</table>
+
+<p>
+  where the <strong class="strong"> Example </strong> assumes that the current 
position is at <strong class="strong"> Subsubsection One-Two-Three </strong> of 
a document of the following structure:
+</p>
+
+<ul>
+  <li> 1. Section One
+    <ul>
+      <li>1.1 Subsection One-One
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.2 Subsection One-Two
+        <ul>
+          <li>1.2.1 Subsubsection One-Two-One</li>
+          <li>1.2.2 Subsubsection One-Two-Two</li>
+          <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
+            <strong>&lt;== Current Position </strong></li>
+          <li>1.2.4 Subsubsection One-Two-Four</li>
+        </ul>
+      </li>
+      <li>1.3 Subsection One-Three
+        <ul>
+          <li>...</li>
+        </ul>
+      </li>
+      <li>1.4 Subsection One-Four</li>
+    </ul>
+  </li>
+</ul>
+</div><hr>
+<p>
+  <span class="program-in-footer">This document was generated on <em 
class="emph">a sunny day</em> using <a class="uref" 
href="http://www.gnu.org/software/texinfo/";><em 
class="emph">texi2any</em></a>.</span>
+</p>
+
+
+</body>
+</html>
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.4ct"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.4ct"
new file mode 100644
index 0000000000..9998f6203d
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.4ct"
@@ -0,0 +1,2 @@
+\expandafter\ifx\csname doTocEntry\endcsname\relax \expandafter\endinput\fi 
+\par 
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.4tc"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.4tc"
new file mode 100644
index 0000000000..4021816773
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.4tc"
@@ -0,0 +1 @@
+\expandafter\ifx\csname doTocEntry\endcsname\relax \expandafter\endinput\fi
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.css"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.css"
new file mode 100644
index 0000000000..ebf19e3c62
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.css"
@@ -0,0 +1,43 @@
+ 
+/* start css.sty */
+.cmmi-10{font-style: italic;}
+.cmmi-7{font-size:70%;font-style: italic;}
+p{margin-top:0;margin-bottom:0}
+p.indent{text-indent:0;}
+p + p{margin-top:1em;}
+p + div, p + pre {margin-top:1em;}
+div + p, pre + p {margin-top:1em;}
+a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; 
hyphens: auto; }
+@media print {div.crosslinks {visibility:hidden;}}
+table.tabular{border-collapse: collapse; border-spacing: 0;}
+a img { border-top: 0; border-left: 0; border-right: 0; }
+center { margin-top:1em; margin-bottom:1em; }
+td center { margin-top:0em; margin-bottom:0em; }
+.Canvas { position:relative; }
+img.math{vertical-align:middle;}
+div.par-math-display, div.math-display{text-align:center;}
+.obeylines-h,.obeylines-v {white-space: nowrap; }
+div.obeylines-v p { margin-top:0; margin-bottom:0; }
+.overline{ text-decoration:overline; }
+.overline img{ border-top: 1px solid black; }
+td.displaylines {text-align:center; white-space:nowrap;}
+.centerline {text-align:center;}
+.rightline {text-align:right;}
+.underline{ text-decoration:underline; }
+.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
+div.proclaim { margin-top: 1em; margin-bottom: 1em; }
+p.item {text-indent:-2em; margin-left:2em;}
+p.itemitem {text-indent:-2em; margin-left:4em;}
+span.item, span.itemitem {width:2em; margin-right:0.4em;}
+td.eqalign3 { text-align:right; margin-left:10em;}
+.eqalign td { white-space: nowrap; }
+div.eqalign {text-align:center;}
+td.eqalignno3, td.leqalignno3 { text-align:right; margin-left:10em;}
+.leqalignno td, .eqalignno td { white-space: nowrap; }
+.leqalignno td.noalign, .eqalignno td.noalign { width:5%; white-space: normal; 
}
+table.leqalignno, table.eqalignno {width:100%;}
+img.cdots{vertical-align:middle;}
+div.pmatrix {text-align:center;}
+table.pmatrix {width:100%;}
+/* end css.sty */
+
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.lg"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.lg"
new file mode 100644
index 0000000000..38a71ba96b
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.lg"
@@ -0,0 +1,56 @@
+htfcss: cmmi font-style: italic;
+htfcss: cmmib font-style: italic; font-weight: bold;
+File: tex_encodé_tex4ht_tex.html
+File: tex_encodé_tex4ht_tex.css
+File: tex_encodé_tex4ht_tex.tmp
+Css: p{margin-top:0;margin-bottom:0}
+Css: p.indent{text-indent:0;}
+Css: p + p{margin-top:1em;}
+Css: p + div, p + pre {margin-top:1em;}
+Css: div + p, pre + p {margin-top:1em;}
+Css: a { overflow-wrap: break-word; word-wrap: break-word; word-break: 
break-word; hyphens: auto; }
+Css: @media print {div.crosslinks {visibility:hidden;}}
+Css: table.tabular{border-collapse: collapse; border-spacing: 0;}
+Css: a img { border-top: 0; border-left: 0; border-right: 0; }
+Font_Css("4"): .small-caps{font-variant: small-caps; }
+Font_Css("10"): .htf-cmbx {font-weight: bold; font-style:normal;}
+Font_Css("12"): .htf-calligraphy {font-family:cursive}
+Font_Css("14"): .htf-italic {font-style: italic;}
+Font_Css("16"): .htf-bold {font-weight: bold;}
+Font_Css("12"): .htf-calligraphy-bold {font-family:cursive ; font-weight: 
bold; }
+Css: center { margin-top:1em; margin-bottom:1em; }
+Css: td center { margin-top:0em; margin-bottom:0em; }
+Css: .Canvas { position:relative; }
+Css: img.math{vertical-align:middle;}
+Css: div.par-math-display, div.math-display{text-align:center;}
+Css: .obeylines-h,.obeylines-v {white-space: nowrap; }
+Css: div.obeylines-v p { margin-top:0; margin-bottom:0; }
+Css: .overline{ text-decoration:overline; }
+Css: .overline img{ border-top: 1px solid black; }
+Css: td.displaylines {text-align:center; white-space:nowrap;}
+Css: .centerline {text-align:center;}
+Css: .rightline {text-align:right;}
+Css: .underline{ text-decoration:underline; }
+Css: .underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
+Css: div.proclaim { margin-top: 1em; margin-bottom: 1em; }
+Css: p.item {text-indent:-2em; margin-left:2em;}
+Css: p.itemitem {text-indent:-2em; margin-left:4em;}
+Css: span.item, span.itemitem {width:2em; margin-right:0.4em;}
+Css: td.eqalign3 { text-align:right; margin-left:10em;}
+Css: .eqalign td { white-space: nowrap; }
+Css: div.eqalign {text-align:center;}
+Css: td.eqalignno3, td.leqalignno3 { text-align:right; margin-left:10em;}
+Css: .leqalignno td, .eqalignno td { white-space: nowrap; }
+Css: .leqalignno td.noalign, .eqalignno td.noalign { width:5%; white-space: 
normal; }
+Css: table.leqalignno, table.eqalignno {width:100%;}
+Css: img.cdots{vertical-align:middle;}
+Css: div.pmatrix {text-align:center;}
+Css: table.pmatrix {width:100%;}
+--- needs --- tex_encodé_tex4ht_tex.idv[1] ==> tex_encodé_tex4ht_tex0x.png ---
+--- needs --- tex_encodé_tex4ht_tex.idv[2] ==> tex_encodé_tex4ht_tex1x.png ---
+--- characters ---
+Font("cmr","10","10","100")
+Font("cmmi","10","10","100")
+Font("cmmi","7","7","100")
+Font("cmsy","10","10","100")
+Font("cmex","10","10","100")
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.tex"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.tex"
new file mode 100644
index 0000000000..18eff28080
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.tex"
@@ -0,0 +1,16 @@
+% Automatically generated
+\csname tex4ht\endcsname
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_encod�_tex4ht_tex tex 1 
-->\Hnewline}
+$$
+� \partial_{\eta} g(\eta(t),\varphi(t));
+$$
+\HCode{\Hnewline <!-- tex4ht_end tex_encod�_tex4ht_tex tex 1 -->\Hnewline 
\Hnewline}
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_encod�_tex4ht_tex math 2 
-->\Hnewline}
+\IgnorePar $(I-D) � \varphi(t)$\HCode{\Hnewline <!-- tex4ht_end 
tex_encod�_tex4ht_tex math 2 -->\Hnewline \Hnewline}
+\HCode{\Hnewline \Hnewline <!-- tex4ht_begin tex_encod�_tex4ht_tex displaymath 
3 -->\Hnewline}
+
+$$ � � �  \int v(t)\, dt = u(t) + C
+$$
+\HCode{\Hnewline <!-- tex4ht_end tex_encod�_tex4ht_tex displaymath 3 
-->\Hnewline \Hnewline}
+
+\bye
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.tmp"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.tmp"
new file mode 100644
index 0000000000..41b58e2cf4
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.tmp"
@@ -0,0 +1,2 @@
+ 
+/* css.sty */
\ No newline at end of file
diff --git 
"a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.xref"
 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.xref"
new file mode 100644
index 0000000000..745c048b10
--- /dev/null
+++ 
"b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/encod\303\251/tex_encod\303\251_tex4ht_tex.xref"
@@ -0,0 +1 @@
+\:CrossWord{)F1F-}{tex_encodé_tex4ht_tex.html}{1}%
diff --git 
a/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/tex_t4ht_output_dir_non_ascii.2
 
b/tp/tests/many_input_files/tex_t4ht_output_dir_non_ascii_res/tex_t4ht_output_dir_non_ascii.2
new file mode 100644
index 0000000000..e69de29bb2



reply via email to

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