[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
From: |
Patrice Dumas |
Date: |
Wed, 25 Dec 2024 16:12:14 -0500 (EST) |
branch: master
commit e66224c5e672bf503767f15b4c05bc24954d36c6
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Wed Dec 25 20:23:01 2024 +0100
* tp/Texinfo/XS/main/customization_options.c
(show_options_list_options_set), tp/Texinfo/XS/main/utils.c
(sort_strings_list, join_strings_list): add functions to sort and join
strings list, and function to show the options set in OPTIONS_LIST,
to be used for debugging.
---
ChangeLog | 8 ++++++
tp/Texinfo/Config.pm | 4 +--
tp/Texinfo/XS/main/customization_options.c | 22 ++++++++++++++++
tp/Texinfo/XS/main/customization_options.h | 1 +
tp/Texinfo/XS/main/txi_config.c | 6 +++++
tp/Texinfo/XS/main/utils.c | 41 ++++++++++++++++++++++++++++++
tp/Texinfo/XS/main/utils.h | 2 ++
7 files changed, 82 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 02ffe4ffb3..7450b5bfdf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-25 Patrice Dumas <pertusus@free.fr>
+
+ * tp/Texinfo/XS/main/customization_options.c
+ (show_options_list_options_set), tp/Texinfo/XS/main/utils.c
+ (sort_strings_list, join_strings_list): add functions to sort and join
+ strings list, and function to show the options set in OPTIONS_LIST,
+ to be used for debugging.
+
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): set program_file to be "texi2any"
diff --git a/tp/Texinfo/Config.pm b/tp/Texinfo/Config.pm
index 1b1904c303..8cf1c123d5 100644
--- a/tp/Texinfo/Config.pm
+++ b/tp/Texinfo/Config.pm
@@ -130,8 +130,8 @@ sub GNUT_initialize_customization($$$) {
$options_as_lists{$cmdline_option} = 1;
}
- #print STDERR "options_defaults: ".join('|',keys(%$options_defaults))."\n";
- #print STDERR "cmdline_options: ".join('|',keys(%$cmdline_options))."\n";
+ #print STDERR "options_defaults:
".join('|',sort(keys(%$options_defaults)))."\n";
+ #print STDERR "cmdline_options:
".join('|',sort(keys(%$cmdline_options)))."\n";
return $init_files_options;
}
diff --git a/tp/Texinfo/XS/main/customization_options.c
b/tp/Texinfo/XS/main/customization_options.c
index 6007775eba..f88c4575b9 100644
--- a/tp/Texinfo/XS/main/customization_options.c
+++ b/tp/Texinfo/XS/main/customization_options.c
@@ -604,6 +604,28 @@ add_option_strlist_value (OPTIONS_LIST *options_list,
return option;
}
+/* for debugging */
+char *
+show_options_list_options_set (OPTIONS_LIST *options_list)
+{
+ static STRING_LIST options_names;
+ size_t i;
+ char *result;
+
+ for (i = 0; i < options_list->number; i++)
+ {
+ OPTION *option = options_list->sorted_options[options_list->list[i] -1];
+ add_string (option->name, &options_names);
+ }
+
+ sort_strings_list (&options_names);
+ result = join_strings_list (&options_names);
+
+ clear_strings_list (&options_names);
+
+ return result;
+}
+
/* misc other functions */
diff --git a/tp/Texinfo/XS/main/customization_options.h
b/tp/Texinfo/XS/main/customization_options.h
index 5c6f9e3a7b..b3df156417 100644
--- a/tp/Texinfo/XS/main/customization_options.h
+++ b/tp/Texinfo/XS/main/customization_options.h
@@ -77,6 +77,7 @@ OPTION *add_new_button_option (OPTIONS_LIST *options_list,
BUTTON_SPECIFICATION_LIST *buttons);
OPTION *add_option_strlist_value (OPTIONS_LIST *options_list,
const char *option_name, const STRING_LIST *strlist);
+char *show_options_list_options_set (OPTIONS_LIST *options_list);
diff --git a/tp/Texinfo/XS/main/txi_config.c b/tp/Texinfo/XS/main/txi_config.c
index 7dcb60c7cb..8927c34e25 100644
--- a/tp/Texinfo/XS/main/txi_config.c
+++ b/tp/Texinfo/XS/main/txi_config.c
@@ -61,6 +61,12 @@ GNUT_initialize_customization (const char *real_command_name,
initialize_options_list (&init_files_options);
+ /*
+ char *program_options_str = show_options_list_options_set (program_options);
+ fprintf (stderr, "options_defaults: %s\n", program_options_str);
+ free (program_options_str);
+ */
+
program_file = real_command_name;
return &init_files_options;
diff --git a/tp/Texinfo/XS/main/utils.c b/tp/Texinfo/XS/main/utils.c
index 3a63506d5d..0df8ececd7 100644
--- a/tp/Texinfo/XS/main/utils.c
+++ b/tp/Texinfo/XS/main/utils.c
@@ -1040,6 +1040,47 @@ destroy_strings_list (STRING_LIST *strings)
free (strings);
}
+static int
+compare_strings (const void *a, const void *b)
+{
+ const char **str_a = (const char **) a;
+ const char **str_b = (const char **) b;
+
+ return strcmp (*str_a, *str_b);
+}
+
+/* for debugging */
+void
+sort_strings_list (STRING_LIST *strings)
+{
+ qsort (strings->list, strings->number,
+ sizeof (char **), compare_strings);
+}
+
+/* for debugging */
+char *
+join_strings_list (STRING_LIST *strings)
+{
+ size_t i;
+ TEXT text;
+
+ text_init (&text);
+ text_append (&text, "");
+
+ for (i = 0; i < strings->number; i++)
+ {
+ if (i != 0)
+ text_append_n (&text, "|", 1);
+ text_append (&text, strings->list[i]);
+ }
+
+ /*
+ fprintf (stderr, "%s\n", text.text);
+ */
+ return text.text;
+}
+
+
/* Note: the Perl code (in Common.pm, 'locate_include_file') handles
a volume in a path (like "A:") using the File::Spec module. */
static int
diff --git a/tp/Texinfo/XS/main/utils.h b/tp/Texinfo/XS/main/utils.h
index 22cc069726..b1220326af 100644
--- a/tp/Texinfo/XS/main/utils.h
+++ b/tp/Texinfo/XS/main/utils.h
@@ -155,6 +155,8 @@ void merge_strings (STRING_LIST *strings_list,
const STRING_LIST *merged_strings);
void copy_strings (STRING_LIST *dest_list, const STRING_LIST *source_list);
size_t find_string (const STRING_LIST *strings_list, const char *string);
+void sort_strings_list (STRING_LIST *strings);
+char *join_strings_list (STRING_LIST *strings);
void destroy_accent_stack (ACCENTS_STACK *accent_stack);