[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Patrice Dumas |
Date: |
Sun, 19 Jan 2025 18:05:50 -0500 (EST) |
branch: master
commit 126b8576fac5b45a897420505d5c12f1d4c83889
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Mon Jan 20 00:05:54 2025 +0100
* tp/Texinfo/XS/main/build_perl_info.c
(build_sv_converter_info_from_converter_initialization_info): add.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_module_converter): use
build_sv_converter_info_from_converter_initialization_info to pass
deprecated directories too (and translations, but there is no way to
have translations set from texi2any main program).
---
ChangeLog | 11 ++++++++++
tp/Texinfo/XS/convert/call_conversion_perl.c | 11 +++++-----
tp/Texinfo/XS/main/build_perl_info.c | 31 +++++++++++++++++++++++++++-
tp/Texinfo/XS/main/build_perl_info.h | 2 ++
4 files changed, 48 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 8a4962e263..3a296f4969 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2025-01-19 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/XS/main/build_perl_info.c
+ (build_sv_converter_info_from_converter_initialization_info): add.
+
+ * tp/Texinfo/XS/convert/call_conversion_perl.c
+ (call_module_converter): use
+ build_sv_converter_info_from_converter_initialization_info to pass
+ deprecated directories too (and translations, but there is no way to
+ have translations set from texi2any main program).
+
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (build_deprecated_directories):
diff --git a/tp/Texinfo/XS/convert/call_conversion_perl.c
b/tp/Texinfo/XS/convert/call_conversion_perl.c
index 9f067e87b0..6b7edd552e 100644
--- a/tp/Texinfo/XS/convert/call_conversion_perl.c
+++ b/tp/Texinfo/XS/convert/call_conversion_perl.c
@@ -155,16 +155,15 @@ CONVERTER *
call_module_converter (const char *module_name,
const CONVERTER_INITIALIZATION_INFO *conf)
{
- SV *options_list_sv;
+ SV *converter_info_sv;
int count;
CONVERTER *result;
SV *result_sv;
dTHX;
- /* TODO add a function to build from CONVERTER_INITIALIZATION_INFO */
- options_list_sv
- = build_sv_options_from_options_list (&conf->conf, 0);
+ converter_info_sv
+ = build_sv_converter_info_from_converter_initialization_info (conf, 0);
dSP;
@@ -174,10 +173,10 @@ call_module_converter (const char *module_name,
PUSHMARK(SP);
EXTEND(SP, 2);
- SvREFCNT_inc (options_list_sv);
+ SvREFCNT_inc (converter_info_sv);
PUSHs(sv_2mortal (newSVpv (module_name, 0)));
- PUSHs(sv_2mortal (options_list_sv));
+ PUSHs(sv_2mortal (converter_info_sv));
PUTBACK;
count = call_method ("converter",
diff --git a/tp/Texinfo/XS/main/build_perl_info.c
b/tp/Texinfo/XS/main/build_perl_info.c
index 219577a66d..74b49e964c 100644
--- a/tp/Texinfo/XS/main/build_perl_info.c
+++ b/tp/Texinfo/XS/main/build_perl_info.c
@@ -57,7 +57,7 @@
#include "option_types.h"
/* for GLOBAL_INFO ERROR_MESSAGE CL_* */
#include "document_types.h"
-/* CONVERTER sv_string_type */
+/* CONVERTER sv_string_type CONVERTER_INITIALIZATION_INFO */
#include "converter_types.h"
/* non_perl_* */
#include "xs_utils.h"
@@ -3120,6 +3120,35 @@ build_deprecated_directories (
return deprecated_directories_hv;
}
+/* Build a converter info hash reference based on CONF */
+SV *
+build_sv_converter_info_from_converter_initialization_info
+ (const CONVERTER_INITIALIZATION_INFO *conf, CONVERTER *converter)
+{
+ SV *result;
+ HV *deprecated_directories_hv;
+ HV *translated_commands_hv;
+ HV *result_hv;
+
+ dTHX;
+
+ result = build_sv_options_from_options_list (&conf->conf, converter);
+
+ result_hv = (HV *) SvRV (result);
+#define STORE(key, sv) hv_store (result_hv, key, strlen (key), sv, 0);
+ translated_commands_hv
+ = build_translated_commands (&conf->translated_commands);
+ STORE("translated_commands", newRV_noinc ((SV *) translated_commands_hv));
+
+ deprecated_directories_hv
+ = build_deprecated_directories (&conf->deprecated_config_directories);
+ STORE("deprecated_config_directories",
+ newRV_noinc ((SV *) deprecated_directories_hv));
+#undef STORE
+
+ return result;
+}
+
void
pass_generic_converter_to_converter_sv (SV *converter_sv,
const CONVERTER *converter)
diff --git a/tp/Texinfo/XS/main/build_perl_info.h
b/tp/Texinfo/XS/main/build_perl_info.h
index f670a06ee2..e9270689c9 100644
--- a/tp/Texinfo/XS/main/build_perl_info.h
+++ b/tp/Texinfo/XS/main/build_perl_info.h
@@ -89,6 +89,8 @@ SV *build_sv_option (const OPTION *option, CONVERTER
*converter);
SV *build_sv_options_from_options_list (const OPTIONS_LIST *options_list,
CONVERTER *converter);
+SV *build_sv_converter_info_from_converter_initialization_info
+ (const CONVERTER_INITIALIZATION_INFO *conf, CONVERTER *converter);
void pass_generic_converter_to_converter_sv (SV *converter_sv,
const CONVERTER *converter);
void pass_output_unit_files (SV *converter_sv,