* tta/C/texi2any.c (main): fix reading of options to handle options
not set at all.
diff --git a/ChangeLog b/ChangeLog
index e5874bc..9595a26 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2025-03-12  Patrice Dumas  <pertusus@free.fr>
 
+	* tta/C/texi2any.c (main): fix reading of options to handle options
+	not set at all.
+
+2025-03-12  Patrice Dumas  <pertusus@free.fr>
+
 	* tta/perl/t/test_utils.pl ($XS_conversion, test): get tree before
 	conversion to Texinfo and raw text or only a handler if conversion is
 	with XS.
diff --git a/tta/C/texi2any.c b/tta/C/texi2any.c
index 11ce2ed..8092c7c 100644
--- a/tta/C/texi2any.c
+++ b/tta/C/texi2any.c
@@ -2502,6 +2502,8 @@
       STRING_LIST *converter_include_dirs;
       STRING_LIST *converter_texinfo_language_config_dirs;
       char *input_file_path = 0;
+      char *locale_encoding = 0;
+      char *input_name_encoding_val = 0;
       size_t file_path_len;
       size_t j;
       OPTIONS_LIST *file_cmdline_options;
@@ -2601,15 +2603,20 @@
       locale_encoding_option
         = GNUT_get_conf (program_options.options->LOCALE_ENCODING.number);
 
+      if (locale_encoding_option)
+        locale_encoding = locale_encoding_option->o.string;
+
+      if (input_file_name_encoding_option)
+        input_name_encoding_val = input_file_name_encoding_option->o.string;
+
       if (!status && ((dump_tree_option && dump_tree_option->o.string)
                       || debug >= 10))
         {
           const char *input_file_names_encoding
-            = input_file_name_encoding (
-                           input_file_name_encoding_option->o.string,
-                        doc_encoding_for_input_file_name_option->o.integer,
-                                 locale_encoding_option->o.string,
-                                        &document->global_info, 0);
+            = input_file_name_encoding (input_name_encoding_val,
+               (!(doc_encoding_for_input_file_name_option
+                  && doc_encoding_for_input_file_name_option->o.integer == 0)),
+                    locale_encoding, &document->global_info, 0);
           char *debug_tree = print_tree_details (document->tree,
                                input_file_names_encoding, test_mode_set);
           const char *output_encoding = 0;
@@ -2807,11 +2814,10 @@
           || debug >= 20)
         {
           const char *input_file_names_encoding
-            = input_file_name_encoding (
-                           input_file_name_encoding_option->o.string,
-                        doc_encoding_for_input_file_name_option->o.integer,
-                                 locale_encoding_option->o.string,
-                                        &document->global_info, 0);
+            = input_file_name_encoding (input_name_encoding_val,
+               (!(doc_encoding_for_input_file_name_option
+                  && doc_encoding_for_input_file_name_option->o.integer == 0)),
+                    locale_encoding, &document->global_info, 0);
           char *debug_tree = print_tree_details (document->tree,
                                input_file_names_encoding, test_mode_set);
           const char *output_encoding = 0;
@@ -3131,6 +3137,7 @@
               char *path_encoding;
               char *encoded_sort_element_count_file_name;
               int error_element_count_file = 0;
+              char *output_file_name_encoding = 0;
 
               /* reuse converter options list memory */
               clear_options_list (&convert_options);
@@ -3159,12 +3166,14 @@
               if (!sort_element_count_text)
                 sort_element_count_text = strdup ("");
 
+              if (output_file_name_encoding_option)
+                output_file_name_encoding
+                  = output_file_name_encoding_option->o.string;
               encoded_sort_element_count_file_name
-                  = encoded_output_file_name (
-                                  output_file_name_encoding_option->o.string,
-                                  doc_encoding_for_output_file_name_option->o.integer,
-                                  locale_encoding_option->o.string,
-                                              &document->global_info,
+                  = encoded_output_file_name (output_file_name_encoding,
+         (!(doc_encoding_for_output_file_name_option
+          && doc_encoding_for_output_file_name_option->o.integer == 0)),
+                       locale_encoding, &document->global_info,
                      (char *)sort_element_count_file_name, &path_encoding, 0);
               free (path_encoding);