texinfo-commits
[Top][All Lists]
Advanced

[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);
 



reply via email to

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