texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: * tp/Texinfo/XS/convert/converter.c (clear_conver


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/XS/convert/converter.c (clear_converter_initialization_info), tp/Texinfo/XS/main/utils.c (clear_deprecated_dirs_list): add.
Date: Tue, 24 Dec 2024 03:31:36 -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 81dbb07786 * tp/Texinfo/XS/convert/converter.c 
(clear_converter_initialization_info), tp/Texinfo/XS/main/utils.c 
(clear_deprecated_dirs_list): add.
81dbb07786 is described below

commit 81dbb07786a3ad6168f5cb29b8be59cf30ca730e
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Mon Dec 23 11:55:17 2024 +0100

    * tp/Texinfo/XS/convert/converter.c
    (clear_converter_initialization_info), tp/Texinfo/XS/main/utils.c
    (clear_deprecated_dirs_list): add.
    
    * tp/Texinfo/XS/convert/call_conversion_perl.c
    (call_convert_converter), tp/Texinfo/XS/convert/texinfo.c
    (txi_converter_initialization_setup, txi_converter_setup),
    tp/Texinfo/XS/teximakehtml.c (main): separate
    txi_converter_initialization_setup from txi_converter_setup.
---
 ChangeLog                                    | 12 ++++++++++
 tp/Texinfo/XS/convert/call_conversion_perl.c |  8 +++----
 tp/Texinfo/XS/convert/call_conversion_perl.h |  3 +--
 tp/Texinfo/XS/convert/converter.c            | 16 +++++++++++++
 tp/Texinfo/XS/convert/converter.h            |  2 ++
 tp/Texinfo/XS/convert/texinfo.c              | 34 ++++++++++++----------------
 tp/Texinfo/XS/convert/texinfo.h              | 10 ++++----
 tp/Texinfo/XS/main/utils.c                   |  9 +++++++-
 tp/Texinfo/XS/main/utils.h                   |  1 +
 tp/Texinfo/XS/teximakehtml.c                 | 19 +++++++++++-----
 10 files changed, 78 insertions(+), 36 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 14fe947161..5a137c9daa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2024-12-23  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/XS/convert/converter.c
+       (clear_converter_initialization_info), tp/Texinfo/XS/main/utils.c
+       (clear_deprecated_dirs_list): add.
+
+       * tp/Texinfo/XS/convert/call_conversion_perl.c
+       (call_convert_converter), tp/Texinfo/XS/convert/texinfo.c
+       (txi_converter_initialization_setup, txi_converter_setup),
+       tp/Texinfo/XS/teximakehtml.c (main): separate
+       txi_converter_initialization_setup from txi_converter_setup.
+
 2024-12-23  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/convert/html_prepare_converter.c
diff --git a/tp/Texinfo/XS/convert/call_conversion_perl.c 
b/tp/Texinfo/XS/convert/call_conversion_perl.c
index a74fada11d..8e242b0aa8 100644
--- a/tp/Texinfo/XS/convert/call_conversion_perl.c
+++ b/tp/Texinfo/XS/convert/call_conversion_perl.c
@@ -78,8 +78,7 @@ call_config_GNUT_load_init_file (const char *file_path)
 
 CONVERTER *
 call_convert_converter (const char *module_name,
-                        const DEPRECATED_DIRS_LIST *deprecated_directories,
-                        const OPTIONS_LIST *converter_options)
+                        const CONVERTER_INITIALIZATION_INFO *conf)
 {
   SV *options_list_sv;
   int count;
@@ -87,9 +86,10 @@ call_convert_converter (const char *module_name,
   SV *result_sv;
   
   dTHX;
-  
+
+  /* TODO add a function to build from CONVERTER_INITIALIZATION_INFO */
   options_list_sv
-    = build_sv_options_from_options_list (converter_options, 0);
+    = build_sv_options_from_options_list (&conf->conf, 0);
 
   dSP;
 
diff --git a/tp/Texinfo/XS/convert/call_conversion_perl.h 
b/tp/Texinfo/XS/convert/call_conversion_perl.h
index 5528e4df90..11984689f5 100644
--- a/tp/Texinfo/XS/convert/call_conversion_perl.h
+++ b/tp/Texinfo/XS/convert/call_conversion_perl.h
@@ -7,8 +7,7 @@
 #include "converter_types.h"
 
 CONVERTER *call_convert_converter (const char *module_name,
-                      const DEPRECATED_DIRS_LIST *deprecated_directories,
-                      const OPTIONS_LIST *converter_options);
+                        const CONVERTER_INITIALIZATION_INFO *conf);
 char *call_converter_output (const char *module_name, CONVERTER *self,
                              DOCUMENT *document);
 
diff --git a/tp/Texinfo/XS/convert/converter.c 
b/tp/Texinfo/XS/convert/converter.c
index 6b5c72e4a7..4e0d4c5604 100644
--- a/tp/Texinfo/XS/convert/converter.c
+++ b/tp/Texinfo/XS/convert/converter.c
@@ -407,6 +407,22 @@ new_converter_initialization_info (void)
   return result;
 }
 
+void
+clear_converter_initialization_info (CONVERTER_INITIALIZATION_INFO *init_info)
+{
+  if (init_info->translated_commands)
+    {
+      destroy_translated_commands (init_info->translated_commands);
+      init_info->translated_commands = 0;
+    }
+
+  clear_options_list (&init_info->conf);
+
+  clear_deprecated_dirs_list (&init_info->deprecated_config_directories);
+
+  clear_strings_list (&init_info->non_valid_customization);
+}
+
 void
 destroy_converter_initialization_info (CONVERTER_INITIALIZATION_INFO 
*init_info)
 {
diff --git a/tp/Texinfo/XS/convert/converter.h 
b/tp/Texinfo/XS/convert/converter.h
index ef3a2729b9..4cd21c0fbb 100644
--- a/tp/Texinfo/XS/convert/converter.h
+++ b/tp/Texinfo/XS/convert/converter.h
@@ -149,6 +149,8 @@ CONVERTER *converter_converter (enum converter_format 
format,
 void converter_initialize (CONVERTER *converter);
 
 CONVERTER_INITIALIZATION_INFO *new_converter_initialization_info (void);
+void clear_converter_initialization_info (
+                                 CONVERTER_INITIALIZATION_INFO *init_info);
 void destroy_converter_initialization_info (
                             CONVERTER_INITIALIZATION_INFO *defaults);
 
diff --git a/tp/Texinfo/XS/convert/texinfo.c b/tp/Texinfo/XS/convert/texinfo.c
index a894a0b479..fc661d4812 100644
--- a/tp/Texinfo/XS/convert/texinfo.c
+++ b/tp/Texinfo/XS/convert/texinfo.c
@@ -382,33 +382,29 @@ txi_complete_document (DOCUMENT *document, unsigned long 
flags,
                                          document->options);
 }
 
-/* converter setup. Similar to an initialization of converter
-   in texi2any */
-CONVERTER *
-txi_converter_setup (const char *converted_format,
-                     const char *output_format,
-                     const DEPRECATED_DIRS_LIST *deprecated_dirs,
-                     OPTIONS_LIST *customizations)
+void
+txi_converter_initialization_setup (CONVERTER_INITIALIZATION_INFO *conf,
+                                    const DEPRECATED_DIRS_LIST 
*deprecated_dirs,
+                                    const OPTIONS_LIST *customizations)
 {
-  enum converter_format converter_format
-    = find_format_name_converter_format (converted_format);
-  CONVERTER_INITIALIZATION_INFO *conf;
-  CONVERTER *self;
-
-  conf = new_converter_initialization_info ();
-
   if (deprecated_dirs)
     copy_deprecated_dirs (&conf->deprecated_config_directories,
                           deprecated_dirs);
 
   if (customizations)
-    {
-      copy_options_list (&conf->conf, customizations);
-    }
+    copy_options_list (&conf->conf, customizations);
+}
 
-  self = converter_converter (converter_format, conf);
+/* converter setup. Similar to an initialization of converter
+   in texi2any */
+CONVERTER *
+txi_converter_setup (const char *converted_format,
+                     const CONVERTER_INITIALIZATION_INFO *conf)
+{
+  enum converter_format converter_format
+    = find_format_name_converter_format (converted_format);
 
-  destroy_converter_initialization_info (conf);
+  CONVERTER *self = converter_converter (converter_format, conf);
 
   return self;
 }
diff --git a/tp/Texinfo/XS/convert/texinfo.h b/tp/Texinfo/XS/convert/texinfo.h
index acd75d7af2..9f641c18a6 100644
--- a/tp/Texinfo/XS/convert/texinfo.h
+++ b/tp/Texinfo/XS/convert/texinfo.h
@@ -54,10 +54,12 @@ DOCUMENT *txi_parse_texi_file (const char *input_file_path, 
int *status);
 void txi_complete_document (DOCUMENT *document, unsigned long flags,
                             int format_menu);
 
-CONVERTER *txi_converter_setup (const char *converter_format,
-                     const char *output_format,
-                     const DEPRECATED_DIRS_LIST *deprecated_dirs,
-                     OPTIONS_LIST *customizations);
+void txi_converter_initialization_setup (CONVERTER_INITIALIZATION_INFO *conf,
+                                    const DEPRECATED_DIRS_LIST 
*deprecated_dirs,
+                                    const OPTIONS_LIST *customizations);
+
+CONVERTER *txi_converter_setup (const char *converted_format,
+                                const CONVERTER_INITIALIZATION_INFO *conf);
 
 char *txi_converter_output (CONVERTER *converter, DOCUMENT *document);
 char *txi_converter_convert (CONVERTER *converter, DOCUMENT *document);
diff --git a/tp/Texinfo/XS/main/utils.c b/tp/Texinfo/XS/main/utils.c
index d7e72c99f9..95b55a15af 100644
--- a/tp/Texinfo/XS/main/utils.c
+++ b/tp/Texinfo/XS/main/utils.c
@@ -1115,7 +1115,7 @@ add_new_deprecated_dir_info (DEPRECATED_DIRS_LIST 
*deprecated_dirs,
 }
 
 void
-free_deprecated_dirs_list (DEPRECATED_DIRS_LIST *deprecated_dirs)
+clear_deprecated_dirs_list (DEPRECATED_DIRS_LIST *deprecated_dirs)
 {
   size_t i;
   for (i = 0; i < deprecated_dirs->number; i++)
@@ -1124,6 +1124,13 @@ free_deprecated_dirs_list (DEPRECATED_DIRS_LIST 
*deprecated_dirs)
       free (deprecated_dir_info->obsolete_dir);
       free (deprecated_dir_info->reference_dir);
     }
+  deprecated_dirs->number = 0;
+}
+
+void
+free_deprecated_dirs_list (DEPRECATED_DIRS_LIST *deprecated_dirs)
+{
+  clear_deprecated_dirs_list (deprecated_dirs);
   free (deprecated_dirs->list);
 }
 
diff --git a/tp/Texinfo/XS/main/utils.h b/tp/Texinfo/XS/main/utils.h
index 0a48857e66..22cc069726 100644
--- a/tp/Texinfo/XS/main/utils.h
+++ b/tp/Texinfo/XS/main/utils.h
@@ -182,6 +182,7 @@ void copy_deprecated_dirs (DEPRECATED_DIRS_LIST 
*deprecated_dirs_dst,
 void add_new_deprecated_dir_info (DEPRECATED_DIRS_LIST *deprecated_dirs,
                                   const char *obsolete_dir,
                                   const char *reference_dir);
+void clear_deprecated_dirs_list (DEPRECATED_DIRS_LIST *deprecated_dirs);
 void free_deprecated_dirs_list (DEPRECATED_DIRS_LIST *deprecated_dirs);
 
 ENCODING_CONVERSION *get_encoding_conversion (const char *encoding,
diff --git a/tp/Texinfo/XS/teximakehtml.c b/tp/Texinfo/XS/teximakehtml.c
index 21550d2a87..3c4810ede0 100644
--- a/tp/Texinfo/XS/teximakehtml.c
+++ b/tp/Texinfo/XS/teximakehtml.c
@@ -61,7 +61,7 @@
 #include "builtin_commands.h"
 /* output_files_open_out output_files_register_closed */
 #include "convert_utils.h"
-/* destroy_converter_initialization_info */
+/* destroy_converter_initialization_info new_converter_initialization_info */
 #include "converter.h"
 #include "texinfo.h"
 
@@ -966,6 +966,7 @@ main (int argc, char *argv[], char *env[])
   int texinfo_uninstalled = 1;
   const char *converterdatadir = DATADIR "/" CONVERTER_CONFIG;
   const char *curdir = ".";
+  CONVERTER_INITIALIZATION_INFO *converter_init_info;
   /* to avoid a warning on unused variable keep in ifdef */
 #ifdef EMBED_PERL
   const char *load_txi_modules_basename = "load_txi_modules";
@@ -1959,6 +1960,7 @@ main (int argc, char *argv[], char *env[])
 
   memset (&opened_files, 0, sizeof (STRING_LIST));
   memset (&prepended_include_directories, 0, sizeof (STRING_LIST));
+  converter_init_info = new_converter_initialization_info ();
 
   for (i = 0; i < input_files.number; i++)
     {
@@ -2239,6 +2241,10 @@ main (int argc, char *argv[], char *env[])
       copy_strings (converter_texinfo_language_config_dirs,
                     texinfo_language_config_dirs);
 
+      txi_converter_initialization_setup (converter_init_info,
+                                          &deprecated_directories,
+                                          &convert_options);
+
 #ifdef EMBED_PERL
       if (format_specification->module
           && embedded_interpreter
@@ -2246,8 +2252,7 @@ main (int argc, char *argv[], char *env[])
               && loaded_init_files_nr > 0))
         {
           converter = call_convert_converter (format_specification->module,
-                                              &deprecated_directories,
-                                              &convert_options);
+                                              converter_init_info);
 
           result = call_converter_output (format_specification->module,
                                           converter, document);
@@ -2255,9 +2260,8 @@ main (int argc, char *argv[], char *env[])
       else
 #endif
         {
-          converter = txi_converter_setup (converted_format, output_format,
-                                           &deprecated_directories,
-                                           &convert_options);
+          converter = txi_converter_setup (converted_format,
+                                           converter_init_info);
 
       /* conversion */
       /* return value can be NULL in case of errors or an empty string, but
@@ -2265,6 +2269,7 @@ main (int argc, char *argv[], char *env[])
           result = txi_converter_output (converter, document);
         }
       free (result);
+      clear_converter_initialization_info (converter_init_info);
 
       errors_count
         = merge_opened_files (&opened_files,
@@ -2294,6 +2299,8 @@ main (int argc, char *argv[], char *env[])
       clear_options_list (&convert_options);
     }
 
+  destroy_converter_initialization_info (converter_init_info);
+
   free_strings_list (&opened_files);
   free_strings_list (&prepended_include_directories);
   free_options_list (&convert_options);



reply via email to

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