[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Patrice Dumas |
Date: |
Sat, 19 Oct 2024 10:05:39 -0400 (EDT) |
branch: master
commit 9fa0b189b811c2e27906841c6dc1805c9232a8ab
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Sat Oct 19 16:05:31 2024 +0200
* tp/Texinfo/XS/main/utils.c (messages_and_encodings_setup): rename
txi_base_setup as messages_and_encodings_setup.
* tp/Texinfo/XS/convert/texinfo.c (txi_general_setup): rename
txi_setup as txi_general_setup and add a call to
messages_and_encodings_setup.
* tp/Texinfo/XS/convert/texinfo.c (txi_converter_output_format_setup):
add a function to dispatch output format global data setup.
* tp/Texinfo/XS/teximakehtml.c (main): update.
---
ChangeLog | 14 ++++++++++++++
tp/Texinfo/XS/convert/texinfo.c | 23 ++++++++++++++++++-----
tp/Texinfo/XS/convert/texinfo.h | 7 +++----
tp/Texinfo/XS/main/utils.c | 2 +-
tp/Texinfo/XS/main/utils.h | 2 +-
tp/Texinfo/XS/parsetexi/Parsetexi.xs | 4 ++--
tp/Texinfo/XS/teximakehtml.c | 10 +++-------
7 files changed, 42 insertions(+), 20 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index daeb74e723..c18e57bd0a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2024-10-19 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/XS/main/utils.c (messages_and_encodings_setup): rename
+ txi_base_setup as messages_and_encodings_setup.
+
+ * tp/Texinfo/XS/convert/texinfo.c (txi_general_setup): rename
+ txi_setup as txi_general_setup and add a call to
+ messages_and_encodings_setup.
+
+ * tp/Texinfo/XS/convert/texinfo.c (txi_converter_output_format_setup):
+ add a function to dispatch output format global data setup.
+
+ * tp/Texinfo/XS/teximakehtml.c (main): update.
+
2024-10-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_document_remove)
diff --git a/tp/Texinfo/XS/convert/texinfo.c b/tp/Texinfo/XS/convert/texinfo.c
index 3b244425bf..b29991ceea 100644
--- a/tp/Texinfo/XS/convert/texinfo.c
+++ b/tp/Texinfo/XS/convert/texinfo.c
@@ -14,8 +14,8 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* Interface similar to the Perl modules interface for Texinfo parsing,
- and higher-level interface for document structure and transformations
- and conversion */
+ higher-level interface for document structure and transformations,
+ and interface similar to the Perl modules interface for conversion */
/* not used in code called from texi2any/Perl, meant to be used exclusively
from C code */
@@ -33,7 +33,7 @@
#include "api.h"
#include "conf.h"
#include "errors.h"
-/* parse_file_path */
+/* parse_file_path messages_and_encodings_setup */
#include "utils.h"
#include "customization_options.h"
#include "document.h"
@@ -44,12 +44,14 @@
#include "html_converter_api.h"
#include "texinfo.h"
-/* initialization of the library. */
+/* initialization of the library for parsing and conversion. */
void
-txi_setup (const char *localesdir, int texinfo_uninstalled,
+txi_general_setup (const char *localesdir, int texinfo_uninstalled,
const char *tp_builddir,
const char *converterdatadir, const char *top_srcdir)
{
+ messages_and_encodings_setup ();
+
if (localesdir)
configure_output_strings_translations (localesdir, 0, -1);
@@ -57,6 +59,17 @@ txi_setup (const char *localesdir, int texinfo_uninstalled,
converterdatadir, top_srcdir);
}
+/* to be called once (per output format) */
+void
+txi_converter_output_format_setup (const char *format_str)
+{
+ enum converter_format converter_format
+ = find_format_name_converter_format (format_str);
+
+ if (converter_format == COF_html)
+ html_format_setup ();
+}
+
/* parser initialization, similar to Texinfo::Parser::parser in Perl.
Also sets INCLUDE_DIRECTORIES minimally if not specified in options.
The implementation is similar to parsetexi/Parsetexi.pm on purpose. */
diff --git a/tp/Texinfo/XS/convert/texinfo.h b/tp/Texinfo/XS/convert/texinfo.h
index 7bb0049ac3..cd82d439b9 100644
--- a/tp/Texinfo/XS/convert/texinfo.h
+++ b/tp/Texinfo/XS/convert/texinfo.h
@@ -22,14 +22,13 @@
and regenerate_master_menu */
#define STTF_complete_menus_use_sections 0x0400
-/* in api.c */
-size_t parse_file (const char *input_file_path, int *status);
-
/* locales dir for output strings translations */
-void txi_setup (const char *localesdir, int texinfo_uninstalled,
+void txi_general_setup (const char *localesdir, int texinfo_uninstalled,
const char *tp_builddir,
const char *converterdatadir, const char *top_srcdir);
+void txi_converter_output_format_setup (const char *format_str);
+
void txi_parser (const char *file_path, const char *locale_encoding,
const char **expanded_formats, const VALUE_LIST *values,
OPTIONS_LIST *options);
diff --git a/tp/Texinfo/XS/main/utils.c b/tp/Texinfo/XS/main/utils.c
index 7100c9d63e..9684259f3b 100644
--- a/tp/Texinfo/XS/main/utils.c
+++ b/tp/Texinfo/XS/main/utils.c
@@ -290,7 +290,7 @@ isascii_upper (int c)
/* Setup global information that is not specific of Texinfo.
Should be called once and early */
void
-txi_base_setup (void)
+messages_and_encodings_setup (void)
{
#ifdef ENABLE_NLS
diff --git a/tp/Texinfo/XS/main/utils.h b/tp/Texinfo/XS/main/utils.h
index fea13a05d6..f42b882130 100644
--- a/tp/Texinfo/XS/main/utils.h
+++ b/tp/Texinfo/XS/main/utils.h
@@ -130,7 +130,7 @@ char *to_upper_or_lower_multibyte (const char *text, int
lower_or_upper);
int width_multibyte (const char *text);
int word_bytes_len_multibyte (const char *text);
-void txi_base_setup (void);
+void messages_and_encodings_setup (void);
void wipe_values (VALUE_LIST *values);
diff --git a/tp/Texinfo/XS/parsetexi/Parsetexi.xs
b/tp/Texinfo/XS/parsetexi/Parsetexi.xs
index c4364fdc79..67f624768a 100644
--- a/tp/Texinfo/XS/parsetexi/Parsetexi.xs
+++ b/tp/Texinfo/XS/parsetexi/Parsetexi.xs
@@ -34,7 +34,7 @@
#include "api.h"
#include "conf.h"
-/* for txi_base_setup */
+/* for messages_and_encodings_setup */
#include "utils.h"
#include "parser_conf.h"
#include "build_perl_info.h"
@@ -61,7 +61,7 @@ PROTOTYPES: ENABLE
int
init (int texinfo_uninstalled, SV *converterdatadir, SV *tp_builddir, SV
*top_srcdir)
CODE:
- txi_base_setup ();
+ messages_and_encodings_setup ();
RETVAL = 1;
OUTPUT:
RETVAL
diff --git a/tp/Texinfo/XS/teximakehtml.c b/tp/Texinfo/XS/teximakehtml.c
index cd00fcdac0..583958250b 100644
--- a/tp/Texinfo/XS/teximakehtml.c
+++ b/tp/Texinfo/XS/teximakehtml.c
@@ -31,15 +31,13 @@
#include "document_types.h"
#include "converter_types.h"
-/* parse_file_path txi_base_setup */
+/* parse_file_path */
#include "utils.h"
#include "customization_options.h"
/*
#include "convert_to_texinfo.h"
*/
#include "create_buttons.h"
-/* for html_format_setup */
-#include "html_converter_api.h"
#include "texinfo.h"
#define LOCALEDIR DATADIR "/locale"
@@ -131,8 +129,6 @@ main (int argc, char *argv[])
program_file = program_file_name_and_directory[0];
input_directory = program_file_name_and_directory[1];
- txi_base_setup ();
-
locale_encoding = nl_langinfo (CODESET);
while (1)
@@ -188,7 +184,7 @@ main (int argc, char *argv[])
add_string (DATADIR "/texinfo", &texinfo_language_config_dirs);
- txi_setup (LOCALEDIR, 0, 0, 0, 0);
+ txi_general_setup (LOCALEDIR, 0, 0, 0, 0);
/*
if ($^O eq 'MSWin32') {
@@ -254,7 +250,7 @@ main (int argc, char *argv[])
= txi_handle_document_error_messages (document, 0, 1, locale_encoding);
errors_count += errors_nr;
- html_format_setup ();
+ txi_converter_output_format_setup ("html");
/* conversion initialization */
initialize_options_list (&convert_options, 2);