[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: * tp/Texinfo/XS/convert/converter.c (clear_converter_initialization_info), tp/Texinfo/XS/main/utils.c (clear_deprecated_dirs_list): add.,
Patrice Dumas <=