texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: * tp/Texinfo/XS/convert/converter.c (set_converte


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/XS/convert/converter.c (set_converter_init_information): copy directly the options list OPTIONS structure as converter format_defaults_conf.
Date: Mon, 28 Oct 2024 13:40:55 -0400

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 59cd3d4438 * tp/Texinfo/XS/convert/converter.c 
(set_converter_init_information): copy directly the options list OPTIONS 
structure as converter format_defaults_conf.
59cd3d4438 is described below

commit 59cd3d4438a3e56a0e475d83f865f785bc67572f
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Mon Oct 28 18:40:40 2024 +0100

    * tp/Texinfo/XS/convert/converter.c (set_converter_init_information):
    copy directly the options list OPTIONS structure as converter
    format_defaults_conf.
    
    * tp/Texinfo/XS/main/customization_options.c: move code around, add
    static.  Remove new_option and set_sorted_option_key_configured.
---
 ChangeLog                                  |   9 ++
 tp/Texinfo/XS/convert/converter.c          |  10 +-
 tp/Texinfo/XS/convert/texinfo.c            |   3 +-
 tp/Texinfo/XS/main/customization_options.c | 221 +++++++++++++----------------
 tp/Texinfo/XS/main/customization_options.h |  29 ++--
 5 files changed, 119 insertions(+), 153 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3bfe66d258..6f555e0933 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-10-28  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/XS/convert/converter.c (set_converter_init_information):
+       copy directly the options list OPTIONS structure as converter
+       format_defaults_conf.
+
+       * tp/Texinfo/XS/main/customization_options.c: move code around, add
+       static.  Remove new_option and set_sorted_option_key_configured.
+
 2024-10-28  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/XS/main/customization_options.c
diff --git a/tp/Texinfo/XS/convert/converter.c 
b/tp/Texinfo/XS/convert/converter.c
index 8f51ca78ca..31dfa63d31 100644
--- a/tp/Texinfo/XS/convert/converter.c
+++ b/tp/Texinfo/XS/convert/converter.c
@@ -333,18 +333,12 @@ set_converter_init_information (CONVERTER *converter,
                             CONVERTER_INITIALIZATION_INFO *format_defaults,
                             CONVERTER_INITIALIZATION_INFO *user_conf)
 {
-  OPTION **format_defaults_sorted_options;
-
   apply_converter_info (converter, format_defaults, 0);
 
   /* Also keep format_defaults options as an OPTIONS structure */
   converter->format_defaults_conf = new_options ();
-  format_defaults_sorted_options
-    = new_sorted_options (converter->format_defaults_conf);
-  copy_options_list_options (converter->format_defaults_conf,
-                             format_defaults_sorted_options,
-                             &format_defaults->conf, 0);
-  free (format_defaults_sorted_options);
+  copy_options (converter->format_defaults_conf,
+                format_defaults->conf.options);
 
   if (user_conf)
     apply_converter_info (converter, user_conf, 1);
diff --git a/tp/Texinfo/XS/convert/texinfo.c b/tp/Texinfo/XS/convert/texinfo.c
index b6202f14c2..e6b55c3d56 100644
--- a/tp/Texinfo/XS/convert/texinfo.c
+++ b/tp/Texinfo/XS/convert/texinfo.c
@@ -28,8 +28,7 @@
 #include <stdio.h>
 
 #include "document_types.h"
-/* txi_base_sorted_options */
-#include "options_data.h"
+#include "option_types.h"
 #include "api.h"
 #include "conf.h"
 #include "errors.h"
diff --git a/tp/Texinfo/XS/main/customization_options.c 
b/tp/Texinfo/XS/main/customization_options.c
index 84a19f263f..fe57f5559f 100644
--- a/tp/Texinfo/XS/main/customization_options.c
+++ b/tp/Texinfo/XS/main/customization_options.c
@@ -32,6 +32,60 @@
 OPTIONS txi_base_options;
 OPTION *txi_base_sorted_options[TXI_OPTIONS_NR];
 
+/* functions to setup and use sorted options */
+
+static int
+compare_option_str (const void *a, const void *b)
+{
+  const OPTION **opt_a = (const OPTION **) a;
+  const OPTION **opt_b = (const OPTION **) b;
+
+  return strcmp ((*opt_a)->name, (*opt_b)->name);
+}
+
+/* sort options and set the index in the option structure to the index in
+   the sorted array */
+static void
+setup_sorted_options (OPTION **sorted_options, OPTIONS *options)
+{
+  size_t i;
+  setup_sortable_options (sorted_options, options);
+  qsort (sorted_options, TXI_OPTIONS_NR, sizeof (OPTION *), 
compare_option_str);
+
+  for (i = 0; i < TXI_OPTIONS_NR; i++)
+    {
+      sorted_options[i]->number = i + 1;
+    }
+}
+
+OPTION **
+new_sorted_options (OPTIONS *options)
+{
+  OPTION **sorted_options
+    = (OPTION **) malloc (sizeof (OPTION *) * TXI_OPTIONS_NR);
+
+  setup_sorted_options (sorted_options, options);
+  return sorted_options;
+}
+
+OPTION *
+find_option_string (OPTION **sorted_options, const char *name)
+{
+  static OPTION option_key;
+  OPTION *option_ref = &option_key;
+  OPTION **result;
+
+  option_key.name = name;
+  result = (OPTION **)bsearch (&option_ref, sorted_options, TXI_OPTIONS_NR,
+                               sizeof (OPTION *), compare_option_str);
+  if (result)
+    return *result;
+  else
+    return 0;
+}
+
+
+
 /* initialization */
 
 void
@@ -162,19 +216,6 @@ initialize_option (OPTION *option, enum global_option_type 
type,
     }
 }
 
-/* note that the value in union o is not initialized */
-OPTION *
-new_option (enum global_option_type type, const char *name, size_t number)
-{
-  OPTION *option = (OPTION *) malloc (sizeof (OPTION));
-
-  initialize_option (option, type, name);
-  option->number = number;
-  option->configured = 0;
-
-  return option;
-}
-
 /* only for strings and integers */
 static void
 option_set_conf_internal (OPTION *option, int int_value, const char 
*char_value)
@@ -365,101 +406,6 @@ copy_option (OPTION *destination, const OPTION *source)
 
 
 
-/* functions to setup and use sorted options */
-
-static int
-compare_option_str (const void *a, const void *b)
-{
-  const OPTION **opt_a = (const OPTION **) a;
-  const OPTION **opt_b = (const OPTION **) b;
-
-  return strcmp ((*opt_a)->name, (*opt_b)->name);
-}
-
-/* sort options and set the index in the option structure to the index in
-   the sorted array */
-void
-setup_sorted_options (OPTION **sorted_options, OPTIONS *options)
-{
-  size_t i;
-  setup_sortable_options (sorted_options, options);
-  qsort (sorted_options, TXI_OPTIONS_NR, sizeof (OPTION *), 
compare_option_str);
-
-  for (i = 0; i < TXI_OPTIONS_NR; i++)
-    {
-      sorted_options[i]->number = i + 1;
-    }
-}
-
-OPTION **
-new_sorted_options (OPTIONS *options)
-{
-  OPTION **sorted_options
-    = (OPTION **) malloc (sizeof (OPTION *) * TXI_OPTIONS_NR);
-
-  setup_sorted_options (sorted_options, options);
-  return sorted_options;
-}
-
-OPTION *
-find_option_string (OPTION **sorted_options, const char *name)
-{
-  static OPTION option_key;
-  OPTION *option_ref = &option_key;
-  OPTION **result;
-
-  option_key.name = name;
-  result = (OPTION **)bsearch (&option_ref, sorted_options, TXI_OPTIONS_NR,
-                               sizeof (OPTION *), compare_option_str);
-  if (result)
-    return *result;
-  else
-    return 0;
-}
-
-/* copy OPTIONS_LIST options to an OPTIONS structure, using the sorted options
-   to find the struct fields.
- */
-void
-copy_options_list_options (OPTIONS *options, OPTION **sorted_options,
-                           OPTIONS_LIST *options_list, int set_configured)
-{
-  size_t i;
-
-  for (i = 0; i < options_list->number; i++)
-    {
-      size_t index = options_list->list[i] - 1;
-      OPTION *src_option = options_list->sorted_options[index];
-      OPTION *dst_option = sorted_options[index];
-
-      copy_option (dst_option, src_option);
-
-      if (dst_option->type == GOT_buttons
-          && dst_option->o.buttons && options)
-         options->BIT_user_function_number
-               += dst_option->o.buttons->BIT_user_function_number;
-
-      if (set_configured)
-        dst_option->configured = 1;
-    }
-}
-
-/* Unused */
-void
-set_sorted_option_key_configured (OPTION **sorted_options, const char *key,
-                                  int configured)
-{
-  if (configured > 0)
-    {
-      OPTION *option = find_option_string (sorted_options, key);
-
-      if (option)
-        option->configured = configured;
-    }
-}
-
-
-
 /* functions to set and use options list */
 
 void
@@ -515,7 +461,7 @@ options_list_add_option_name (OPTIONS_LIST *options_list,
   return option;
 }
 
-OPTION *
+static OPTION *
 add_option_copy (OPTIONS_LIST *options_list, const OPTION *option_in)
 {
   options_list_add_option_number (options_list, option_in->number);
@@ -536,6 +482,47 @@ add_option_copy (OPTIONS_LIST *options_list, const OPTION 
*option_in)
   return option;
 }
 
+void
+copy_options_list (OPTIONS_LIST *options_list, const OPTIONS_LIST *options_src)
+{
+  size_t i;
+
+  if (options_src)
+    {
+      for (i = 0; i < options_src->number; i++)
+        {
+          size_t index = options_src->list[i] - 1;
+          OPTION *src_option = options_src->sorted_options[index];
+          add_option_copy (options_list, src_option);
+        }
+    }
+}
+
+/* copy OPTIONS_LIST options to an OPTIONS structure */
+void
+copy_options_list_options (OPTIONS *options, OPTION **sorted_options,
+                           OPTIONS_LIST *options_list, int set_configured)
+{
+  size_t i;
+
+  for (i = 0; i < options_list->number; i++)
+    {
+      size_t index = options_list->list[i] - 1;
+      OPTION *src_option = options_list->sorted_options[index];
+      OPTION *dst_option = sorted_options[index];
+
+      copy_option (dst_option, src_option);
+
+      if (dst_option->type == GOT_buttons
+          && dst_option->o.buttons && options)
+         options->BIT_user_function_number
+               += dst_option->o.buttons->BIT_user_function_number;
+
+      if (set_configured)
+        dst_option->configured = 1;
+    }
+}
+
 OPTION *
 add_option_value (OPTIONS_LIST *options_list,
                   const char *name,
@@ -572,22 +559,6 @@ add_new_button_option (OPTIONS_LIST *options_list, const 
char *option_name,
   return option;
 }
 
-void
-copy_options_list (OPTIONS_LIST *options_list, const OPTIONS_LIST *options_src)
-{
-  size_t i;
-
-  if (options_src)
-    {
-      for (i = 0; i < options_src->number; i++)
-        {
-          size_t index = options_src->list[i] - 1;
-          OPTION *src_option = options_src->sorted_options[index];
-          add_option_copy (options_list, src_option);
-        }
-    }
-}
-
 OPTION *
 add_option_strlist_value (OPTIONS_LIST *options_list,
                           const char *option_name, const STRING_LIST *strlist)
diff --git a/tp/Texinfo/XS/main/customization_options.h 
b/tp/Texinfo/XS/main/customization_options.h
index 70752e7846..3e793e6377 100644
--- a/tp/Texinfo/XS/main/customization_options.h
+++ b/tp/Texinfo/XS/main/customization_options.h
@@ -35,6 +35,11 @@ void setup_sortable_options (OPTION **to_sort, OPTIONS 
*options);
 
 
 
+OPTION **new_sorted_options (OPTIONS *options);
+OPTION *find_option_string (OPTION **sorted_options, const char *name);
+
+
+
 void txi_initialise_base_options (void);
 
 
@@ -45,39 +50,27 @@ void clear_option (OPTION *option);
 void free_option (OPTION *option);
 void initialize_option (OPTION *option, enum global_option_type type,
                         const char *name);
-OPTION *new_option (enum global_option_type type, const char *name,
-                    size_t number);
 int option_set_conf (OPTION *option, int int_value, const char *char_value);
 void option_force_conf (OPTION *option, int int_value, const char *char_value);
 void copy_option (OPTION *destination, const OPTION *source);
 
 
 
-void setup_sorted_options (OPTION **sorted_options, OPTIONS *options);
-OPTION **new_sorted_options (OPTIONS *options);
-OPTION *find_option_string (OPTION **sorted_options, const char *name);
+void initialize_options_list (OPTIONS_LIST *options_list);
+void free_options_list (OPTIONS_LIST *options_list);
+void options_list_add_option_number (OPTIONS_LIST *options_list,
+                                     size_t number);
+void copy_options_list (OPTIONS_LIST *options_list,
+                        const OPTIONS_LIST *options_src);
 void copy_options_list_options (OPTIONS *options, OPTION **sorted_options,
                                 OPTIONS_LIST *options_list, int 
set_configured);
-void set_sorted_option_key_configured (OPTION **sorted_options,
-                                       const char *key, int configured);
-
-
 
-void initialize_options_list (OPTIONS_LIST *options_list);
 OPTION *add_option_value (OPTIONS_LIST *options_list,
                           const char *name,
                           int int_value, const char *char_value);
 OPTION *add_new_button_option (OPTIONS_LIST *options_list,
                               const char *option_name,
                               BUTTON_SPECIFICATION_LIST *buttons);
-void copy_options_list (OPTIONS_LIST *options_list,
-                        const OPTIONS_LIST *options_src);
-void free_options_list (OPTIONS_LIST *options_list);
-
-
-
-void options_list_add_option_number (OPTIONS_LIST *options_list,
-                                     size_t number);
 OPTION *add_option_strlist_value (OPTIONS_LIST *options_list,
                           const char *option_name, const STRING_LIST *strlist);
 



reply via email to

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