[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 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.,
Patrice Dumas <=