texinfo-commits
[Top][All Lists]
Advanced

[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,



reply via email to

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