| 2026-10-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix M-x visit-menu | |
| * info/nodes.c (info_copy_node): New function, with code split | |
| from info_split_window. | |
| * info/session-cmd.c (info_split_window): Call info_copy_node. | |
| (info_visit_menu): Rewrite to use info_copy_node. Do not crash | |
| if enough new windows could not be created for all the referenced | |
| nodes. | |
| Crash with "M-x visit-menu" reported by Aidan <aidanczhai@gmail.com> | |
| for "info texinfo". | |
| 2026-10-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Customization Variables for @-Commands): | |
| Document paragraphindent specially. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output): do not use {} ater | |
| \x, it is not correct C. Report and solution from Bruno Haible. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| info: find indices with Index tags too | |
| * info/indices.c (info_indices_of_file_buffer): keep information on | |
| last node name found with an index, instead of last tag. | |
| Use Index tag to switch to use of markers to find nodes with index, | |
| and to find a node with index, if not already found. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (test_files), | |
| tta/perl/t/init/parser_customization_undef.pm, | |
| tta/tests/Makefile.onetst, tta/tests/customization/list-of-tests | |
| (cpp_lines_parser_customization_undef_command_line) | |
| (cpp_lines_parser_customization_undef_init_file): add tests setting a | |
| boolean variable used by parser to undef. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/parser_api.c (parser), tta/perl/Texinfo/ParserXS.pm | |
| (parser): handle undef boolean customization variables by setting the | |
| parser setter function to 0. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Config.pm (GNUT_get_customization) | |
| (texinfo_get_conf): add GNUT_get_customization that get customization | |
| variable and information about being set. Redefine texinfo_get_conf | |
| as a function of GNUT_get_customization. | |
| * tta/perl/texi2any.pl: call GNUT_get_customization to set parser | |
| option only if the option was set, but set if undef. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Config.pm (_GNUT_check_value_type): remove useless | |
| unused argument. | |
| 2026-10-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| Loop prevention in tree search | |
| * info/nodes.h (T_TreeSearchRoute): New define. | |
| * info/session-cmd.c | |
| (tag_for_node): New. | |
| (tree_search_check_node, tree_search_check_node_backwards): | |
| Check T_TreeSearchRoute flag on tag table before going down | |
| a menu entry, in order to protect against cyclical menu structures. | |
| Add debugging statements at level 4. | |
| (mark_tree_search_path, clear_tree_search_path): New functions, to | |
| setup and clear T_TreeSearchRoute flags. | |
| (do_tree_search_next, do_tree_search_prev): Wrappers for | |
| tree_search_check_node and tree_search_check_node_backwards. | |
| (info_tree_search, info_tree_search_next, info_tree_search_previous) | |
| (info_search_next, info_search_previous): | |
| Use these wrappers for user commands. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/txi_config.c (GNUT_check_value_type), | |
| tta/perl/Texinfo/Config.pm (_GNUT_check_value_type): replace | |
| "integer number" by "number". From Gavin. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl (set_converter_option_defaults, test): | |
| set DEBUG key value only if the corresponding value is defined. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| checks on variables and Perl types for all customization variables | |
| * tta/maintain/regenerate_perl_options_info.pl: set %options_type_* | |
| for all the types in Texinfo::Options. | |
| * tta/C/main/txi_config.c (GNUT_set_from_cmdline): return a status. | |
| * tta/perl/Texinfo/Config.pm (texinfo_set_from_init_file) | |
| (GNUT_set_from_cmdline), | |
| tta/perl/XSTexinfo/parser_document/ConfigXS.xs | |
| (texinfo_set_from_init_file), tta/C/texi2any.c | |
| (get_cmdline_customization_option): check that the Perl type of a | |
| variable matches with the customization variable type, confess or | |
| croak if not. Check that string and integer/boolean variables only | |
| are set from command-line. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/txi_config.c (texinfo_find_init_file_option_name) | |
| (GNUT_set_from_init_file): remove warn_obsolete_options and | |
| warn_obsolete_options call, as it has never been done consistently. | |
| Also an unknown customization variable already triggers a warning. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * NEWS: document stricter checking of boolean and integer | |
| customization variables. | |
| * doc/texi2any_api.texi b/doc/texi2any_api.texi | |
| (Setting Main Program String Variables): say that integer | |
| customization variable cannot be undef. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (test_files), | |
| tta/perl/t/init/integer_customization_undef.pm, | |
| tta/tests/Makefile.onetst, tta/tests/customization/list-of-tests | |
| (simplest_integer_customization_undef_command_line) | |
| (simplest_integer_customization_undef_init_file): add tests setting an | |
| integer variable to undef, both from command-line and init file. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/txi_config.c (set_option_value): set to -1 if value is | |
| NULL and type is GOT_boolean. | |
| * tta/C/texi2any.c (get_cmdline_customization_option), | |
| tta/C/main/txi_config.c (GNUT_set_from_cmdline): handle "undef" in | |
| get_cmdline_customization_option only, not in GNUT_set_from_cmdline. | |
| Do not call clear_option in get_cmdline_customization_option, instead | |
| set value to NULL, let the equivalent be done in set_option_value | |
| through GNUT_set_from_cmdline. | |
| * tta/C/main/txi_config.c (GNUT_set_from_cmdline) | |
| (GNUT_set_from_init_file): use an additional variable, corrected_value | |
| for the return value of GNUT_check_value_type, to avoid restting the | |
| value argument variable. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| warn if an integer option is set to undef | |
| * tta/C/main/txi_config.c (GNUT_check_value_type), | |
| tta/perl/Texinfo/Config.pm (_GNUT_check_value_type): warn if a | |
| customization of type integer (but not boolean) is set to undef. | |
| * tta/perl/init/book.pm: set WORDS_IN_PAGE to 0 instead of undef. | |
| * tta/perl/Texinfo/Convert/HTML.pm (_default_format_element_footer): | |
| compare WORDS_IN_PAGE explicitly to 0. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| avoid setting and needing to set integer options to undef | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (output), | |
| tta/perl/texi2any.pl, tta/C/texi2any.c (main): set SPLIT_SIZE to 0 if | |
| not split, and use that value in condition. | |
| * NEWS, doc/texinfo.texi (Info and Plaintext Customization Variables), | |
| tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): if | |
| AUTO_MENU_DESCRIPTION_ALIGN_COLUMN is set to 0, use the default value. | |
| Same for AUTO_MENU_MAX_WIDTH. | |
| * tta/C/convert/converter.c (id_to_filename), | |
| tta/perl/Texinfo/Convert/Converter.pm (BASEFILENAME_LENGTH), | |
| doc/texinfo.texi (File Names and Links Customization for HTML): do not | |
| cut the file name if BASEFILENAME_LENGTH is 0. | |
| * tta/data/options_data.txt: set a value to each of the integer | |
| customization options. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/get_perl_info.c (get_sv_option), tta/C/main/txi_config.c | |
| (set_option_value): remove checks on integer values and fallbacks, | |
| these are now done upon reading the customization variables from the | |
| command-line of from init files. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (test_files), | |
| tta/perl/t/init/boolean_customization_invalid.pm, | |
| tta/tests/Makefile.onetst, tta/tests/customization/list-of-tests | |
| (simplest_boolean_customization_invalid_command_line) | |
| (simplest_boolean_customization_invalid_init_file): add tests setting | |
| a boolean variable to something else than 1 or 0, both from | |
| command-line and init file. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| warn if boolean customization variable value is not 0 or 1 | |
| * tta/maintain/regenerate_perl_options_info.pl: output the list of | |
| booeal options in Texinfo::Options. | |
| * tta/C/main/txi_config.c (GNUT_check_value_type), | |
| tta/perl/Texinfo/Config.pm (_GNUT_check_value_type): check that a | |
| boolean customization is set to 0 or 1 and warn if not. Return the | |
| value, set to "0" or "1" if the variable is a boolean variable. | |
| * tta/C/main/txi_config.c (GNUT_set_from_cmdline) | |
| (GNUT_set_from_init_file), tta/perl/Texinfo/Config.pm | |
| (texinfo_set_from_init_file, GNUT_set_from_cmdline): update call of | |
| GNUT_check_value_type. | |
| 2026-10-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/data/converters_defaults.txt (common_parser): set the parser | |
| defaults to the same as options_data.txt. | |
| * tta/perl/Texinfo/ParserNonXS.pm (parser): handle undef | |
| EXPANDED_FORMATS. This cannot happen with main program nor regular | |
| tests, but better be robust. | |
| 2026-10-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/scan.c (scan_node_contents): Do not interpret repeated | |
| "* Menu:" marker as a menu entry, as seen in mtools.info. | |
| Attempted workaround to fix infinite loop in tree search. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-10-17 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/session-cmd.c | |
| (tree_search_check_node, tree_search_check_node_backwards): | |
| Remove extra code blocks used to avoid having a variable declaration | |
| other than at the start of a block. | |
| 2026-10-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (test_files), | |
| tta/perl/t/init/integer_customization_string.pm, | |
| tta/tests/Makefile.onetst b/tta/tests/Makefile.onetst, | |
| tta/tests/customization/list-of-tests | |
| (simplest_integer_customization_string_command_line) | |
| (simplest_integer_customization_string_init_file): add tests of | |
| paragraphindent customization variable set to a string through | |
| the command line or an init file. | |
| Based on a report by aidan. | |
| 2026-10-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/txi_config.c (GNUT_check_value_type), | |
| tta/perl/Texinfo/Config.pm (_GNUT_check_value_type): add, to give a | |
| warning if a string is given for an integer customization option. | |
| * tta/C/main/txi_config.c (GNUT_set_from_cmdline) | |
| (GNUT_set_from_init_file), tta/perl/Texinfo/Config.pm | |
| (texinfo_set_from_init_file, GNUT_set_from_cmdline), | |
| tta/perl/XSTexinfo/parser_document/ConfigXS.xs | |
| (texinfo_set_from_init_file): call GNUT_check_value_type when setting | |
| customization variables. Call GNUT_set_from_init_file from | |
| texinfo_set_from_init_file XS interface to get that call too. | |
| * tta/C/main/txi_config.c (GNUT_set_from_init_file): call clear_option | |
| if a value is NULL, to handle types of customization variables not | |
| handled by set_option_value. | |
| * tta/C/main/txi_config.c (set_option_value): set a NULL value for an | |
| integer or boolean variable to 0. If a string value is | |
| NULL, keep the option NULL instead of setting to an empty string. | |
| Seems to be more in line with Perl, which keeps undef strings. | |
| * tta/C/main/txi_config.c (GNUT_set_from_cmdline): if an option value | |
| is undef, call set_option_value with the value set to 0, now that it | |
| is handled for both integer and string variables. | |
| 2026-10-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_perl_options_info.pl: generate | |
| %options_type_integer hash in Texinfo::Options. | |
| 2026-10-16 Patrice Dumas <pertusus@free.fr> | |
| add boolean type for customization variables | |
| * tta/C/main/option_types.h (enum global_option_type), | |
| tta/maintain/regenerate_C_options_info.pl: add boolean option type. | |
| * tta/data/options_data.txt: change options type to boolean for | |
| options that are boolean options. | |
| * tta/C/convert/converter.c (set_commands_options_value) | |
| (copy_command_option_value_option, command_init), | |
| tta/C/main/build_perl_info.c (build_sv_option), | |
| tta/C/main/customization_options.c (clear_option, free_option) | |
| (initialize_option, option_set_conf_internal, copy_option) | |
| (set_informative_command_value), tta/C/main/get_perl_info.c | |
| (get_sv_option), tta/C/main/txi_config.c (set_option_value): handle | |
| GOT_boolean enum global_option_type, doing the same as for integer. | |
| 2026-10-16 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/session-cmd.c | |
| (tree_search_check_node, tree_search_check_node_backwards): | |
| If search fails, clear active_menu field of current node. This | |
| prevents subsequent commands attempting to continue the search. | |
| This would freeze the program if done from the dir node. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-10-16 Patrice Dumas <pertusus@free.fr> | |
| read index tag in Info reader and handle tag not being a node name | |
| * info/nodes.c (build_tag_table, get_nodes_of_tags_table) | |
| (info_node_of_tag_ext), info/scan.c (copy_input_to_output) | |
| (scan_node_contents), info/session-cmd.c (info_last_node) | |
| (info_first_node, info_search_internal): add T_IsNode flag and set for | |
| a node. Replace checks of tag being an anchor by check of not being a | |
| node (and vice sersa) when it is more logical. | |
| * info/nodes.c (get_nodes_of_tags_table, free_info_tag) | |
| (info_node_of_tag_ext), info/nodes.h (INFO_INDEX_LABEL, struct TAG) | |
| (T_IsIndex): read an Index tag from the Tag table. Set indexname, | |
| added to struct TAG, for Index tag, not nodename. Free indexname. | |
| Handle Index tag in info_node_of_tag_ext like an anchor tag. | |
| * info/indices.c (info_indices_of_file_buffer), info/info.c | |
| (add_initial_nodes), info/nodes.c (info_get_node_tag_of_file_buffer), | |
| info/session-cmd.c (info_goto_node, info_search_internal) | |
| (tag_of_reference): check if a tag has a nodename to find a node or | |
| anchor. | |
| 2026-10-15 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Short Sample Texinfo File): | |
| Remove @node lines duplicating @section lines. | |
| (The Body of the Document): Remove duplicate @node lines for | |
| @chapter and @section. Word node carefully to avoid saying the | |
| exact number of nodes in the example; only say there are three | |
| nodes for Info output. | |
| 2026-10-15 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (The Top Node): Edit slightly to avoid being | |
| specific to the Info format. | |
| 2026-10-15 Patrice Dumas <pertusus@free.fr> | |
| Special index tag in Info for "Index" in node names and no printindex | |
| * tta/C/convert/convert_to_plaintext.c (info_cache_node_names), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_cache_node_names): add an | |
| argument asking to determine if there is at least one node name with | |
| the "Index" string, and if so return 1. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (output): if there is no | |
| @printindex for an Info file and Index happens in a node name, as | |
| determined by a call to info_cache_node_names, add an Index: tag with | |
| name _ at byte 0 such that an Info reader knowing about the Index: tag | |
| can infer that the processor doing the Info file is recent enough and | |
| only Index: tags should be used to determine printed indices | |
| locations, such that nodes with "Index" in their name are not | |
| considered to actually be nodes with printed indices. | |
| * tta/perl/t/info_tests.t (index_string_in_node_no_index), | |
| tta/perl/t/test_files_generated_list.txt: add test with Index in node | |
| name but no @printindex. | |
| 2026-10-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (info_cache_node_names): rename | |
| plaintext_cache_node_names as info_cache_node_names. Update callers, | |
| change/add comments. | |
| * tta/C/convert/convert_to_info.c (info_output): fix a compilation | |
| warning. | |
| 2026-10-14 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (Global Customization Variables): precise that with | |
| AUTO_SECTION_NODE the node name used for @top is always "Top". | |
| 2026-10-14 Patrice Dumas <pertusus@free.fr> | |
| add printed indices location tags in Info | |
| * tta/data/options_data.txt (_USE_NEW_INFO_TAGS): add. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex) | |
| (stream_encode), tta/C/main/plaintext_converter_state.h | |
| (enum conv_type, TARGET_LOCATION, PENDING_TEXT), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_stream_encode) | |
| (process_printindex): put an index special pending text type in | |
| pending texts for @printindex, with index name as argument. Gather | |
| the bytes count of such pending text in stream_encode and put in | |
| target_locations. Extend associated struct and enum. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (output): add new index | |
| location tags from target_locations in the Info file tags. In the | |
| default case, prepend "Ref: ^H" as a standalone Info reader released | |
| before 2025 breaks with any tag different from Ref and Node. If | |
| _USE_NEW_INFO_TAGS is set, use directly the Index: tag. | |
| 2026-10-14 Patrice Dumas <pertusus@free.fr> | |
| * NEWS: announce the redesign of the Info and plaintext converters | |
| even though it is not user facing, it helps extending the converter | |
| for new object placed in the output stream, in particular with bytes | |
| count. | |
| 2026-10-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Nodes): Remove extraneous sentence. | |
| 2026-10-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Unstructured Nodes): Move from "Chapter | |
| Structuring" chapter to "Nodes" chapter. Suggestion from Patrice. | |
| 2026-10-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| Revise documentation of node/structuring commands | |
| * doc/texinfo.texi (Tree Structuring): Remove example of | |
| @node/@chapter completely. This may have been next to the hierarchical | |
| chart to explain node pointers but the example doesn't use them. | |
| (Chapter Structuring): Put basic examples of @chapter or @node/@chapter | |
| here. | |
| 2026-10-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| Revise documentation of node/structuring commands | |
| * doc/texinfo.texi (Chapter Structuring): Mention alternative name | |
| "sectioning commands". Mention that sectioning commands can separate | |
| a document into nodes. Do not say that a @node command is "normally" | |
| used with a sectioning command. | |
| (Tree Structuring): Remove example with explicit node pointers as this | |
| exact example is also given in the "Nodes" chapter in "Node Menu | |
| Illustration". | |
| 2026-10-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Tree Structuring): Update "previous chapter" | |
| to "next chapter" after last change. | |
| 2026-10-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Chapter Structuring, Nodes): Swap order of | |
| chapters. Suggestion from Patrice. | |
| 2026-10-14 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking: add (cd tta/perl/t ; git clean -n .) to show | |
| empty directories that are not useful, are not shown by git status, | |
| and will en up in tta/perl/t/test_dirs_generated_list.txt. Based on a | |
| report from Werner Lemberg. | |
| * tta/perl/t/test_dirs_generated_list.txt: update. | |
| 2026-10-13 Patrice Dumas <pertusus@free.fr> | |
| TODO: add a point on @heading and shadow targets for the future | |
| 2026-10-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk (BEGIN): correct bounds of a loop. | |
| Report from Werner. | |
| 2026-10-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| * NEWS: mention <span> for output of @expansion{} etc. | |
| 2026-10-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Global Customization Variables) | |
| <AUTO_SECTION_NODE>: | |
| Go into more detail about the possible use of AUTO_SECTION_NODE=0. | |
| 2026-10-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Nodes): Remove out-of-date discussion of | |
| using sectioning commands without node commands. Cross-reference | |
| "Cross Reference Targets" node and documentation of AUTO_SECTION_NODE. | |
| 2026-10-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Global Customization Variables) | |
| <WARN_DUPLICATE_SECTION_TARGET>: | |
| Add xref to "Cross Reference Targets". | |
| 2026-10-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Cross Reference Targets): New node in | |
| "Cross-references" chapter. First attempt at documenting new | |
| "shadow targets" feature. | |
| 2026-10-13 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (Document Metadata, @code{@@title @@subtitle | |
| @@author}): move information on commands in @documentinfo and | |
| @itilepage not specific of @titlepage to @documentinfo, as it is where | |
| those commands appear first. | |
| * doc/texinfo.texi (@code{@@titlefont @@center @@sp}): be more precise | |
| that the method is the second method with @titlepage. | |
| 2026-10-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| texindex: fix sort order | |
| * texindex/texindex.awk (BEGIN): Set up case-insensitive order array | |
| "Ordval_ignorecase" as intended to sort upper case and lower case | |
| characters after other characters, as intended. The previous code | |
| was incorrect and led to "[" and "]" sorting after alphabetical | |
| characters based on their position in the ASCII table. | |
| Report from Werner Lemberg. | |
| 2026-10-13 Patrice Dumas <pertusus@free.fr> | |
| * NEWS, doc/texinfo.texi (WARN_DUPLICATE_SECTION_TARGET): add | |
| WARN_DUPLICATE_SECTION_TARGET basic description. | |
| 2026-10-13 Patrice Dumas <pertusus@free.fr> | |
| customization of duplicate section targets warning | |
| * tta/data/options_data.txt (WARN_DUPLICATE_SECTION_TARGET): add | |
| customization option. | |
| * tta/C/structuring_transfo/transformations.c | |
| (insert_nodes_for_sectioning_commands), | |
| tta/perl/Texinfo/ManipulateTreeNonXS.pm | |
| (insert_nodes_for_sectioning_commands), | |
| tta/perl/XSTexinfo/parser_document/ManipulateTreeXS.xs | |
| (insert_nodes_for_sectioning_commands): add warnings for duplicate | |
| section targets and add an argument to trigger those warnings. | |
| * tta/C/structuring_transfo/structuring.c (sectioning_targets), | |
| tta/perl/Texinfo/StructuringNonXS.pm (sectioning_targets), | |
| tta/perl/XSTexinfo/parser_document/StructuringXS.xs | |
| (sectioning_targets): add an argument to control warnings. | |
| * tta/C/structuring_transfo/transformations.h | |
| (STTF_no_warn_duplicate_section_target), | |
| tta/C/structuring_transfo/transformations.c | |
| (complete_transform_document), tta/C/texi2any.c (formats_table, main), | |
| tta/perl/texi2any.pl (%formats_table), tta/swig/texinfo.i: add to | |
| complete_transform_document an argument to control warnings for | |
| duplicate section targets, passed to | |
| insert_nodes_for_sectioning_commands and sectioning_targets, and set | |
| it based on the format and on WARN_DUPLICATE_SECTION_TARGET value | |
| in the main program in C. In Perl, use more directly | |
| WARN_DUPLICATE_SECTION_TARGET value and %formats_table to pass | |
| the argument to insert_nodes_for_sectioning_commands and | |
| sectioning_targets. | |
| The warnings are unset in the default case for HTML and Info, which | |
| have automatic nodes for sectioning commands without nodes set. | |
| * tta/perl/t/test_utils.pl (test): pass WARN_DUPLICATE_SECTION_TARGET | |
| to insert_nodes_for_sectioning_commands and sectioning_targets. | |
| * tta/perl/t/converters_tests.t, tta/perl/t/docbook_tests.t, | |
| tta/perl/t/transformations.t: set WARN_DUPLICATE_SECTION_TARGET for | |
| some tests. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/09indices.t (nested_and_duplicate_sortas): add test with | |
| multiple @sortas and nested @sortas. Based on Werner Lemberg report. | |
| 2026-10-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Node Line Requirements, Menu Parts): | |
| Remove warning about multiple spaces in menu entries, handled | |
| correctly by Info since 2022. | |
| 2026-10-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Menu Parts): Give more detail about problematic | |
| constructs and cross-reference Info Format appendix. | |
| 2026-10-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Cross Reference Parts): Mention restriction | |
| on characters in label name as well as node name. Report from Eli. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c (INDEX_COLLATOR): ifdef the whole | |
| coll union, to avoid defining an empty union. Found on Solaris. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): move usepackage | |
| for graphicx, etoolbox and titleps to packages covered by | |
| END_USEPACKAGE. It is less likely fo users to want to replace these | |
| packages, making CLASS_BEGIN_USEPACKAGE easier to modify. | |
| * doc/texinfo.texi (@LaTeX{} Customization Variables): update. | |
| Incite to change CLASS_BEGIN_USEPACKAGE, but not END_USEPACKAGE. | |
| 2026-10-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/configure.ac, configure.ac: remove apparently unneeded | |
| AC_PROG_INSTALL lines. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * po/POTFILES.in: update. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (all-local): add all-local with | |
| stamp.regenerate_file_lists to have products_regenerate_file_lists | |
| files back after make maintainer-clean followed by make (without a | |
| need to run make dist too). | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * doc/Makefile.am (texi2any_api_TEXINFOS): texi2any_api, not texinfo, | |
| depends on html_default_commands_args.texi. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/highlight_syntax.pm (highlight_preformatted_command): | |
| reorder code and mark more clearly with comments what parts of the | |
| code are to be synchronized with HTML converter conversion functions. | |
| Sync code with HTML converter conversion functions. | |
| 2026-10-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Setting the Output File Name): Add a | |
| cross-reference to "Global Customization Variables" for more | |
| details on OUTFILE and SUBDIR. | |
| 2026-10-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Invoking texi2any) <-D>: Refer to a "flag" rather | |
| than "variable" to avoid possible confusion with customisation | |
| variables. | |
| 2026-10-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Invoking texi2any, Setting the Output File Name): | |
| Move discussion of -o taking priority over @setfilename to | |
| "Setting the Output File Name". | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/highlight_syntax.pm (highlight_setup): read the | |
| remaining lines from the highlight program pipe to avoid an error | |
| when closing the pipe. | |
| Also show $? in command pipe closing error message. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/highlight_syntax.pm: use single quoted strings when | |
| there is no interpolation. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/highlight_syntax.pm (highlight_setup): warn if closing | |
| the communication with the command errored out. | |
| * tta/perl/ext/latex2html.pm: remove an uninteresting FIXME. | |
| * tta/perl/ext/tex4ht.pm: use single quoted strings when there is | |
| no interpolation. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/latex2html.pm: change beginning of functions. Rename | |
| $document_root as $tree_root. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/tex4ht.pm: change beginning of functions. Rename | |
| $document_root as $tree_root. | |
| 2026-10-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/tex4ht.pm ($tex4ht_file_content_encoding): encode | |
| generated tex/latex/texi file and decode resulting HTML file. Use | |
| iso-8859-1 as it is what gives the best results in the test suite | |
| since accented letters are iso-8859-1 encoded, though it is not | |
| perfect as image file with accent in their names are UTF-8 encoded. | |
| 2026-10-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Common.pm (count_bytes): use | |
| processging_output_encoding to determine the Perl encoding. | |
| Changes in comments, remove unneeded TODOs. | |
| 2026-10-10 Patrice Dumas <pertusus@free.fr> | |
| hide COLLATION_LANGUAGE and DOCUMENTLANGUAGE_COLLATION, remove from C | |
| * tta/C/main/document_types.h (enum collation_type_name), | |
| tta/C/main/manipulate_indices.c (get_sort_key, setup_collator) | |
| (get_collation_sorted_indices_by_index) | |
| (get_collation_sorted_indices_by_letter): remove the | |
| ctn_language_collation possibility from get_sort_key, comment out the | |
| collation_language code in setup_collator, use ctn_unicode collation | |
| for input_lang_sorting_locale in get_collation_sorted_indices_by_* | |
| and comment out code related to ctn_language_collation. Comment out | |
| ctn_language_collation from enum collation_type_name now that it is | |
| not used anymore. Add comments explaining how code could be readded | |
| if there was native C possibility for collation linguistic tailoring. | |
| * tta/C/main/manipulate_indices.c (INDEX_COLLATOR, destroy_collator), | |
| tta/C/main/call_perl_function.c: remove unused INDEX_COLLATOR coll.sv | |
| field and associated code, remove unused call_setup_lang_collator and | |
| call_collator_getSortKey. | |
| * tta/C/texi2any.c (main): do not load embedded Perl anymore if | |
| DOCUMENTLANGUAGE_COLLATION or COLLATION_LANGUAGE are set. | |
| * NEWS, doc/texinfo.texi (Printing Indices & Menus) | |
| (Setting the language, Global Customization Variables): update, | |
| put documentation related to COLLATION_LANGUAGE and | |
| DOCUMENTLANGUAGE_COLLATION in @ignore. | |
| * tta/tests/other/list-of-tests: comment out all the tests related to | |
| collation linguistic tailoring. | |
| 2026-10-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/configure.ac, tta/defs.in: remove TESTS_MAIN_COMMAND AC_SUBST | |
| from configure.ac, as nothing sets the variable anymore. Change | |
| defs.in such that the value is not set by configure. Leave it to be | |
| set manually, it could be useful to set in one place the command used | |
| for the tta/tests temporarily. | |
| 2026-10-10 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (@code{@@documentencoding}): add a footnote | |
| explaining that texi2any may substitute encodings. Use "based on" | |
| instead of "set to" in the main text to match this possibility of | |
| substitution. The text remains vague on purpose to avoid committing | |
| to anything, but the user should not be surprised if the output | |
| encoding is not the encoding specified by OUTPUT_ENCODING_NAME. | |
| 2026-10-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Common.pm (processing_output_encoding): use the | |
| encoding_name_conversion_map map on preferred encoding name obtained | |
| with call of Encode::find_encoding followed by | |
| lc(Encode::find_encoding()->mime_name()). Also return the encoding | |
| name, set to a different name than the argument encoding if set by | |
| using encoding_name_conversion_map. | |
| * tta/C/main/utils.c (map_encoding_name, encoding_name_conversion_map) | |
| (processing_output_encoding, get_encoding_conversion), | |
| tta/C/parsetexi/end_line.c (end_line_misc_line): move code | |
| corresponding to Perl Encode::find_encoding followed by | |
| lc(Encode::find_encoding()->mime_name()) to map_encoding_name out of | |
| end_line.c end_line_misc_line. Add encoding_name_conversion_map | |
| corresponding better to using | |
| %Texinfo::Common::encoding_name_conversion_map{lc(..)} in Perl. | |
| Add processing_output_encoding in C, only for the encoding name | |
| determination. Use encoding_name_conversion_map in | |
| get_encoding_conversion. | |
| * tta/C/main/convert_utils.c (element_associated_processing_encoding): | |
| call processing_output_encoding as in Perl. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_setup_output_encoding), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_setup_output_encoding): | |
| set encoding_name converter field in setup_output_encoding based on | |
| processing_output_encoding call on OUTPUT_ENCODING_NAME. Do not do | |
| anything special with ascii encoding. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (output): use registered | |
| encoding_name instead of the direct value of OUTPUT_ENCODING_NAME | |
| to get the character set possibly different, extended in the same way | |
| encoding conversions are done. That way, the Info readers can | |
| decode from the encoding actually used in the Info file. | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (conversion_initialization) | |
| (convert_math_to_images): call | |
| Texinfo::Common::processing_output_encoding to get the output encoding | |
| name actually used, to set $self->{'output_encoding_name'} in | |
| conversion_initialization, or to be used directly in | |
| convert_math_to_images. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c, | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm: change two TODO to NOTE. | |
| 2026-10-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo-tex-test.texi (Test of @math): Add. | |
| 2026-10-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix \ in @math on section line | |
| * doc/texinfo.tex (\math): Use \scantokens to scan the @math argument. | |
| (\newwrite, \scantokens): Move definitions earlier in file as now they | |
| are no longer used just for macro expansion. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_reference_to_footnote), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_format_reference_to_footnote, plaintext_functions) | |
| (convert_to_plaintext_internal), tta/perl/Texinfo/Convert/InfoNonXS.pm | |
| (format_reference_to_footnote), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (format_reference_to_footnote, _convert): add | |
| format_reference_to_footnote to dispatch formatting of reference to | |
| footnote, where the footnote appears. Do not do anything in | |
| plaintext, and in Info reuse the previously used formatting to | |
| output a reference if footnotestyle is separate. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_footnotes), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (format_footnotes): always | |
| format in the footnotestyle end format in plaintext. Translate the | |
| footnotes header. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| different functions for plaintext and Info footnotes formatting | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_process_one_footnote, plaintext_process_footnotes), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (process_one_footnote) | |
| (process_footnotes): separate code in process_one_footnote with the | |
| code used to do the actual formatting of one footnote text output. | |
| * tta/C/convert/convert_to_info.c (info_header, info_output) | |
| (info_format_footnotes), tta/C/convert/convert_to_plaintext.c | |
| (PLAINTEXT_FORMAT_FUNCTIONS, plaintext_format_footnotes) | |
| (plaintext_functions, plaintext_convert_output_unit), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (_info_header, output) | |
| (format_footnotes), tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (convert_output_unit, format_footnotes): dispatch footnotes formatting | |
| to different functions in Info and plaintext. Add | |
| info_format_footnotes, rename plaintext_process_footnotes to | |
| plaintext_format_footnotes and remove code related to nodes and | |
| anchors from plaintext_format_footnotes. Update callers. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (output): accumulate | |
| output in memory and output when a whole file is ready. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): explain a TODO | |
| and turn it to a NOTE. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_node), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| rename node_text or node_name variable to node_name_width. | |
| * tta/C/main/plaintext_converter_state.h: remove TODO. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): use plaintext_commands_data instead | |
| of self_plaintext->commands_data for unmodified information. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization): properly reinitialize | |
| enabled_encoding and to_utf8 fields. | |
| * tta/C/main/plaintext_converter_state.h: change order of some fields. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_node_name) | |
| (plaintext_node_name, plaintext_cache_node_names), | |
| tta/C/main/plaintext_converter_state.h (STRING_WITH_WIDTH): replace | |
| string and len fields of STRING_WITH_WIDTH by a TEXT for more | |
| consistent code. Update users. | |
| 2026-10-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Config.pm (texinfo_set_from_init_file) | |
| (GNUT_set_from_cmdline, GNUT_set_customization_default): remove | |
| _GNUT_map_obsolete_options and call to _GNUT_map_obsolete_options. It | |
| has only ever been used for one variable, it is not done in C, and | |
| there is no need for something generic, backward compatibility can be | |
| setup for each customization option. | |
| * tta/C/convert/converter.c: add missing include. | |
| * tta/C/convert/call_conversion_perl.c | |
| (call_config_GNUT_load_init_file): replace TODO by a NOTE. | |
| 2026-10-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_output), | |
| tta/C/convert/converter.c (is_null_device_name), | |
| tta/C/convert/html_prepare_converter.c (html_setup_output): add the | |
| is_null_device_name function to determine if a file name is a null | |
| device. | |
| * tta/perl/Texinfo/Common.pm (is_null_device_name): add a function to | |
| determine if a file name is a null revice. Replace checking | |
| %null_device_file key by calling is_null_device_name in converters. | |
| * tta/C/convert/converter.c (is_null_device_name), | |
| tta/perl/Texinfo/Common.pm (is_null_device_name): if the null device | |
| name is nul (case insensitive), compare with case insensitivity. | |
| 2026-10-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (translate_string): remove the _WIN32 | |
| special case, the locale-h gnulib module should define LC_MESSAGES and | |
| setlocale. Also the setenv gnulib module should call the right | |
| Windows function. Report from Bruno and Eli. | |
| * tta/C/main/translations.c (switch_messages_locale): add a special | |
| case for _WIN32, do not call locales, instead also try a fr locale. | |
| 2026-10-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.h (decl_list_fns(*)) | |
| (decl_stack_fns(*)), tta/C/main/plaintext_converter_state.h: move | |
| function definitions through list macros to convert_to_plaintext.h. | |
| * tta/C/parsetexi/commands.c (remove_texinfo_command): change a FIXME | |
| to a TODO. | |
| 2026-10-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| Attempt fix if @nabla etc. used in aux file. | |
| * doc/texinfo.tex (\mathchardefdummies): New macro. Provide | |
| definitions for @nabla, @times and @cdot in case they are used in | |
| section titles. | |
| (\xrdefctxt): Call it. | |
| Report from Hilmar Preusse <hille42@web.de> for Blitz++ manual. | |
| Debian bug report https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1149404. | |
| 2026-10-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Multiple Spaces): Add more commentary on | |
| the inconsistencies and limitations of using @SPACE and @TAB | |
| with TeX. Suggestion from Patrice. | |
| 2026-10-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (converter_format_data) | |
| (converter_remove_output_units), tta/C/convert/html_converter_finish.c | |
| (html_release_output_units): move code of | |
| destroy_converter_output_units to html_converter_finish.c | |
| html_release_output_units. Put html_release_output_units as ca | |
| callback in converter_format_data and remove | |
| destroy_converter_output_units and the corresponding call. | |
| 2026-10-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output): initialize info | |
| converter bytes count. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization): reset node_names_cache only if | |
| there are nodes. | |
| * tta/C/convert/converter.c (converter_set_document), | |
| tta/C/convert/html_prepare_converter.c | |
| (html_conversion_initialization): reset html specific information | |
| linked to the document in html specific code. | |
| * tta/perl/t/z_misc/same_converter_init.t: test reusing a converter | |
| for Info. | |
| 2026-10-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (collect_commands_list_in_tree_internal) | |
| (collect_commands_list_in_tree): rename | |
| collect_commands_in_tree_internal to | |
| collect_commands_list_in_tree_internal and collect_commands_in_tree to | |
| collect_commands_list_in_tree. Update caller. | |
| * tta/perl/Texinfo/Common.pm (debug_print_reference_key_val_info): | |
| rename debug_print_element_details to | |
| debug_print_reference_key_val_info. Update caller. | |
| update ALTIMP comments | |
| 2026-10-07 Patrice Dumas <pertusus@free.fr> | |
| update ALTIMP comments for transformations/manipulate tree | |
| 2026-10-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/perl/Makefile.am (AM_CPPFLAGS), tta/swig/python/Makefile.am | |
| (AM_CPPFLAGS), tta/swig/perl/Makefile.PL: do not define LIBDIR, | |
| CONVERTER_CONFIG nor PACKAGE_VERSION_CONFIG, they are not used. | |
| 2026-10-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ManipulateTreeNonXS.pm (_new_node) | |
| (insert_nodes_for_sectioning_commands): remove namespacing for | |
| function from this file. | |
| 2026-10-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ManipulateTreeNonXS.pm (_reassociate_to_node) | |
| (_new_node, insert_nodes_for_sectioning_commands), | |
| tta/perl/Texinfo/TransformationsNonXS.pm, | |
| tta/perl/XSTexinfo/parser_document/ManipulateTreeXS.xs | |
| (insert_nodes_for_sectioning_commands), | |
| tta/perl/XSTexinfo/parser_document/TransformationsXS.xs: move | |
| insert_nodes_for_sectioning_commands to ManipulateTree now that it is | |
| used in the default case for Info and HTML converters. Update | |
| callers. | |
| 2026-10-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/TransformationsNonXS.pm | |
| (insert_nodes_for_sectioning_commands): remove building of Perl data | |
| now that either Perl code or C code is used. | |
| 2026-10-05 Patrice Dumas <pertusus@free.fr> | |
| * TODO: add task on replacing CRLF by LF when regenerating tests. | |
| * tta/C/texi2any.c: reindent. | |
| 2026-10-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Tests.pm (_compare_no_cr): use \r instead of \R, as | |
| \R catches any vertical space. | |
| 2026-10-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/30sectioning.t, tta/perl/t/40moresectioning.t, | |
| tta/perl/t/html_tests.t: skip tests with input files with CRLF, | |
| in_menu_only_special_ascii_spaces_node.texi, | |
| in_menu_only_special_spaces_node.texi, only_special_spaces_node.texi | |
| and simple_only_special_spaces_node.texi if the platforw detected by | |
| Perl is Windows. Note that this also skips tests when Windows is | |
| detected but Perl and/or XS/C does not use native I/O. | |
| 2026-10-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Tests.pm (compare_dirs_files): add comments. Close | |
| opened filehandles. | |
| 2026-10-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/mkwebdir.pl, doc/translations/mkwebdir.pl: Move file. Place | |
| any subdirectories at the end of the listing. | |
| * doc/translations/README: add file. | |
| 2026-10-04 Jamenson Espindula <jafesp@gmail.com> | |
| * doc/translations/pt_BR: Add files for texinfo.texi translation. | |
| 2026-10-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Tests.pm (_compare_no_cr, compare_dirs_files): | |
| add an argument to compare_dirs_files to mean that files being | |
| compared are binary files. If files are not binary files, open | |
| the files in compare_dirs_files in binary mode, but compare them with | |
| compare_text by using _compare_no_cr to remove any type of end of line | |
| before doing the line comparison. | |
| * tta/perl/t/test_utils.pl (test): use a $binary_format variable, set | |
| for info. Use it in the call to compare_dirs_files. | |
| 2026-10-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl: always use Texinfo::Transformations. | |
| * tta/perl/t/test_utils.pl (test): handle AUTO_SECTION_NODE as | |
| a structuring option only, not a parser option. | |
| 2026-10-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/perl/Makefile.am (all-local): copy .libs in .libs/auto | |
| using an explicit copy taking care that we want to copy in a | |
| subdirectory instead of using LN_S, in case LN_S does a copy. | |
| 2026-10-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/replace_perl_api_call.c (call_eval_use_module), | |
| tta/C/convert/replace_call_embed_perl.c: move to the right file to | |
| match where the real implementation is and what uses the function. | |
| 2026-10-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/text.h: undef TEXT as a macro, in case it was defined as | |
| such in winnt.h on MSYS2. From Gavin. | |
| 2026-10-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Naming the Output Directory): | |
| Add xref to "HTML Splitting" node. | |
| 2026-10-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (HTML Splitting): Give slightly less detail | |
| and update xref to refer to "Naming the Output Directory" | |
| instead of "Setting the Output File Name". | |
| (Naming the Output Directory): Give more detail. | |
| 2026-10-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Invoking @command{texi2any}) <--output>, | |
| (Setting the Output File Name, Naming the Output Directory): | |
| Add @anchor and @subheading under "Setting the Output File Name". | |
| Move content from "Invoking texi2any" under this heading and | |
| cross-reference it. | |
| 2026-10-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Invoking @command{texi2any}) <--output>: | |
| Change @var{file} to @var{dest} for consistency with output of | |
| "texi2any --help". Remove part of ignored block discussing use | |
| of directory as the --output argument. | |
| 2026-10-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Setting the Output File Name): edit | |
| 2026-10-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| usage message for --output | |
| * tta/perl/texi2any.pl (makeinfo_help), tta/C/texi2any.c (main): | |
| Edit usage message for --output. | |
| 2026-09-30 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/mkwebdir.pl: add helper program for creating directory listing | |
| files for the website. | |
| 2026-09-30 zhaiyn <zhaiyn-free@foxmail.com> | |
| * doc/translations/zh_CN/texinfo-zh_CN.texi: Add Chinese translation | |
| of texinfo.texi and associated files. | |
| 2026-10-01 Patrice Dumas <pertusus@free.fr> | |
| Handle warnings from clang | |
| * tta/C/texi2any.c (main): add missing parenthesis. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): initialize @link text argument | |
| element in case the command is empty. | |
| * tta/C/parsetexi/macro.c (expand_linemacro_arguments): initialize | |
| to 0 to help compiler understand that it cannot be uninitialized, as | |
| the knowledge comes from another part of the code. | |
| * tta/C/main/translations.c (translate_string): move definition of | |
| variables in the pre-processor conditional they are used in. | |
| * tta/C/texi2any.c (main): move definition of variables in the | |
| pre-processor conditional where it is used. | |
| 2026-09-30 Patrice Dumas <pertusus@free.fr> | |
| AUTO_SECTION_NODE instead of transformation in documentation | |
| * NEWS, TODO, doc/texinfo.texi (Global Customization Variables): add | |
| AUTO_SECTION_NODE and remove insert_nodes_for_sectioning_commands | |
| mention as tree transformation. | |
| 2026-09-30 Patrice Dumas <pertusus@free.fr> | |
| replace tree transformation by AUTO_SECTION_NODE variable | |
| * tta/data/options_data.txt (AUTO_SECTION_NODE), | |
| tta/C/structuring_transfo/transformations.c | |
| (complete_transform_document), | |
| tta/C/structuring_transfo/transformations.h, tta/C/texi2any.c | |
| (formats_table, main), tta/perl/t/test_utils.pl (test), | |
| tta/perl/texi2any.pl (%formats_table), tta/swig/texinfo.i | |
| (complete_transform_document): add AUTO_SECTION_NODE customization | |
| variable, and replace insert_nodes_for_sectioning_commands tree | |
| transformation by this customization variable. Use an argument to | |
| complete_transform_document to pass the information on automatic | |
| section nodes generation instead of using a flag. Update main | |
| programs. Keep insert_nodes_for_sectioning_commands as a tree | |
| transformation for backward compatibility. | |
| * tta/perl/t/info_tests.t, tta/perl/t/transformations.t: replace | |
| insert_nodes_for_sectioning_commands tree transformation by | |
| AUTO_SECTION_NODE. | |
| 2026-09-30 Patrice Dumas <pertusus@free.fr> | |
| * NEWS: document that TXI_MARKUP_NO_SECTION_EXTENT and | |
| TEXINFO_DTD_VERSION are removed. | |
| * TODO, doc/txivarcheck (read_vars): ignore | |
| TXI_MARKUP_NO_SECTION_EXTENT and TEXINFO_DTD_VERSION. | |
| 2026-09-30 Patrice Dumas <pertusus@free.fr> | |
| update po | |
| 2026-09-30 Patrice Dumas <pertusus@free.fr> | |
| * po_document/POTFILES.in, Makefile.am (po_document-check): update for | |
| the change in html32.pm location. | |
| 2026-09-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/ppport.h: update. | |
| 2026-09-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/configure.ac: determine use_shared_txi_libraries right after | |
| with_swig is set. Do the SWIG related tests only if both with_swig | |
| and use_shared_txi_libraries are set. | |
| * tta/configure.ac: update/improve comments. | |
| * tta/swig/Makefile.am (SUBDIRS): remove obsolete libperl related | |
| conditionals for python now that SWIG interface is never linked | |
| against libperl. | |
| 2026-09-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/transformations.c | |
| (fill_gaps_in_sectioning_in_document), | |
| tta/perl/Texinfo/TransformationsNonXS.pm | |
| (fill_gaps_in_sectioning_in_document), | |
| tta/perl/XSTexinfo/parser_document/TransformationsXS.xs | |
| (fill_gaps_in_sectioning_in_document): do not return the added | |
| sections list. | |
| 2026-09-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/transformations.c | |
| (insert_nodes_for_sectioning_commands), | |
| tta/perl/Texinfo/TransformationsNonXS.pm | |
| (insert_nodes_for_sectioning_commands): do not return the list of | |
| added nodes. Update callers. | |
| 2026-09-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_ref, info_format_node), | |
| tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (format_ref, format_node), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): protect | |
| reference to internal node starting with a parenthesis. | |
| * tta/perl/t/30sectioning.t (protected_node_parentheses): add a ref to | |
| the protected @node. | |
| * tta/perl/t/info_tests.t (parenthesis_in_node_name_implicit_refs) | |
| (parenthesis_in_node_name_explicit_refs), | |
| tta/perl/t/test_files_generated_list.txt: tests with | |
| insert_nodes_for_sectioning_commands transformation set to have a | |
| valid node with leading parenthesis. Test automatically generated | |
| menu and node directions. Test explicit menu and node directions, the | |
| open parenthesis not being escaped. | |
| 2026-09-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output): use specific math | |
| images directory. | |
| * tta/tests/run_parser_all.sh (post_process_output): update for the | |
| presence of a subdirectory when use_info_math2img is set to yes. | |
| * tta/tests/many_input_files/text_*.sh: update for change in --output. | |
| 2026-09-27 Patrice Dumas <pertusus@free.fr> | |
| insert_nodes_for_sectioning_commands tree transformation by default | |
| * tta/C/texi2any.c (formats_table), tta/perl/texi2any.pl | |
| (%formats_table): add insert_nodes_for_sectioning_commands | |
| transformation in the default case for HTML and Info. | |
| 2026-09-27 Patrice Dumas <pertusus@free.fr> | |
| no reference target for sections added nodes if ambiguous | |
| * tta/C/structuring_transfo/transformations.c (new_node), | |
| tta/perl/Texinfo/TransformationsNonXS.pm (_new_node): add a new | |
| argumet that can be used to start with a postpended number, if one | |
| does not want to have the reference name used. | |
| * tta/C/structuring_transfo/transformations.c | |
| (ELEMENT_WITH_ADDED_INFO, insert_nodes_for_sectioning_commands), | |
| tta/perl/Texinfo/TransformationsNonXS.pm | |
| (insert_nodes_for_sectioning_commands): determine first the number of | |
| sections without node associated to a given normalized name. If there | |
| is more than one, consider that there is ambiguity and add nodes with | |
| postpended numbers for all these sections. For Gavin. | |
| 2026-09-27 Patrice Dumas <pertusus@free.fr> | |
| * NEWS: explain change of -o and that SUBDIR can be used instead. | |
| * doc/texinfo.texi (Invoking @command{texi2any}): plaintext split is | |
| the same as HTML split for -o. | |
| * doc/texinfo.texi (Customization Variables and Options) | |
| (Global Customization Variables): remove SUBDIR from "Customization | |
| Variables and Options" and add a separate entry in the "Global | |
| Customization Variables" list. | |
| 2026-09-26 Patrice Dumas <pertusus@free.fr> | |
| do not set SUBDIR based on -o command-line option | |
| * tta/C/texi2any.c (main), tta/perl/texi2any.pl: never set SUBDIR | |
| based on -o/--output command-line option. Update --help. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_output), | |
| tta/C/convert/html_prepare_converter.c (html_setup_output), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_setup_output), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (output): in HTML and | |
| plaintext converters, if SPLIT and OUTFILE is set, set SUBDIR based on | |
| OUTFILE is not already set. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_output), | |
| tta/C/convert/html_prepare_converter.c (html_setup_output): use strcmp | |
| instead of strlen. | |
| * tta/tests/formatting/list-of-tests, tta/tests/many_input_files/*.sh: | |
| update tests to set the output file name with -o, or set SUBDIR if | |
| there are more than one output files. | |
| 2026-09-26 Patrice Dumas <pertusus@free.fr> | |
| * contrib/mass_test/generate_C.sh, | |
| contrib/mass_test/generate_perlVSC.sh: cd to the output directory and | |
| setup -o for html and plaintext especially. | |
| This prepare for erroring with -o DIR when a file is expected. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\ignorenode): Stop ignoring node at top-level | |
| section commands: @chapter, @centerchap, @unnumbered, or | |
| @appendix. This allows a lone @chapter to appear immediately | |
| after the Top node without being elided. | |
| (\chapter, \appendix\, \unnumbered, \centerchap): Remove \outer | |
| from definition as this makes it hard to manipulate these sequences | |
| using TeX macros. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\checkshadowactive): expand XR definition in | |
| the correct context to avoid an error if control sequences are used | |
| in a section title. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\checkshadowactive): fix conditionals | |
| so that repeated shadow targets are not warned about if a | |
| real target has been defined with @node or @anchor. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\setrefshadow): With pdfTeX, suppress warnings | |
| about attempting to output multiple targets with the same name. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| texinfo.tex: warning for ambiguous reference to shadow target | |
| * doc/texinfo.tex (\checkshadowactive): set a value in the output | |
| to show if there were multiple shadow targets (and no definition | |
| made with @node or @anchor). | |
| (\xrefX): print a warning if there are multiple shadow targets | |
| for an xref. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Invoking texi2any) <--output>: | |
| State that the directory for split output HTML is not wiped | |
| automatically. Place other discussion of a directory as the | |
| argument inside an @ignore block. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Invoking texi2any): | |
| Move discussion of the effect of outputting to standard output | |
| on splitting from --output to --split. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (@setfilename): Edit. State that the command | |
| is no longer required earlier in the node. Suggestion from Patrice. | |
| (Setting the Output File Name): Fix typo and remove duplicate link. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Invoking texi2any) <--info>: | |
| Remove discussion of output file name, as it does not occur | |
| in the documentation of options for other output formats like --html. | |
| (Setting the Output File Name): Add link to "Tag and Split Files". | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Setting the Output File Name): | |
| New node in texi2any chapter, split out from @setfilename, | |
| for information specific to texi2any. | |
| (Minimum): Move text to new node. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Minimum): | |
| Correct "an universal" to "a universal". | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (@setfilename): | |
| Do not state that the "Texinfo processors" ignore text before | |
| @setfilename, as this is not true of texinfo.tex. Discuss the | |
| behaviour with texi2any and texinfo-format-buffer separately. | |
| 2026-09-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (@setfilename): | |
| Remove incorrect statement about @setfilename being responsible | |
| for ignoring the "\input texinfo" line in an input file. | |
| 2026-09-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/run_parser_all.sh (to_current), tta/tests/*/list-of-tests: | |
| cd to test directory before calling the tested command. Remove -o | |
| from the call. Setup a temporary directory for latex2html for each | |
| test. Set up the latex2html flags in the test run code, not in the | |
| features check function. Do not reset outdir. | |
| Add -o to list-of-tests tests when needed, mainly for split HTML and | |
| plaintext. | |
| This prepares for erroring with -o DIR when a file is expected. | |
| 2026-09-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (file_separator_canonpath): when removing ., | |
| place the pointer on the next /, not past it. | |
| 2026-09-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/parser_tests.sh: args before dir. | |
| 2026-09-25 Patrice Dumas <pertusus@free.fr> | |
| remove run_parser_all.sh -dir the argument is mandatory | |
| * tta/maintain/regenerate_cmd_tests.sh, tta/tests/README, | |
| tta/tests/parser_tests.sh, tta/tests/run_parser_all.sh: make -dir | |
| argument mandatory and remove -dir. | |
| 2026-09-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_get_form_feeds): remove | |
| anything after the last form feed. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_add_newline_if_needed): | |
| add a new line if there is only a character, and it is not a newline. | |
| * tta/perl/t/info_tests.t (form_feeds_in_preamble), | |
| tta/perl/t/test_files_generated_list.txt: add test. | |
| 2026-09-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): also check that float type is not an | |
| empty line as part of doing the end of float formatting. | |
| * tta/perl/t/plaintext_tests.t | |
| (empty_type_float_empty_line_with_noindent): add test that a float | |
| with empty type does not lead to an empty line, with @noindent. | |
| 2026-09-22 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Printing Indices & Menus): | |
| Say something about texi2any variables affecting sorting as well | |
| as the reproducibility of the sort order. Suggestion from Patrice. | |
| 2026-09-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (_end_line): do not set | |
| last_letter, it may override the correct value. For the new test, and | |
| is also the same as in C now. | |
| * tta/perl/t/plaintext_tests.t (end_sentence_upper_case_in_ref), | |
| tta/perl/t/test_files_generated_list.txt: add test. | |
| 2026-09-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/plaintext_paragraph.c (para__end_line): do not set | |
| state.last_letter, it may override the correct value set in | |
| para__add_next. | |
| * tta/C/convert/plaintext_paragraph.c (para__add_pending_word), | |
| tta/perl/Texinfo/Convert/ParagraphNonXS.pm (_add_pending_word): more | |
| debugging output. | |
| * tta/C/convert/plaintext_paragraph.c (para_add_text): rename | |
| first_char_u8 as last_letter_u8. | |
| * tta/perl/t/plaintext_tests.t | |
| (line_begin_upper_case_letter_punctuation_space), | |
| tta/perl/t/test_files_generated_list.txt: add test. | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (file_separator_canonpath): remove . in path to | |
| canonicalize. | |
| * tta/C/convert/converter.c (determine_files_and_directory): use | |
| strcmp to check if string is empty. | |
| 2026-09-20 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (HTML Output Description): | |
| Add initial draft of node. | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/09indices.t (test_sorting_symbols), | |
| tta/perl/t/test_files_generated_list.txt: add test for sorting of | |
| quote symbols. | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_output): initialize | |
| output_units at definition, such that it is initialized even if there | |
| are errors. | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| * contrib/mass_test/check_perlVSC.sh: show diffs for all the formats. | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): handle @exdent | |
| at top level. | |
| * tta/perl/t/02coverage.t (exdent_in_top_level), | |
| tta/perl/t/test_files_generated_list.txt: add exdent_in_top_level | |
| test. | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| * contrib/mass_test/README, contrib/mass_test/check_perlVSC.sh, | |
| contrib/mass_test/generate_C.sh, | |
| contrib/mass_test/generate_perlVSC.sh, | |
| contrib/mass_test/output_ConvertXS_perlVSC.sh, | |
| contrib/mass_test/output_convert_C.sh, | |
| contrib/mass_test/setup_reference_perlVSC.sh: add a format argument to | |
| generate_C.sh and generate_perlVSC.sh. Generate output for info and | |
| plaintext in addition to html in the scripts. | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| * contrib/mass_test/get_manuals.sh: add --random-wait --wait | |
| consistent with Crawl Delay in robots.txt. (It does not allow to | |
| download the manuals, though). | |
| 2026-09-20 Patrice Dumas <pertusus@free.fr> | |
| add span for styling of brace no arg commands possibly highlighted | |
| * tta/C/convert/format_html.c (text_element_conversion), | |
| tta/perl/Texinfo/Convert/HTML.pm (_text_element_conversion): check if | |
| the opened element is not an empty string and output the element only | |
| if it is not. Use strcmp instead of strlen to compare to the empty | |
| string. | |
| * tta/C/convert/convert_html.c | |
| (reset_unset_no_arg_commands_formatting_context): copy HTML element to | |
| the reset context. | |
| * tta/C/convert/convert_html.c | |
| (reset_unset_no_arg_commands_formatting_context), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_reset_unset_no_arg_commands_formatting_context): do not copy HTML | |
| element to string context. | |
| * tta/C/convert/html_prepare_converter.c (html_format_setup), | |
| tta/perl/Texinfo/Convert/HTML.pm | |
| (%default_no_arg_commands_formatting): format expansion, arrow, point, | |
| print and result @-commands with a span. From Gavin. | |
| 2026-09-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/init/chm.pm (chm_init): rename $outdir as | |
| $destination_directory. Create destination directory. | |
| 2026-09-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_init_DATA, test_files), | |
| tta/perl/t/init/documentation_examples.pm, tta/perl/t/init/html32.pm: | |
| move documentation_examples.pm and html32.pm to t/init. | |
| documentation_examples.pm code is redundant with examples in the | |
| texi2any HTML API manual. html32.pm is not interesting for users. | |
| 2026-09-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_init_DATA, test_files), | |
| tta/perl/t/init/sc_formatting_with_css.pm: move | |
| sc_formatting_with_css.pm to t/init/. | |
| * tta/perl/init/book.pm (book_convert_heading_command): sync comments | |
| with default formatting function. | |
| 2026-09-19 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Simple Customization of Containers): comment | |
| out reference to texi2any_internals. | |
| Add TODO on tree description. | |
| 2026-09-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (@code{@@documentencoding}): minor grammar fix | |
| 2026-09-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/init/breadcrumb_navigation.pm: comment out no | |
| autovivification. | |
| * tta/perl/init/chm.pm: change beginning of functions. Change in | |
| spacing. Use exists or defined if the value is not used. | |
| 2026-09-18 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (@code{@@documentencoding}): explain how output | |
| encoding is set and how OUTPUT_ENCODING_NAME can be used. Report from | |
| Eli. | |
| 2026-09-16 Patrice Dumas <pertusus@free.fr> | |
| * NEWS, doc/texinfo.texi (Image Syntax) | |
| (HTML Customization of Specific Output) | |
| (HTML Customization Variables List): document HTML_COPY_IMAGES. | |
| 2026-09-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/data/options_data.txt (HTML_COPY_IMAGES): rename COPY_IMAGES as | |
| HTML_COPY_IMAGES. | |
| * tta/C/convert/format_html.c (html_convert_image_command), | |
| tta/perl/Texinfo/Convert/HTML.pm (_convert_image_command): copy image | |
| file if the source and destination are not the same file and either | |
| the destination does not exist or it is older than the source image | |
| file. | |
| 2026-09-13 Patrice Dumas <pertusus@free.fr> | |
| * INSTALL: recommend not using configure --config-cache/--cache-file. | |
| This is because of the differences between the main directory and | |
| texi2any build settings. | |
| 2026-09-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (library_bindir, libtexinfo_*la_LDFLAGS): add | |
| -bindir to the path leading from libraries directory to bin directory | |
| such that libtool can install libraries in bin on platforms where they | |
| may only be found in that place (Windows). Based on Bruno Haible | |
| information. | |
| 2026-09-13 Patrice Dumas <pertusus@free.fr> | |
| update gnulib in main directory | |
| Run "gnulib-tool --add-import | |
| 2026-09-13 Patrice Dumas <pertusus@free.fr> | |
| remove references to removed texinfo.c file | |
| 2026-09-13 Patrice Dumas <pertusus@free.fr> | |
| update gnulib in tta | |
| * tta/: Run "gnulib-tool --add-import | |
| 2026-09-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/formats_encodings.t (char_latin2_latin2_in_refs): skip if | |
| XS, transliteration is not reproducible in NetBSD, where it seems that | |
| there is no transliteration at all in that situation. | |
| 2026-09-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/configure.ac (t2a-tests): remove use Data::Compare; use | |
| Test::Deep from configure check, as these modules are no longer | |
| needed for t2a-tests. | |
| * tta/README, tta/swig/README: update. | |
| 2026-09-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/test_sort.t (by letter index entries): use | |
| text for the reference, and generate text based on the sorted index | |
| entries by letter. | |
| 2026-09-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/test_sort.t: use is_diff on strings instead of | |
| Test::Deep, as, with Text::Diff there is more context for test results | |
| comparison. Also it removes a dependency. Simplify | |
| @letter_entries_ref by using arrays instead of hashes. | |
| 2026-09-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): load embedded Perl if ENABLE_NLS is not | |
| set, such that the Perl translation function called from C if nls is | |
| not enabled in C succeeds. | |
| 2026-09-12 Patrice Dumas <pertusus@free.fr> | |
| Copy image to destination in HTML | |
| Discussed here and forgotten | |
| https://lists.gnu.org/archive/html/help-texinfo/2020-11/msg00146.html | |
| and retrieved here | |
| https://lists.gnu.org/archive/html/help-texinfo/2026-08/msg00001.html | |
| * tta/C/convert/convert_html.c, tta/C/convert/converter.c | |
| (copy_file_to): move to converter.c. | |
| * tta/data/options_data.txt (COPY_IMAGES): add. Reorder | |
| alphabetically. | |
| * tta/C/convert/format_html.c (find_image_extension_file) | |
| (IMAGE_FILE_LOCATION_INFO, html_image_file_location_name), | |
| tta/perl/Texinfo/Convert/HTML.pm (html_image_file_location_name): pass | |
| use_inc_dir to find_image_extension_file and set a field in | |
| IMAGE_FILE_LOCATION_INFO in html_image_file_location_name, or return | |
| in Perl. | |
| * tta/C/convert/format_html.c (html_convert_image_command), | |
| tta/perl/Texinfo/Convert/HTML.pm (_convert_image_command): copy image | |
| to destination if include directory are used, ie if there is no | |
| leading ., .. in the image path and the image path is not absolute and | |
| if COPY_IMAGES is set. | |
| 2026-09-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (locate_include_file), tta/perl/Texinfo/Common.pm | |
| (locate_include_file): return the information about include | |
| directories having been used or not (for path staring with ., .. or | |
| absolute paths). Update callers. | |
| 2026-09-10 Patrice Dumas <pertusus@free.fr> | |
| update po-files | |
| 2026-09-10 Patrice Dumas <pertusus@free.fr> | |
| * Makefile.am (po_document-check): update a function name. | |
| * po/POTFILES.in: add TransformationsNonXS.pm. | |
| 2026-09-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (push_top_formatter) | |
| (convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (FORMATTER): add an | |
| is_top_formatter field similar to Perl _top_formatter instead of | |
| using the formatter number. Indeed, formatter in footnote is a top | |
| formatter, but is not the first on the stack. | |
| 2026-09-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (protect_sentence_ends): add a | |
| protection control character when there are only after punctuation | |
| characters in the text being processed. It is not obviously right, | |
| but it should not be problematic either, as a lower or upper case | |
| letter makes no difference before an after punctuation characters | |
| even if followed by a punctuation character. The objective is to | |
| have the same processing as in Perl. | |
| 2026-09-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (set_frenchspacing) | |
| (set_double_width_no_break): add debug message. | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (add_text): call | |
| allow_end_sentence to also get the debug message. | |
| 2026-09-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (get_n_spaces) | |
| (convert_to_plaintext_internal): prepare a string of white spaces to | |
| copy from instead of adding spaces one at a time. | |
| 2026-09-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/plaintext_paragraph.c (para__add_pending_word): call | |
| text_reset on state.word, do not set only end to 0. This does not | |
| change the output, but fixes debugging messages. | |
| * tta/C/convert/plaintext_paragraph.c (para_add_text): return early if | |
| at the end of the string, there is no point in gathering next text in | |
| that case and it could even be wrong. | |
| * tta/C/convert/plaintext_paragraph.c (para_add_text): show debugging | |
| information after first type has been determined, to avoid showing the | |
| same information twice. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/plaintext_paragraph.c (PARAGRAPH, para_add_text) | |
| (para__add_next): use state.space.end instead of state.space_counter, | |
| spaces are always ASCII, so this is ok. Remove space_counter field | |
| from PARAGRAPH. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/plaintext_paragraph.c (PARAGRAPH, para__end_line) | |
| (para_end), tta/perl/Texinfo/Convert/ParagraphNonXS.pm (new) | |
| (_end_line, end): remove lines_counter field of paragraph, it is not | |
| used. | |
| 2026-09-08 Bruno Haible <bruno@clisp.org> | |
| tta: Fix compilation error on mingw with an ISO C23 compiler. | |
| * tta/C/texi2any.c (EXEC_CONST): New macro. | |
| (main): Use it for argv. | |
| 2026-09-08 Bruno Haible <bruno@clisp.org> | |
| info: Fix compilation error on mingw with an ISO C23 compiler. | |
| * info/signals.c (signal_info): Define as a function that takes an | |
| 'int' parameter. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/plaintext_paragraph.c, | |
| tta/perl/Texinfo/Convert/ParagraphNonXS.pm (new): update comments. | |
| * tta/perl/XSTexinfo/ParagraphXS.xs (para_new): do not use a macro | |
| for the call of para_set_conf_debug. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/plaintext_paragraph.c (para_set_conf_*) | |
| (para__end_line, para__add_pending_word): change formatting of conf | |
| debug message, add additional messages to be like Perl and protect | |
| space shown. | |
| * tta/C/convert/plaintext_paragraph.c (para_add_text): show UTF-8 | |
| representation of state.last_letter. | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (new, *): use 'debug' for | |
| debugging information field. | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (new, @para_array): set | |
| an identifier for paragraph if debugging is on for better error | |
| messages, same as in C. | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (new): set default for | |
| more fields. | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (new) | |
| (@para_ordered_conf): show conf set from caller in debugging output, | |
| as in C. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_cache_translate_string): free | |
| translated string. | |
| * tta/C/convert/convert_html.c (html_convert_tree_append): free | |
| debugging information strings. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/formats_encodings.t (@file_tests): order the tests such | |
| as to have skipped tests at the end and in skip conditions homogeneous | |
| blocks, to get readable comparisons of debugging output. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Structuring.pm (new_complete_node_menu): fix call | |
| of gdt. | |
| * tta/perl/Texinfo/Convert/Converter.pm (set_output_units_files): do | |
| not call set_output_unit_file for $file_output_unit, since it has | |
| already be done. Show debugging output after having done all the | |
| modifications. | |
| * tta/perl/Texinfo/Indices.pm (merge_indices): sort index names for | |
| reproducible ordering of index entries in merged indices for messages. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): add missing end of line for message, | |
| refine message. | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (new_formatter): set debug | |
| for paragraph formatter if debug level is > 1. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): remove TODO | |
| related to functions being inlined in the past. If efficiency is | |
| needed, it is better to use the C implementation. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm | |
| (_associate_other_nodes_to_sections): associate a section with | |
| identifier to itself. | |
| * tta/perl/t/test_dirs_generated_list.txt, | |
| tta/perl/t/test_files_generated_list.txt, | |
| tta/perl/t/converters_tests.t (shadow_links_to_sections), | |
| tta/perl/t/docbook_tests.t (shadow_links_to_sections_in_top_node): add | |
| test for links to sections without associated node, with unique label, | |
| with duplicates and with same name as a node, for shadow targets. | |
| Derived from Gavin test file. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/info_tests.t: remove obsolete TODO. | |
| 2026-09-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/DocBook.pm (_convert), | |
| tta/perl/Texinfo/Convert/LaTeX.pm (_convert): add anchor for section | |
| without associated node, and with unique label, also called shadow | |
| targets. | |
| 2026-09-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_node_name), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (node_name): handle section | |
| command. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): call | |
| format_anchor for sectioning @-commands with extra identifier defined. | |
| They correspond to sectioning commands that can be used as targets, | |
| also called shadow targets. | |
| 2026-09-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/*.t: do not skip tests that require some features of Perl | |
| when XS/C is used for the corresponding code. | |
| 2026-09-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): flush right | |
| @image at top level outside of paragraph. | |
| 2026-09-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\txiwarning): | |
| Macro to put warnings on their own lines and prefix with line number. | |
| Suggestion from Karl. | |
| 2026-09-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (whitespace_chars_except_newline), | |
| tta/C/parsetexi/parser.c: move whitespace_chars_except_newline to | |
| utils.c. | |
| * tta/C/convert/convert_to_plaintext.c (align_lines), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_align_lines): match | |
| against spaces except newlines in some cases, to make intention of | |
| code easier to understand. | |
| * tta/perl/t/info_tests.t (flushright_empty_line), | |
| tta/perl/t/test_files_generated_list.txt: add test. | |
| 2026-09-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (collect_pending_texts_lines): | |
| keep end of line. | |
| * tta/C/convert/convert_to_plaintext.c (align_lines), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_align_lines): pass count | |
| context and update lines count when end of lines are added or removed. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_align_environment): | |
| rename $counts as $count_context. | |
| 2026-09-05 Patrice Dumas <pertusus@free.fr> | |
| Do not use EXTRA_DIST for test files list | |
| * autogen.sh, tta/Makefile.am (maintenance_files), | |
| tta/maintain/regenerate_file_lists.pl, | |
| tta/maintain/regenerate_tap_tests_lists.pl, tta/perl/Makefile.am | |
| (Makefile.tres, products_regenerate_file_lists) | |
| (stamp.regenerate_file_lists, EXTRA_DIST, dist-hook): do not use | |
| EXTRA_DIST for the list of generated test files, as it leads to | |
| "Argument list too long". Split regenerate_tap_tests_lists.pl out of | |
| regenerate_file_lists.pl for the generated list of tap files. | |
| Generate a separate list of directories and files in | |
| regenerate_file_lists.pl. Add targets to Makefile.am to generate the | |
| files and use them in dist-hook. Report and example code from Bruno | |
| Haible. | |
| 2026-09-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_documentlanguages-iana.pl: close files and | |
| check closing errors. Check gperf system calls errors. | |
| * tta/maintain/regenerate_file_lists.pl: remove CVS and .svn match. | |
| Change in spacing and in comments. | |
| 2026-09-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/txi_config.c (set_option_value): set integer | |
| customization variable recognized as integer if it is positive or it | |
| corresponds to the special value for paragraphindent asis. Otherwise | |
| do not set. Based on Gavin report. | |
| * tta/C/texi2any.c (main): use integer_value set to correct integer | |
| values to set paragraphindent. Gavin report. | |
| * tta/C/texi2any.c (main): remove spurious space in error message. | |
| Gavin report. | |
| 2026-09-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): add missing short option -p to getopt_long | |
| call. Report from Gavin. | |
| 2026-09-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/plaintext_converter_state.h (enum conv_type): rename enum | |
| location_type as enum conv_type. | |
| * tta/C/convert/convert_to_plaintext.c (add_top_pending_text) | |
| (plaintext_add_quoted_image, plaintext_add_target_location): pass type | |
| argument to add_top_pending_text, not data, setup data in callers. | |
| Update callers. | |
| 2026-09-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/info_tests.t: remove TODO for test fixed. | |
| 2026-09-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm: rename pending texts | |
| 'location' to 'conv_type'. | |
| 2026-09-04 Patrice Dumas <pertusus@free.fr> | |
| split line of image text from file and add to pending text | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_add_quoted_image), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (add_quoted_image): | |
| move quoted image related code of plaintext_add_image to | |
| plaintext_add_quoted_image. Update callers. | |
| * tta/C/convert/convert_to_plaintext.c (add_top_pending_text) | |
| (stream_encode, pending_to_text, stream_to_text_anchor) | |
| (collect_pending_texts_lines, align_lines), | |
| tta/C/main/plaintext_converter_state.h (enum location_type), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (collect_pending_texts_lines, _align_lines): add protected_text | |
| pending text type. Do not modify spaces for that pending text type. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element), | |
| tta/C/convert/convert_to_plaintext.c | |
| (plaintext_stream_image_formatted_text) | |
| (convert_to_plaintext_internal, plaintext_format_image_element), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (format_image_element), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (stream_image_formatted_text, format_image_element, _convert): split | |
| text of images lines and add each of them as protected_text. Add | |
| plaintext_stream_image_formatted_text based on | |
| plaintext_image_formatted_text, on *_format_image_element lines | |
| counting codes, and on @image formatting in | |
| convert_to_plaintext_internal result streaming. Add the code doing | |
| the split in plaintext_stream_image_formatted_text. Call | |
| plaintext_stream_image_formatted_text instead of | |
| plaintext_image_formatted_text in info_format_image_element and | |
| plaintext_format_image_element. Remove plaintext_add_image. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_insert_image, convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (format_image_element), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (format_image_element) | |
| (_insert_image): have *_format_image_element return the lines count. | |
| Have plaintext_insert_image return the line count. Update callers. | |
| Remove the STRING_LINE_COUNT type. | |
| * tta/C/convert/convert_to_plaintext.c (align_lines) | |
| (convert_to_plaintext_internal, plaintext_free_converter), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (_align_lines): remove the | |
| code previously used to align images text, remove the images argument, | |
| remove the code related to the images information list. Remove the | |
| IMAGE_LOCATION_INFO and IMAGE_LOCATION_INFO_LIST types, associated | |
| list functions declarations and reallocate_line_image_for. | |
| 2026-09-04 Patrice Dumas <pertusus@free.fr> | |
| never split a quoted image, add a special type in pending text | |
| * tta/C/convert/convert_to_info.c (info_format_image) | |
| (info_quote_image, info_format_image_element), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_quote_image, plaintext_functions, plaintext_insert_image): | |
| separate formatting image for Info and quoting with control character | |
| including a NUL, to have access to a string before adding the quoting | |
| characters in C. | |
| * tta/C/convert/convert_to_plaintext.c (debug_print_pending) | |
| (clear_pending_text_list, add_top_pending_text) | |
| (stream_encode, plaintext_add_target_location, ensure_end_of_line) | |
| (pending_to_text, stream_to_text_anchor, pending_texts_width) | |
| (pending_text_has_anchor, replace_pending_text) | |
| (collect_pending_texts_lines, free_pending_texts, align_lines) | |
| (convert_to_plaintext_internal, plaintext_free_converter), | |
| tta/C/main/plaintext_converter_state.h (enum location_type) | |
| (PENDING_TEXT), tta/perl/Texinfo/Convert/InfoNonXS.pm | |
| (add_target_location, _stream_to_text_anchor, _stream_encode) | |
| (_debug_print_pending, _ensure_end_of_line) | |
| (collect_pending_texts_lines, _pending_texts_width) | |
| (_pending_text_has_anchor, _convert): add a location type to | |
| PENDING_TEXT, distinguish text and anchor, and add support for quoted | |
| images too. Add an argument to add_top_pending_text for quoted image | |
| and update callers. Use IMAGE_WIDTH, set to 3 where the width of | |
| images is needed. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_add_image) | |
| (plaintext_insert_image, compute_spaces_align_line) | |
| (plaintext_format_image_element), | |
| tta/C/main/plaintext_converter_state.h (PENDING_TEXT), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (format_image_element), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (add_image, | |
| _compute_spaces_align_line, format_image_element) (_insert_image): add | |
| quoted image to pending text as a separate type, that is never split | |
| at lines and as a width set to IMAGE_WIDTH. A trailing new line for | |
| images not in paragraph is added in a different pending text. In C, | |
| add non quoted image as argument to plaintext_add_image and in | |
| PENDING_TEXT to be used for debugging. | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (width_multibyte_with_nul): add a variant of | |
| width_multibyte that handles NUL in string by replacing them with | |
| another character in a copy before calling width_multibyte on the copy. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): use width_multibyte_with_nul for | |
| multitable cell, as there could be NUL from quoted image. | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (converter_txt_image_text): return a TEXT. | |
| Update callers. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_image_formatted_text): get text argument as TEXT. Get alt | |
| as TEXT. Use memchr instead of strpbrk. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element) | |
| (info_format_image), tta/C/convert/convert_to_plaintext.c | |
| (plaintext_insert_image): get alt as TEXT in info_format_image_element. | |
| Pass info_format_image text and alt argument as TEXT. Update | |
| format_image all in plaintext_insert_image. | |
| * tta/C/convert/convert_to_info.c (protect_image_string): take a TEXT | |
| in argument. Simplify code by following the remaining length to | |
| process and removing a redundant condition. Update callers. | |
| * tta/C/convert/convert_to_info.c (count_new_lines): take a TEXT | |
| in argument. Use memchr instead of strpbrk. Update callers. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_insert_image): use a | |
| TEXT instead of a string in the function for result_text. Add some | |
| const. | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| Remove uniwidth/u8-strwidth | |
| * tta/: Run "gnulib-tool --remove-import uniwidth/u8-strwidth" | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c, tta/C/convert/convert_to_plaintext.c | |
| (plaintext_process_printindex), tta/C/convert/converter.c | |
| (converter_txt_image_text): replace remaining calls of | |
| string_width_multibyte by calls of width_multibyte. | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| Import uniwidth/u8-width | |
| * tta/: Run "gnulib-tool --add-import uniwidth/u8-width". | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (width_multibyte): add. Replace | |
| string_width_multibyte call by width_multibyte call for all cases | |
| where the length of string is known. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_insert_image): use | |
| TEXT in argument. Keep information on remaining length to process and | |
| use memchr. | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.tres, tta/perl/t/info_tests.t | |
| (empty_in_flushright_index_entry) | |
| (index_entry_in_multitable_multilines) | |
| (format_in_multitable_index, example_in_multitable_index) | |
| (multitable_images, multitable_flushright_image): add tests for Info. | |
| 2026-09-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_cache_translate_string) | |
| (html_cdt_string), tta/C/main/call_perl_function.c | |
| (call_translations_translate_string), tta/C/main/translations.c | |
| (translate_string, replace_substrings, replace_convert_substrings) | |
| (gdt_string, free_lang_translation_tree_list, cache_translate_string) | |
| (gdt_tree), tta/C/main/tree_types.h (TRANSLATION_TREE): have | |
| html_cdt_string, call_translations_translate_string, translate_string, | |
| replace_substrings and gdt_string return TEXT. Use TEXT as | |
| replace_substrings and replace_convert_substrings argument. Use TEXT | |
| for TRANSLATION_TREE translation field. Update callers. | |
| * tta/C/main/convert_utils.c (add_heading_number), | |
| tta/C/main/convert_to_text.c (text_heading): use TEXT in argument and | |
| as return value of add_heading_number and text_heading. Update caller. | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/end_line.c (end_line_misc_line), tta/C/main/debug.c | |
| (debug_protect_eol): add/remove const based on compiler warning to | |
| have matching strpbrk input and output types. | |
| * tta/C/texi2any.c: remove unused variable. | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/list_macros.h (decl_alloc_fns, def_alloc_fns): add | |
| add_init_(...) that returns a pointer to the next level, allocatting | |
| and zeroing if needed. | |
| * tta/C/convert/convert_to_plaintext.c (PENDING_TEXT_LIST) | |
| (add_top_pending_text, COUNT_CONTEXT_STACK, push_count_context): use | |
| add_init_(...). | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (pending_to_text) | |
| (stream_to_text, stream_to_text_anchor), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_pending_to_text) | |
| (_stream_to_text, _stream_to_text_anchor): add stream_to_text_anchor | |
| to gather both anchors and text. Ignore silently anchors in | |
| pending_to_text and stream_to_text. Update callers. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_node_name) | |
| (plaintext_cache_node_names), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (node_name), | |
| (_cache_node_names): do not call stream_output_count_nl, | |
| as we are not interested by the number of lines, call stream_output_n | |
| or stream_output. | |
| * tta/perl/Makefile.tres, | |
| tta/perl/t/info_tests.t (anchor_in_node, anchor_in_menu_entry_name): | |
| add tests. | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (pop_count_context) | |
| (align_environment, plaintext_free_converter): do not release the | |
| images locations list memory in pop_count_context. Reset the list | |
| align_environment. Free only when free'ing the converter. Remove | |
| release_count_context. | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/output_unit.c (split_by_node, register_split_by_node) | |
| (split_by_section, register_split_by_section): rename split_by_node as | |
| register_split_by_node and split_by_section as | |
| register_split_by_section. Re-add split_by_node and split_by_section | |
| by using the main code of register_split_by_node and | |
| register_split_by_section, but with the output_units list in argument, | |
| leaving the registering of output units list in the document to | |
| register_*. Update callers. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_output) | |
| (plaintext_convert): do not register output units in document. | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.tres, tta/perl/t/plaintext_tests.t | |
| (anchor_in_chapter_and_contents): add test. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_contents): | |
| add comment to explain that there are no anchor in contents in pending | |
| text because anchors are not collected for plaintext. | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (release_count_context): zero | |
| images locations list, such that it cannot be freed twice. | |
| * tta/C/convert/convert_to_plaintext.c (section_element_heading) | |
| (plaintext_format_ref): instead of copying the element that is in the | |
| original tree, remove it before destroying the tree. | |
| * tta/perl/t/formats_encodings.t (at_commands_in_refs): do not skip | |
| test anymore, as the line number is now present in C too. | |
| * tta/perl/Makefile.tres, tta/perl/t/info_tests.t (anchor_in_chapter) | |
| (anchor_in_chapter_no_node, anchor_in_heading): add tests with @anchor | |
| in heading and section command arguments in Info. | |
| 2026-09-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (pending_to_text) | |
| (stream_to_text), tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (_pending_to_text, _stream_to_text): add an optional list argument to | |
| pending_to_text and stream_to_text. If set, put there the anchors | |
| found in the pending texts converted to text. Update C callers. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): collect anchors | |
| in math elements shown as images and put them in front of the image. | |
| * tta/C/convert/convert_to_info.c (info_format_ref): rename | |
| name_text_checked as name_check. | |
| * tta/perl/t/info_tests.t (anchor_in_math), tta/perl/Makefile.tres, | |
| tta/tests/info_tex/tex_math.texi: add test with @anchor in @math and | |
| @displaymath. Add a similar code to tex_math.texi, changed to have | |
| only one @anchor in displaymath, as LaTeX does not accept two labels | |
| in the corresponding construct. | |
| 2026-08-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (pending_to_text): warn if an | |
| @anchor is in pending text converted to text, as it will not be | |
| recorded. | |
| * tta/C/convert/convert_to_plaintext.c: remove unused | |
| CONVERT_PRINTINDEX_ENTRIES_INFO. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| remove intermediary variable. | |
| * tta/C/main/plaintext_converter_state.h (FORMAT_CONTEXT): remove | |
| unused cells_entry_locations field. | |
| 2026-08-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): merge pending | |
| text of a @center expanding as an empty space with parent, in case | |
| it contains an @anchor. | |
| * tta/perl/Makefile.tres, tta/perl/t/info_tests.t | |
| (anchor_in_empty_center): add test. | |
| 2026-08-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (release_count_context) | |
| (plaintext_free_converter): free index_entry_locations only when | |
| free'ing the converter. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): move cell index | |
| location count to parent count context when processing cell, not in | |
| row. | |
| 2026-08-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (free_pending_texts) | |
| (clear_pending_text_lines, free_pending_text_lines) | |
| (align_lines, convert_to_plaintext_internal): add | |
| clear_pending_text_lines, free_pending_texts and | |
| free_pending_text_lines based on align_lines code, and call | |
| clear_pending_text_lines for multitable row. | |
| 2026-08-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): call | |
| collect_pending_texts_lines when processing a cell, and register | |
| index_entry_locations separately of a count context. | |
| 2026-08-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/plaintext_paragraph.c: replace some text_append by | |
| text_append_n. | |
| 2026-08-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (convert_line_new_context): remove end_line_count return. Update | |
| callers. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_line), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (convert_line), | |
| tta/C/convert/convert_to_info.c (info_header, info_format_node), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (_info_header, format_node): add | |
| suppress_styles and no_added_eol arguments in C or formatter_conf in | |
| Perl. Set no_added_eol for dircategory formatting and suppress_styles | |
| for file in node direction. Update other callers in C. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_line_new_context), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (convert_line_new_context): | |
| call plaintext_convert_line in plaintext_convert_line_new_context. | |
| 2026-08-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_output_unit), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (convert_output_unit): | |
| remove _stream_reset, it is not useful, as stream_final_result | |
| already do it. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_stream_to_text) | |
| (_convert): reset pending_text in _stream_to_text. Use | |
| _pending_to_text for text_before_first_node, as we want to | |
| keep the pending text for conversion. | |
| 2026-08-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (stream_output_add_text) | |
| (stream_output_add_next): add size of input string as a mandatory | |
| argument, to be able to avoid a call to strlen if not needed. | |
| 2026-08-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (stream_output_count_nl) | |
| (plaintext_convert_line_new_context), | |
| tta/C/convert/plaintext_paragraph.c (para_end_line) | |
| (para_add_pending_word, para_end): change return of para_end_line, | |
| para_add_pending_word and para_end to be TEXT. Change argument of | |
| stream_output_count_nl to be TEXT. Update callers. | |
| 2026-08-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c: replace some stream_output by | |
| stream_output_n. | |
| 2026-08-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.h (LINE_WIDTH_PENDING_TEXT), | |
| tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_line_new_context): rename | |
| PENDING_TEXT_COUNT_LINE_COUNT as LINE_WIDTH_PENDING_TEXT and remove | |
| line_count field. | |
| 2026-08-30 Patrice Dumas <pertusus@free.fr> | |
| Improve and fix memory management in C plaintext converter | |
| * tta/C/main/list_macros.h (decl_alloc_fns, def_alloc_fns): add | |
| init_to_() macro function definition that reallocates and initialize | |
| to zero the newly allocated memory. | |
| * tta/C/convert/convert_to_plaintext.c (clear_pending_text_list) | |
| (release_count_context, add_top_pending_text, push_count_context) | |
| (COUNT_CONTEXT_STACK, PENDING_TEXT_LIST, stream_final_result) | |
| (plaintext_add_target_location, ensure_end_of_line) | |
| (merge_pending_texts, replace_pending_text, move_pending_texts) | |
| (align_lines, align_environment, text_heading) | |
| (convert_to_plaintext_internal, plaintext_free_converter): keep | |
| allocated count context and pending texts and reset TEXT to reuse the | |
| allocated memory. Add add_top_pending_text and use it to push a | |
| pending text that can be an already allocated pending text reused. | |
| Remove the second argument of push_count_context, the context pushed | |
| can be reused, and can be accessed afterwards. Change | |
| merge_pending_texts such that the count context added is swapped with | |
| the source count context, such that the associated allocated memory, | |
| if any, is kept. Add replace_pending_text and move_pending_texts to | |
| add to parent pending texts without doing the swap as with | |
| merge_pending_texts, but with destruction of the memory at the | |
| destination, for the case of pending text memory not reused, for | |
| multitable and aligned environments. Rename destroy_count_context as | |
| release_count_context. Add clear_pending_text_list to reset the texts | |
| in the rare case when it is not already done when getting the pending | |
| texts, for empty text_heading and multitable prototypes. Deallocate | |
| the count contexts and pending texts in plaintext_free_converter. | |
| Remove reset_count_context_stack, clear_pending_texts and | |
| free_pending_texts. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_line_new_context): leave the count context on the | |
| stack and pass a pointer to the pending text. Update callers. | |
| * tta/C/convert/convert_to_plaintext.c (pending_to_text) | |
| (collect_pending_texts_lines): reset number of pending text to 0, in | |
| functions where the input pending texts are reset. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): add row_cell_lines to format_context | |
| and separate cells_entry_locations, remove row_cell_counts. Call | |
| collect_pending_texts_lines when processing a cell, and add cell_idx | |
| in format context to know the current cell index. | |
| * tta/C/convert/convert_to_plaintext.c (release_count_context) | |
| (align_lines, align_environment, convert_to_plaintext_internal): | |
| reset images and entry locations properly, free pending lines and | |
| images lists. | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| get top formatter again after conversion, in case it was reallocated. | |
| Remove getting the top formatter when it cannot have changed. | |
| * tta/C/convert/convert_to_info.c (info_header), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (_info_header): use new_formatter, | |
| push_formatter and pop_formatter in info_header too, such that | |
| the formatter switches even if it is not done first. Move enum | |
| formatter_type to header file. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (output): call | |
| plaintext_cache_node_names before any use of node names such that | |
| there is no need to check if there are already node names cached. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): do not pass image depth for | |
| displaymath. Add ensure_end_of_line. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex) | |
| (plaintext_conversion_finalization, plaintext_insert_image) | |
| (convert_def_line): free extension variable, destroy element | |
| after conversion, free text, always destroy parsed_def, pop last count | |
| context. Deallocate properly element_images. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Info.pm (BEGIN), | |
| tta/perl/Texinfo/Convert/Plaintext.pm (BEGIN): ignore | |
| TEXINFO_XS_INCOMPLETE. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| Use C Info and Plaintext converters by default | |
| * NEWS, tta/C/texi2any.c (main), tta/perl/t/formats_encodings.t | |
| (at_commands_in_refs): always use the C plaintext and Info converters | |
| if built. Remove the TEXINFO_XS_INCOMPLETE environment variable use. | |
| Regenerate Perl only test results. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| Encode string in test file reference and encode Info string upon reading | |
| * tta/perl/t/test_utils.pl (protect_encode_string): add function that | |
| calls protect_perl_string and also encode to UTF-8. Do not set | |
| encoding in binmode for the whole reference file, instead replace the | |
| calls of protect_perl_string by calls of protect_encode_string | |
| function. For the Info strings, which are already encoded, call | |
| protect_encode_string and add a call to Encode::encode to the | |
| generated code to encode the character string to UTF-8 upon reading by | |
| Perl. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_ref), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (format_ref): call equivalent | |
| functions instead of adding and converting elements for an added full | |
| stop not ending a sentence. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (push_top_formatter) | |
| (_convert): set text_element_context counter to 0 when initializing. | |
| Reset to 0 instead of deleting. That way the code is more | |
| straightforward, does not rely on autovivification and is more similar | |
| to the C code. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (conversion_initialization): reorganize code, no functional change. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/formats_encodings.t (at_commands_in_refs): skip test if | |
| TEXINFO_XS_INCOMPLETE is set, as the result is different, there are no | |
| line numbers in error message because elements are copied in C, not in | |
| Perl. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| call encode_with_iconv directly for a more efficient and simpler code. | |
| Remove plaintext_encode_string. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): release multitable prototype pending | |
| texts memory. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (next_for_tieaccent), | |
| tta/C/convert/format_html.c (css_string_accent), | |
| tta/C/main/manipulate_indices.c (sort_indices_by_letter), | |
| tta/C/main/unicode.c (unicode_accent): use an array allocated on the | |
| stack for u8_uctomb instead of malloc and free. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): use u8_uctomb instead of u32_to_u8. | |
| From Bruno. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/02coverage.t (cartouche_in_example_with_title), | |
| tta/perl/Makefile.tres: add test. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (replace_convert_substrings): show parsing | |
| errors and warnings only if there are errors. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (add_newline_if_needed) | |
| (ensure_end_of_line): do not check that pending_text is not empty, as | |
| it should not be possible, each time a context is pushed, a pending | |
| text is added. | |
| 2026-08-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): for | |
| @cartouche header, call _convert and not convert_line to avoid | |
| spurious indenting spaces appearing because of a call to line | |
| formatter end when there is already an end of line added by @center | |
| formatting. | |
| * tta/C/convert/convert_to_plaintext.c (ensure_end_of_line), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_ensure_end_of_line): if | |
| there is an anchor pending, add new pending text to keep the anchor | |
| before the end of line. | |
| * tta/C/convert/convert_to_plaintext.c (align_lines) | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_align_lines, _convert): | |
| do not add an end of line for the last line, leave it to the caller. | |
| For @center it is more consistent because the end of line is in an | |
| ignored text element. For flushright, it means that it is possible to | |
| ignore a fully empty @flushright (although this is not really | |
| important). Add/move ensure_end_of_line calls in callers. | |
| * tta/C/convert/convert_to_plaintext.c (debug_print_pending), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_debug_print_pending): use | |
| target_element_to_texi_label to avoid showing whole nodes. | |
| * tta/C/convert/plaintext_paragraph.c (PARAGRAPH), | |
| tta/C/convert/plaintext_paragraph.h (PARA_CONF_VARIABLES_LIST): add | |
| debug, and check state.debug in conditionals. | |
| * tta/C/convert/plaintext_paragraph.c (para_set_conf_*): show conf set | |
| if debugging. | |
| * tta/perl/XSTexinfo/ParagraphXS.xs (para_new): set debug before other | |
| configuration variables to have all the variables configuration shown | |
| in debugging. | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter): move code | |
| around to set conf in the same order for all the type of formatter. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (new_formatter): make | |
| code more similar to C code. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization, convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add open_quote, close_quote, open_double_quote and close_double_quote | |
| fields in PLAINTEXT_CONVERTER_STATE. Set them in | |
| plaintext_conversion_initialization and use them in | |
| convert_to_plaintext_internal. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output): fix indirect file | |
| names used in tag table, they don't have a path. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_header): add new text that | |
| could be released for the dot. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_image_element): | |
| increase lines_count when adding an end of line. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (protect_sentence_ends): many | |
| fixes. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (format_image_element): try to | |
| improve legibility of code, no functional change. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element): fix | |
| order of extensions use. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| Encode string converted to Info in C | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/perl/XSTexinfo/convert/ConvertInfoXS.xs (output): always encode | |
| Info string and pass as bytes string. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| Encode string converted to Info | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (output): always encode | |
| output, even when outputting to a string, as Info is a binary format | |
| which has no meaningful representation as character string. | |
| * tta/perl/t/test_utils.pl (protect_non_ascii, test): add | |
| protect_non_ascii and use it to protect the Info output string, in | |
| double quotes, such that the code output only contains ASCII | |
| characters and can be encoded to UTF-8 without change, as for the | |
| remaining of the reference test .pl file. | |
| * tta/perl/t/test_utils.pl (test): do not encode Info output to a file | |
| with -o option. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl: change formatting of beginning of | |
| functions. Use exists when the value is not needed. die if a format | |
| is unknown. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (collect_pending_texts_lines): | |
| handle NUL in input pending texts. | |
| Use stream_output_n more. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (encode_with_iconv): add length to be encoded in | |
| argument. Update callers. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (encode_with_iconv): return a TEXT. Update | |
| callers. | |
| * tta/C/main/convert_utils.c (expand_verbatiminclude): inline | |
| convert_to_utf8_verbatiminclude and remove. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_finalization, convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| use a TEXT for text_before_first_node. | |
| 2026-08-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/call_conversion_perl.c (call_converter_output): copy | |
| NUL byte. | |
| * tta/C/main/utils.c (normalize_top_node_name_text): add a variant of | |
| normalize_top_node_name that changes a TEXT in-place. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_encode_string): get | |
| a TEXT in argument. Update callers. | |
| * tta/C/convert/convert_to_info.c (count_new_lines, info_format_image) | |
| (info_format_image_element), tta/C/convert/convert_to_plaintext.c | |
| (PLAINTEXT_FORMAT_FUNCTIONS, plaintext_image_formatted_text) | |
| (plaintext_format_image_element, plaintext_insert_image), | |
| tta/C/main/converter_types.h (STRING_LINE_COUNT): add count_new_lines, | |
| count number of new lines in info_format_image. Add len field in | |
| STRING_LINE_COUNT. Have plaintext_image_formatted_text returns a | |
| TEXT, info_format_image and plaintext_format_image return a TEXT and | |
| have info_format_image_element, plaintext_format_image_element and | |
| plaintext_insert_image set len in STRING_LINE_COUNT. Update callers | |
| to use the length. | |
| * tta/C/convert/convert_to_plaintext.c (pending_to_text) | |
| (stream_to_text): return TEXT. Update callers. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_node_name) | |
| (plaintext_node_name, plaintext_cache_node_names), | |
| tta/C/main/plaintext_converter_state.h (STRING_WITH_WIDTH): add len | |
| field in STRING_WITH_WIDTH. Store byte length of node name. Allow | |
| NUL in node name. Update callers to use the length. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_finalization), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| store outside_of_any_node_text as a TEXT. | |
| 2026-08-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/call_conversion_perl.c (call_converter_output), | |
| tta/C/main/converter_types.h (OUTPUT_TEXT_FILES_INFO): add length of | |
| returned text to OUTPUT_TEXT_FILES_INFO. | |
| * tta/C/convert/convert_to_plaintext.c (stream_output_n) | |
| (plaintext_process_printindex): add stream_output_n and use for | |
| quoted printindex string with NUL. | |
| * tta/C/convert/convert_html.c (html_convert_tree_explanation) | |
| (html_convert_tree, html_convert_convert, html_convert_output), | |
| tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_output) | |
| (plaintext_convert, plaintext_convert_tree), tta/C/convert/converter.c | |
| (CONVERTER_FORMAT_DATA, converter_output, converter_convert) | |
| (converter_output_tree), tta/C/convert/html_converter_api.c | |
| (html_output, html_convert), | |
| tta/C/convert/plaintexinfo_converter_api.c (plaintexinfo_output) | |
| (plaintexinfo_convert, plaintexinfo_convert_tree), | |
| tta/C/convert/rawtext_converter_api.c (rawtext_output) | |
| (rawtext_convert, rawtext_convert_tree), | |
| tta/C/main/convert_to_texinfo.c (convert_to_texinfo_text) | |
| (convert_to_texinfo), tta/C/main/convert_to_text.c | |
| (convert_to_text_text, convert_to_text): add convert_to_texinfo_text | |
| and convert_to_text_text that return TEXT. Change output, convert and | |
| convert_tree functions to return TEXT. Update callers. | |
| * tta/C/convert/converter.c (convert_accents): update for change in | |
| convert_tree. | |
| 2026-08-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (write_or_return): add a text_len argument | |
| that is used if there is no encoding conversion. Update callers. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_output): do not setup | |
| conversion to output encoding, it is already done. Pass length to | |
| write_or_return. | |
| 2026-08-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): set the | |
| pending text list used for multitable cells directly to the parent | |
| count context pending text list. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert), | |
| tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| use stream_output for headitem line and spaces. | |
| 2026-08-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (add_target_location): | |
| fix typo in code. | |
| * tta/C/convert/convert_to_plaintext.c (pending_text_has_anchor) | |
| (align_lines), tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (_align_lines, _pending_text_has_anchor): check if there is a trailing | |
| anchor in an empty line that needs to be kept, and add an empty | |
| pending text after the last pending text if it is associated to an | |
| anchor. | |
| * tta/C/convert/convert_to_plaintext.c (align_lines) | |
| (align_environment, convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_align_lines) | |
| (_align_environment, _convert): add to parent count context pending | |
| texts directly in align_lines. Do not return anything. Use | |
| stream_output when possible. In C, in align_environment, this | |
| requires saving the aligned environment count context first before | |
| popping it and calling align_lines. | |
| * tta/C/convert/convert_to_plaintext.c (collect_pending_texts_lines): | |
| zero TEXT that has been transferred. Simpler code for association of | |
| anchor to pending text. | |
| * tta/perl/Makefile.tres, tta/perl/t/info_tests.t | |
| (anchor_after_text_in_flushright): add test. | |
| 2026-08-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (free_pending_texts): add. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_finalization, plaintext_process_printindex), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (process_printindex): cache | |
| outside_of_any_node_text as a string instead of pending text. | |
| 2026-08-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_anchor), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_format_anchor, plaintext_functions) | |
| (convert_to_plaintext_internal), tta/perl/Texinfo/Convert/InfoNonXS.pm | |
| (format_anchor), tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (format_anchor, _convert): rename _anchor as format_anchor, move | |
| definition to Info converter, the plaintext implementation being a | |
| no-op. Add dispatch information in C. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (process_footnotes), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_process_footnotes): | |
| create a footnote anchor only if target_locations are output. | |
| 2026-08-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_line), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (convert_line): | |
| return converted text width. | |
| * tta/C/convert/convert_to_info.c (info_header), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (_info_header): do not use a | |
| separate count context for the info header, nor for direntry. | |
| * tta/C/convert/convert_to_plaintext.c (text_heading) | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_text_heading) (_convert): | |
| merge section_element_heading pending text result with parent, and | |
| call stream_output for the remaining output. Return value determined | |
| by heading being empty. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): use | |
| plaintext_convert_line instead of plaintext_convert_line_new_context | |
| for quotation argument and float prepended text. | |
| 2026-08-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (collect_pending_texts_lines, _align_lines, _convert): add | |
| collect_pending_texts_lines with common code of _align_lines and | |
| _convert. | |
| tta/C/convert/convert_to_plaintext.c (clear_pending_texts) | |
| (stream_encode, plaintext_add_target_location) | |
| (add_newline_if_needed, ensure_end_of_line, pending_to_text) | |
| (pending_texts_width, collect_pending_texts_lines, align_lines) | |
| (pending_is_spaces, pending_is_empty, convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (add_target_location) | |
| (_pending_to_text, _stream_encode, _debug_print_pending) | |
| (_add_newline_if_needed, _ensure_end_of_line) | |
| (collect_pending_texts_lines, _align_lines, _pending_is_spaces) | |
| (_pending_is_empty, _pending_texts_width, _convert): put anchor in the | |
| current pending text instead of in a distinct one. | |
| 2026-08-26 Patrice Dumas <pertusus@free.fr> | |
| C implementation mix anchors and text in pending text and fixes | |
| * (tta/perl/Texinfo/Convert/Converter.pm): do not count newlines in | |
| text image width. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_align_lines), | |
| tta/C/convert/convert_to_plaintext.c (align_lines): remove | |
| end of line before processing line with image, and readd end of line | |
| at the end of the line. | |
| * tta/C/convert/convert_to_info.c (info_header, info_format_ref) | |
| (info_format_node), tta/C/convert/convert_to_plaintext.c | |
| (destroy_count_context, push_count_context, clear_pending_texts) | |
| (plaintext_conversion_finalization, stream_reset, stream_output) | |
| (plaintext_add_target_location, plaintext_convert_line_new_context) | |
| (update_locations_counts, add_newline_if_needed, ensure_end_of_line) | |
| (pending_to_text, stream_to_text, plaintext_convert_node_name) | |
| (plaintext_cache_node_names, merge_pending_texts) | |
| (merge_pending_with_parent, pending_texts_width) | |
| (PENDING_TEXT_LIST_LINES, LINE_IMAGE_LIST, reallocate_line_image_for) | |
| (collect_pending_texts_lines, align_lines, plaintext_format_contents) | |
| (plaintext_process_printindex, pending_is_spaces, pending_is_empty) | |
| (text_heading, convert_to_plaintext_internal), | |
| tta/C/convert/convert_to_plaintext.h (PENDING_TEXT_COUNT_LINE_COUNT), | |
| tta/C/main/plaintext_converter_state.h (TARGET_LOCATION_LIST) | |
| (PENDING_TEXT, PENDING_TEXT_LIST, COUNT_CONTEXT, FORMAT_CONTEXT) | |
| (PLAINTEXT_CONVERTER_STATE): put both text and anchors in | |
| count_context pending_text. Add pending_is_spaces, pending_is_empty, | |
| pending_texts_width, pending_to_text and stream_to_text to manage the | |
| resulting array by following the text without considering anchors, | |
| update add_newline_if_needed and ensure_end_of_line. Never encode the | |
| result when formatting in a count_context, instead return the | |
| pending_text and merge with parent, update convert_line_new_context, | |
| align_lines, and update callers. Remove bytes and target_locations | |
| from count_context. Initialize pending_text in push_count_context, | |
| use this function instead of add_(pending_text) in most cases. In | |
| text_heading have a tree returned by translation. Remove | |
| stream_byte_count, stream_output_encoded, stream_result, | |
| stream_yield_result, string_width_encoded, LINE_TARGET_IMAGE, | |
| LINE_TARGET_IMAGE_LIST, reallocate_line_target_image_for, LINE_TARGET, | |
| LINE_TARGET_LIST, reallocate_line_target_for, CELLS_LINE_TARGET, | |
| reallocate_cells_line_target_for, STRING_COUNT_LINE_COUNT. | |
| * tta/C/convert/convert_to_info.c (info_header, info_output), | |
| tta/C/convert/convert_to_plaintext.c (TARGET_LOCATION_LIST) | |
| (plaintext_conversion_finalization, plaintext_encode_string) | |
| (stream_encode, stream_final_result, plaintext_convert_output_unit) | |
| (plaintext_output, plaintext_convert, plaintext_convert_tree), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| pass TEXT in argument of info_header, use TEXT for header and output | |
| unit formatting result. Rename stream_encode as encode_string and | |
| modify stream_encode to encode and count bytes. Encode result and | |
| count bytes in top level only, with stream_final_result or | |
| plaintext_encode_string. Count bytes for Info only. | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (output), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_setup_output_encoding) | |
| (conversion_initialization, conversion_finalization, convert) (output, | |
| _encode_string, _stream_encode), tta/C/convert/convert_to_info.c | |
| (info_output), tta/C/convert/convert_to_plaintext.c | |
| (plaintext_setup_output_encoding, plaintext_conversion_initialization) | |
| (plaintext_conversion_finalization, plaintext_output) | |
| (plaintext_convert): add _setup_output_encoding or | |
| plaintext_setup_output_encoding to setup encoding_object. Use | |
| encoding_object being set as encoding being enabled or disabled. | |
| Remove encoding_disabled. Call _setup_output_encoding early if | |
| encoding is to be possibly set. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (_section_element_heading, format_contents, _text_heading), | |
| tta/C/convert/convert_to_plaintext.c (section_element_heading) | |
| (plaintext_format_contents, text_heading): add | |
| _section_element_heading based on code common of _text_heading and | |
| format_contents. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (convert_tree): move | |
| around. | |
| * tta/C/convert/convert_to_info.c (info_output): add new line after | |
| output unit formatting in normal conversion context. | |
| * tta/C/convert/convert_to_info.c (info_header): use | |
| a different variable name for the paragraph text at the beginning. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): handle empty @strong for error | |
| message. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element): fix | |
| no_align setting. | |
| * tta/C/convert/convert_to_info.c (info_format_image): do not show alt | |
| if empty. | |
| 2026-08-24 Patrice Dumas <pertusus@free.fr> | |
| mix anchors and text in pending text and encode only at top level | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (_info_header) | |
| (format_node), tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (conversion_initialization, add_target_location, _stream_reset) | |
| (_stream_output, _pending_to_text, _stream_to_text) | |
| (_pending_is_spaces, _pending_is_empty, _pending_texts_width) | |
| (_update_locations_counts, _add_newline_if_needed) | |
| (_ensure_end_of_line, _text_heading, _convert): put both | |
| text and anchors in count_context pending_text. Add | |
| _pending_is_spaces, _pending_is_empty, _pending_texts_width, | |
| _pending_to_text and _stream_to_text to manage the resulting array by | |
| following the text without considering anchors, update | |
| _add_newline_if_needed and _ensure_end_of_line. Never encode the | |
| result when formatting in a count_context, instead return the | |
| pending_text and merge with parent, update convert_line_new_context, | |
| _align_lines, and update callers. Remove bytes and target_locations | |
| from count_context. Always initialize pending_text. In _text_heading | |
| have a tree returned by translation. Remove _stream_byte_count, | |
| _stream_output_encoded, _stream_result, _stream_yield_result, _decode, | |
| _string_width_encoded. | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (_info_header, output), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (conversion_finalization) | |
| (convert_output_unit, convert_tree, convert, output, _encode_string) | |
| (_stream_encode, _stream_final_result): rename _stream_encode as | |
| _encode_string and modify _stream_encode to encode and count bytes. | |
| Encode result and count bytes in top level only, with | |
| _stream_final_result or _encode_string. Count bytes for Info | |
| only. | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (output): add new line after | |
| output unit formatting in normal conversion context. | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (_info_header): use | |
| a different variable name for the paragraph text at the beginning. | |
| * tta/perl/Makefile.tres, tta/perl/t/info_tests.t | |
| (quoted_xref_in_flushright): add new test. | |
| 2026-08-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (stream_output_count_nl) | |
| (stream_output_add_text, stream_output_add_next), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_stream_output_count_nl) | |
| (_stream_output_add_text, _stream_output_add_next): call stream_output | |
| in stream_output_count_nl, call stream_output_count_nl in | |
| stream_output_add_text and stream_output_add_next. | |
| 2026-08-23 Gavin Smith <gavinsmith0123@gmail.com> | |
| * util/htmlxref.d/Texinfo_GNU.cnf: Update stabs entry. | |
| From Thérèse Godefroy <godef.th@free.fr>. | |
| 2026-08-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_extensions_DATA), | |
| tta/perl/init/breadcrumb_navigation.pm: add breadcrumb navigation init | |
| file, inspired by a Lilypond customization by Ky Decker. | |
| 2026-08-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/texinfo.i (protect_comma_in_tree, protect_colon_in_tree) | |
| (reference_to_arg_in_tree, protect_hashchar_at_line_beginning) | |
| (protect_first_parenthesis_in_targets, convert_to_identifier): add | |
| functions used in pod2texi. | |
| 2026-08-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (add_string): change the arguments order to have | |
| list first, to be like other functions. | |
| 2026-08-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (PAGES_CSS_LIST, add_new_css_page): use | |
| generic list macros for PAGES_CSS_LIST. | |
| * tta/C/parsetexi/context_stack.c (PARSER_CONTEXT_STACK) | |
| (context_stack, current_context_command, reset_context_stack) | |
| (push_context, pop_context, current_context, is_context_empty) | |
| (in_preformatted_context_not_menu): add PARSER_CONTEXT_STACK type | |
| for enum context context_stack and use generic list functions. | |
| * tta/C/main/document_types.h (PREAMBLE_LANG_CMD_LIST), | |
| tta/C/parsetexi/parser.c (PREAMBLE_LANG_CMD_LIST) | |
| (add_preamble_lang_cmd): use generic list macros for | |
| PREAMBLE_LANG_CMD_LIST. | |
| * tta/C/main/html_converter_state.h (CSS_LIST), | |
| tta/C/convert/format_html.c (collect_css_element_class), | |
| tta/C/convert/html_conversion_state.c (html_get_css_elements_classes), | |
| tta/C/convert/html_prepare_converter.c (reset_html_page_css): replace | |
| the number, space and list fields by a STRING_LIST selectors field. | |
| Update code setting or using selectors. | |
| * tta/C/main/utils.c (store_value): call fatal if realloc failed. | |
| 2026-08-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/end_line.c (end_line_misc_line), | |
| tta/C/parsetexi/parser.c (conditional_stack, CONDITIONAL_ITEM_STACK) | |
| (push_conditional_stack, pop_conditional_stack, parse_texi), | |
| tta/C/parsetexi/parser.h (CONDITIONAL_ITEM, CONDITIONAL_ITEM_STACK): | |
| rename CONDITIONAL_STACK_ITEM as CONDITIONAL_ITEM. Add | |
| CONDITIONAL_ITEM_STACK and associated functions using generic lists | |
| macros. Update push_conditional_stack and pop_conditional_stack, | |
| remove top_conditional_stack. | |
| * tta/C/parsetexi/parser.c (macro_block_stack) | |
| (process_macro_block_contents): use a COMMAND_STACK for | |
| macro_block_stack. Remove push_macro_block_stack, | |
| pop_macro_block_stack and macro_block_stack_top. | |
| 2026-08-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ParserNonXS.pm (parse_piece, parse_string) | |
| (parse_text, parse_file), | |
| tta/perl/XSTexinfo/parser_document/ParserXS.xs (parse_piece) | |
| (parse_string, parse_text, parse_file): rename parse_texi_line as | |
| parse_string, parse_texi_text as parse_text, parse_texi_piece as | |
| parse_piece and parse_texi_file as parse_file to have the same name as | |
| in C and swig interface. Update callers. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ParserNonXS.pm (parse_texi_piece, parse_texi_line) | |
| (parse_texi_text, parse_texi_file, _parse_texi_document): do not call | |
| get_parser_info in parse_texi_piece and parse_texi_line as they are | |
| not supposed to manage the document. Move get_parser_info call to | |
| _parse_texi_document. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/do_master_menu.t: use parse_texi_text instead of | |
| parse_texi_piece when the input Texinfo is a full manual. | |
| * tta/perl/t/z_misc/index_before_item.t: use parse_texi_text instead | |
| of parse_texi_piece as the transformation is a transformation | |
| targeted at full manuals. | |
| * tta/perl/t/z_misc/protect_character_in_texinfo.t, | |
| tta/perl/t/z_misc/test_is_content_empty.t: use parse_texi_text instead | |
| of parse_texi_piece when there is a comparison with parse_texi_line. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/nodenormalization.t, | |
| tta/perl/t/z_misc/test_tree_copy.t: use parse_texi_text instead of | |
| parse_texi_piece when the input Texinfo is a full manual. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl, tta/perl/t/*.t: remove setting and using | |
| full_document, it has no effect anymore. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl: never use parse_texi_piece, it is not | |
| meant for parsing a whole text. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm | |
| (_texinfo_handle_element_end): do not fall back to converting to raw | |
| text when the normalized Texinfo name is empty, keep an empty string, | |
| since this needs to be handled anyway. | |
| * Pod-Simple-Texinfo/pod2texi.pl (%command_structuring_level): copy | |
| the hash, it should not change often if ever. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/transformations.c | |
| (complete_transform_document), tta/C/texi2any.c (main), | |
| tta/swig/texinfo.i (complete_transform_document): add | |
| fill_gaps_in_sectioning_in_document argument to | |
| complete_transform_document. Update caller and swig. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| pass Texinfo code to fill_gaps_in_sectioning_in_document | |
| * tta/C/structuring_transfo/transformations.c | |
| (fill_gaps_in_sectioning_in_document), | |
| tta/perl/Texinfo/TransformationsNonXS.pm | |
| (fill_gaps_in_sectioning_in_document): pass Texinfo code as argument | |
| and parse to a Texinfo tree in fill_gaps_in_sectioning_in_document. | |
| * Pod-Simple-Texinfo/pod2texi.pl (_parsed_manual_tree): adapt to | |
| fill_gaps_in_sectioning_in_document change. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/pod2texi.pl: inline _fix_texinfo_manual in the | |
| main loop and remove the function. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/pod2texi.pl (_parsed_manual_tree): add | |
| $do_master_menu argument and use it, replace call of _fix_texinfo_tree | |
| by call of _parsed_manual_tree and remove _fix_texinfo_tree. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/pod2texi.pl (_fix_texinfo_tree): remove the | |
| possibility to do master menus and not node menus. It was not used | |
| and does not make much sense. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (protect_sentence_ends): do not | |
| go past the beginning of the string when going from the end of the | |
| string. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): do not set at | |
| all text_before and text_after instead of setting them to empty | |
| strings. In C, do not output an empty string when text_before or | |
| text_after are not set. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_contents): | |
| add missing add_lines_count call. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): do not reset text_element_context | |
| counter to 0 at quotation opening nor when adding arg width. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_converter_initialize): fix setting | |
| INFO_SPECIAL_CHARS_WARNING based on INFO_SPECIAL_CHARS_QUOTE. | |
| * tta/C/convert/convert_to_info.c (info_output): set | |
| informative commands to preamble values. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element): fix | |
| condition for output of binary quoting. | |
| 2026-08-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_converter_initialize), tta/data/options_data.txt | |
| (INFO_SPECIAL_CHARS_QUOTE), tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (converter_initialize): set and use INFO_SPECIAL_CHARS_QUOTE as an | |
| integer customization variable everywhere. | |
| * tta/C/convert/convert_to_info.c (info_format_node): warn node | |
| quoting in direction only for external nodes. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| fix ignoring and processing index entries. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): print contents if there is one | |
| section. Fix prepended float width use. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (TXI_DOCUMENT_SCRIPT_NAME) | |
| (info_output), tta/maintain/regenerate_documentlanguages-iana.pl: | |
| generate and use a struct with name as first field used for the key as | |
| expected by gperf. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| fix missing width count for ": " for @seealso. | |
| Update to newest IANA registry data. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_header): output directly | |
| argument. | |
| * tta/C/convert/convert_to_plaintext.c (protect_sentence_ends): add | |
| missing code to insert a control character at end of string. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| @titlefont and strong Note warning in C plaintext/Info | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_converter_initialize), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (converter_initialize, _convert): add warn_strong_note field in | |
| PLAINTEXT_CONVERTER_STATE and set based on converter format in | |
| plaintext_converter_initialize. In Perl, set warn_strong_note too in | |
| converter_initialize instead of calling the function for each @strong. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): add warning for Note in @string. | |
| Convert titlefont. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| Numerous changes for plaintext/Info C comparing with tests | |
| * tta/C/convert/convert_to_info.c (info_format_node): go through | |
| directions even if node_relations->node_directions is not set, to set | |
| Up to (dir) even if there are no other directions. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_setup): fix | |
| BLOCK_format_raw being mistaken as BLOCK_raw in condition. | |
| Numerous other small fixes. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): rename | |
| $para_indent as $para_indent_size. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): finish paragraph indenting. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (underline_symbol) | |
| (text_heading): finish text_heading implementation. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter) | |
| (UPPER_CASE_STACK, release_stacks_of_top_formatter, pop_formatter) | |
| (pop_top_formatter), tta/C/main/plaintext_converter_state.h | |
| (UPPER_CASE, UPPER_CASE_STACK, FORMATTER): add upper-case stack, | |
| allocate, and release. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): rearrange | |
| conditions. | |
| * tta/C/convert/convert_to_plaintext.c (protect_sentence_ends): add. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): uppercase text and accented | |
| characters and protect sentence ends when needed. Set upper-case | |
| stack for upper_case commands and handle _stop_upper_case special | |
| element type. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_ref), | |
| tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (FORMATTER): add w in | |
| FORMATTER, set and use it. | |
| 2026-08-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_setup), | |
| tta/C/convert/convert_to_plaintext.h (PF_non_quoted_when_nested) | |
| (PF_index_style): add non_quoted_when_nested and index_style commands. | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter) | |
| (convert_to_plaintext_internal): use non_quoted_when_nested and | |
| index_style commands and set and use font_type_stack more. | |
| 2026-08-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (informative_global_commands): | |
| add missing terminating NULL. | |
| * tta/C/convert/convert_to_plaintext.c (pop_formatter): add an | |
| argument to set if a formatter is reused, such that the memory is not | |
| unallocated. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_setup), | |
| tta/C/convert/convert_to_plaintext.h (PF_no_punctuation_munging): | |
| set no_punctuation_munging commands. | |
| * tta/C/convert/convert_to_plaintext.c (FONT_TYPE_STACK) | |
| (fill_formatter, pop_formatter, pop_top_formatter, open_code) | |
| (close_code, convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (FONT_TYPE, FONT_TYPE_STACK) | |
| (FORMATTER): add font_type_stack and associated types and | |
| frenchspacing_stack in FORMATTER. Initialize the stacks in | |
| fill_formatter and use monospace informatio for text formatting, free | |
| in pop_formatter, add close_code and open_code, set frenchspacing for | |
| no_punctuation_munging commands and upper case commands, handle | |
| _frenchspacing and _code type elements. | |
| 2026-08-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): automatic menus. | |
| 2026-08-18 Patrice Dumas <pertusus@free.fr> | |
| Handle explicit @menu in C plaintext/Info | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization) | |
| (plaintext_conversion_finalization), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add seenmenus hash map to PLAINTEXT_CONVERTER_STATE. | |
| * tta/C/convert/convert_to_plaintext.c (menu) | |
| (convert_to_plaintext_internal): handle menu. | |
| 2026-08-18 Patrice Dumas <pertusus@free.fr> | |
| Handle menu_entry type in C plaintext | |
| * tta/C/convert/convert_to_info.c (info_format_ref): use same format | |
| string for translation as in perl. | |
| * tta/C/convert/convert_to_info.c | |
| (plaintext_conversion_initialization) | |
| (plaintext_conversion_finalization), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add seen_node_descriptions hash map. | |
| * tta/C/convert/convert_to_info.c (convert_to_plaintext_internal): | |
| handle menu_entry. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): do not set | |
| description text_element_context max to an unused default value. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c: remove obsolete TODO. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c: reindent. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| Convert @float and @cartouche in C plaintext | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): assume | |
| argument_line is set for float, and use it as a variable. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): rename | |
| element for elements below caption to content. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): handle float and cartouche. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| Convert @listoffloats in C plaintext | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): convert listoffloats. | |
| * tta/C/convert/format_html.c (html_convert_listoffloats_command): | |
| break at the first matching listoffloats type. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| Handle @insertcopying, @sp and @exdent in C plaintext | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): access directly global_commands | |
| settitle. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): convert exdent, verbatiminclude and | |
| sp. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): use add_to_contents_as_array such as | |
| not to modify initial tree element. | |
| * tta/C/main/build_perl_info.c (element_to_perl_hash): free converted | |
| to texinfo string in error message to avoid memory leak only present | |
| in case of fatal error. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_format_ref): set | |
| name_quoting_required in names quoting check code. | |
| * tta/C/convert/convert_to_info.c (info_format_ref): read | |
| document_context->in_multitable, call | |
| para_set_conf_double_width_no_break and set suppress_styles. | |
| * tta/C/convert/convert_to_info.c (info_format_ref), | |
| tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| get and use document_context and formatter close by, such that it is | |
| not possible to have their address changed by reallocating the list. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_setup) | |
| (convert_to_plaintext_internal), tta/C/convert/convert_to_plaintext.h | |
| (PF_advance_paragraph_count): set PF_advance_paragraph_count and use | |
| to advance paragraph_count in PF_advance_paragraph_count. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (reallocate_cells_line_target_for, convert_to_plaintext_internal): use | |
| static storage for cell_beginnings and cell_lines, clear cell lines. | |
| Free multitable top context lists. | |
| 2026-08-16 Patrice Dumas <pertusus@free.fr> | |
| plaintext C @multitable | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): rename | |
| $cell as $cell_text and max_cell as max_cell_nr in row formatting. | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter) | |
| (push_top_formatter, pop_top_formatter, ensure_end_of_line) | |
| (plaintext_process_footnotes, convert_def_line) | |
| (convert_to_plaintext_internal, plaintext_free_converter), | |
| tta/C/main/plaintext_converter_state.h (FORMAT_CONTEXT_STACK) | |
| (TEXT_CONTEXT, PLAINTEXT_CONVERTER_STATE): | |
| * tta/C/convert/convert_to_plaintext.c (LINE_TARGET, LINE_TARGET_LIST) | |
| (reallocate_line_target_for, CELLS_LINE_TARGET) | |
| (reallocate_cells_line_target_for, convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (FORMAT_CONTEXT): add | |
| types used for multitable formatting. Modify FORMAT_CONTEXT row and | |
| columns_size fields to be lists, add columns_size_nr. Handle | |
| @multitable, mutitable cell commands for cell opening and closing, | |
| and row type. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| plaintext C @quotation, @author and @center | |
| * tta/C/convert/convert_to_plaintext.c (push_top_formatter) | |
| (pop_top_formatter, pop_document_context, plaintext_free_converter), | |
| tta/C/main/plaintext_converter_state.h (QUOTATION_AUTHORS_LIST) | |
| (DOCUMENT_CONTEXT, PLAINTEXT_CONVERTER_STATE): add | |
| DOCUMENT_CONTEXT_STACK and QUOTATION_AUTHORS_LIST within. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): convert quotation, author and center. | |
| * tta/C/convert/convert_to_plaintext.h (STRING_COUNT_LINE_COUNT): | |
| rename count field as width. Update users. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| plaintext C @def | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert_def_line): | |
| rename omit_def_space as omit_def_name_space. | |
| * tta/C/convert/convert_to_plaintext.c (convert_def_line): finish | |
| implementation. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): handle dashes and quotes in text. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (text_heading) | |
| (convert_def_line): add partial implementations to have formatters for | |
| the texts inside of the sectioning and @def* commands. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): more cases for text formatting, still | |
| very partial. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): handle sectioning and heading | |
| commands, and def lines. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (_stream_output_add_text): remove a useless intermediary variable. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): update | |
| comment about inlined function and replace code by recent code. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (get_form_feeds) | |
| (convert_to_plaintext_internal): add get_form_feeds. Handle better | |
| empty line text and ignored text. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_insert_image): | |
| fixes, call plaintext_add_image. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (add_newline_if_needed): | |
| implement. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (update_locations_counts) | |
| (convert_to_plaintext_internal), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_update_locations_counts) | |
| (_convert): do not call _stream_byte_count for the parent counts in | |
| _update_locations_counts, as it is difficult to understand that it is | |
| the parent counts that are modified here. Instead, call | |
| _stream_byte_count before pushing a count context in commands such as | |
| center and flushright that need to flush parent before merging with | |
| their counts. | |
| * tta/C/convert/convert_to_plaintext.c (stream_output_add_next) | |
| (stream_output_count_nl, adjust_final_locations): implement. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_output_unit): call adjust_final_locations. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_finalization): warn if more than one count | |
| context remain. | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext) | |
| (plaintext_convert_tree): inline in plaintext_convert_tree and remove. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_tree), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (convert_tree): update to | |
| remove probable bugs, and use _update_locations_counts. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (_compute_spaces_align_line, _align_lines), | |
| tta/C/convert/convert_to_plaintext.c (compute_spaces_align_line) | |
| (align_lines): rename spaces_prepended as prepended_spaces. | |
| * tta/C/convert/convert_to_plaintext.c (align_lines): finish | |
| implementation. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): add new preformatted formatter in | |
| rawpreformatted or preformatted, if needed. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): open count context for flushright, | |
| align to the right and close count context by calling | |
| align_environment. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): free accented text and enumerate item | |
| representation. | |
| 2026-08-14 Patrice Dumas <pertusus@free.fr> | |
| plaintext C @U, @value, and partial implementation of flushright | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| convert @u and @value. | |
| * tta/C/convert/convert_to_info.c (info_format_image_element) | |
| tta/C/convert/convert_to_plaintext.c (destroy_count_context) | |
| (plaintext_add_image, plaintext_format_image_element), | |
| tta/C/main/plaintext_converter_state.h (IMAGE_LOCATION_INFO) | |
| (IMAGE_LOCATION_INFO_LIST, COUNT_CONTEXT): add | |
| IMAGE_LOCATION_INFO_LIST type, add plaintext_add_image and call it to | |
| register images in count context. | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter) | |
| (plaintext_format_setup, update_locations_counts) | |
| (enum align_directions, compute_spaces_align_line) | |
| (IMAGE_LOCATION_POINTER_LIST, reallocate_line_target_image_for) | |
| (align_lines, align_environment, convert_to_plaintext_internal): set | |
| flush text commands context, partial implementation of align_lines. | |
| 2026-08-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| Make sure XS modules are built before running pod2texi | |
| * doc/Makefile.am (pod2texi.texi), | |
| * doc/tta_api/Makefile.am (texi2any_internals.texi): | |
| Do not force TEXINFO_XS=omit. Build in tta/ so that the texi2any | |
| XS modules will be built for the use of pod2texi. | |
| Reverses change on 2026-08-05. This still allows the sequence "make \ | |
| maintainer-clean ; ./configure ; make dist" to work. | |
| 2026-08-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| Allow ragged bottom before @float | |
| * doc/texinfo.tex (\float): Add optional space at the bottom of a | |
| page before a float. This is intended to reduce interparagraph | |
| spacing on the preceding page if there is not much on it. | |
| Report from Bernard Petit, bug-texinfo, 2024-12-13. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_setup), | |
| tta/perl/XSTexinfo/convert/ConvertInfoXS.xs (init), | |
| tta/perl/XSTexinfo/convert/ConvertPlaintextXS.xs (init): call | |
| plaintext_format_setup in XS modules init, unless the C command is | |
| used. Avoid calling plaintext_format_setup twice, once for Plaintext, | |
| once for Info and verify that it is not called twice for the same | |
| initial format. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_footnotes) | |
| (plaintext_conversion_finalization), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| use copy for element labels. Register new elements in converter | |
| added_element new field and destroy them in | |
| plaintext_conversion_finalization. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_footnotes) | |
| (convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (PENDING_FOOTNOTE): add | |
| TREE_ADDED_ELEMENTS added element field in PENDING_FOOTNOTE, put added | |
| element generated when a footnote is used as item formatter in there | |
| and destroy the tree added elements in plaintext_process_footnotes. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_free_converter): | |
| free lists. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): check if added text is not NULL | |
| before streaming, for definfoenclose command. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): fix format for footnote number. | |
| * tta/C/convert/convert_to_plaintext.c (destroy_count_context): free | |
| locations lists. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| C plaintext @abbr and @acronym and @inline* | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): convert explained commands @abbr and | |
| @acronym and non-ignored @inline*. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| C plaintext @today, @email, @url/@uref | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): implement conversion of @today, | |
| @email, and @url/@uref. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| C plaintext partial accents implementation, definfoenclose and @link | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): implement accents conversion except | |
| for uppercasing, implement definfoenclos'ed command and @link | |
| conversion. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): inline | |
| add_index_entry_location in _convert and remove. | |
| * tta/C/convert/convert_to_info.c (info_format_node): reset th elines | |
| count at the end of a node. | |
| * tta/C/convert/convert_to_plaintext.c (INDEX_ENTRY_LINE_COUNT_LIST) | |
| (plaintext_process_printindex, convert_to_plaintext_internal): collect | |
| index entry location line count and node when encountering the | |
| command. Use the information in printindex conversion. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): ignore inline commands that should be | |
| ignored. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/convert_utils.c (item_itemize_prepended): uncomment. | |
| * tta/C/main/plaintext_converter_state.h (FORMAT_CONTEXT): fix typo. | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter): set | |
| para_set_conf_indent_length based on top_format_context | |
| context_indent_len if indent_length argument is set to -1. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): push and pop format_context for block | |
| commands and set indenting. Handle item in enumerate and itemize. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): handle item and itemx in @table, | |
| _suppress_styles and untranslated_def_line_arg types. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/plaintext_converter_state.h (FORMATTER): add | |
| suppress_styles field. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_line_new_context, plaintext_convert_node_name) | |
| (plaintext_cache_node_names, plaintext_process_printindex): add | |
| suppress_styles and no_added_eol arguments to | |
| plaintext_convert_line_new_context. Set no_added_eol and | |
| suppress_styles. Update callers. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| commands with empty braces argument and symbol commands in plaintext C | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_setup) | |
| (convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (FORMATTER): add no_added_eol | |
| FORMATTER field. Convert commands with empty braces argument and | |
| symbol commands in plaintext C converter. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| Info tags table, @anchor and @namedanchor in C | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (output): rearrange code. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (process_footnotes), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_process_footnotes): do | |
| not put line_arg nor leading and trailing spaces in generated footnote | |
| anchor argument. | |
| * tta/C/convert/convert_to_plaintext.c (anchor) | |
| (convert_to_plaintext_internal): handle @anchor and @namedanchor. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_add_target_location): rename add_target_location as | |
| plaintext_add_target_location and make extern. | |
| * tta/C/convert/convert_to_info.c (info_output): output tag table. | |
| * tta/C/convert/convert_to_info.c (info_format_node): call | |
| plaintext_add_target_location. | |
| 2026-08-12 Patrice Dumas <pertusus@free.fr> | |
| Separate plaintext target locations from index entries locations | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): use | |
| a counts hash for row. | |
| * tta/C/convert/convert_to_plaintext.c (TARGET_LOCATION_LIST) | |
| (add_target_location, plaintext_process_footnotes), | |
| tta/C/main/plaintext_converter_state.h (TARGET_LOCATION) | |
| (TARGET_LOCATION_LIST, INDEX_ENTRY_LINE_COUNT_LIST, COUNT_CONTEXT) | |
| (INDEX_ENTRY_INFO), tta/perl/Texinfo/Convert/InfoNonXS.pm | |
| (_info_header, format_node), | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm (convert_tree) | |
| (add_target_location, add_index_entry_location) | |
| (_adjust_final_locations, _update_locations_counts) | |
| (process_footnotes, _align_lines, _align_environment, _anchor) | |
| (_convert): separate target_locations from index_entry_locations, | |
| adding add_target_location to add a target location and | |
| add_index_entry_location to add an index entry location. pass parent | |
| count context to _update_locations_counts and merge locations with | |
| parent locations there. Remove add_location. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): rename | |
| 'row_counts' format_context field as 'row_cell_counts'. | |
| 2026-08-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (add_location): rename | |
| root field as location_element and set for index entry elements too, | |
| even though it is not used in that case. Update user. | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (output): use variable for | |
| $location->{'location_element'}, rename $label as $location. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (process_printindex) | |
| (_convert): rename index_entries_line_location field as | |
| index_entry_info. Put 'node' in {'index_entry_info'}->{$element}, | |
| not in location. Do not set {'index_entry_info'}->{$element} | |
| to the location, but instead add a 'location' field pointing to | |
| the location. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization, plaintext_process_printindex), | |
| (plaintext_conversion_finalization), | |
| tta/C/main/plaintext_converter_state.h (INDEX_ENTRY_INFO) | |
| (PLAINTEXT_CONVERTER_STATE): allocate in | |
| plaintext_conversion_initialization a structure holding conversion | |
| information of index entries, by sorted index name index and index | |
| entry number in original index. Use it in | |
| plaintext_process_printindex instead of local array. | |
| 2026-08-11 Patrice Dumas <pertusus@free.fr> | |
| Implement footnotes and output encoding in plaintext C converter | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm: move code around. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (add_location): comment | |
| out setting index_entry as it is never used. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (process_footnotes): fix | |
| field name. | |
| * tta/C/convert/convert_to_plaintext.c (push_top_formatter): add top | |
| context command argument, push it to the context stack. Update | |
| callers. | |
| * tta/C/convert/convert_to_plaintext.c (pop_context): add as a wrapper | |
| for pop_(command) that returns the popped cmd. | |
| * tta/C/convert/convert_to_plaintext.c (pop_top_formatter) | |
| (plaintext_conversion_finalization): add pop_top_formatter and call | |
| it in plaintext_conversion_finalization. In pop_top_formatter use | |
| pop_(formatter) instead of pop_formatter if the last context is | |
| popped, as there is no formatter left when the last formatter is | |
| popped. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): push and pop @math command on | |
| context stack. Pop context stack for PF_preformatted_context and | |
| float commands. | |
| * tta/C/convert/convert_to_plaintext.c (destroy_count_context) | |
| (stream_reset, stream_output, stream_output_add_text), | |
| tta/C/main/plaintext_converter_state.h (COUNT_CONTEXT): distinguish | |
| pending_text, which is utf-8, and result text, which is encoded in the | |
| output encoding. Add pending_text and encoding_disabled fields in | |
| COUNT_CONTEXT. Use pending_text where it should be. | |
| * tta/C/convert/convert_to_plaintext.c (stream_encode) | |
| (stream_byte_count, stream_output_encoded, stream_result) | |
| (stream_yield_result), tta/C/main/plaintext_converter_state.h | |
| (PLAINTEXT_CONVERTER_STATE): add encoding_object field in | |
| PLAINTEXT_CONVERTER_STATE. Add stream_encode, | |
| stream_byte_count and implement stream_output_encoded. Call | |
| stream_byte_count where it should be. | |
| * tta/C/convert/convert_to_plaintext.c (add_location), | |
| tta/C/main/plaintext_converter_state.h (LOCATION, LOCATION_LIST) | |
| (COUNT_CONTEXT): locations lists types and list functions, add to | |
| COUNT_CONTEXT. | |
| * tta/C/convert/convert_to_info.c (info_header, info_output), | |
| tta/C/convert/convert_to_plaintext.c (pending_footnote) | |
| (plaintext_process_footnotes, convert_to_plaintext_internal) | |
| (plaintext_convert_output_unit), | |
| tta/C/main/plaintext_converter_state.h (PENDING_FOOTNOTE) | |
| (PENDING_FOOTNOTE_LIST, PLAINTEXT_CONVERTER_STATE): Add | |
| PENDING_FOOTNOTE and related types and functions. Add multiple_pass, | |
| footnote_index and pending_footnotes fields to | |
| PLAINTEXT_CONVERTER_STATE. Implement plaintext_process_footnotes and | |
| conversion of footnotes. Call plaintext_process_footnotes. | |
| 2026-08-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_cache_node_names): | |
| implement plaintext_cache_node_names and call for Info output. | |
| 2026-08-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output): handle invalid | |
| documentscript. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| unallocate "(outside of any node)" translated tree. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): handle @math without argument. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): stream and free the prepared text. | |
| * tta/C/convert/html_conversion_state.c | |
| (html_unset_multiple_conversions) | |
| (html_close_registered_sections_level), tta/C/main/command_stack.c | |
| (pop_string_stack): add pop_string_stack that frees the top string | |
| before calling pop_(string). Use it instead of pop_(string). | |
| 2026-08-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): do not call return on format_contents | |
| dispatched function, it is a function returning void and is called in | |
| a void function. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): set text_before and text_after to | |
| empty string in case of bug. | |
| * tta/C/convert/convert_to_plaintext.c (ensure_end_of_line): add. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_finalization, convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add text_before_first_node field in PLAINTEXT_CONVERTER_STATE, set and | |
| use text_before_first_node. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): add some conditions for not handled | |
| elements, and use braces instead of ; when there is no code yet. | |
| 2026-08-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/call_embed_perl.c, tta/C/main/call_perl_function.c | |
| (call_eval_use_module): move call_eval_use_module call_perl_function.c | |
| such that it can be called from converters. | |
| 2026-08-10 Patrice Dumas <pertusus@free.fr> | |
| informative and unknown commands in plaintext C converter | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): handle informative commands, switch | |
| language. Handle unknown command. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_convert): remove | |
| the $unknown_command variable. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (Info Format Local Variables): document the | |
| language script and variants local variables. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/command_stack.c: use list macros for STRING_LIST string | |
| stack. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| Replace STRING_STACK by STRING_LIST and remove | |
| * tta/C/main/converter_types.h: replace STRING_STACK by STRING_LIST | |
| and remove STRING_STACK. Replace in all users of the type. | |
| * tta/C/main/command_stack.c: remove clear_string_stack, replace by | |
| clear_strings_list in the user. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/command_stack.c: use list macros for ELEMENT_REFERENCE | |
| ELEMENT_REFERENCE_STACK stack. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/command_stack.c (push_element_reference_stack_element): | |
| fix type in sizeof. | |
| * tta/C/main/command_stack.c: replace ELEMENT_STACK type by | |
| CONST_ELEMENT_LIST type. Use stack macros for const ELEMENT * | |
| CONST_ELEMENT_LIST stack. Remove ELEMENT_STACK by removing | |
| def_list_type call on ELEMENT_STACK in document_types.h. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/command_stack.c: use list macros for int integer stack. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/command_stack.c: use list macros for enum command_id | |
| command stack. | |
| 2026-08-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Fonts) <@fonttextsize>: State that this command | |
| is recommended for use with texinfo.tex only. | |
| 2026-08-09 Patrice Dumas <pertusus@free.fr> | |
| INFO_MATH_IMAGES, C plaintext block command flags, math displaymath | |
| * tta/C/convert/convert_to_info.c (info_format_image): have dpi and | |
| depth arguments be integers. | |
| * tta/C/main/utils.c (collect_commands_in_tree_internal) | |
| (collect_commands_in_tree): implement collect_commands_in_tree. | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (convert_math_to_images): | |
| return the collected_commands too, to simplify passing information to | |
| C. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm | |
| (%preformatted_context_commands, %format_context_commands): rename | |
| default_preformatted_context_commands as preformatted_context_commands | |
| and default_format_context_commands as format_context_commands. | |
| Remove unused %block_math_commands. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (_insert_image): rename | |
| $lines_count as $line_count. | |
| * tta/C/convert/convert_to_plaintext.h (MATH_ELEMENT_IMAGE) | |
| (MATH_ELEMENTS_IMAGES, PLAINTEXT_CONVERTER_STATE): add types related | |
| to INFO_MATH_IMAGES. add element_images field in | |
| PLAINTEXT_CONVERTER_STATE. | |
| * tta/C/Makefile.am (libcallperl_libtexinfo_convert_la_SOURCES) | |
| (libtexinfo_convert_static_la_SOURCES, texistatic_SOURCES), | |
| tta/C/convert/call_plaintext_perl_function.c | |
| (call_latex_convert_math_to_images): add | |
| call_plaintext_perl_function.c for call_latex_convert_math_to_images | |
| that calls convert_math_to_images in Perl and get the information | |
| in MATH_ELEMENTS_IMAGES from Perl. | |
| * tta/C/convert/convert_to_info.c (info_output): if INFO_MATH_IMAGES, | |
| call call_latex_convert_math_to_images to set element_images in | |
| converter. | |
| * tta/C/convert/convert_to_plaintext.c (item_indent_format_length) | |
| (plaintext_format_setup), tta/C/convert/convert_to_plaintext.h (PF_*) | |
| (PLAINTEXT_COMMAND_STRUCT): set flags in plaintext_format_setup for | |
| block commands. Add indent_format_length field in | |
| PLAINTEXT_COMMAND_STRUCT for item_indent_format_length commands | |
| indent length. | |
| * tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_format_image, plaintext_functions): add format_image field | |
| in PLAINTEXT_FORMAT_FUNCTIONS to dispatch *_format_image. Add | |
| plaintext_format_image as a no-op. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_insert_image) | |
| (convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add context field in PLAINTEXT_CONVERTER_STATE. Implement @math | |
| formatting in plaintext and partial formatting of block commands | |
| for @displaymath formatting with INFO_MATH_IMAGES. | |
| * tta/C/texi2any.c (main): handle INFO_MATH_IMAGES not set at all. | |
| * tta/C/convert/convert_to_info.c (info_format_image): use | |
| temporarily \x01 instead of \x00 NUL for image quoting in Info to | |
| have a visible output. | |
| 2026-08-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (output): use script name | |
| corresponding to XPG locales if possible for Info-documentscript. | |
| 2026-08-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (C_libtexinfo_sources), | |
| tta/maintain/regenerate_documentlanguages-iana.pl: add a gperf hash | |
| associating an ISO 15924 tag to an alias as used in XPG locales. | |
| 2026-08-08 Patrice Dumas <pertusus@free.fr> | |
| Update IANA language data | |
| 2026-08-08 Patrice Dumas <pertusus@free.fr> | |
| Set Info-document* language related variable in Info based on preamble | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm (output): set local variables | |
| based on @documentscript and @documentlanguagevariant, and set | |
| the local variable based on @documentlanguage to the value at | |
| the end of the preamble. | |
| * tta/perl/Texinfo/Translations.pm (_set_lang_info_translation): | |
| always set 'bcp47_locale' even if there is a translation cache. | |
| * tta/perl/t/languages.t (multiple_in_preamble): use a language with | |
| region at the end of the preamble. | |
| * tta/tests/formatting/no_detailmenu_lang_at_begin_end.texi: set | |
| @documentscript, to an alias. | |
| 2026-08-08 Patrice Dumas <pertusus@free.fr> | |
| * contrib/mass_test/output_ConvertXS_perlVSC.sh, | |
| contrib/mass_test/setup_reference_perlVSC.sh: use TEXINFO_XS instead | |
| of TEXINFO_XS_* now removed variables. | |
| * tta/C/texi2any.c (main): set need_latex to require embedded Perl if | |
| CONVERT_TO_LATEX_IN_MATH is explicitly set. | |
| * tta/perl/Texinfo/XSLoader.pm: update and rearrange comments. | |
| * tta/swig/perl/t/20index_sort.t: remove code and comment not relevant | |
| anymore now that Perl modules are never loaded from SWIG. | |
| 2026-08-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/structuring.c (sectioning_targets), | |
| tta/perl/Texinfo/StructuringNonXS.pm (sectioning_targets): do not set | |
| an identifier with postpended disambiguation string for sectioning | |
| commands, instead do not add any identifier at all. Also remove | |
| most of protection in target tree, as it is only used to generate an | |
| identifier. | |
| 2026-08-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/init/translation_in_parser_in_translation.pm: add braced | |
| substrings in translation, such that the elements are destroyed when | |
| the translated tree is destroyed, avoiding a memory leak. Avoiding | |
| the memory leak is not important, as it is small and unlikely in real | |
| cases, but it make checking for memory leaks more tedious. | |
| 2026-08-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_indices.c | |
| (index_entry_first_letter_text_or_command): always destroy | |
| parsed_element. | |
| * tta/C/structuring_transfo/structuring.c (sectioning_targets): | |
| destroy node tree after having determined the possible identifier | |
| string. | |
| * tta/C/main/manipulate_indices.c (get_index_content_info_element): | |
| always set name_copy_out and class_copy_out even though it is not | |
| needed as it is easier to check the results when debugging calling | |
| code. | |
| * tta/C/main/manipulate_tree.c (print_source_marks) | |
| (print_element_add_prepend_info, print_element_info) | |
| (print_element_extra, print_element_details, print_tree_details) | |
| (tree_print_details): add an argument to show element pointers, that | |
| can be set for debugging. Update callers. | |
| 2026-08-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_tree.c (reference_to_arg_internal) | |
| (reference_to_arg_in_tree), | |
| tta/C/structuring_transfo/transformations.c, | |
| tta/perl/Texinfo/ManipulateTree.pm (_reference_to_arg) | |
| (reference_to_arg_in_tree), tta/perl/Texinfo/Transformations.pm: | |
| move reference_to_arg_in_tree to ManipulateTree, as it is now used by | |
| structuring code. Update callers. | |
| 2026-08-07 Patrice Dumas <pertusus@free.fr> | |
| Add target to sectioning commands without node | |
| * tta/C/convert/format_html.c (compare_element_target) | |
| (find_element_target_search, tta/C/convert/html_prepare_converter.c | |
| (reset_html_targets_list, add_element_target_to_list) | |
| (compare_element_target, check_targets_order, sort_cmd_targets), | |
| tta/C/main/html_converter_state.h (HTML_TARGET_LIST): | |
| store HTML_TARGET pointers in HTML_TARGET_LIST, such that their | |
| address does not change after a realloc of the list. | |
| * tta/C/convert/html_prepare_converter.c (html_register_id): associate | |
| the target identifier to the element_target for target commands and | |
| root commands. Update callers. | |
| * tta/C/structuring_transfo/structuring.c (sectioning_targets), | |
| tta/C/structuring_transfo/transformations.c | |
| (complete_transform_document), tta/perl/Texinfo/StructuringNonXS.pm | |
| (sectioning_targets), | |
| tta/perl/XSTexinfo/parser_document/StructuringXS.xs | |
| (sectioning_targets), tta/perl/t/test_utils.pl (test), | |
| tta/perl/texi2any.pl: add sectioning commands without nodes as | |
| targets, taking care about not replacing a node, anchor or float | |
| target. Warn if two sectioning commands added as targets have the | |
| same associated target. | |
| * tta/C/convert/html_prepare_converter.c | |
| (new_sectioning_command_target), tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_new_sectioning_command_target): modify setting up targets of | |
| sectioning commands, to reuse and complete target of sectioning | |
| commands not associated to a node that already have an associated | |
| target. | |
| * tta/perl/Texinfo/Convert/PlaintextNonXS.pm (process_footnotes): | |
| always add a footnotes in the node and not as a separate node if | |
| the associated command is not a node. | |
| 2026-08-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (element_to_perl_hash) | |
| (print_element_extra), tta/C/main/tree_types.h (EF_added), | |
| tta/C/structuring_transfo/transformations.c (new_node), | |
| tta/perl/Texinfo/TransformationsNonXS.pm (_new_node): add added flag | |
| to added elements, when needed. Add for added nodes, such that they | |
| can be distinguished from original Texinfo manual nodes. | |
| * tta/C/structuring_transfo/transformations.c (new_node), | |
| tta/perl/Texinfo/TransformationsNonXS.pm (_new_node): pass | |
| associated sectioning command. Warn if a new node has already been | |
| added. | |
| * tta/perl/Texinfo/Structuring.pm (_insert_menu_comment_content): | |
| handle a sectioning command with a missing argument. | |
| * tta/C/structuring_transfo/transformations.c (new_node), | |
| tta/perl/Texinfo/TransformationsNonXS.pm (_new_node): use the | |
| associated command as source info for a new node. | |
| * tta/C/main/utils.c (get_label_element), tta/perl/Texinfo/Common.pm | |
| (get_label_element): handle root command more generally, not only | |
| node. | |
| 2026-08-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/TransformationsNonXS.pm (_new_node), | |
| tta/C/structuring_transfo/transformations.c (new_node): decorate | |
| appended disambiguating prefix based on a number as [+1+] to make | |
| clearer that it is not a good idea to use that node name as target. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * doc/generate_html_doc_texi.pl (BEGIN), | |
| tta/perl/Texinfo/ModulePath.pm.in (init): add tta/perl from build | |
| directory to @INC to find generated modules, for now | |
| Texinfo::Configure. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): set language= in | |
| \DocumentMetadata instead of lang=, as lang can derive from language | |
| according to the documentation. | |
| 2026-08-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): | |
| Remove "arc=10pt" from tcolorbox argument. | |
| 2026-08-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): | |
| Elaborate on comment re "alt" key with graphicx package slightly. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * doc/Makefile.am (pod2texi.texi), doc/tta_api/Makefile.am | |
| (texi2any_internals.texi): add TEXINFO_XS=omit to the environement | |
| such that pod2texi does not fail even if the XS modules are not built | |
| already. This happens with make distcheck after make | |
| maintainer-clean. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| update po files | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| fix strings for outside_of_any_node_text. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * po/POTFILES.in, po_document/POTFILES.in: udpate. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| Separate Perl module for information passed from configure | |
| * Makefile.am (BUILT_SOURCES, tta/perl/Texinfo/Configure.pm), | |
| tta/perl/Makefile.am (dist_noinst_DATA, modules_DATA) | |
| (Texinfo/ModulePath.pm, Texinfo/Configure.pm, CLEANFILES), | |
| tta/perl/Texinfo/ModulePath.pm.in, tta/perl/Texinfo/Configure.pm.in: | |
| split variables set by configure unrelated to paths out of | |
| Texinfo/ModulePath.pm.in to a new modules in Texinfo/Configure.pm.in. | |
| Update users. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_convert): do not escape any | |
| character in image file name. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_protect_latex_text) | |
| (_protect_text): split _protect_text in two, by adding | |
| _protect_latex_text that does only the protection and gets context | |
| information as arguments. | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_convert): protect in alt= | |
| argument, although it is not required it may help if the LaTeX macro | |
| is redefined. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm | |
| (%LaTeX_no_arg_brace_commands_ascii_replacement, _convert): use | |
| \texorpdfstring when in sectioning command argument for no arg | |
| commands using math mode for their formatting, euro and error. | |
| Try converting an encoded character, and use ASCII transliteration if | |
| this is not possible. | |
| 2026-08-05 Patrice Dumas <pertusus@free.fr> | |
| Use tcolorbox instead of mdframed for cartouche | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (%LaTeX_environment_commands) | |
| (%LaTeX_environment_options, %LaTeX_environment_packages) | |
| (_latex_header, _set_environment_options): replace mdframed, which is | |
| not maintained, by tcolorbox for @cartouche formatting, by defining a | |
| tcolorbox environment. | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): load amsfonts for | |
| \circledR even when unicode-math is used. | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): with tagging, do | |
| not load fontenc and load inputenc only if not utf-8. | |
| 2026-08-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/data/options_data.txt (LATEX_TAGGED_PDF), | |
| tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): add | |
| LATEX_TAGGED_PDF customization variable for LaTeX tagged PDF. Report | |
| form Charles Staats, David Carlisle example. | |
| * tta/perl/Makefile.tres, tta/perl/t/latex_tests.t | |
| (latex_tagged_pdf_default, latex_tagged_pdf_customized): add tests of | |
| LaTeX tagged PDF. | |
| 2026-08-04 Patrice Dumas <pertusus@free.fr> | |
| alt @image formatting argument for LaTeX | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header, _convert): add | |
| alt= argument to \includegraphics. Reorganize image options setting | |
| code. Add a providecommand for the case of alt not being defined as | |
| \includegraphics argument for pre 2021 graphicx. Report from Charles | |
| Staats and final definition of alt for old LaTeX by David Carlisle. | |
| 2026-08-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/InfoNonXS.pm (output): avoid comparing | |
| undef value. | |
| 2026-08-04 Patrice Dumas <pertusus@free.fr> | |
| XS interfaces for Plaintext and Info converters | |
| * tta/perl/Makefile.am (dist_convertmodules_DATA), | |
| tta/perl/Texinfo/Convert/Info.pm, | |
| tta/perl/Texinfo/Convert/InfoNonXS.pm, | |
| tta/perl/Texinfo/Convert/Plaintext.pm, | |
| tta/perl/Texinfo/Convert/PlaintextNonXS.pm, | |
| tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES) | |
| (*ConvertPlaintextXS_la*, *ConvertInfoXS_la*), | |
| tta/perl/XSTexinfo/convert/ConvertInfoXS.xs, | |
| tta/perl/XSTexinfo/convert/ConvertPlaintextXS.xs: add XS interfaces | |
| for Info and Plaintext converter. Add code to load XS for Info and | |
| Plaintext and move implementation in Perl to InfoNonXS.pm and | |
| PlaintextNonXS.pm. Add a converter function explicitely in Plaintext | |
| and Info converter to be able to override it with XS. Only enabled if | |
| TEXINFO_XS_INCOMPLETE environment variable is set to 2. | |
| * tta/C/main/converter_types.h (enum converter_format): add | |
| COF_unknown, as COF_none is already for known formats, those that do | |
| not have a C implementation. | |
| * tta/C/convert/converter.c (converter_format_name) | |
| (converter_format_perl_class_name): get names of converter formats. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_output) | |
| (plaintext_convert):release output units list. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| fix format for index entry number. | |
| * tta/C/convert/convert_to_info.c (info_format_ref), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_format_ref): set | |
| label_element only if target_element is not NULL. | |
| * tta/C/convert/convert_to_info.c (info_format_ref): use | |
| add_to_contents_as_array to add main tree element. | |
| * tta/C/convert/convert_to_info.c (info_format_ref), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_free_converter): free | |
| memory. | |
| 2026-08-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): add pdftitle. | |
| * tta/perl/Makefile.tres, tta/perl/t/latex_tests.t | |
| (protection_in_pdftitle): add test with special characters protection | |
| of pdftitle. | |
| 2026-08-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info), | |
| tta/C/convert/converter.c (converter_get_fulltitle_tree), | |
| tta/perl/Texinfo/Convert/Converter.pm (get_fulltitle_tree), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_prepare_converted_output_info): add get_fulltitle_tree in Perl and | |
| converter_get_fulltitle_tree in C for the code determining the | |
| full title tree. | |
| 2026-08-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_prepare_converted_output_info): use empty_spaces_argument to | |
| determine if candidates for fulltitle_tree are selected. | |
| 2026-08-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): for conversion to Info, if INFO_MATH_IMAGES | |
| is set, use Perl module for conversion, as it requires conversion to | |
| LaTeX, which is only availble in Perl. | |
| 2026-08-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/unicode-collation/: Sync | |
| 2026-08-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| Import uninorm/filter | |
| * tta/: Run "gnulib-tool --add-import uninorm/filter". | |
| For C collation code. | |
| 2026-08-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/parser.c (add_preamble_lang_cmd): fix type name in | |
| sizeof. | |
| * tta/C/main/converter_types.h, tta/C/main/document_types.h | |
| (ENCODING_CONVERSION): move ENCODING_CONVERSION to document_types.h | |
| as it is used earlier than conversion. | |
| * tta/perl/XSTexinfo/parser_document/OutputUnitsXS.xs, | |
| tta/perl/XSTexinfo/parser_document/ManipulateTreeXS.xs, | |
| tta/perl/XSTexinfo/parser_document/DocumentIndicesXS.xs, | |
| tta/perl/XSTexinfo/parser_document/StructuringXS.xs: use non_perl_free | |
| instead of free. | |
| * tta/C/*/*.c, tta/maintain/*.pl, tta/perl/XSTexinfo/*.xs, | |
| tta/perl/XSTexinfo/*/*.xs, tta/perl/XSTexinfo/*.c, | |
| tta/perl/XSTexinfo/*/*.c: correct includes using include-what-you-use | |
| from iwyu. | |
| 2026-08-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/*/*.*, tta/perl/XSTexinfo/convert/get_html_perl_info.h: | |
| correct includes mainly for header files using include-what-you-use | |
| from iwyu. This leads to removing the include of config.h from | |
| xs_utils.h, which is a good thing as the xs_utils.h file is included in | |
| Perl C code that should not include Gnulib headers. | |
| 2026-08-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Plaintext C converter: use curly quotes | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal) | |
| Hardcode use of UTF-8 curly quotes for now. | |
| 2026-08-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Plaintext C converter asis_commands | |
| * tta/C/convert/convert_to_plaintext.h (PF_asis): Add flag. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_format_setup): Set PF_asis on some commands. | |
| (convert_to_plaintext_internal): Update. | |
| 2026-08-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Separate asis_commands from style_map | |
| * tta/perl/Texinfo/Convert/Plaintext.pm | |
| (@asis_commands, %asis_commands): Change from array to hash. | |
| (%style_map): Do not include asis_commands. | |
| (_convert) <style map>: Update. | |
| 2026-08-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (%command_style_map): | |
| Remove unused hash. | |
| 2026-08-01 Patrice Dumas <pertusus@free.fr> | |
| plaintext C converter contents formatting | |
| * tta/perl/Texinfo/Convert/Plaintext.pm: move node_name and | |
| _cache_node_names. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (format_contents): remove | |
| useless code. Move repeat_count and spaces output before. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert): call | |
| contents, shortcontents and summarycontents conversion in the same | |
| condition. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_line) | |
| (plaintext_convert_line_new_context): call para_end as should be. | |
| * tta/C/convert/convert_to_info.c (info_format_contents), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_COMMAND_STRUCT) | |
| (plaintext_format_contents, plaintext_functions) | |
| (convert_to_plaintext_internal): implement plaintext_format_contents | |
| and add dispatch and conversion of contents. | |
| 2026-08-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (converter_txt_image_text): do not use the | |
| buffer size as string length. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_image_formatted_text): add warning message. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_format_image_element), tta/C/convert/converter.c | |
| (converter_txt_image_text): free strings. | |
| 2026-08-01 Patrice Dumas <pertusus@free.fr> | |
| Info and plaintext C converter @image formatting | |
| * tta/C/convert/converter.c (converter_txt_image_text): add. | |
| * tta/C/convert/convert_to_info.c (protect_image_string) | |
| (info_format_image, info_format_image_element), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_image_formatted_text, plaintext_format_image_element) | |
| (plaintext_functions, convert_to_plaintext_internal), | |
| tta/C/main/converter_types.h (STRING_LINE_COUNT): implement Info and | |
| plaintext image formatting, add dispatch. In Info, the result is | |
| incorrect because NULL is used as a quoting character and the code is | |
| not adapted to that. | |
| * tta/C/convert/convert_to_info.c (info_format_node): check that | |
| node_directions is set before accessing. | |
| 2026-07-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_finalization, convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add current_node in PLAINTEXT_CONVERTER_STATE, set and zero it. | |
| * tta/C/convert/convert_to_info.c | |
| (info_format_error_outside_of_any_node), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_format_error_outside_of_any_node): implement | |
| info_format_error_outside_of_any_node and add to dispatch table. | |
| 2026-07-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (%style_map): | |
| Simplify initialisation slightly. | |
| 2026-07-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| C plaintext converter: initial style map implementation | |
| * tta/C/convert/convert_to_plaintext.c | |
| (struct style_map): Add type. | |
| (style_map): Add array. | |
| (plaintext_format_setup): Sort style_map array, and set PF_style_map | |
| command for commands listed therein. | |
| (convert_to_plaintext): Check PF_style_map and retrieve style map data. | |
| 2026-07-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c: remove superannuated comment. | |
| 2026-07-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Initial @dfn implementation. | |
| 2026-07-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| Use constant style map | |
| * tta/perl/Texinfo/Convert/Plaintext.pm | |
| (%command_style_map): Remove 'dfn'. | |
| (@double_quoted_commands, %double_quoted_commands): | |
| Change from array to hash. | |
| (conversion_initialization): Initialize $self->{'open_double_quote'} | |
| and $self->{'close_double_quote'}. Do not copy $self->{'style_map'} | |
| from %style_map. | |
| (_convert) <style commands>: | |
| Update to access %style_map rather than $self->{'style_map'}. | |
| Access $self->{'open_double_quote'} and $self->{'close_double_quote'}. | |
| 2026-07-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_line_new_context), | |
| tta/C/convert/convert_to_plaintext.h (STRING_COUNT_LINE_COUNT): add | |
| plaintext_convert_line_new_context and associated | |
| STRING_COUNT_LINE_COUNT return struct. | |
| * tta/C/convert/convert_to_info.c (info_format_ref), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_process_printindex): | |
| use plaintext_convert_line_new_context to check colon in name and set | |
| outside_of_any_node_text. | |
| * tta/C/convert/convert_to_info.c (info_format_ref, info_format_node): | |
| do the check of character to quote in node names only if the node | |
| names are quoted or there is a warning emitted. | |
| 2026-07-31 Patrice Dumas <pertusus@free.fr> | |
| Implement conversion of printindex in plaintext and Info C converters | |
| * tta/C/convert/format_html.c (html_convert_printindex_command) | |
| (html_output_internal_links), tta/perl/Texinfo/Convert/HTML.pm | |
| (_convert_printindex_command, output_internal_links): rename | |
| index_entries_by_letter as sorted_indexes_by_letter. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (process_printindex): rename | |
| index_entries as sorted_indexes. Add sorted_index variable. Change | |
| conditions for clearer code. Put subentries in the same container as | |
| the main entry. | |
| * tta/C/main/utils.c (string_width_multibyte): rename width_multibyte | |
| as string_width_multibyte. Update callers. | |
| * tta/C/main/hashmap.c (c_hashmap_set_value): add. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm, tta/C/main/element_types.txt: | |
| rename frenchspacing special type as _frenchspacing. Add to C. | |
| * tta/C/convert/convert_indices.c (converter_sort_index_names), | |
| tta/C/convert/converter.c (free_generic_converter), | |
| tta/C/convert/html_converter_finish.c (html_free_converter), | |
| tta/C/convert/html_prepare_converter.c | |
| (html_conversion_initialization), tta/C/main/html_converter_state.h | |
| (HTML_CONVERTER_STATE), tta/C/main/converter_types.h (CONVERTER): move | |
| code used to sort index names and remove empty indices in converter | |
| out of HTML conversion to the converter_sort_index_names function in | |
| convert_indices.c. Move sorted_index_names from HTML_CONVERTER_STATE | |
| to CONVERTER. Update users. | |
| * tta/C/convert/convert_to_plaintext.c (add_lines_count): add. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization) | |
| (plaintext_conversion_finalization), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): add | |
| index_entries_no_node and index_entry_node_colon hash maps, | |
| outside_of_any_node_text and outside_of_any_node_text_width used for | |
| printindex output to PLAINTEXT_CONVERTER_STATE, initialize and release. | |
| * tta/C/convert/convert_to_info.c (info_format_printindex), | |
| tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (CONVERT_PRINTINDEX_ENTRIES_INFO, plaintext_process_printindex) | |
| (plaintext_format_printindex, plaintext_functions) | |
| (convert_to_plaintext_internal): implement | |
| plaintext_process_printindex and dispatch functions to use in | |
| conversion to plaintext and Info. | |
| * tta/perl/Texinfo/Convert/Info.pm (format_contents): return undef. | |
| 2026-07-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Info.pm: move code around. | |
| 2026-07-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/ParagraphXS.xs (para_end_line): adapt for | |
| para_end_line return value being const. | |
| 2026-07-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (push_formatter) | |
| (pop_formatter): add push_formatter that wraps add_(formatter) and | |
| para_set_state. Add para_set_state call to pop_formatter. Replace | |
| calls of add_(formatter) by calls of push_formatter. Remove calls of | |
| para_set_state that are not needed anymore. | |
| * tta/C/convert/convert_to_plaintext.c (stream_output_add_text): | |
| finish implementation. | |
| 2026-07-30 Patrice Dumas <pertusus@free.fr> | |
| Implement node line formatting in C info converter | |
| * tta/C/convert/plaintext_paragraph.c (para_end_line): make return | |
| value const. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_line): add. | |
| * tta/C/convert/convert_to_info.c (info_output), | |
| tta/C/convert/convert_to_plaintext.c (plaintext_free_converter), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add output_filename field to PLAINTEXT_CONVERTER_STATE, fill it and | |
| free it. | |
| * tta/C/convert/convert_to_info.c (info_format_node, directions): | |
| implement info_format_node. | |
| * tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_format_node, plaintext_functions) | |
| (convert_to_plaintext_internal): add noop plaintext_format_node and | |
| add dispatch of node formatting in conversion. | |
| * tta/perl/Texinfo/Convert/Info.pm (format_node): always return | |
| nothing. | |
| 2026-07-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (normalize_top_node_name): add. | |
| * tta/C/convert/plaintext_paragraph.c (para_add_pending_word), | |
| tta/perl/XSTexinfo/ParagraphXS.xs (para_add_pending_word): make return | |
| value of para_add_pending_word const as it is allocated and freed in | |
| the function. | |
| * tta/C/convert/convert_to_plaintext.c (fill_formatter): add. | |
| * tta/C/main/plaintext_converter_state.h (STRING_WITH_WIDTH) | |
| (PLAINTEXT_CONVERTER_STATE), tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization) | |
| (plaintext_conversion_finalization): add node_names_cache array. | |
| Allocate and release. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_node_name) | |
| (plaintext_node_name): implement. Cache node names only, not other | |
| commands names, since it is more complex to do and not often useful. | |
| * tta/C/convert/convert_to_info.c (info_format_ref): use | |
| plaintext_node_name. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_ref): copied | |
| elements cannot be const. | |
| 2026-07-28 Patrice Dumas <pertusus@free.fr> | |
| Add dispatch for plaintext or Info specific functions, use for format_ref | |
| * tta/C/convert/converter.c (converter_format_data), | |
| tta/C/convert/converter.h (TXI_CONVERSION_FORMAT_NR), | |
| tta/C/main/converter_types.h (enum converter_format): start the list | |
| of converters by plaintext and info to make simpler using the same | |
| index to dispatch plaintext or info specific functions. | |
| * tta/C/convert/convert_to_plaintext.c (PLAINTEXT_FORMAT_FUNCTIONS) | |
| (plaintext_functions, convert_to_plaintext_internal): add dispatch | |
| table for formatting functions that are different for Info and | |
| plaintext output. Use it for format_ref. | |
| * tta/perl/Texinfo/Convert/Info.pm (format_ref): do not replace | |
| $args[0] by empty text, instead handle especially undefined | |
| $label_element. Move code around. Reorganize code to follow more the | |
| order of output and simplify a bit. | |
| * tta/C/convert/convert_to_info.c (info_format_ref), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add silent field in PLAINTEXT_CONVERTER_STATE. Implement | |
| most of info_format_ref. | |
| 2026-07-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c | |
| (convert_to_plaintext_internal): return immediately if a text type is | |
| ignored. | |
| * tta/C/main/element_types.txt (_code, _stop_upper_case) | |
| (_suppress_styles): add types used internally in plaintext converter. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_format_ref) | |
| (convert_to_plaintext_internal): add plaintext_format_ref and use in | |
| convert_to_plaintext_internal. | |
| * tta/perl/Texinfo/Convert/Info.pm (output): minor change to set | |
| encoding only if not empty, and use defined in conditions when the | |
| value is not used. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (format_ref): remove useless | |
| variable and reset target_element too (in code that cannot be called). | |
| 2026-07-27 Gavin Smith <gavinsmith0123@gmail.com> | |
| Use "$@" | |
| * util/texi2dvi, | |
| Replace use of ${1+"$@"} with "$@". | |
| 2026-07-27 Gavin Smith <gavinsmith0123@gmail.com> | |
| Use "$@" | |
| * util/texi2pdf, util/pdftexi2dvi: | |
| Replace use of ${1+"$@"} with "$@" and remove zsh workaround. | |
| ${1+"$@"} is no longer recommended as a workaround for ancient shells, | |
| as documented in the Autoconf 2.73 manual. | |
| 2026-07-27 Patrice Dumas <pertusus@free.fr> | |
| Finish C info converter output function except for node tags | |
| * tta/C/convert/convert_to_info.c (INDIRECT_FILE_OFFSET), | |
| INDIRECT_FILE_OFFSET_LIST, *indirect_files*: add indirect files lists | |
| types and functions. | |
| * tta/C/convert/convert_to_info.c (info_output): file indirect files | |
| list and output tag table with indirect tags file and local variables. | |
| 2026-07-26 Patrice Dumas <pertusus@free.fr> | |
| Continue C info converter output implementation | |
| * tta/C/main/convert_utils.c (output_files_rename_opened): add. | |
| * tta/perl/Texinfo/Convert/Info.pm (_open_info_file, output): have | |
| _open_info_file return the encoded file name. Use that information to | |
| replace _register_closed_info_file by a simple call to | |
| output_files_register_closed. Add a variable for new output file and | |
| new encoded output filename. | |
| * tta/C/convert/convert_to_info.c (info_output): implement writing | |
| output units to files. | |
| 2026-07-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (pop_count_context): destroy | |
| the previously top context, not the one above. | |
| * tta/C/main/list_macros.h (decl_stack_fns): fix top_of_* generated | |
| prototype. | |
| * tta/perl/Texinfo/Convert/Info.pm (output): set complete_header only | |
| if there are nodes. | |
| * tta/perl/Texinfo/Convert/Info.pm (output): do not add a new context | |
| when there are no nodes. | |
| * tta/C/convert/html_prepare_converter.c, tta/C/main/errors.c | |
| (fill_source_info_file): move fill_source_info_file to errors.c. | |
| * tta/C/convert/convert_to_info.c (open_info_file): pass encoded | |
| output file name back from open_info_file. Update caller. | |
| * tta/C/convert/convert_to_info.c (info_header): free result text. | |
| * tta/C/convert/convert_to_info.c (info_header, info_output): use | |
| stream_yield_result to get hold of the resulting string. | |
| * tta/C/convert/convert_to_info.c (info_output): set conversion, | |
| implement writing file without node. | |
| 2026-07-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm: move code around. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (pop_top_formatter) | |
| (process_printindex): destroy more unused formatters. | |
| * tta/C/convert/plaintext_paragraph.c (para_destroy): add deebugging | |
| output. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_info.c (info_header), | |
| tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| call para_destroy to release the current formatter when it is not used | |
| anymore. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Info.pm (format_ref): if the | |
| cross-reference target is an internal identifier, call node_name to | |
| get the cached value or setup the cached value, it will be present | |
| or needed for the tag table. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (node_name): do not check that | |
| node_names_text key exists, it should always be initialized. | |
| * tta/perl/Texinfo/Indices.pm (print_indices_information): check | |
| if argument is not undef to avoid spurious autovivification. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_cache_node_names): use the | |
| same long-living formatter as node_name. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| Distinguish paragraph end and destruction; improve node name caching | |
| * tta/C/convert/plaintext_paragraph.c (para_end, para_destroy), | |
| tta/perl/Texinfo/Convert/ParagraphNonXS.pm (destroy), | |
| tta/perl/Texinfo/Convert/Plaintext.pm (destroy_formatter), | |
| tta/perl/XSTexinfo/ParagraphXS.xs (para_destroy): add destroy for | |
| paragraph and formatter and distinguish from end. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm, | |
| tta/perl/Texinfo/Convert/Info.pm: destroy formatters when they are not | |
| used anymore. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (node_name): use a long-living | |
| formatter instead of calling convert_line_new_context. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_cache_node_names): go | |
| through nodes_list instead of going through output units. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (convert_line) | |
| (convert_line_new_context): remove bogus third argument. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (new_formatter): simplify | |
| indent_length_next setting. Set max for paragraph type only. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm: inline and remove | |
| _normalize_top_node. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| Enable C info converter | |
| * tta/C/convert/converter.c (converter_format_data), | |
| tta/C/convert/converter.h (TXI_CONVERSION_FORMAT_NR), | |
| tta/C/main/converter_types.h (COF_info), tta/C/texi2any.c (main): | |
| register info converter functions in converter_format_data and enable | |
| in texi2any.c. | |
| * tta/C/convert/plaintext_paragraph.c (para_end): mark returned | |
| char * as const, as it should be free'd in para_end, not by the | |
| caller. | |
| * tta/C/convert/convert_to_info.c (info_header): do not free | |
| para_end return value. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| Do not call import on Texinfo::ModulePath without args in XSLoader.pm | |
| * tta/perl/Texinfo/XSLoader.pm (BEGIN): do not call | |
| Texinfo::ModulePath->import() without argument, it is always wrong not | |
| to pass the directories. Report and bisection from Dimitris | |
| Papavasiliou. | |
| 2026-07-25 Patrice Dumas <pertusus@free.fr> | |
| Begin C info converter | |
| * tta/perl/Texinfo/Convert/Info.pm (_info_header): use directly | |
| element instead of using contents. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_get_informative_global_commands): add. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_convert_output_unit), tta/C/convert/convert_to_plaintext.h: | |
| rename convert_output_unit as plaintext_convert_output_unit. Update | |
| callers. Make some functions extern for the C info converter, and | |
| move PF_* defines to convert_to_plaintext.h. | |
| * tta/C/Makefile.am (C_libtexinfo_convert_sources), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE), | |
| C/convert/convert_to_info.c: start on the C info converter. | |
| Add in_copying_header in PLAINTEXT_CONVERTER_STATE. | |
| 2026-07-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (set_output_units_files), | |
| tta/perl/Texinfo/Convert/Converter.pm (set_output_units_files), | |
| tta/perl/Texinfo/Convert/Info.pm (output): | |
| rename node_top as top_node. Rename top_node as top_target_element | |
| before it is checked that the element is a @node element. Check | |
| that the element is a @node when needed. | |
| 2026-07-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Info.pm (output, _info_header): set | |
| informative commands to the values at the end of the preamble outside | |
| of _info_header and reset only after converting and caching the node | |
| names. Use set_converter_preamble_language_commands and | |
| reset_lang_translation_from_customization to set all the language | |
| information. | |
| 2026-07-25 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Add TODO comment to match structure of Perl code. | |
| 2026-07-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c: | |
| Initial implementation of handling "quoted commands". | |
| 2026-07-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| Split quoted commands from "style map" | |
| * tta/perl/Texinfo/Convert/Plaintext.pm, | |
| (@quoted_commands, %quoted_commands): Change from array to hash. | |
| (%style_map): Do not add quoted commands. | |
| (conversion_initialization) <quoted commands>: Rather than updating | |
| $self->{'style_map'}, save the open and close quote strings in | |
| $self->{'open_quote'} and $self->{'close_quote'}. | |
| (_convert) <style map commands>: Check for commands in %quoted_commands | |
| as well as in $self->{'style_map'}; | |
| This is intended to simplify the C implementation as it will be | |
| slightly easier to check a Boolean flag for a Texinfo command | |
| rather than retrieving string values for that command. Many of the | |
| "quoted commands" are very frequently used commands such as @code | |
| so this should simplify a common case. | |
| This also means that the only command left whose values are likely | |
| to change inside $self->{'style_map'} is @dfn. | |
| 2026-07-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm | |
| (%no_punctation_munging_commands, no_punctuation_munging_commands): | |
| Rename. Remove 'var' as it is no longer checked for in this hash. | |
| 2026-07-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| Split out handling of @var and @sc from "style map" | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert) <style map>: | |
| Separate handling of "upper case commands" (@var and @sc) from | |
| handling of commands added to $self->{'style_map'}. Most of the | |
| code in the "style map" clause was irrelevant, except for the | |
| code under the %no_punctation_munging_commands (sic) condition to | |
| set frenchspacing, which applied to @var. However, @var already | |
| had special-case code under the "upper case commands" condition, | |
| so adding the frenchspacing code under the @var condition doesn't | |
| increase complexity too much. | |
| (@asis_commands): Remove 'var', 'sc'. | |
| 2026-07-23 Gavin Smith <gavinsmith0123@gmail.com> | |
| Shadow targets for texinfo.tex | |
| * doc/texinfo.tex (\donoderef): If no preceding @node, use the | |
| section text itself as the target name, passed to new macro | |
| \setrefshadow. | |
| (\setrefshadow): Output @xrshad line to .aux file for shadow target, | |
| and run \pdfdest in PDF output. | |
| (\setref, \dosetref): Split out \dosetref. | |
| (\xrshad): Provide definition for control sequence written to .aux | |
| file. Save information on shadow targets. | |
| (\checkshadowactive): New macro, used to check if a shadow target can | |
| be referenced. | |
| (\xrefX): Use \checkshadowactive to decide if we should output a | |
| reference to a shadow target or not. | |
| (\xrdef, \xrdefctxt): Split out \xrdefctxt. | |
| (\getrefx): Use \xrdefctx. Check for a shadow target if information | |
| on the target couldn't be found. | |
| (\countA): Move definition earlier in file to use it as a | |
| general purpose count register. | |
| 2026-07-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/plaintext_converter_state.h (PLAINTEXT_COMMAND_STRUCT): | |
| move to plaintext_converter_state.h. | |
| * tta/C/convert/convert_to_plaintext.c (PF_ignored) | |
| (plaintext_format_setup, plaintext_converter_initialize) | |
| (convert_to_plaintext_internal), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| setup default ignored commands in plaintext_commands_data flags. Add | |
| commands_data PLAINTEXT_COMMAND_STRUCT array in | |
| PLAINTEXT_CONVERTER_STATE. Copy plaintext_commands_data to | |
| commands_data in plaintext_converter_initialize, and modify based on | |
| customization. | |
| * tta/C/convert/convert_to_plaintext.c (PF_informative) | |
| (plaintext_format_setup, convert_to_plaintext_internal): setup | |
| informative commands as a flag in plaintext_commands_data. | |
| 2026-07-23 Gavin Smith <gavinsmith0123@gmail.com> | |
| Add const | |
| * info/tag.c (tag_expand, struct tag_handler, tag_image) | |
| (find_tag_handler, tag_expand): | |
| Change type of parameters from char * to const char *, or | |
| char ** to const char **. | |
| 2026-07-23 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/terminal.c (terminal_new_terminal, terminal_new_terminal_hook): | |
| Remove unused. | |
| 2026-07-23 Gavin Smith <gavinsmith0123@gmail.com> | |
| Add const | |
| * info/terminal.c (terminal_initialize_terminal) | |
| (terminal_initialize_terminal_hook): | |
| * info/pcterm.c (pc_initialize_terminal): | |
| Change types of arguments from char * to const char *. | |
| * info/terminal.c (term_name): | |
| change type from char * to const char *. | |
| 2026-07-23 Gavin Smith <gavinsmith0123@gmail.com> | |
| Add const | |
| * info/variables.c (update_rendition_from_string) | |
| (update_highlight_searches, set_variable_to_value): | |
| Change argument from type char * to const char *. | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_free_converter): | |
| free plaintext_converter only if it was allocated. It is allocated | |
| if the converter is created from C, but not if created from XS. | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/converter_types.h (TRANSLATED_COMMAND) | |
| (TRANSLATED_COMMAND_LIST, DEPRECATED_DIR_INFO, DEPRECATED_DIRS_LIST) | |
| (enum command_type_variety, COMMAND_ID_LIST, FILE_STREAM) | |
| (FILE_STREAM_LIST, OUTPUT_FILES_INFORMATION, FILE_NAME_PATH_COUNTER) | |
| (FILE_NAME_PATH_COUNTER_LIST, CONVERTER, COMMAND_OR_TYPE) | |
| (COMMAND_OR_TYPE_STACK, STRING_STACK, INTEGER_STACK) | |
| (SORTED_INDEX_NAMES, ACCENT_ENTITY_INFO, COMMAND_ACCENT_ENTITY_INFO), | |
| tta/C/main/html_converter_state.h, tta/maintain/generate_css_data.pl: | |
| now that HTML_CONVERTER_STATE is used through a pointer, it is | |
| possible to have a declaration without definition and reverse the | |
| inclusion order of header files, by having html_converter_state.h | |
| include converter_types.h. Move back some non-HTML specific types to | |
| converter_types.h. Add #include "html_converter_state.h" where | |
| needed. | |
| * tta/C/convert/convert_to_plaintext.c, tta/C/main/converter_types.h | |
| (CONVERTER): declare struct PLAINTEXT_CONVERTER_STATE and do not | |
| include plaintext_converter_state.h in converter_types.h. | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_free_converter) | |
| (plaintext_converter_initialize), tta/C/main/converter_types.h | |
| (CONVERTER): make plaintext_converter a pointer. Update users. | |
| * tta/C/convert/convert_to_plaintext.c: rename self_pt as | |
| self_plaintext, more homogeneous code. | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (set_output_units_files): free | |
| file_name_text text. | |
| * tta/C/convert/html_prepare_converter.c | |
| (html_converter_initialize_beginning), | |
| tta/C/convert/html_converter_finish.c (html_free_converter), | |
| tta/C/main/converter_types.h (CONVERTER): make html_converter a | |
| pointer in CONVERTER. Update users. | |
| * tta/C/main/get_perl_info.c (find_element_extra_index_entry_sv): | |
| access html_converter only if converter is set. | |
| * tta/C/main/get_perl_info.c (converter_release_output_units_built), | |
| tta/C/convert/converter.c (destroy_converter_output_units), | |
| tta/C/convert/converter.c (reset_tree_to_build): check if | |
| html_converter is set. | |
| 2026-07-22 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (HTML Output Structure Customization): | |
| Move discussion of SPLIT after discussion of USE_NODES and say | |
| that by default, "each output unit" rather than "each node" is | |
| output in a separate file as this may not be the case if USE_NODES=0. | |
| 2026-07-22 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/signals.c (info_signal_proc) <SIGWINCH>: | |
| Do not attempt to unblock signal, as this should be unnecessary. | |
| 2026-07-22 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/signals.c, info/signals.h: | |
| Move most of the contents of signals.h into signals.c. | |
| Provide declaration of initialize_info_signal_handler in signals.h. | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/structuring.c (register_referenced_node) | |
| (check_nodes_are_referenced): add some const. | |
| 2026-07-22 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/signals.c, info/infomap.c: | |
| Remove lines setting vim editing options. | |
| 2026-07-22 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/info.c: fix formatting | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_get_top_unit), | |
| tta/C/convert/html_prepare_converter.c (html_set_pages_files), | |
| tta/C/main/output_unit.c (units_directions), | |
| tta/C/structuring_transfo/structuring. (check_nodes_are_referenced) | |
| (complete_node_tree_with_menus, set_top_node_next) | |
| (construct_nodes_tree), tta/C/structuring_transfo/transformations.c | |
| (regenerate_master_menu), tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_get_top_unit, _html_set_pages_files), | |
| tta/perl/Texinfo/OutputUnits.pm (units_directions), | |
| tta/perl/Texinfo/StructuringNonXS.pm (check_nodes_are_referenced) | |
| (complete_node_tree_with_menus, construct_nodes_tree), | |
| tta/perl/Texinfo/TransformationsNonXS.pm (regenerate_master_menu): | |
| rename node_top as top_node. Rename top_node as top_target_element | |
| when it is not checked that the element is a @node element. Check | |
| that the element is a @node when needed. | |
| * tta/perl/Makefile.tres, tta/perl/t/converters_tests.t | |
| (top_is_an_anchor, top_is_an_anchor_and_node): test an anchor being | |
| named Top. | |
| * tta/perl/Makefile.tres, tta/perl/t/converters_tests.t (@file_tests): | |
| also test file_plaintext. | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| * info/info.c (main): fix removed first letters of function name | |
| calls. | |
| 2026-07-22 Patrice Dumas <pertusus@free.fr> | |
| C plaintext converter output and convert | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_converter_initialize): fix sizeof call. | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_convert_tree): do | |
| not set top_formatter context that is supposed to be already set. | |
| * tta/C/main/html_converter_state.h (HTML_CONVERTER_STATE), | |
| tta/C/main/converter_types.h (CONVERTER): move | |
| output_unit_file_indices field to the generic converter as it should | |
| be along with output_unit_files. Update users. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_finalization), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| add encoding_disabled field. | |
| * tta/perl/Texinfo/Convert/Converter.pm (set_output_units_files): | |
| use directly associated_unit for Top node. Fix set_output_unit_file | |
| call in the last resort code (which is probably never called). | |
| * tta/C/convert/converter.c (set_output_units_files): add. | |
| * tta/C/convert/convert_to_plaintext.c (convert_output_unit) | |
| (plaintext_output, plaintext_convert): implement plaintext_output | |
| and plaintext_convert fully, and convert_output_unit partially. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (output): change a variable | |
| name. | |
| 2026-07-21 Gavin Smith <gavinsmith0123@gmail.com> | |
| info: expand tabs to spaces | |
| * info/echo-area.c, info/filesys.c, info/info.c, info/infopath.c, | |
| info/makedoc.c, info/m-x.c info/nodemenu.c, info/run-external.c, | |
| info/signals.c, info/tag.c, info/tilde.c, info/variables.c, | |
| info/session.h: | |
| Expand tabs used for indentation in files where they are anomalous. | |
| Leading tabs can make the output of "git diff" look wrong due | |
| to lines being misaligned. | |
| 2026-07-21 Gavin Smith <gavinsmith0123@gmail.com> | |
| info: do less in SIGWINCH handler | |
| * info/signals.c (signal_block_winch, signal_unblock_winch): | |
| Remove functions. Remove all calls to these functions. | |
| (sigwinch_block_count): Remove. | |
| (This reverses much of change on 2014-07-07.) | |
| (info_signal_proc) <SIGWINCH, SIGUSR1>: Do not do any redrawing | |
| of terminal inside this function. Instead, set a volatile variable | |
| to indicate that the terminal size may have changed and that windows | |
| need to be redrawn. | |
| (maybe_update_after_signal): New function, to be called outside of | |
| a signal handler on a regular basis. Redraw display if it's possible | |
| the screen size has changed. | |
| * info/session.c (fill_input_buffer): Call maybe_update_after_signal. | |
| According to C standards and glibc documentation, accessing data | |
| structures or calling library functions in a signal handler can | |
| lead to undefined behaviour. | |
| 2026-07-21 Patrice Dumas <pertusus@free.fr> | |
| Continue C plaintext converter and conversion initialization | |
| * tta/C/convert/converter.c (initialize_cmd_list), | |
| tta/C/convert/html_prepare_converter.c: move initialize_cmd_list to | |
| converter.c. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_converter_initialize), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| implement plaintext_converter_initialize. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (converter_initialize): | |
| info_special_chars_warning is an integer, not a string. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_conversion_initialization, informative_global_commands) | |
| (contents_commands, plaintext_free_converter) | |
| (plaintext_converter_initialize), | |
| tta/C/main/plaintext_converter_state.h (PLAINTEXT_CONVERTER_STATE): | |
| being the implemention of plaintext_conversion_initialization. | |
| * tta/C/convert/convert_to_plaintext.c (format_raw_cmd) | |
| (PLAINTEXT_COMMAND_STRUCT, plaintext_commands_data) | |
| (plaintext_format_setup), tta/C/convert/converter.c | |
| (converter_format_data): setup constant data related to raw formt | |
| commands. | |
| 2026-07-20 Gavin Smith <gavinsmith0123@gmail.com> | |
| Change info test not to use :cntrl: in grep regex | |
| * info/t/quoted-index-target.sh: Strip out DEL bytes | |
| from output file with tr. Remove use of "[[:cntrl:]]" in | |
| grep regex to check for such bytes. Alter test slightly | |
| to be effective with updated regex, using "--index-search" | |
| instead of "--index-search --all", which means we actually | |
| go to the referenced node. | |
| The use of "[[:cntrl:]]" in a grep regex led to a failure on | |
| Solaris 11, where apparently such character classes are not | |
| recognised by the grep program. Report from Bruno. | |
| 2026-07-20 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/info.c (main) <--index-search>: | |
| Pass -1 as starting offset to next_index_match otherwise we | |
| skip over the very first index entry in the first index node. | |
| 2026-07-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\include): Remove \tracingmacros=1 left in | |
| by mistake. | |
| 2026-07-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| Remove unused definitions for !HAVE_SIGPROCMASK | |
| * info/signals.h [!HAVE_SIGPROCMASK] | |
| (sigmask, SIG_UNBLOCK, SIG_BLOCK, sigset_t, sigemptyset, sigfillset) | |
| (sigaddset, sigdelset, sigismember, sigsuspend): | |
| Remove #define's as these symbols are not otherwise used under | |
| this condition. | |
| 2026-07-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| Remove check of SA_NOCLDSTOP | |
| * info/signals.c (initialize_info_signal_handler): | |
| Use #ifdef HAVE_SIGACTION instead of #ifdef SA_NOCLDSTOP. | |
| * info/signals.h: Remove check of SA_NOCLDSTOP from condition. | |
| The use of SA_NOCLDSTOP was introduced on 2004-03-27 for | |
| the benefit of Solaris 7, which is likely no longer a relevant | |
| system to support. | |
| signals.h had a comment referencing "sort.c" in the coreutils | |
| sources, but recent coreutils sources do not check SA_NOCLDSTOP | |
| any more (likely since change on 2025-11-22). | |
| 2026-07-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/signals.h: | |
| Remove use of HAVE_SIGSETMASK conditional. Check for | |
| sigsetmask was removed on 2019-02-17. | |
| 2026-07-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/TODO: link to recently started discussions on manuals | |
| translations. | |
| Improve comments. | |
| 2026-07-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| * configure.ac (AC_CHECK_FUNCS): | |
| Re-add sigprocmask as HAVE_SIGPROCMASK is used in | |
| info/signals.h. | |
| 2026-07-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| * configure.ac (AC_CHECK_FUNCS): | |
| Remove check for sigprocmask. | |
| * info/signals.c (info_signal_proc) | |
| [!HAVE_SIGACTION && HAVE_SIGPROCMASK]: | |
| Remove code. Systems without sigaction but which do have | |
| sigprocmask may be rare - the Gnulib manual only mentions | |
| that both functions are missing on mingw and MSVC 14. | |
| (term_conf_busy): Remove unused. | |
| 2026-07-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/scan.c (scan_reference_target) <menu entry>: | |
| Allow tab to follow period in terminating node name. | |
| 2026-07-18 Gavin Smith <gavinsmith0123@gmail.com> | |
| Use sig_atomic_t | |
| * info/signals.c [!HAVE_SIGACTION] (term_conf_busy), | |
| (sigwinch_block_count): | |
| Declare as volatile sig_atomic_t rather than int, as they | |
| are accessed inside the signal handler info_signal_proc. | |
| 2026-07-17 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/signals.c (info_signal_handler) [!HAVE_SIGACTION]: | |
| Remove #define of info_signal_handler to info_signal_proc. | |
| This is incorrect as the former is a structure and the latter | |
| is a function. info_signal_handler is not referred to | |
| elsewhere in this file under !HAVE_SIGACTION, except under | |
| #ifdef SA_NOCLDSTOP, where it is accessed as a structure. If | |
| both conditions are true, there is a compilation error. | |
| This #define appears to have been present since the use of sigaction | |
| was introduced in a patch by AIDA Shinra, dated 2003-01-25. | |
| 2026-07-17 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Images, Image Syntax): | |
| Try to discourage using images inside paragraphs. | |
| 2026-07-17 Gavin Smith <gavinsmith0123@gmail.com> | |
| Info: Add space for image output | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (add_to_counter), | |
| * tta/C/convert/plaintext_paragraph.c (para_add_to_counter), | |
| * tta/perl/XSTexinfo/ParagraphXS.xs (para_add_to_counter): | |
| New functions. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert) <image>: | |
| Call it in order to account for some horizontal space taken | |
| up by an image. Add a comment describing the unsatisfactory | |
| situation. | |
| Report from Werner. | |
| 2026-07-16 Gavin Smith <gavinsmith0123@gmail.com> | |
| Change paragraphindent from string to integer | |
| * tta/data/options_data.txt: declare paragraphindent as integer | |
| * tta/perl/Texinfo/Common.pm (informative_command_value), | |
| * tta/C/main/utils.c (informative_command_value), | |
| * tta/perl/texi2any.pl, | |
| * tta/C/texi2any.c: | |
| For paragraphindent, save 'asis' value as -2 and 'none' value as 0. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert): update to handle | |
| paragraphindent setting as integer. | |
| * tta/C/convert/convert_to_plaintext.c: update | |
| This simplifies the C conversion code as we now don't need to call | |
| strcmp and strtol for every paragraph. | |
| 2026-07-16 Gavin Smith <gavinsmith0123@gmail.com> | |
| LaTeX: \smallbreak before definition | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_convert_def_line): | |
| Output \smallbreak before definition output. | |
| Report from Dimitris Papavasiliou <dpapavas@protonmail.ch>. | |
| 2026-07-15 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/text.c (text_abandon, text_yield): Rename | |
| and return pointer to text buffer. | |
| 2026-07-15 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/main/text.c (text_abandon): New function. | |
| * tta/C/convert/convert_to_plaintext.c | |
| (stream_reset, stream_yield_result): New. | |
| (convert_to_plaintext): Call stream_yield_result to avoid calling | |
| strdup unnecessarily. | |
| 2026-07-15 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm | |
| (_stream_reset, _stream_yield_result): New functions. | |
| (convert_output_unit): Use them. | |
| 2026-07-15 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/Makefile.am: Fix rules to refer to main/types_data.c correctly. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Add more template code. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Return statement after processing text now matches Perl code. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert): | |
| Return after processing text. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| Rename generated file. | |
| * tta/C/main/element_types.awk: Rename generated file | |
| element_types.c to types_data.c. This means that the comment | |
| at the top of tta/C/main/types_data.h refers to a file which | |
| exists, types_data.c, for which it contains declarations. | |
| This code has changed before, most recently in 2024-05-31 | |
| when the number of .c files generated by this helper program | |
| was reduced from 2 to 1. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/: | |
| run "gnulib --add-import unistr/u32-mbsnlen unistr/u32-mbtouc". | |
| Report from Bruno Haible. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/: run "gnulib --remove-import unistr/u32-strdup" as | |
| this module is not needed any more. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/t/quoted-index-target.sh: update test | |
| 2026-07-14 Thomas <thomb@pm.me> (tiny change) | |
| * info/indices.c (format_reference): | |
| Place quoting DEL bytes around node name if it contains a :. | |
| * info/scan.h, info/scan.c: move INFO_QUOTE, INFO_QUOTE_STR definition | |
| to scan.h. | |
| 2026-07-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/t/quoted-index-target.sh: in grep regular expression, replace | |
| "[[:blank:]]\{1,\}" with " *", as this seems simpler and avoids any | |
| hint of locale dependence. | |
| 2026-07-12 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/unicode-collation: sync | |
| 2026-07-12 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c (plaintext_converter_defaults): | |
| Call new generated function add_plaintext_regular_options_defaults. | |
| 2026-07-12 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/data/converters_defaults.txt: | |
| Add section for 'plaintext'. Edit comments at top of file. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (%defaults): | |
| Set with Texinfo::Options::get_regular_options. | |
| 2026-07-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix messaging after index search | |
| * info/indices.c (info_indices_of_file_buffer): | |
| Reset list of index entries once we find a node with | |
| an index tag. | |
| * info/t/infodir/index-search.info: Add missing index tag to | |
| test file. | |
| It was possible that the string "CAN'T SEE THIS" would | |
| be displayed as the name of an index in the message line, | |
| due to incorrect internal counting of index entries. | |
| 2026-07-11 Thomas <thomb@pm.me> (tiny change) | |
| * info/t/quoted-index-target.sh: new test. | |
| 2026-07-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix index reference to node with : in its name | |
| * info/scan.c (scan_reference_label): Include DEL byte in | |
| argument to strcspn. This reverses change on 2024-12-30. | |
| Fix from ThomB <thomb@pm.me>. | |
| 2026-07-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| * README-hacking: remove missed self-destructing note for post | |
| 7.3 release, which should have been removed after DUMP_TREE | |
| change on 2026-04-01. | |
| 2026-07-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| Attempt at comments in data file cross-referencing other files | |
| * tta/data/converters_defaults.txt: add comment at top | |
| of file cross-referencing other related files. | |
| * tta/maintain/regenerate_perl_options_info.pl, | |
| * tta/maintain/regenerate_C_options_info.pl: | |
| Reference converter_defaults.txt and relevant Makefile.am files. | |
| Correct file names in comments at tops of files. | |
| * tta/perl/Makefile.am: Add comment about keeping a file name in | |
| sync with a comment in a another file. | |
| The thinking behind these comments is that if someone finds one | |
| of these files is relevant to converter options values, they should | |
| be easily able to find how they are set and used across the rest of | |
| the code base. | |
| They should also be able to easily know what comments to update | |
| in case of any changes to prevent out-of-date information. | |
| 2026-07-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Get paragraphindent conf value as string with strtoul. From Patrice. | |
| 2026-07-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Don't get paragraph indent from self->conf until we work out how to do | |
| this. Fill out more skeleton code. | |
| 2026-07-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Get paragraph indent from self->conf. | |
| 2026-07-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| new_formatter for C plaintext converter | |
| * tta/C/convert/convert_to_plaintext.c (new_formatter): | |
| Set appropriate paragraph formatting settings. (This produced a big | |
| improvement in the output at this stage of development.) | |
| 2026-07-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| Simplify new_formatter interface | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (new_formatter): | |
| Take 'indent_length' and 'indent_length_next' as subroutine | |
| parameters rather than hash values. This should make this function | |
| easier to replicate in a C reimplementation. | |
| (convert_line, convert_line_new_context): Likewise. | |
| 2026-07-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| Simplify new_formatter interface | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert) <list of floats>: | |
| Do not pass "max" configuration value to 'new_formatter' as 'new_formatter' | |
| retrieves this value itself. This allows simplifying the interface of | |
| 'new_formatter' as now the only configuration values it takes are | |
| 'indent_length' and 'indent_length_next'. | |
| 2026-07-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c: | |
| Increase use of stack functions slightly. | |
| 2026-07-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/builtin_commands.h, tta/C/main/command_data.awk (END): | |
| rename builtin_command_data as command_data. Update users. | |
| 2026-07-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/commands.h (parsed_command_data): rename | |
| command_data as parsed_command_data. Update callers. | |
| 2026-07-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Call element_builtin_cmd and remove TODO comment. From Patrice. | |
| 2026-07-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| Remove parameters from set_space_protection | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm, (set_space_protection), | |
| * tta/C/convert/plaintext_paragraph.c (para_set_space_protection), | |
| * tta/perl/XSTexinfo/ParagraphXS.xs (para_set_space_protection): | |
| Remove all optional parameters. | |
| * tta/perl/t/z_misc/paragraph.t: update use of set_space_protection. | |
| 2026-07-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| Reduce use of set_space_protection | |
| * tta/perl/XSTexinfo/ParagraphXS.xs, | |
| tta/perl/Texinfo/Convert/ParagraphNonXS.pm | |
| (set_frenchspacing, set_double_width_no_break): | |
| New functions. | |
| * tta/perl/Texinfo/Convert/Paragraph.pm: Add these to @EXPORT_OK. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_open_code, _convert), | |
| * tta/perl/Texinfo/Convert/Info.pm (_format_ref): | |
| Use these instead of set_space_protection, as it's easier to | |
| understand without remembering what all the arguments to | |
| set_space_protection mean. | |
| 2026-07-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c (print_indices_sort_strings): inline | |
| setup_indices_entries_sort_strings in print_indices_sort_strings and | |
| remove. More comments. | |
| * tta/C/main/manipulate_indices.c (INDEX_ENTRIES_SORT_STRINGS) | |
| (find_indices_entries_sort_strings_index, print_indices_sort_strings): | |
| replace index field in INDEX_ENTRIES_SORT_STRINGS by index_name, as it | |
| is all that is accessed from the index. | |
| * tta/perl/t/z_misc/test_sort.t: more comments. | |
| 2026-07-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/document.c (document_sorted_indices_by_index) | |
| (document_sorted_indices_by_letter): return indices sorted by index or | |
| by letter instead of the collation information. Update callers. | |
| 2026-07-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/accents.t: add comments, remove useless FIXME. | |
| 2026-07-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/plaintext_paragraph.h (PARA_CONF_VARIABLES_LIST): | |
| Remove word_counter and lines_counter as these are not set from | |
| outside the module. | |
| * tta/C/convert/plaintext_paragraph.c (struct PARAGRAPH): | |
| Reorder struct members. | |
| 2026-07-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| Paragraph conf | |
| * tta/perl/XSTexinfo/ParagraphXS.xs (para_new): | |
| Warn if there is a key in the paragraph configuration hash that is | |
| not a recognized configuration variable. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (process_printindex): | |
| Use 'indent_length' instead of 'indent' in call to new_formatter. | |
| * tta/perl/Texinfo/Convert/Info.pm (format_ref): Fix call to | |
| convert_line_new_context. | |
| 2026-07-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl (test): fix variable name. Report from | |
| Gavin. | |
| 2026-07-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (new_formatter): | |
| Split $conf parameter into two parameters, one for paragraph | |
| configuration only. | |
| 2026-07-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm | |
| (new_formatter) <flush commands>: | |
| Set 'ignore_columns' and 'keep_end_lines' on container configuration | |
| rather than calling set_space_protection. | |
| 2026-07-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/plaintext_paragraph.h (PARA_CONF_VARIABLES_LIST): | |
| Add double_width_no_break, for completeness. | |
| 2026-07-05 Patrice Dumas <pertusus@free.fr> | |
| Converter indices sort strings comparison in tests | |
| * tta/C/main/manipulate_indices.c (print_indices_sort_strings), | |
| tta/perl/Texinfo/Indices.pm (print_indices_sort_strings): return | |
| NULL/undef instead of an empty string. | |
| * tta/perl/t/test_utils.pl (test): compare converter indices sort | |
| strings with reference in tests. | |
| 2026-07-05 Patrice Dumas <pertusus@free.fr> | |
| Implement printing of converter indices sort strings | |
| * tta/C/main/document.c (print_document_indices_sort_strings), | |
| tta/C/main/manipulate_indices.c (INDEX_ENTRIES_SORT_STRINGS) | |
| (INDICES_ENTRIES_SORT_STRINGS) | |
| (find_indices_entries_sort_strings_index) | |
| (setup_indices_entries_sort_strings, print_indices_sort_strings), | |
| tta/perl/Texinfo/Document/IndicesNonXS.pm | |
| (print_document_indices_sort_strings), tta/perl/Texinfo/Indices.pm | |
| (print_indices_information): split out of | |
| print_document_indices_sort_strings the association of index entries | |
| to sort strings and the output of sort strings by index to the | |
| print_indices_sort_strings function, moved to manipulate_indices.c or | |
| Indices.pm. Move INDEX_ENTRIES_SORT_STRINGS, | |
| INDICES_ENTRIES_SORT_STRINGS, find_indices_entries_sort_strings_index | |
| and setup_indices_entries_sort_strings to manipulate_indices.c. | |
| * tta/C/convert/converter.c (print_converter_indices_sort_strings), | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (print_converter_indices_sort_strings), | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs | |
| (print_converter_indices_sort_strings): | |
| add print_converter_indices_sort_strings, including an XS interface. | |
| * tta/perl/t/test_utils.pl (test): prepare printing sort strings for | |
| converters, setting new variables in output files and calling | |
| print_converter_indices_sort_strings. | |
| 2026-07-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl, tta/perl/texi2any.pl: add comments on | |
| I18N::Langinfo on Windows platform. | |
| 2026-07-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl (test): with $arg_output set, collect | |
| errors messages after they have been collected and fix corresponding | |
| code. | |
| 2026-07-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| C plaintext converter - start on paragraph indentation | |
| * tta/C/main/list_macros.h (decl_stack_fns, def_stack_fns) | |
| (top_, pop_): New. | |
| * tta/C/main/plaintext_converter_state.h: fill out | |
| * tta/C/convert/convert_to_plaintext.c: | |
| At a new paragraph, access 'format_context' stack and set | |
| paragraph indentation settings. | |
| 2026-07-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_stream_output_count_nl): | |
| New function, copied from _stream_output. | |
| (_stream_output): Remove optional third parameter. | |
| 2026-07-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix const warning | |
| * tta/C/main/utils.c (ultimate_index_const): Add. The same as | |
| ultimate_index, except take and return const pointers. | |
| * tta/C/main/manipulate_indices.c (merge_indices): Call it instead | |
| of ultimate_index. | |
| Warning presumably introduced in commit on 2026-06-30. | |
| 2026-07-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c: flesh out slightly | |
| 2026-07-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c (add_newline_if_needed): Add. | |
| 2026-07-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| C plaintext converter - separate paragraphs | |
| * tta/C/convert/convert_to_plaintext.c: add paragraph formatter | |
| on stack for each paragraph. | |
| * tta/C/convert/plaintext_paragraph.c (para_add_next, para_add_text): | |
| Take const char * parameters rather than char *. | |
| 2026-07-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (CONVERTER_FORMAT_DATA): add to comment on | |
| perl_converter_class. | |
| 2026-07-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (ctexi2any_CPPFLAGS), tta/C/texi2any.c | |
| (load_interpreter, main): have loading_info embedded_interpreter | |
| default to txi_interpreter_want_embedded, do not set it based on the | |
| EMBED_PERL flag, remove EMBED_PERL. Do not warn in load_interpreter | |
| if the interpreter is not built, should be done by the calling code. | |
| Add such a missing warning. | |
| * tta/C/Makefile.am (noinst_PROGRAMS, texistatic_*): rename | |
| teximakehtml as texistatic. | |
| 2026-07-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main), tta/perl/texi2any.pl: determine if there | |
| is no argument and error out earlier, before loading converter code. | |
| 2026-07-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\include): Check if the file name includes a | |
| space character, and if it does, wrap the file name in { } before | |
| running \input. | |
| Report from Werner Lemberg. | |
| 2026-07-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/convert_utils.c (definition_arguments_content) | |
| (definition_category_tree): assume that the tree is correct and that | |
| the definition line arguments container always exist. Change in | |
| variable names, change in comments. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking: update the list of files relevant for ppport. | |
| 2026-07-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| CONVERTER_FORMAT_DATA | |
| * tta/C/convert/converter.h, tta/C/convert/converter.c | |
| (CONVERTER_FORMAT_DATA, converter_format_data): | |
| Move type definition to converter.c and declare data array | |
| as static. Add a comment about the purpose of the | |
| 'perl_converter_class' string. | |
| 2026-07-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| Initial use of paragraph formatting | |
| * tta/C/convert/convert_to_plaintext.c: | |
| Add formatter stack and access plaintext_paragraph.c paragraph | |
| formatting. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (C_libtexinfo_sources), | |
| tta/C/parsetexi/set_parser_conf.c, tta/C/parsetexi/set_parser_conf.h: | |
| rename parsetexi/conf.c to parsetexi/set_parser_conf.c. Update users. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (C_libtexinfo_sources), | |
| tta/C/parsetexi/parser_api.c, tta/C/parsetexi/parser_api.h: rename | |
| parsetexi/api.c to parsetexi/parser_api.c. Update users. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/many_input_files/*.sh: add ${dir_suffix} for staging_dir | |
| to use a different one for native and non native test. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (C_libtexinfo_convert_sources): add | |
| main/plaintext_converter_state.h. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (documentmodulesdir) | |
| (dist_documentmodules_DATA): fix installation directory for | |
| Texinfo::Document::Indices* modules. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * doc/tta_api/Makefile.am (texi2any_internals_dependencies), | |
| tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/Document.pm, tta/perl/Texinfo/Document/Indices.pm | |
| (merged_indices, _document_indices_sort_strings) | |
| (sorted_indices_by_letter, sorted_indices_by_index), | |
| tta/perl/Texinfo/DocumentNonXS.pm, | |
| tta/perl/Texinfo/Document/IndicesNonXS.pm | |
| (print_document_indices_information) | |
| (print_document_indices_sort_strings), tta/perl/XSTexinfo/Makefile.am | |
| (xs_LTLIBRARIES, DocumentIndicesXS_*), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs, | |
| tta/perl/XSTexinfo/parser_document/DocumentIndicesXS.xs | |
| (print_document_indices_information) | |
| (print_document_indices_sort_strings): move indices related code from | |
| Texinfo::Document* and XS interfaces to a new module, | |
| Texinfo::Document::Indices, to avoid a circular dependency and to | |
| separate the document indices related code. | |
| Update callers. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (_substitute_element_array): remove | |
| the call to Texinfo::Document::build_tree, there should never be a | |
| tree with an handle only passed to gdt and similar. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/XSLoader.pm (BEGIN): call Texinfo::ModulePath | |
| import after a successful require. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking, tta/README: add a short information on doing a new | |
| texi2any backend in C. | |
| 2026-07-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/plaintext_paragraph.c: rename all functions | |
| to have para_ prefix rather than xspara_ prefix. | |
| 2026-07-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/plaintext_converter_state.h: add FORMATTER. | |
| 2026-07-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| Move xspara.c | |
| * tta/perl/XSTexinfo/xspara.c, tta/C/convert/plaintext_paragraph.c, | |
| tta/perl/XSTexinfo/xspara.h, tta/C/convert/plaintext_paragraph.h: | |
| xspara.c and xspara.h moved and renamed in preparation for being used | |
| in non-XS C code. | |
| 2026-07-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/plaintext_converter_state.h (COUNT_CONTEXT_STACK): | |
| Define with def_list_type etc. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (INTERPRETER_LOADING_INFO): add | |
| embedded_interpreter field. | |
| * tta/C/texi2any.c (load_interpreter, main): use embedded_interpreter | |
| field of INTERPRETER_LOADING_INFO instead of the embedded_interpreter | |
| variable. Check if the interpreter should be loaded based on | |
| loading_info->embedded_interpreter in load_interpreter instead of in | |
| the calling code. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libperlcall_utils_la_SOURCES), tta/C/texi2any.c | |
| (enum interpreter_use): move enum interpreter_use to texi2any.c, and | |
| define used values only. Remove interpreter_use_types.h. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/xs_utils.h, tta/C/main/replace_set_perl_interpreter.c: | |
| fix set_use_perl_interpreter prototype. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/set_perl_interpreter.c (use_perl_interpreter) | |
| (set_use_perl_interpreter, has_perl_interpreter): only use 2 values | |
| for use_perl_interpreter, 0 or 1. Update callers. | |
| * tta/perl/XSTexinfo/parser_document/DocumentXS.xs (init): call | |
| set_use_perl_interpreter independently of initialization of C | |
| libraries. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): remove default_is_html, considering that it | |
| is always false. | |
| 2026-07-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| Generic list macros | |
| * tta/C/main/document_types.h (VALUE_LIST, ELEMENT_STACK), | |
| * tta/C/main/tree_types.h (FLOAT_RECORD_LIST, COMMAND_STACK): | |
| Define with def_list_type. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/structuring.c (new_complete_node_menu) | |
| (new_detailmenu): add CONVERTER_CACHE_TRANSLATE argument and pass to | |
| gdt. Update callers. | |
| * tta/C/convert/format_html.c (html_convert_heading_command): | |
| give html_translation_function to new_complete_node_menu and | |
| new_complete_menu_master_menu with such that the user can replace the | |
| default translations. | |
| 2026-07-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/html_converter_state.h (SPECIAL_UNIT_INFO_LIST): not a | |
| list of pointers. | |
| 2026-07-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (general_output_strings_setup): move | |
| txi_general_output_strings_setup to translations.c and rename as | |
| general_output_strings_setup. Update callers. | |
| * tta/C/parsetexi/api.c (parser): move txi_parser to api.c and rename | |
| as parser. Update callers. | |
| * tta/C/structuring_transfo/transformations.c | |
| (complete_transform_document), | |
| tta/C/structuring_transfo/transformations.h (TT_TYPES_LIST), | |
| tta/swig/python/Makefile.am (_Texinfo_la_CPPFLAGS), | |
| tta/swig/perl/Makefile.am (Texinfo_la_CPPFLAGS): move | |
| txi_complete_document to transformations.c and rename as | |
| complete_transform_document. Update callers. Move TT_TYPES_LIST and | |
| STTF_* to transformations.h. Add structuring_transfo to includes. | |
| * tta/C/Makefile.am (C_libtexinfo_main_sources): remove texinfo.c. | |
| 2026-07-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/call_perl_function.c (txi_use_interpreter_load_modules), | |
| tta/C/convert/texinfo.c: move the txi_use_interpreter_load_modules | |
| unused function to call_perl_function.c. | |
| 2026-07-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/texinfo.c, tta/C/api_for_swig/swig_interface.c | |
| (txi_ext_output_parser_error_messages) | |
| (txi_ext_output_document_error_messages), tta/C/texi2any.c (main), | |
| tta/swig/texinfo.i: inline txi_output_parser_error_messages in main. | |
| Move txi_output_document_error_messages and | |
| txi_output_parser_error_messages dd to swig_interface.c and rename as | |
| txi_ext_output_parser_error_messages and and | |
| txi_ext_output_document_error_messages. Use in texinfo.i. | |
| * tta/C/convert/texinfo.c, tta/C/texi2any.c (main, close_file_stream): | |
| move txi_close_file_stream to texi2any.c and rename as | |
| close_file_stream. | |
| * tta/C/convert/texinfo.c, tta/C/texi2any.c (TRANSFORMATION_NAME_FLAG) | |
| (INTERPRETER_LOADING_INFO): move structures to texi2any.c. | |
| * tta/C/convert/texinfo.c, tta/C/texi2any.c (main) | |
| (remove_converter_and_output_units), tta/swig/texinfo.i: inline | |
| txi_parse_texi_file, txi_converter_output, txi_sort_element_counts, | |
| txi_destroy_document, txi_converter_remove_output_units and | |
| txi_destroy_converter in texi2any.c, add the | |
| remove_converter_and_output_units function. Call directly | |
| destroy_document in texinfo.i. | |
| 2026-07-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Use generic list macros for HTML_CONVERTER_STATE | |
| * tta/C/main/html_converter_state: | |
| (FILE_STREAM_LIST, FILE_SOURCE_INFO_LIST, CSS_SELECTOR_STYLE_LIST) | |
| (HTMLXREF_MANUAL_LIST, STRING_STACK_LIST, SORTED_INDEX_NAMES) | |
| (SPECIAL_UNIT_INFO_LIST, DEPRECATED_DIRS_LIST): | |
| Define with def_list_type. | |
| 2026-07-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Use generic list macros for HTML_CONVERTER_STATE | |
| * tta/C/main/html_converter_state: | |
| (COMMAND_OR_TYPE_STACK, STRING_STACK, INTEGER_STACK) | |
| (ELEMENT_REFERENCE_STACK, HTML_TARGET_LIST) | |
| (EXPLAINED_COMMAND_TYPE_LIST, ELEMENT_REFERENCE_STACK_STACK) | |
| (PAGES_CSS_LIST, TRANSLATED_COMMAND_LIST) | |
| (HTML_FORMATTING_CONTEXT_STACK, HTML_DOCUMENT_CONTEXT_STACK) | |
| (HTML_PENDING_FOOTNOTE_STACK, HTML_INLINE_CONTENT_STACK) | |
| (HTML_ASSOCIATED_INLINE_CONTENT_LIST): | |
| Define with def_list_type. This changes the names of fields | |
| 'stack' to 'list', and 'top' to 'number'. | |
| All uses updated. | |
| 2026-07-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/translations.c | |
| (add_string_to_named_string_element_list) | |
| (add_element_to_named_string_element_list): | |
| Define with generic macros. | |
| 2026-07-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/floats.c | |
| (add_to_listoffloats_list, add_to_float_information_list): | |
| Use generic macros. | |
| 2026-07-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Generic list macros: add reallocate_ | |
| * tta/C/main/list_macros.h (decl_list_fns, def_list_fns): | |
| Generate reallocation function. | |
| * tta/C/main/structure_list.c (setup_reallocate_relations_list): | |
| Remove this macro. Rely on def_list_fns to generate reallocation | |
| functions. | |
| (add_heading_to_heading_relations_list): Use generic list macros to | |
| append to list. | |
| 2026-07-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Generic list macros | |
| * tta/C/main/structure_list.c | |
| (add_to_node_relations_list, add_to_const_node_relations_list) | |
| (add_to_section_relations_list): | |
| Define with list_macros.h macros. | |
| 2026-07-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/texi2any.c (main): Avoid accessing an uninitialized variable. | |
| 2026-06-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/texinfo.c, tta/C/texi2any.c (find_tree_transformation) | |
| (txi_tree_transformation_table, load_interpreter) | |
| (txi_load_init_file): move txi_tree_transformation_table, | |
| txi_find_tree_transformation, txi_load_interpreter, txi_load_init_file | |
| and err_add_option_value to texi2any.c. Remove leading txi_ from | |
| function names. | |
| * tta/C/convert/texinfo.c (txi_sort_element_counts), tta/C/texi2any.c | |
| (main): inline txi_setup_load_interpreter, | |
| txi_set_base_default_options, txi_stop_interpreter, | |
| txi_converter_output_format_setup, txi_converter_format_defaults, | |
| txi_converter_initialization_setup in texi2any.c main and in | |
| txi_sort_element_counts and remove. | |
| 2026-06-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (gdt_tree), | |
| tta/perl/Texinfo/Translations.pm (gdt, gdt_string): change order of | |
| arguments, put translation_context before debug_level. Update | |
| callers. | |
| 2026-06-30 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/manipulate_tree.c (add_source_mark): | |
| Use generic list macro. | |
| 2026-06-30 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/utils.c (add_string): Define with generic list macros. | |
| 2026-06-30 Gavin Smith <gavinsmith0123@gmail.com> | |
| Generic list appending | |
| * tta/C/main/list_macros.h: | |
| (decl_list_fns, def_list_fns): | |
| New macros for declaring and defining functions that operating on lists. | |
| (add_): Macro for accessing function defined by def_list_fns. | |
| * tta/C/main/tree.c (add_to_const_element_list, add_to_element_list): | |
| Define with decl_list_fns/def_list_fns. | |
| 2026-06-30 Gavin Smith <gavinsmith0123@gmail.com> | |
| Start on generic list macros | |
| * tta/C/main/list_macros.h: new file. | |
| (def_list_macro): New macro for defining list type. | |
| * tta/C/main/tree_types.h: use it throughout. | |
| 2026-06-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_cdt_string): call gdt_string with | |
| the cache function replacement argument instead of reimplementing | |
| gdt_string. | |
| 2026-06-30 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking: explain how to use commands and visually check | |
| that caching of translated strings and reuse of associated trees | |
| is effective. | |
| * tta/C/convert/convert_html.c (html_cache_translate_string) | |
| (html_cdt_string), tta/C/main/translations.c (cache_translate_string) | |
| (gdt_tree), tta/perl/Texinfo/Convert/HTML.pm | |
| (_html_cache_translate_string), tta/perl/Texinfo/Translations.pm | |
| (cache_translate_string, gdt): make translation caching and tree | |
| reusing debugging messages easier to read and to extract. | |
| * tta/perl/t/test_utils.pl (test): use a variable if debugging is set. | |
| Add output for the main test steps if debugging is set. | |
| * tta/perl/t/test_utils.pl (test): pass debug indicator to Document | |
| by using completed_parser_options instead of parser_options to set | |
| structuring and document options. Pass debug indicator to converter | |
| to raw text. | |
| * tta/C/main/convert_to_text.c (convert_to_text_internal), | |
| tta/C/main/convert_utils.c (definition_category_tree), | |
| tta/perl/Texinfo/Convert/Text.pm (_convert), | |
| tta/perl/Texinfo/Convert/Utils.pm (definition_category_tree): pass | |
| debug level in more functions, when outputting raw text. | |
| * tta/C/main/manipulate_indices.c (merge_indices), | |
| tta/perl/Texinfo/Indices.pm (setup_index_entries_sort_strings): sort | |
| merged indices based on name in C, and sort directly index names | |
| processed in setup_index_entries_sort_strings in Perl, to have a | |
| reproducible order for index sort string generation in case there is | |
| an error or debugging output. | |
| 2026-06-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (converter_format_data, cdt_tree), | |
| tta/C/convert/converter.h (CONVERTER_FORMAT_DATA), | |
| tta/C/main/convert_utils.c: add cdt_tree dispatch to | |
| CONVERTER_FORMAT_DATA. Move cdt_tree out of convert_utils.c to | |
| converter.c and dispatch to the cdt_tree format function if found in | |
| converter_format_data, for HTML. | |
| * tta/C/convert/converter.c (converter_expand_today) | |
| (converter_translated_command_tree): remove cdt_tree_fn argument, | |
| pass directly cdt_tree. | |
| 2026-06-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/converter_types.h (CONVERTER_CACHE_TRANSLATE): rename | |
| TRANSLATION_FUNCTION as CONVERTER_CACHE_TRANSLATE. Update users. | |
| * tta/C/main/converter_types.h (CONVERTER_CDT_TREE), | |
| tta/C/main/convert_utils.c (expand_today, definition_category_tree) | |
| (translated_command_tree): add CONVERTER_CDT_TREE that brings together | |
| a converter and a cdt_tree function reference. Pass it as argument to | |
| expand_today, definition_category_tree and translated_command_tree. | |
| Update callers. | |
| 2026-06-29 Gavin Smith <gavinsmith0123@gmail.com> | |
| Start count context stack | |
| * tta/C/main/text.c (text_destroy): Add function to free and | |
| zero text buffer. | |
| * tta/C/main/plaintext_converter_state.h: | |
| split from tta/C/main/converter_types.h. | |
| * tta/C/main/plaintext_converter_state.h | |
| (PLAINTEXT_CONVERSION_STATE, PLAINTEXT_CONVERTER_STATE): rename. | |
| * tta/C/convert/convert_to_plaintext.c: | |
| Add functions for count context stack, conversion initialization | |
| and finalization. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/html_converter.h, tta/C/main/html_converter_state.h: | |
| rename to html_converter_state.h. | |
| 2026-06-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_convert_def_line_type): handle the | |
| case of parent element not existing, using the same extra information | |
| as in Perl. | |
| * tta/C/main/converter_types.h (TRANSLATION_FUNCTION), | |
| tta/C/main/translations.c (gdt_tree, gdt_string): add a translation | |
| function argument to be able to replace the call to | |
| cache_translate_string (same as in Perl). Update callers. | |
| * tta/C/convert/convert_html.c (html_cdt_tree): call gdt_tree with | |
| html_cache_translate_string in argument. Remove html_gdt_tree. | |
| 2026-06-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (cache_translate_string): set the | |
| context to an empty string if the language is unknown. Set | |
| $cached_lang in the block it is used. | |
| * tta/C/main/translations.c (cache_translate_string): show | |
| translation_context in debug message. | |
| * tta/C/convert/convert_html.c (html_cdt_string), | |
| tta/C/main/translations.c (gdt_string), | |
| tta/perl/Texinfo/Translations.pm (gdt_string): add debug message for | |
| *_string. | |
| 2026-06-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (setup_output_strings) | |
| (cache_translate_string), tta/perl/Texinfo/TranslationsNonXS.pm | |
| (_XS_setup_output_strings), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (_XS_setup_output_strings): remove XS interface for | |
| cache_translate_string. The translated string tree is in Perl only, | |
| with the XS interface the tree is associated to the string in the | |
| array reference returned from the XS function, therefore the array | |
| reference is recreated for each call, therefore the tree is not | |
| reused. Therefore remove the XS interface. | |
| Add _XS_setup_output_strings to setup the strings both in C and Perl. | |
| * tta/C/convert/convert_html.c (html_gdt_tree), | |
| tta/C/main/translations.c (gdt_tree), tta/perl/Texinfo/Translations.pm | |
| (gdt): add debug output for translated tree reusing. | |
| 2026-06-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (document_tree): change the order of | |
| conditionals to have a code easier to read. | |
| 2026-06-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl (test): do not call $document->tree again | |
| after structuring code, the previously obtained tree should be right. | |
| * tta/C/main/build_perl_info.c (document_tree): add to comment now | |
| that $document->tree(1) is not called twice anymore. | |
| 2026-06-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (document_tree): reorganize code to be | |
| easier to read. Assume that sv field is set upon building tree to | |
| Perl. Assert that an existing tree_document_descriptor is the same as | |
| the document one. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Finish moving non-types out of html_converter_types.h | |
| * tta/maintain/generate_code_convert_data.pl: | |
| Generate "enum global_unit_direction" (defining D_up etc.) | |
| in html_conversion_data.h. This means that html_converter_types.h | |
| does not need to include "html_conversion_data.h", which contains | |
| variable declarations. This means that html_converter_types.h | |
| now only contains types, matching its name. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Move some non-types out of html_converter_types.h | |
| * tta/C/convert/html_converter_types.h, | |
| * tta/C/convert/html_prepare_converter.h: | |
| Move declarations to html_prepare_converter.h: | |
| html_command_args_flags, html_commands_data, | |
| special_list_mark_css_string_no_arg_command, no_arg_formatted_cmd, | |
| style_formatted_cmd, accent_cmd, format_raw_cmd. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Move some non-types out of html_converter_types.h | |
| * tta/C/convert/html_converter_types.h, | |
| * tta/C/convert/convert_html.h: Move declarations of | |
| html_conversion_context_type_names and | |
| html_stage_handler_stage_type_names to convert_html.h. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Move some non-types out of html_converter_types.h | |
| * tta/C/convert/html_converter_types.h, | |
| * tta/C/convert/format_html.h: Move declarations of | |
| direction_string_type_names and direction_string_context_names | |
| arrays. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Move some non-types out of html_converter_types.h | |
| * tta/maintain/generate_code_convert_data.pl: | |
| Output declaration of 'translated_special_unit_info' array. | |
| This is possible now that the definition of TRANSLATED_SUI_ASSOCIATION | |
| is in this file. | |
| * tta/C/convert/html_converter_types.h: Remove | |
| declaration of 'translated_special_unit_info' array. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Move TRANSLATED_SUI_ASSOCIATION type definition | |
| * tta/maintain/generate_code_convert_data.pl: | |
| Output TRANSLATED_SUI_ASSOCIATION definition in | |
| html_conversion_data.h. | |
| * tta/C/main/converter_types.h: Remove definition of | |
| TRANSLATED_SUI_ASSOCIATION and remove #include of | |
| "html_conversion_data.h". | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix excess elements in array initialiser warning | |
| * tta/maintain/generate_code_convert_data.pl: | |
| Use CUSTOMIZED_SPECIAL_UNIT_INFO_TYPE_NR instead of | |
| SPECIAL_UNIT_INFO_TYPE_NR as number of elements in | |
| 'special_unit_info_type_names' array. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/maintain/generate_code_convert_data.pl: | |
| Use HTML_CONVERSION_DATA_H rather than CONVERSION_DATA_H as | |
| include guard symbol in a/tta/C/main/html_conversion_data.h. | |
| 2026-06-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/generate_code_convert_data.pl: fix typo in | |
| snecial_unit_info_type_names -> special_unit_info_type_names. | |
| 2026-06-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl (test), | |
| tta/perl/t/z_misc/test_protect_hashchar_at_line_beginning.t | |
| (run_test), tta/perl/texi2any.pl: call document->tree() with an | |
| argument to get an handle only independently of | |
| XSLoader::XS_modules_enabled result. TEXINFO_XS=omit is checked by | |
| XSLoader such that the XS module of Document will not be loaded anyway | |
| if TEXINFO_XS=omit. | |
| 2026-06-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/*.pm (BEGIN), tta/perl/Texinfo/*.pm | |
| (BEGIN): do not use XS_modules_enabled to determine if the call to | |
| Texinfo::XSLoader::init should be done with an undef XS module file | |
| name, TEXINFO_XS=omit is checked in XSLoader::init, and that is all is | |
| needed to decide if the XS module file should be loaded. | |
| * tta/perl/Texinfo/ManipulateTree.pm (_element_remove_references): | |
| remove the case with XS for structuring only as it cannot happen | |
| anymore. Remove $no_XS_objects_refcount and | |
| $destroyed_objects_refcount_text. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| Move some non-types out of html_converter_types.h | |
| * tta/C/convert/html_converter_types.h: Remove | |
| declarations of snecial_unit_info_type_names and | |
| special_unit_info_tree_names arrays. | |
| * tta/maintain/generate_code_convert_data.pl: Generate them | |
| in html_conversion_data.h. | |
| 2026-06-28 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/converter_types.h, tta/C/main/html_converter.h: | |
| Split out html_converter.h. | |
| 2026-06-27 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/convert/plaintext_converter_api.c, | |
| * tta/C/convert/convert_to_plaintext.c: | |
| Merge into convert_to_plaintext.c and remove | |
| plaintext_converter_api.c. | |
| 2026-06-27 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/convert/convert_to_plaintext.c | |
| (plaintext_free_converter, plaintext_converter_initialize): | |
| New stubs.) | |
| * tta/C/convert/converter.c (converter_format_data): | |
| Reference these. | |
| 2026-06-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_convert_printindex_command): call | |
| get_converter_indices_sorted_by_letter only if there is an index name. | |
| * tta/C/main/translations.c (cache_translate_string): fix debug | |
| messages. | |
| * tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): call cache_translate_string even if | |
| lang_translation is undef, to get the debugging messages. | |
| 2026-06-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/init/translation_in_parser_in_translation.pm: add more | |
| code in translation Texinfo code and add another translation. | |
| 2026-06-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/README, perl/Texinfo/Convert/Plaintext.pm (new_formatter): | |
| comment out setting DEBUG for Texinfo::Convert::Paragraph as there is | |
| no debugging output in C. | |
| 2026-06-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm (_html_cache_translate_string): | |
| print debug message if $strings_cache is defined but the translation | |
| is not found. | |
| 2026-06-27 Gavin Smith <gavinsmith0123@gmail.com> | |
| Separate HTML-specific conversion fields into separate object. | |
| * tta/C/main/converter_types.h | |
| (struct CONVERTER, struct HTML_CONVERTER_STATE): Add HTML_CONVERTER_STATE | |
| type for HTML-specific fields, and add "HTML_CONVERTER_STATE | |
| html_converter" field to CONVERTER. | |
| All uses updated. | |
| 2026-06-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (_set_lang_info_translation): | |
| add the new lang translations reference to the translations cache | |
| hash. | |
| * tta/C/main/translations.c (replace_convert_substrings): call | |
| reset_parser and not reset_parser_conf to get the same result as doing | |
| a new parser in Perl. | |
| * tta/C/convert/convert_html.c (html_cache_translate_string), | |
| tta/C/main/convert_to_text.c (text_heading, convert_to_text_internal), | |
| tta/C/main/convert_utils.c (add_heading_number), | |
| tta/C/main/translations.c (cache_translate_string, gdt_string), | |
| tta/perl/Texinfo/Convert/HTML.pm (_html_cache_translate_string) | |
| (cdt_string), tta/perl/Texinfo/Convert/Text.pm (_text_heading) | |
| (_convert), tta/perl/Texinfo/Convert/Utils.pm (add_heading_number), | |
| tta/perl/Texinfo/Translations.pm (gdt, gdt_string), | |
| tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string), tta/perl/ext/epub3.pm, tta/perl/init/chm.pm: | |
| add debugging information on translations caching when debug is >= 2, | |
| in *cache_translate_string. Update callers. | |
| 2026-06-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/texinfo.c | |
| (txi_output_converter_error_messages, txi_builtin_default_css_text): | |
| Inline into sole use sites and remove. | |
| 2026-06-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/texinfo.c (txi_converter_setup): Inline into | |
| sole use site and remove. | |
| 2026-06-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| Continue C plaintext converter | |
| * tta/C/main/converter_types.h (PLAINTEXT_CONVERSION_STATE): New type. | |
| (struct CONVERTER): Add PLAINTEXT_CONVERSION_STATE plaintext_converter | |
| field. | |
| * tta/C/convert/convert_to_plaintext.c: Take and pass around a CONVERTER | |
| object. Add stubs for stream_output_* functions using text object in | |
| plaintext_converter field, and call stream_output instead of appending | |
| to TEXT object. | |
| Note: until convert_to_plaintext.c (and other new code) is complete, | |
| ChangeLog entries may not be as detailed as usual. Other changes | |
| affecting established parts of the code should still be described | |
| to the usual standard. | |
| 2026-06-25 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/convert/convert_to_plaintext.c (convert_to_plaintext_internal): | |
| Start filling in structure of function. | |
| 2026-06-25 Gavin Smith <gavinsmith0123@gmail.com> | |
| Stub plaintext converter for ctexi2any | |
| * tta/C/convert/plaintext_converter_api.h, | |
| * tta/C/convert/plaintext_converter_api.c, | |
| * tta/C/convert/convert_to_plaintext.c, | |
| * tta/C/convert/convert_to_plaintext.h: new stub implementations, | |
| based on code for "plaintexinfo" output format. | |
| * tta/C/convert/converter.c (converter_format_data): add entry | |
| for "plaintext". | |
| * tta/C/main/converter_types.h | |
| (enum converter_format, TXI_CONVERSION_FORMAT_NR): update. | |
| * tta/C/Makefile.am, | |
| * tta/C/convert/converter.h, | |
| * tta/C/texi2any.c (main): Disable use of Perl module for "plaintext" | |
| output format if environment variable TEXINFO_XS_INCOMPLETE is set. | |
| 2026-06-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| TEXINFO_XS_* variables no longer obeyed | |
| * tta/perl/Texinfo/XSLoader.pm | |
| (XS_modules_enabled): New. | |
| (XS_parser_enabled, XS_structuring_enabled, XS_convert_enabled): | |
| Removed. All callers updated. | |
| 2026-06-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| TEXINFO_XS_* variables no longer obeyed | |
| * tta/perl/Texinfo/XSLoader.pm | |
| (XS_parser_enabled, XS_structuring_enabled, XS_convert_enabled): | |
| Ignore environment variables TEXINFO_XS_PARSER, | |
| TEXINFO_XS_STRUCTURE and TEXINFO_XS_CONVERT. Only heed TEXINFO_XS. | |
| * tta/tests/run_parser_all.sh (check_strxfrm_ok): | |
| Only check TEXINFO_XS. | |
| * doc/texinfo.texi (texi2any Environment Variables): | |
| Remove documentation of these variables. | |
| * NEWS, README-hacking, INSTALL: updated. | |
| 2026-06-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_cmd_tests.sh (gather_tests): redirect stdin | |
| by calling exec within the script instead of redirecting the while | |
| loop input because in Solaris 10 /bin/sh a while loop with redirection | |
| is in a subshell and the change to type_test_files remains local. | |
| Solution by Gavin. | |
| 2026-06-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c | |
| (reset_unset_no_arg_commands_formatting_context): use else instead of | |
| else if for a condition that is always true to help compiler | |
| understand that a variable cannot be uninitialized. | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info): | |
| fix nesting. | |
| * tta/C/structuring_transfo/transformations.c | |
| (protect_first_parenthesis): add parenthesis around flag matching. | |
| 2026-06-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/Makefile.am (DocumentXS_la_LIBADD): libtexinfo.la | |
| is needed, not libtexinfo-convert.la. | |
| 2026-06-22 Patrice Dumas <pertusus@free.fr> | |
| * tta: run "gnulib-tool --add-import unistr/u32-strdup", needed | |
| by unicode-collation/collation_key.c. | |
| 2026-06-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_cmd_tests.sh, autogen.sh, | |
| tta/tests/Makefile.am: do not remove the previous one test script | |
| files in regenerate_cmd_tests.sh but in calls in autogen.sh and | |
| Makefile.am. | |
| 2026-06-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_cmd_tests.sh, autogen.sh, | |
| tta/tests/Makefile.am: do not do a cd in regenerate_cmd_tests.sh and | |
| remove the destdir argument. | |
| 2026-06-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/run_parser_all.sh: remove code related to html2wiki and | |
| mediawiki.pm that were relevant in texi2html only. | |
| 2026-06-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/call_conversion_perl.c | |
| (call_config_GNUT_load_init_file): allow count to be 1 although it | |
| should be 0, as on Solaris 11 with Perl 5.10.1 it is 1. | |
| 2026-06-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/many_input_files/Makefile.am (distclean-local): remove | |
| raw_out_native. | |
| 2026-06-21 Patrice Dumas <pertusus@free.fr> | |
| * maintain/generate_many_input_files_native_tests.sh, | |
| tta/tests/many_input_files/Makefile.am (native_test_scripts_target): | |
| add a script that generates test scripts wrapper around | |
| many_input_files test scripts, with _native postpended to the script | |
| name and calling the script with -native. | |
| * tta/tests/many_input_files/Makefile.am (test_scripts) | |
| (native_test_scripts, TESTS): distribute native command tests and add | |
| them as tests. | |
| * tta/tests/many_input_files/*.sh: fix logs and diff by adding tested | |
| command language ${dir_suffix}. | |
| 2026-06-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/many_input_files/*.sh: distinguish outdir and basename. | |
| rename raw_output_dir as raw_out_dir. Add -native command-line | |
| argument to select the command tested. Prepend the language of the | |
| tested command to the out directories. Use tested_command instead of | |
| TESTS_MAIN_COMMAND. | |
| * tta/tests/many_input_files/Makefile.am (copy-tex-html, copy-tests): | |
| update. | |
| 2026-06-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/run_parser_all.sh: change variables names, use | |
| TESTS_MAIN_COMMAND only if set, set language based on input command | |
| name. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/configure.ac: do not set TESTS_MAIN_COMMAND if prefer_c_t2a is | |
| set, as now the native command is always tested. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/run_parser_all.sh: fix diff file names. | |
| * tta/tests/run_parser_all.sh, tta/tests/*/Makefile.am: use perl | |
| instead of parser in tests output directories name. | |
| * tta/tests/README: update. | |
| * tta/tests/Makefile.am (clean-tests): also clean native command | |
| tests. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/nested_formats/Makefile.am (EXTRA_DIST): no more | |
| res_parser_html. | |
| * tta/tests/*/Makefile.am (distclean-local): remove new output | |
| directories. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/run_parser_all.sh (post_process_output): copy only the | |
| stderr file that is modified afterwards to raw_outdir. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| Test native ctexi2any command | |
| * tta/maintain/regenerate_cmd_tests.sh: generate native command tests. | |
| * tta/tests/Makefile.am (TESTS, tex_html_tests, other_tests): add | |
| native tests scripts. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_cmd_tests.sh: fix output of language_option | |
| variable. | |
| * tta/tests/run_parser_all.sh, tta/maintain/regenerate_cmd_tests.sh: | |
| use a per command language log file. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_cmd_tests.sh (gather_tests) | |
| (one_language_test_files): generate set test files by command language | |
| implementation, add a language argument to gather_tests, add the | |
| one_language_test_files variable, and the language name in the test | |
| script name. | |
| * tta/tests/Makefile.am (TESTS, tex_html_tests, other_tests): add | |
| tex_html_tests and other_tests for the list of tex_html and other | |
| tests files. Update variables names. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/parser_tests.sh, tta/tests/run_parser_all.sh: add -native | |
| command-line, that selects ctexi2any and put results in a different | |
| directory. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_cmd_tests.sh: reindent, remove unused code | |
| line. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (get_converter_indices_sorted_by_index) | |
| (get_converter_indices_sorted_by_letter): free | |
| input_lang_sorting_locale later on, as lang_sorting_locale may point | |
| to the input_lang_sorting_locale memory location. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/README, tta/tests/run_parser_all.sh: remove the # format | |
| in list of tests formats specification code and remove the associated | |
| documentation. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/Makefile.onetst, tta/tests/nested_formats/list-of-tests: | |
| remove the # format "magic" specification of tested formats in | |
| nested_formats/list-of-tests, set manually the list of all the tests. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm | |
| (_converter_indices_sort_strings), tta/perl/Texinfo/Document.pm | |
| (_document_indices_sort_strings): call indices_information() before | |
| merged_indices, and use the result in the | |
| setup_index_entries_sort_strings call instead of calling again. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_prepare_indices): reorganize | |
| conditions. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/document.c (document_indices_sort_strings): remove | |
| error_messages and options arguments, get them from document. Update | |
| callers. | |
| * tta/C/main/document.c (document_sorted_indices_by_index) | |
| (document_sorted_indices_by_letter): remove error_messages and options | |
| arguments, get them from document. Update callers. | |
| 2026-06-20 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (@anchor): @anchor as alias for node is | |
| after chapter structuring command, not before. Report from Patrice. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/texi2any.pl (%formats_table): remove unused | |
| 'setup_index_entries_sort_strings' field. | |
| 2026-06-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (converter_indices_sort_strings), | |
| tta/C/main/document.c (document_indices_sort_strings), | |
| tta/C/main/manipulate_indices.c (setup_index_entries_sort_strings), | |
| tta/perl/Texinfo/Convert/Converter.pm | |
| (_converter_indices_sort_strings), tta/perl/Texinfo/Document.pm | |
| (_document_indices_sort_strings), tta/perl/Texinfo/Indices.pm | |
| (setup_index_entries_sort_strings): pass debug_level as argument to | |
| setup_index_entries_sort_strings to be more independent of document | |
| and converter options specifics. | |
| 2026-06-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Document.pm (_document_indices_sort_strings), | |
| tta/perl/Texinfo/DocumentNonXS.pm, | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs: move | |
| _document_indices_sort_strings to Document.pm and call | |
| indices_information() in the function to have indices built to Perl if | |
| with XS. Remove the XS override. | |
| 2026-06-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/DocumentNonXS.pm (_document_indices_sort_strings): | |
| rename document_indices_sort_strings as | |
| _document_indices_sort_strings. | |
| * tta/perl/Texinfo/Document.pm (sorted_indices_by_letter) | |
| (sorted_indices_by_index): do not call merged_indices, it is already | |
| called in _document_indices_sort_strings. Change calling prototype. | |
| * tta/perl/Texinfo/DocumentNonXS.pm | |
| (print_document_indices_sort_strings): remove a spurious my. | |
| * tta/C/main/build_perl_info.c (fill_document_hv): remove unused | |
| variable. | |
| * tta/perl/t/z_misc/test_sort.t: add test of | |
| Texinfo::Document::sorted_indices_by_index. | |
| 2026-06-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/test_sort.t: replace a call of | |
| document_indices_sort_strings by a call of | |
| Texinfo::Indices::setup_index_entries_sort_strings, such that | |
| document_indices_sort_strings is only called from XS overriden | |
| functions. | |
| 2026-06-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (fill_document_hv): do not build the | |
| 'index_entries_sort_strings' hash of built Perl Document, it is built | |
| on-demand. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm | |
| (index_entry_first_letter_text_or_command): remove unused argument. | |
| * doc/texi2any_api.texi (Specific Formatting for Indices): update. | |
| 2026-06-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (GNU Sample Texts): | |
| Remove "start of header" and "end of header" lines. | |
| 2026-06-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (@anchor): State that @anchor giving an alias | |
| for a @node should be placed immediately after the node line. | |
| Report from Arsen Arsenović. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm | |
| (converter_index_content_element, _idx_leading_text_or_command) | |
| (index_entry_first_letter_text_or_command), | |
| tta/perl/Texinfo/Indices.pm: move | |
| index_entry_first_letter_text_or_command and | |
| converter_index_content_element to Converter. Update callers. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (_get_collation_lang_info, get_converter_indices_sorted_by_index) | |
| (get_converter_indices_sorted_by_letter): merge condition determining | |
| language and lang_key. Add _get_collation_lang_info for the common | |
| code determining language and lang_key. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (get_converter_indices_sorted_by_index) | |
| (get_converter_indices_sorted_by_letter), | |
| tta/perl/Texinfo/Convert/Converter.pm, | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (get_converter_indices_sorted_by_letter) | |
| (get_converter_indices_sorted_by_index): inline and remove | |
| converter_sorted_indices_by_index in | |
| get_converter_indices_sorted_by_index and | |
| converter_sorted_indices_by_letter in | |
| get_converter_indices_sorted_by_letter. | |
| * tta/perl/Texinfo/Indices.pm (_setup_collator): remove useless | |
| condition. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c: move code around. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_indices.c | |
| (wrap_converter_index_content_element), tta/C/convert/converter.c, | |
| tta/C/main/manipulate_indices.c (wrap_element_index_content_element) | |
| (index_entry_element_sort_string, setup_index_entries_sort_strings), | |
| tta/perl/XSTexinfo/parser_document/IndicesXS.xs | |
| (index_entry_element_sort_string): add and use a function reference in | |
| argument of entry_tree_element_sort_string for the | |
| index_content_element call. Add wrap_element_index_content_element | |
| and wrap_converter_index_content_element around | |
| *_index_content_element implementations to have a common prototype and | |
| be passed or used in entry_tree_element_sort_string. Pass to | |
| index_content_element wrapper to setup_index_entries_sort_strings. | |
| Remove converter_index_entry_element_sort_string and | |
| entry_tree_element_sort_string. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c | |
| (setup_sort_sortable_strings_collator), tta/perl/Texinfo/Indices.pm | |
| (_setup_sort_sortable_strings_collator): inline | |
| setup_sortable_index_entries in setup_sort_sortable_strings_collator | |
| and remove the function. | |
| * tta/C/main/manipulate_indices.c, tta/perl/Texinfo/Indices.pm: move | |
| code around. | |
| * tta/perl/Texinfo/Indices.pm: remove _def_command_index_entry. | |
| 2026-06-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/texinfo.i (txi_ext_inline_setup): remove the | |
| converterdatadir argument and code, it is not used. | |
| 2026-06-17 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Specific Formatting for Indices): update. | |
| Update Pod documentation. | |
| 2026-06-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/parser_document/IndicesXS.xs | |
| (index_entry_element_sort_string): handle converter argument being | |
| set (this case never happens in practice). | |
| 2026-06-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Document.pm (BEGIN), tta/perl/XSTexinfo/Makefile.am | |
| (DocumentXS_la_CPPFLAGS, DocumentXS_la_LIBADD), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs: remove includes and | |
| linking with converter headers and libraries. | |
| 2026-06-17 Gavin Smith <gavinsmith0123@gmail.com> | |
| Sync from experimental/unicode-collation | |
| * tta/C/main/unicode-collation/collation_data_loader.h, | |
| * tta/C/main/unicode-collation/collation_data_lookup.h: | |
| rename and update. | |
| * tta/C/main/unicode-collation/collation_data_loader.c, | |
| * tta/C/main/unicode-collation/collation_data_lookup.c: | |
| rename and update. | |
| * tta/C/main/unicode-collation/collation_key.c, | |
| * tta/C/main/unicode-collation/collation-table.c, | |
| * tta/C/main/unicode-collation/collation_key.h: update. | |
| * tta/C/main/manipulate_indices.c (get_sort_key) update calling code. | |
| 2026-06-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Indices.pm (element_index_content_element), | |
| tta/C/main/manipulate_indices.c (element_index_content_element): | |
| rename document_index_content_element as | |
| element_index_content_element. Update callers. | |
| * tta/C/main/manipulate_indices.c (index_entry_element_sort_string) | |
| (setup_index_entries_sort_strings): add an explicit document argument. | |
| Update callers. | |
| * tta/C/main/manipulate_indices.c (index_entry_element_sort_string), | |
| tta/perl/XSTexinfo/parser_document/IndicesXS.xs | |
| (index_entry_element_sort_string): set debug_level to valid values, | |
| based on options in setup_index_entries_sort_strings and | |
| directly use debug_level in argument in | |
| index_entry_element_sort_string. | |
| 2026-06-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/texinfo.c (txi_complete_document): remove unused | |
| converter and element_cdt_tree_fn arguments. Update caller. | |
| * tta/C/main/build_perl_info.c (build_sv_options_from_options_list) | |
| (build_sv_converter_info_from_converter_initialization_info): remove | |
| converter argument as there should never be a converter already set in | |
| situation where these functions are called. Update callers. | |
| * tta/C/texi2any.c (main), tta/perl/texi2any.pl: move converter | |
| creation later now that there is no index sorting earlier needing a | |
| converter anymore. | |
| * tta/C/texi2any.c (main): error out if there is no converter | |
| at all, a situation which should never happen if the formats table is | |
| well done. | |
| 2026-06-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/document.c (document_sorted_indices_by_index) | |
| (document_sorted_indices_by_letter) | |
| (print_document_indices_sort_strings), | |
| tta/perl/Texinfo/DocumentNonXS.pm | |
| (print_document_indices_sort_string), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs | |
| (print_document_indices_sort_strings): remove unused converter | |
| arguments. Update callers. | |
| * tta/perl/t/test_utils.pl (test): remove use of a converter for | |
| a print_document_indices_sort_strings call with converter, as it is | |
| not possible anymore. | |
| * tta/perl/Texinfo/Convert/Converter.pm | |
| (_converter_indices_sort_strings): rename | |
| converter_indices_sort_strings as _converter_indices_sort_strings. | |
| * tta/perl/Texinfo/DocumentNonXS.pm (document_indices_sort_strings), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs: put | |
| setup_indices_sort_strings code in document_indices_sort_strings and | |
| remove setup_indices_sort_strings, since it is not called anymore. | |
| * tta/C/convert/texinfo.h, tta/swig/texinfo.i: remove | |
| STTF_setup_index_entries_sort_strings now that it has no effect. | |
| Update users. | |
| 2026-06-16 Patrice Dumas <pertusus@free.fr> | |
| Add separate functions to sort index entries and cache in converters | |
| * tta/C/Makefile.am (C_libtexinfo_convert_sources): add | |
| tta/C/convert/convert_indices.c. | |
| * tta/C/convert/convert_indices.c (new_index_entry_text_or_command) | |
| (idx_leading_text_or_command) | |
| (index_entry_first_letter_text_or_command): move to convert_indices.c, | |
| since index_entry_first_letter_text_or_command should only be called | |
| from converters. | |
| * tta/C/main/document.c (document_sorted_indices_by_index) | |
| (document_sorted_indices_by_letter): rename sorted_indices_by_index as | |
| document_sorted_indices_by_index and sorted_indices_by_letter as | |
| document_sorted_indices_by_letter. | |
| * tta/C/main/manipulate_indices.c (document_index_content_element), | |
| tta/perl/Texinfo/Indices.pm (document_index_content_element): | |
| rename index_content_element as document_index_content_element. | |
| * tta/perl/Texinfo/DocumentNonXS.pm (document_indices_sort_strings): | |
| remove indices_sort_strings as document_indices_sort_strings. Update | |
| callers. | |
| * tta/C/main/manipulate_indices.c (get_index_content_info_element) | |
| (document_index_content_element), tta/perl/Texinfo/Indices.pm | |
| (get_index_content_info_element, document_index_content_element): | |
| add get_index_content_info_element that gets index content element for | |
| the cases where translation is not needed, and also gets information | |
| on object-oriented definitions that can be used by the caller to | |
| prepare an index content element. Remove def_command_index_entry. | |
| * tta/C/main/manipulate_indices.c (entry_tree_element_sort_string) | |
| (index_entry_element_sort_string): add entry_tree_element_sort_string | |
| based on index_entry_element_sort_string code. | |
| * tta/C/main/manipulate_indices.c (setup_index_entries_sort_strings): | |
| add index_entry_element_sort_string_fn argument to be able | |
| to use a different function than the index_entry_element_sort_string | |
| default, when called from converters. A function argument instead of | |
| a call to a function if converter argument is set is used to avoid | |
| depending on the libtexinfo-converter library. | |
| * tta/C/main/document.c (document_sorted_indices_by_index) | |
| (document_sorted_indices_by_letter), | |
| tta/C/main/manipulate_indices.c (new_collation_sorted_indices_by_index) | |
| (new_base_collations_sorted_indices_by_index) | |
| (get_collation_sorted_indices_by_index) | |
| (new_base_collations_sorted_indices_by_letter) | |
| (get_collation_sorted_indices_by_letter): | |
| add new_base_collations_sorted_indices_by_index, | |
| get_collation_sorted_indices_by_index, | |
| new_base_collations_sorted_indices_by_letter and | |
| get_collation_sorted_indices_by_letter based on | |
| document_sorted_indices_by_* code and call these functions. | |
| move new_collation_sorted_indices_by_index, | |
| find_collation_sorted_indices_by_index, | |
| new_collation_sorted_indices_by_letter and | |
| find_collation_sorted_indices_by_letter to manipulate_indices.c. | |
| * tta/C/main/document.c (document_sorted_indices_by_index) | |
| (document_sorted_indices_by_letter), tta/C/main/manipulate_indices.c | |
| (sort_indices_by_index) (sort_indices_by_letter, | |
| setup_sort_sortable_strings_collator), tta/perl/Texinfo/Document.pm | |
| (sorted_indices_by_letter) (sorted_indices_by_index), | |
| tta/perl/Texinfo/Indices.pm (_setup_sort_sortable_strings_collator) | |
| (sort_indices_by_index, sort_indices_by_letter): | |
| use indices_sort_strings as argument to sort_indices_by_index, | |
| sort_indices_by_letter and setup_sort_sortable_strings_collator, do | |
| not call document_indices_sort_strings in those functions, but in | |
| document_sorted_indices_by_index, document_sorted_indices_by_letter | |
| before calling sort_indices_by_index or sort_indices_by_letter. | |
| * tta/C/convert/converter.c | |
| (converter_index_entry_element_sort_string) | |
| (converter_indices_sort_strings, converter_sorted_indices_by_index) | |
| (get_converter_indices_sorted_by_index) | |
| (converter_sorted_indices_by_letter) | |
| (get_converter_indices_sorted_by_letter), | |
| tta/C/convert/convert_indices.c (converter_index_content_element) | |
| (index_entry_first_letter_text_or_command), | |
| tta/C/main/converter_types.h (CONVERTER), | |
| tta/C/main/manipulate_indices.c (document_index_content_element), | |
| tta/perl/Texinfo/Convert/Converter.pm (converter_indices_sort_strings) | |
| (_converter_sorted_indices_by_letter) | |
| (_converter_sorted_indices_by_index), | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (get_converter_indices_sorted_by_letter) | |
| (get_converter_indices_sorted_by_index), | |
| tta/perl/Texinfo/Indices.pm (converter_index_content_element), | |
| tta/perl/Texinfo/IndicesNonXS.pm (index_entry_element_sort_string): add | |
| index sorting functions for converters that cache in the converter, | |
| using the new fields indices_sort_strings, sorted_indices_by_index and | |
| sorted_indices_by_letter, and use converter information. Use those | |
| functions in get_converter_indices_sorted_by_*, in | |
| index_entry_first_letter_text_or_command and in converters. | |
| Remove document_index_content_element converter and consider only the | |
| case of no converter in this function. Update | |
| callers, replacing index_content_element by | |
| converter_index_content_element in converters. Remove | |
| index_content_element. | |
| * tta/C/main/document.c (document_indices_sort_strings), | |
| tta/perl/Texinfo/Document.pm (sorted_indices_by_letter) | |
| (sorted_indices_by_index), tta/perl/Texinfo/DocumentNonXS.pm | |
| (document_indices_sort_strings), tta/perl/Texinfo/Indices.pm | |
| (sort_indices_by_index, sort_indices_by_letter), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs | |
| (document_indices_sort_strings): remove converter | |
| argument. Update callers. | |
| * tta/perl/XSTexinfo/parser_document/DocumentXS.xs | |
| (setup_indices_sort_strings): never use the converter argument. | |
| * tta/C/convert/texinfo.c (txi_complete_document), | |
| tta/perl/texi2any.pl: do not call document_indices_sort_strings or | |
| Document::setup_indices_sort_strings in advance anymore, as the sorted | |
| index entries used by converters are not in the document anymore. | |
| * tta/C/main/manipulate_indices.c (destroy_sorted_indices_by_index) | |
| (destroy_sorted_indices_by_letter), tta/C/main/document.c | |
| (destroy_document_information_except_tree): add | |
| destroy_sorted_indices_by_index and destroy_sorted_indices_by_letter | |
| based on destroy_document_information_except_tree code. | |
| * tta/perl/Texinfo/Convert/Converter.pm (conversion_initialization), | |
| tta/perl/Texinfo/Convert/DocBook.pm (converter_initialize), | |
| tta/perl/Texinfo/Convert/LaTeX.pm (conversion_initialization), | |
| tta/perl/Texinfo/Convert/Plaintext.pm (conversion_initialization): | |
| call set_document even if document is undef, to get the other | |
| initialization/destructions. | |
| * tta/C/convert/converter.c (destroy_converter_index_sorting) | |
| (converter_set_document, free_generic_converter), | |
| tta/C/main/build_perl_info.c (pass_document_sv_to_converter_sv), | |
| tta/perl/Texinfo/Convert/Converter.pm (converter_perl_release), | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm (set_document): | |
| destroy index sorting information set in converter. Destroy document | |
| in set_document if input document is undef. | |
| * tta/C/convert/converter.c (element_cdt_tree): add and call | |
| html_element_cdt_tree from this function only and call this function | |
| directly in converter_index_content_element. Remove all the now | |
| unneeded element_cdt_tree_fn arguments. | |
| * tta/perl/t/z_misc/test_sort.t: update. | |
| 2026-06-15 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c (def_command_index_entry), | |
| tta/C/main/translations.h, tta/perl/Texinfo/Indices.pm | |
| (_def_command_index_entry): do not use a different cache for | |
| translation without a converter, use the same cache as converters. | |
| Remove the unused cache variables and comment out | |
| TXI_PARSER_STRINGS_NR. | |
| 2026-06-15 Patrice Dumas <pertusus@free.fr> | |
| update po | |
| 2026-06-15 Patrice Dumas <pertusus@free.fr> | |
| * po_document/Makevars (XGETTEXT_OPTIONS): add element_cdt*. | |
| * Makefile.am (po_document-check), po_document/POTFILES.in: update. | |
| 2026-06-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): set element_cdt_tree_fn to | |
| html_element_cdt_tree if outputting HTML. | |
| * tta/perl/Makefile.am (test_files), | |
| tta/perl/t/input_files/customize_definition_index_translations.texi, | |
| tta/perl/t/init_files_tests.t | |
| (customize_definition_index_translations), tta/tests/Makefile.onetst, | |
| tta/tests/customization/list-of-tests | |
| (translated_strings_customization): move | |
| customize_definition_index_translations Texinfo to the | |
| customize_definition_index_translations.texi and use it for a test of | |
| the command in tests/customization/list-of-tests. | |
| 2026-06-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c: rename cdt_element_tree_fn as | |
| element_cdt_tree_fn. | |
| * tta/C/convert/converter.c (converter_format_data) | |
| (get_converter_indices_sorted_by_index) | |
| (get_converter_indices_sorted_by_letter), tta/C/convert/converter.h | |
| (CONVERTER_FORMAT_DATA): add element_cdt_tree field in | |
| CONVERTER_FORMAT_DATA, set it for HTML and get it in | |
| get_converter_indices_sorted_by_*. | |
| * tta/C/convert/texinfo.c (txi_complete_document), | |
| tta/C/main/document.c (document_indices_sort_strings) | |
| (sorted_indices_by_index, sorted_indices_by_letter) | |
| (print_document_indices_sort_strings), | |
| tta/C/main/manipulate_indices.c (index_entry_element_sort_string) | |
| (setup_index_entries_sort_strings) | |
| (setup_sort_sortable_strings_collator, sort_indices_by_index) | |
| (sort_indices_by_letter), tta/perl/Texinfo/DocumentNonXS.pm | |
| (print_document_indices_sort_strings), | |
| tta/perl/Texinfo/IndicesNonXS.pm (index_entry_element_sort_string), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs | |
| (setup_indices_sort_strings, indices_sort_strings) | |
| (print_document_indices_sort_strings), tta/swig/texinfo.i: | |
| pass converter in Perl and converter and HTML specific function from | |
| index sorting and print_document_indices_sort_strings down to | |
| indices_sort_strings or index_content_element. Update callers. | |
| * tta/C/convert/html_prepare_converter.c (html_converter_customize) | |
| (html_conversion_initialization): set self->current_* in | |
| html_converter_customize and not right before starting to output, as | |
| the current_* struct fields may be used in code called before starting | |
| the conversion, mainly for index strings sorting to use a customized | |
| function for translation. | |
| * tta/C/texi2any.c (main), tta/perl/t/test_utils.pl (test), | |
| tta/perl/texi2any.pl: setup converter earlier to have it for the call | |
| to setup_indices_sort_strings or txi_complete_document. | |
| * tta/perl/Texinfo/Document.pm (BEGIN), tta/perl/XSTexinfo/Makefile.am | |
| (DocumentXS_la_CPPFLAGS, DocumentXS_la_LIBADD): link DocumentXS | |
| against conversion library now that a converter and associated | |
| functions may be needed for index strings sorting translation | |
| customization. | |
| 2026-06-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_custom_translate_string): use | |
| current_formatting_references. | |
| 2026-06-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.h (TXI_CONVERT_STRINGS_NR): the formerly | |
| parser only strings are now also translated by converters. | |
| 2026-06-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/init/translated_strings_customization.pm (%translations), | |
| tta/perl/t/init_files_tests.t | |
| (customize_definition_index_translations), tta/perl/Makefile.tres: add | |
| test of definition index strings translations. | |
| 2026-06-14 Patrice Dumas <pertusus@free.fr> | |
| Customization of HTML translation for object oriented definitions index | |
| * tta/perl/Texinfo/Convert/Converter.pm (element_cdt), | |
| tta/perl/Texinfo/Convert/HTML.pm (element_cdt), | |
| tta/C/convert/convert_html.c (html_element_cdt_tree): add wrappers for | |
| converters for translation based on element language information. | |
| * tta/C/main/manipulate_indices.c (def_command_index_entry) | |
| (index_content_element, index_entry_element_sort_string) | |
| (index_entry_first_letter_text_or_command), | |
| tta/perl/Texinfo/Indices.pm (_def_command_index_entry) | |
| (index_content_element, index_entry_first_letter_text_or_command), | |
| tta/perl/Texinfo/IndicesNonXS.pm (index_entry_element_sort_string): | |
| pass converter in Perl down to def_command_index_entry and use | |
| element_cdt if the converter is passed, and pass converter and a | |
| function reference in C. Update callers. | |
| * tta/C/main/manipulate_indices.c (index_entry_element_sort_string), | |
| tta/perl/XSTexinfo/parser_document/IndicesXS.xs | |
| (index_entry_element_sort_string): add debug level argument to | |
| index_entry_element_sort_string. | |
| 2026-06-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\initial): Reduce optional space at the end | |
| of a column (in the index two-column layout) from 5 lines to 4 lines. | |
| 2026-06-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/txi-nb.tex: Define sort strings for Æ, Ø and Å. | |
| * doc/texinfo.tex (\idxsort): Provide definition of sequence used | |
| in translation files to improve reliability. | |
| 2026-06-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/txi-is.tex: fix comment | |
| 2026-06-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/txi-is.tex: Define sort strings for Þ, Æ, and Ö. | |
| 2026-06-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk (string_compare_internal): | |
| If characters not in order array, use < to compare them. | |
| 2026-06-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk (BEGIN): Fix case-insensitive ordering | |
| to keep non-ASCII values after ASCII characters. | |
| (extract_initial): fix comment. | |
| * doc/txi-es.tex: add special sort strings for ñ and Ñ. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_prepare_index_entries_targets) | |
| (output_internal_links), tta/perl/Texinfo/Convert/LaTeX.pm | |
| (_index_entry), tta/perl/Texinfo/Convert/Plaintext.pm | |
| (process_printindex), tta/perl/Texinfo/Indices.pm | |
| (index_entry_first_letter_text_or_command) | |
| (setup_index_entries_sort_strings), tta/perl/Texinfo/IndicesNonXS.pm | |
| (index_entry_element_sort_string): set debug argument of | |
| index_content_element, add debug argument and set argument of | |
| index_entry_first_letter_text_or_command and | |
| index_entry_element_sort_string. | |
| * tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm, | |
| tta/perl/Texinfo/Convert/Plaintext.pm: use intermediary variable for | |
| DEBUG to avoid calling get_conf too often. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/convert_utils.c (definition_category_tree), | |
| tta/perl/Texinfo/Convert/Utils.pm (definition_category_tree): use | |
| def_class_method and def_class_variable commands flags. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ManipulateTree.pm (_copy_tree, tree_remove_parents) | |
| (_element_remove_references, @extra_out_of_tree), | |
| tta/C/main/tree_types.h (AI_KEYS_LIST): remove def_index_element and | |
| def_index_ref_element related definitions and code, as they are not in | |
| the tree anymore. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_convert_printindex_command): build | |
| tree for level 0 index entry container. | |
| * tta/perl/Texinfo/Indices.pm (_remove_def_types): add. | |
| * tta/C/main/manipulate_indices.c (def_command_index_entry) | |
| (index_content_element), tta/C/parsetexi/end_line.c | |
| (end_line_def_line), tta/perl/Texinfo/Indices.pm | |
| (_def_command_index_entry, index_content_element), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_def_line): rename | |
| set_def_command_index_entry as def_command_index_entry. Do not set | |
| def_index_element nor def_index_ref_element in def_command_index_entry | |
| or in end_line_def_line, instead return the new element from | |
| def_command_index_entry, including if there was no need for | |
| translation. Also make a copy of the returned element in | |
| index_content_element if the index entry is not a def command index | |
| entry. Update C callers of index_content_element to destroy the | |
| returned element. | |
| 2026-06-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| TexiWeb Jr. removal updates | |
| * grand-replace.sh, | |
| * README-hacking, | |
| * TODO, | |
| * texindex/README: update for twjr removal. | |
| 2026-06-13 Gavin Smith <gavinsmith0123@gmail.com> | |
| texindex: by default, do not merge entries if text differs | |
| * texindex/texindex.awk | |
| (usage, BEGIN): Add --combine-equal-keys option. Set CombineEqualKeys | |
| variable if given. | |
| (main block) [!CombineEqualKeys]: Only eliminate duplicate | |
| entries if index entry text is equal as well as the sort key being | |
| equal. | |
| (index_compare) [!CombineEqualKeys]: Compare the index text if the | |
| sort keys are identical. | |
| (write_index_entry) | |
| (maybe_print_primary_entry, maybe_print_secondary_entry): | |
| Split out maybe_print_primary_entry, maybe_print_seconary_entry. | |
| Construct key to represent primary or secondary entry depending | |
| on the --combine-equal-keys setting. | |
| 2026-06-12 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk (write_index_entry): | |
| Take index key as argument directly, rather than index into the | |
| Index array. | |
| (check_split_null): Set Can_split_null global variable directly, | |
| rather than relying on the caller to do it. | |
| No functional change intended. | |
| 2026-06-12 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk (string_compare_internal): | |
| Compare values with a subtraction, as stated in comment about | |
| Ordval initialization. This is more concise and also is slightly | |
| faster. | |
| 2026-06-12 Gavin Smith <gavinsmith0123@gmail.com> | |
| * README-hacking, AUTHORS: update for no longer using TexiWeb Jr. | |
| * configure.ac: do not set GAWK variable. | |
| 2026-06-12 Gavin Smith <gavinsmith0123@gmail.com> | |
| texindex: separate ordering array for case-insensitive comparison | |
| * texindex/texindex.awk (BEGIN, Ordval, Ordval_ignorecase): | |
| Use separate array for case-insensitive ordering of bytes. | |
| (string_compare_internal): Add array argument for ordering. | |
| (string_compare): Call string_compare_internal. | |
| (string_compare_ignorecase, string_compare_noignorecase): | |
| Remove functions. | |
| This results in around a 40% reduction in runtime, as it avoids | |
| calling isalpha and tolower on every byte in the strings being | |
| sorted. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| Add def_class_variable and def_class_method flags | |
| * tta/C/main/builtin_commands.h, tta/data/command_data.txt: add | |
| def_class_variable and def_class_method flags. | |
| * tta/C/parsetexi/end_line.c (end_line_def_line), | |
| tta/C/main/manipulate_indices.c (set_def_command_index_entry), | |
| tta/perl/Texinfo/Indices.pm (_set_def_command_index_entry), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_def_line): use the new | |
| flags. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/builtin_commands.h, tta/C/main/command_data.awk (END): | |
| move preformatted_code to other flags. Update code checking that | |
| flag. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/python/Makefile.am (SWIG_header_dependencies): add missing | |
| dependencies. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| Remove accent flag, accent brace command data can be used instead | |
| * tta/C/api_for_swig/swig_element_types.h, tta/data/command_data.txt, | |
| tta/perl/Texinfo/Convert/HTML.pm (%accent_commands), | |
| tta/C/main/builtin_commands.h, tta/perl/Texinfo/Commands.pod: remove | |
| accent flag, use brace flag and brace command data equal to accent | |
| instead. Update code using accent flags. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| Format @defcv like other variable definitions with class and category | |
| * tta/C/parsetexi/end_line.c (end_line_def_line), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_def_line): add defcv to | |
| list of @-commands with a need for translation. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c (set_def_command_index_entry) | |
| (index_content_element), tta/C/parsetexi/indices.c, | |
| tta/C/parsetexi/parser.c (parse_texi), tta/perl/Texinfo/Indices.pm | |
| (_set_def_command_index_entry, index_content_element), | |
| tta/perl/Texinfo/ParserNonXS.pm (_parse_texi): add | |
| set_def_command_index_entry based on complete_indices code for one def | |
| command element. Call set_def_command_index_entry in | |
| index_content_element to generate the tree corresponding to the index | |
| entry when needed. Remove complete_indices. Update | |
| index_content_element callers. | |
| * tta/swig/texinfo.i (txi_ext_inline_index_content_element): add | |
| for change in index_content_element. | |
| * tta/perl/Texinfo/ManipulateTree.pm (_element_remove_references): do | |
| not check refcount for def_index_element and def_index_ref_element as | |
| they may not have been created in C. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Indices.pm (complete_indices), | |
| tta/perl/Texinfo/Translations.pm: move complete_indices to Indices.pm. | |
| Update caller. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Indices.pm | |
| (index_content_element): move index_content_element to Indices.pm. | |
| Update callers. | |
| 2026-06-13 Patrice Dumas <pertusus@free.fr> | |
| * TODO, tta/TODO, tta/perl/ext/epub3.pm: update TODOs. | |
| 2026-06-10 Patrice Dumas <pertusus@free.fr> | |
| * NEWS: add Perl and Python SWIG modules. | |
| * tta/swig/texinfo.i (interface_version): increase (for incompatible | |
| change in setup function). | |
| 2026-06-08 Patrice Dumas <pertusus@free.fr> | |
| * NEWS: add @documentscript and @documentlanguagevariant. | |
| 2026-06-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| texindex: rename array | |
| * texindex/texindex.awk (Keys): Rename array to "Index". The | |
| contents do not need to be sort keys as far as they are used, | |
| just unique strings for identifying index entries. | |
| (main block): separate use of sort key as identifier for an | |
| index entry from use as a sort key. Add comment why it is better | |
| to eliminate duplicates at this stage. | |
| 2026-06-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk: Add comments with the meanings | |
| of several global variables. | |
| (main block): Store 1 instead of the sort key as the value in | |
| the Allkeys array, as the value isn't used. | |
| 2026-06-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| Change texindex sort order to two level case insensitive/sensitive | |
| * texindex/texindex.awk (string_compare) | |
| (string_compare_ignorecase, string_compare_noignorecase) | |
| (string_compare_internal): | |
| Add functions beyond string_compare. Replace character-by-character | |
| logic with two-pass comparison. The first is case insensitive, the | |
| second is case sensitive. | |
| * texindex/ti.texi: add test cases and try to explain the change. | |
| 2026-06-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Details of texindex): | |
| Remove old information about TexiWeb Jr. | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| Remove Texiweb Jr. infrastructure | |
| * texindex/jrweave, texindex/jrtangle: deleted | |
| * texindex/Makefile.am, man/Makefile.am: updated. | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.texi: delete most of file, keeping introductory | |
| sections and test cases. | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr, texindex/ti.texi: Rename to ti.texi | |
| in preparation for removal of most of file. | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk: add small number of heading comments | |
| to organise the file. | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk: add more text from ti.twjr in comments. | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk: initial tidy up. remove declarations | |
| of public domain copyright status. blank lines between functions. | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/texindex.awk: track file | |
| 2026-06-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr, texindex/Makefile.am: | |
| Rename jrtangle output file to ti.awk in preparation | |
| for committing texindex.awk as a non-generated file. | |
| 2026-06-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/09indices.t (sorting_of_symbols): skip test if Perl is | |
| too old (manually tested on Solaris 10). | |
| 2026-06-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/perl/t/20index_sort.t: skip comparison of sorting | |
| arrays if Perl is too old as SWIG corresponds to the C sorting, | |
| which is not compatible with texi2any Perl modules old Perl | |
| sorting order. | |
| 2026-06-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/09indices.t (sorting_of_symbols), tta/perl/Makefile.tres: | |
| add test with some symbols and spaces sorting test. Also a reference | |
| for the SWIG sorting test. | |
| 2026-06-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): call txi_load_interpreter only if | |
| embedded_interpreter is txi_interpreter_want_embedded, such that the | |
| interpreter is not loaded twice. | |
| 2026-06-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): initialize sort_element_count_text. Even | |
| though it is not possible to have it unnitialized, it is consistent | |
| with the code that is written as if sort_element_count_info could be | |
| NULL. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Library functions, Helper functions): | |
| Move node text and add comments at start of utility functions. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Comparing index entries): | |
| Move node text into comment in 'string_compare'. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Splitting the record): | |
| Move node text into comments. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Multilevel comparisons) | |
| (Comparing index entries): | |
| Move node text into comments. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Splitting the record): | |
| Inline chunks into function 'field_split', and move node text | |
| into comments. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Get initial): | |
| Move node text into a comment. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (printing a single entry): | |
| move node text into a comment. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (printing a single entry): | |
| inline chunks. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr: consistently place parameters and local | |
| variables on separate lines in function headers. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Remove duplicates): | |
| Remove node and inline chunks where they are used. | |
| (Store the data for this line): | |
| Inline "Set up control sequence regexps" chunk where it is used. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (printing top level, printing a single entry): | |
| Inline chunks "Print primary entry if necessary" and | |
| "Print secondary entry if necessary". | |
| 2026-06-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/configure.ac: set with_swig to no if not detected. | |
| 2026-06-07 Patrice Dumas <pertusus@free.fr> | |
| Enable SWIG interfaces building if detected | |
| * tta/configure.ac (swig): enable SWIG interfaces if swig is found. | |
| 2026-06-07 Patrice Dumas <pertusus@free.fr> | |
| Link statically SWIG interface with libtexinfo code | |
| * tta/C/Makefile.am (noinst_LTLIBRARIES, C_libtexinfo_LIBS) | |
| (libtexinfo_static_la_*, libtexinfo_convert_static_la_*) | |
| (libtexinfo_main_static_la_*): add internal static libraries without | |
| Perl calling code. | |
| * tta/swig/perl/Makefile.am (Texinfo_la_LIBADD), | |
| tta/swig/python/Makefile.am (_Texinfo_la_LIBADD): link against | |
| internal static library. | |
| 2026-06-07 Patrice Dumas <pertusus@free.fr> | |
| Never use a Perl interpreter in the SWIG interface | |
| * tta/swig/texinfo.i (txi_ext_inline_setup): remove loading of | |
| an interpreter or texi2any modules from txi_ext_inline_setup. | |
| Remove collation_language and collation_locale arguments of | |
| txi_ext_inline_get_index_sorted_by_index. Remove | |
| interpreter_use_types.h include. | |
| * tta/swig/perl/Makefile.PL, tta/swig/perl/Makefile.am (AM_CPPFLAGS), | |
| tta/swig/python/Makefile.am (AM_CPPFLAGS): remove USE_PERL_INTERPRETER | |
| and EMBED_PERL flags settings. Remove dependency on | |
| interpreter_use_types.h. | |
| * tta/swig/perl/t/20index_sort.t: remove language argument from | |
| Texinfo::get_index_sorted_by_index call and skip test of language | |
| tailored sorting as it is not possible anymore. | |
| * tta/swig/perl/parse_refold.pl, tta/swig/python/test_Texinfo.py: | |
| update call of Texinfo setup. | |
| * tta/swig/python/Makefile.am (AM_CPPFLAGS): remove linking against | |
| perl libraries. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (printing top level, printing a single entry): | |
| Inline chunks and eliminate indirection. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (End-of-file sorting and printing): | |
| Move node text into comments. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Store the data for this line): | |
| Inline "Split out and store the subparts of the sort key" chunk. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Get the initial, Processing each record): | |
| Move line calling extract_initial to "Processing each record", | |
| leaving the definition of extract_inital in "Get the initial". | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr: Remove all index entries | |
| stating where functions or variables are used. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Check for more initial): | |
| Remove node and inline chunk. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Processing each record): | |
| Move text to a comment before the block. This makes | |
| it easier to spot where the main, unlabelled block | |
| starts in the resulting awk program. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Processing each record): | |
| Reword a sentence slightly. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Setup for each input file) | |
| (Store the data for this line): | |
| Move some text from node into code comments. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Remove leading \entry): | |
| Remove node and inline code. | |
| 2026-06-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Set up and name fields): | |
| Remove node and inline chunks where they are used. | |
| 2026-06-06 Karl Berry <karl@freefriends.org> | |
| * doc/texinfo.texi: use "uppercase" and "lowercase" instead | |
| of "upper-case" and "lower-case" consistently, and other minor | |
| spelling and grammar fixes. | |
| 2026-06-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Assumptions): | |
| Add note about when it may not make sense to merge | |
| index entries with the same sort key. | |
| 2026-06-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Output form): Elaborate on what | |
| a "secondary index entry" is. | |
| 2026-06-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Input form): move a sentence. | |
| 2026-06-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Preface): Inline sub-nodes into this | |
| node with @subheading's. | |
| 2026-06-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (less_than, index_compare): | |
| Rename to index_compare. | |
| 2026-06-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (key_compare, string_compare): | |
| Rename to string_compare. Move text describing the function | |
| to a comment before the function. | |
| 2026-06-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (quicksort): Add comment explaining | |
| how to call the function and what the parameters mean. | |
| Inline @<Set compare mechanism@> and | |
| @<Do ``less than'' comparison@> chunks. | |
| 2026-06-06 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (Raw Formatter Commands): explain differently the | |
| relation between raw @html and EPUB, since raw EPUB can only happen in | |
| @documentinfo. Expand the example to include @ifnotepub @html. | |
| * doc/texinfo.texi (Document Metadata): use the exact same code as in | |
| "Raw Formatter Commands" node. | |
| 2026-06-06 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (Titlepage & Copyright Page): explain that in the | |
| default case, there is no title page output in HTML. | |
| * doc/texinfo.texi (Document Metadata): explain how Texinfo in | |
| @documentinfo ends up in metadata. | |
| * doc/texinfo.texi (Contents): contents can be after @end | |
| documentinfo. | |
| 2026-06-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Input form): Update for switch from | |
| \ to @ in index files. | |
| 2026-06-05 Patrice Dumas <pertusus@free.fr> | |
| Load an embedded Perl interpreter in SWIG only when needed | |
| * tta/C/convert/texinfo.c (txi_use_interpreter_load_modules): return a | |
| status. | |
| * tta/swig/texinfo.i (use_interpreter_state, txi_ext_inline_setup) | |
| (txi_ext_inline_get_index_sorted_by_index): setup loaded interpreter | |
| using txi_interpreter_want_embedded. Add | |
| txi_ext_inline_get_index_sorted_by_index wrapper around | |
| txi_ext_get_index_sorted_by_index that loads a Perl embedded | |
| interpreter if needed and calls txi_ext_get_index_sorted_by_index. | |
| Set use_interpreter_state to txi_interpreter_want_embedded in | |
| txi_ext_inline_setup if using an existing Perl interpreter and the | |
| call of txi_use_interpreter_load_modules succeeded. | |
| 2026-06-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/texinfo.c (txi_use_interpreter_load_modules) | |
| (txi_setup_load_interpreter), tta/C/texi2any.c (main), | |
| tta/swig/texinfo.i (txi_ext_inline_setup): split code loading modules | |
| but not embedding a Perl interpreter out of | |
| txi_setup_main_load_interpreter, since there is nothing in common with | |
| the case of embedding a Perl interpreter. Rename | |
| txi_setup_main_load_interpreter as txi_setup_load_interpreter. | |
| Update functions previously calling txi_setup_main_load_interpreter. | |
| * tta/swig/perl/parse_refold.pl, tta/swig/python/test_Texinfo.py, | |
| tta/swig/texinfo.i (txi_ext_inline_setup): change txi_ext_inline_setup | |
| argument to be a simple 1 or 0 to determine if using an interpreter | |
| instead of an enum interpreter_use. | |
| 2026-06-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/perl/t/20index_sort.t: add entries with sorting order | |
| changing with language. Add a test with sv language used for sorting. | |
| 2026-06-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_convert_tree_append): add | |
| type with missing conversion function in error message. | |
| 2026-06-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr (Top): remove @menu and @detailmenu. | |
| 2026-06-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| * texindex/ti.twjr: Use @nodedescription instead of explicit | |
| @menu throughout. | |
| 2026-06-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Avoid outputting extra spaces with index entry commands | |
| * doc/texinfo.tex (\checksortas, \checkseealso, \checkseeentry): | |
| Add missing % after {. | |
| Report from Arnold Robbins. | |
| 2026-06-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/call_perl_function.c (call_setup_collator), | |
| * tta/C/main/replace_perl_api_call.c (call_setup_collator): | |
| Remove unused function. | |
| 2026-06-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/C/main/manipulate_indices.c (setup_collator, get_sort_key): | |
| Remove #define NATIVE_UTS10_COLLATION and use | |
| NATIVE_UTS10_COLLATION code unconditionally. | |
| 2026-05-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/get_perl_info.c (get_output_files_information): remove | |
| useless check of value associated to file name in file information | |
| opened_files. | |
| Changes in comments. | |
| 2026-05-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (setup_converter_format): do not return | |
| from a void function (found on Solaris). | |
| 2026-05-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/other/list-of-tests (index_collation_test_html) | |
| (index_collation_test_collation_language_html) | |
| (index_collation_test_documentlanguage_collation_html): add tests of | |
| language tailored collation for HTML output. | |
| 2026-05-31 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/call_perl_function.c (call_setup_lang_collator), | |
| tta/perl/Texinfo/Indices.pm (_setup_lang_collator, _setup_collator): | |
| split _setup_lang_collator out of _setup_collator for a | |
| language tailored collation locale and add call_setup_lang_collator | |
| to call from C. | |
| * tta/C/main/manipulate_indices.c (setup_collator): call | |
| call_setup_lang_collator if the collation language is set. | |
| * tta/perl/Texinfo/Indices.pm (_setup_collator): minor change in code | |
| to make clearer that Texinfo::CollateStub is only used with | |
| $use_unicode_collation set. | |
| 2026-05-31 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking, tta/README: update for changes related to collation | |
| and languages. | |
| 2026-05-30 Patrice Dumas <pertusus@free.fr> | |
| * configure.ac: mandate Unicode::Collate. In particular to provide | |
| with the same features as C, which always include unicode collation | |
| now. | |
| * tta/perl/Texinfo/Indices.pm (_setup_collator): use Unicode::Collate | |
| and consider that it is always present. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (converter_format_data) | |
| (setup_converter_format), tta/C/convert/converter.h | |
| (CONVERTER_FORMAT_DATA), tta/C/convert/html_prepare_converter.c | |
| (html_format_setup): add format_setup function reference in | |
| CONVERTER_FORMAT_DATA and add setup_converter_format that calls | |
| setup_converter_generic and the format specific format_setup to | |
| initialize the converter format data. Add converter_format argument | |
| to html_format_setup. Update callers. | |
| * tta/C/texi2any.c (main): call setup_converter_format. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): verify if documentlanguage_collation_option | |
| and collation_language_option are NULL before accessing the value. | |
| * tta/perl/XSTexinfo/parser_document/DocumentXS.xs (init): reorganize | |
| code to avoid using an intermediary variable. | |
| * tta/C/convert/texinfo.c (txi_converter_output_format_setup), | |
| tta/C/texi2any.c (main), | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs (init), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs (init): call | |
| setup_converter_generic and html_format_setup from texi2any main | |
| and not from XS init functions when Perl is embedded and called from | |
| C. Leave only code loading Perl modules in | |
| txi_converter_output_format_setup. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/html_prepare_converter.c (html_format_setup), | |
| tta/perl/Texinfo/Convert/Converter.pm: do not call | |
| setup_converter_generic, instead add a comment in Converter.pm | |
| to explain that it should be loaded first. | |
| * tta/C/convert/converter.c (setup_converter_generic): consider | |
| that the function is called only once, now that it is not called | |
| from html_format_setup anymore. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c (setup_index_entries_sort_strings): | |
| use a cast to convert char *to uint8_t * and avoid a useless copy | |
| of the string. | |
| * tta/C/main/manipulate_indices.c (setup_index_entries_sort_strings): | |
| use locale variables for code clarity. | |
| * tta/C/main/unicode.c (utf8_from_string, string_from_utf8): remove | |
| comments, assume that casting is always a good way to convert between | |
| char and uint8_t. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main): load a Perl interpreter for the options | |
| triggering calling Perl functions from C, DOCUMENTLANGUAGE_COLLATION | |
| and COLLATION_LANGUAGE. Handle txi_sort_element_counts return value | |
| being NULL, even though it cannot happen right now because | |
| txi_sort_element_counts aborts rather than returning NULL. | |
| Add some const. | |
| * tta/C/convert/texinfo.c (txi_sort_element_counts): abort if the | |
| external_module argument is NULL. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| do not uppercase sort strings | |
| * tta/C/main/manipulate_indices.c (setup_sortable_index_entries), | |
| tta/perl/Texinfo/Indices.pm (_setup_sortable_index_entries): do not | |
| uppercase sort strings before getting collator sort keys, leave the | |
| ordering to the collator only. | |
| * doc/texinfo.texi (Global Customization Variables): update | |
| USE_UNICODE_COLLATION description now that sorting is also done in C | |
| and that even for ASCII only the order may not be correct with | |
| USE_UNICODE_COLLATION=0 regarding upper and lower case letters. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/texinfo.c (txi_load_init_file): use a separate | |
| variable for the interpreter loading status, which is non-zero in case | |
| of failure. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/30sectioning.t | |
| (in_menu_only_special_spaces_node_menu_transliterate) | |
| (reference_to_only_special_spaces_node_transliterate), | |
| tta/perl/t/40moresectioning.t | |
| (only_special_spaces_node_transliterate): shorten skip messages. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/40moresectioning.t | |
| (only_special_spaces_node_transliterate): skip tests with | |
| transliteration if XS_convert_enabled as in C/XS the transliteration | |
| result depends on the iconv implementation and is not reproducible. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/30sectioning.t | |
| (in_menu_only_special_spaces_node_menu_transliterate) | |
| (reference_to_only_special_spaces_node_transliterate) | |
| (transliterated_split_equivalent_nodes), tta/perl/t/converters_tests.t | |
| (some_at_commands_in_ref_nodes_transliterate), | |
| tta/perl/t/formats_encodings.t (char_utf8_latin1_in_refs) | |
| (char_latin1_latin1_in_refs) | |
| (char_latin1_latin1_in_refs_output_encoding_latin1) | |
| (char_us_ascii_latin1_in_refs, at_commands_in_refs_utf8) | |
| (at_commands_in_refs_latin1), tta/perl/t/html_tests.t | |
| (redirection_same_labels, transliterated_names_conflicts) | |
| (node_footnote_use_node, node_footnote_use_node_separate) | |
| (simple_only_special_spaces_node): skip tests with transliteration if | |
| XS_convert_enabled as in C/XS the transliteration result depends on | |
| the iconv implementation and is not reproducible. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (teximakehtml_LDADD): revert adding | |
| $(perl_conf_LIBS), we do not want to link against Perl lib. | |
| AM_LDFLAGS is already used to have linking flags consistent with | |
| teximakehtml_CFLAGS. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/CheckXS/TestXS.xs (xstest_init): fix prototype. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (teximakehtml_LDADD): add $(perl_conf_LIBS) | |
| to be consistent with teximakehtml_CFLAGS. | |
| 2026-05-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/formats_encodings.t ($at_commands_in_refs_text): remove | |
| duplicate test Texinfo code. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/nodenormalization.t (SKIP): fix the number of | |
| tests skipped. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| do not use Perl transliterations in tests of C code | |
| * tta/C/main/node_name_normalization.c (unicode_to_transliterate), | |
| tta/C/main/call_perl_function.c: do not call | |
| call_nodenamenormalization_unicode_to_transliterate, remove external | |
| argument. Remove call_nodenamenormalization_unicode_to_transliterate. | |
| Update callers. | |
| * tta/C/texi2any.c (main): no more use of embedded Perl for | |
| transliteration. Load embedded Perl for SORT_ELEMENT_COUNT. | |
| * tta/perl/t/formats_encodings.t ($at_commands_in_refs_text) | |
| ($at_commands_in_refs_text_no_translit, at_commands_in_refs): separate | |
| @-commands with different transliteration in C and Perl from | |
| $at_commands_in_refs_text, they are now in | |
| $at_commands_in_refs_text_no_translit and use | |
| $at_commands_in_refs_text_no_translit only without transliteration. | |
| * tta/perl/t/formats_encodings.t (japanese_shift_jis, sample_utf8): | |
| remove transliteration. | |
| * tta/perl/t/input_files/char_latin2_latin2_in_refs.texi: remove | |
| standalone ogonek that is not transliterated the same in C and Perl. | |
| * tta/perl/t/input_files/in_menu_only_special_spaces_node.texi, | |
| tta/perl/t/input_files/only_special_spaces_node.texi: comment out | |
| characters that are not transliterated the same in chapters. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| only use unidecode for transliteration | |
| * tta/C/main/call_perl_function.c | |
| (call_nodenamenormalization_unicode_to_transliterate), | |
| tta/perl/Texinfo/Convert/NodeNameNormalization.pm | |
| (_unicode_to_transliterate): use unidecode only to transliterate. | |
| Remove in_test argument. Update callers. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| remove USE_UNIDECODE customization variable, always set | |
| * NEWS, tta/data/options_data.txt: remove USE_UNIDECODE. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| always use unidecode for transliteration | |
| * tta/perl/Texinfo/Convert/NodeNameNormalization.pm | |
| (_unicode_to_transliterate), tta/C/main/call_perl_function.c | |
| (call_nodenamenormalization_unicode_to_transliterate): always use | |
| unidecode. Update callers. | |
| * doc/texinfo.texi (Global Customization Variables): remove | |
| description of USE_UNIDECODE. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| do not transliterate letter in identifier | |
| * tta/C/convert/format_html.c (html_convert_printindex_command), | |
| tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command): | |
| convert to identifier only instead of using transliteration and | |
| conversion to identifier for letter in identifier. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| do not transliterate when generating index entry target | |
| * tta/C/convert/html_prepare_converter.c | |
| (prepare_index_entries_targets), tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_prepare_index_entries_targets): convert to identifier only instead | |
| of using transliteration and conversion to identifier. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c (setup_collator): handle the case of | |
| language collation and no Perl interpreter. Warn in that case. | |
| 2026-05-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libtexinfoxs_la_LIBADD): do not include | |
| libtexinfo.la twice to make sure that variables are shared. | |
| * tta/perl/XSTexinfo/parser_document/DocumentXS.xs (init): set | |
| interpreter use to txi_interpreter_use_embedded. | |
| 2026-05-27 Patrice Dumas <pertusus@free.fr> | |
| Load a Perl interpreted from main C program only if needed | |
| * tta/C/convert/texinfo.c (txi_load_interpreter) | |
| (txi_setup_main_load_interpreter, txi_load_init_file), | |
| tta/C/convert/texinfo.h (INTERPRETER_LOADING_INFO), | |
| tta/C/main/interpreter_use_types.h (enum interpreter_use), | |
| tta/C/main/set_perl_interpreter.c (use_perl_interpreter), | |
| tta/C/texi2any.c (main): add | |
| INTERPRETER_LOADING_INFO structure for information on an interpreter | |
| to be loaded. Add txi_interpreter_want_embedded enum interpreter_use. | |
| Set use_perl_interpreter in set_perl_interpreter.c default value and | |
| texi2any.c default value with EMBED_PERL to | |
| txi_interpreter_want_embedded. Split txi_load_interpreter out of | |
| txi_setup_main_load_interpreter. If use_interpreter is | |
| txi_interpreter_want_embedded, do not load the interpreter in | |
| txi_setup_main_load_interpreter but prepare loading interpreter data | |
| only. Load interpreter in txi_load_init_file if needed, in main | |
| program if test mode is set, for reproducible transliteration, if | |
| USE_LIBINTL_PERL_IN_XS is set or if a Perl converter is used. Update | |
| callers. | |
| 2026-05-26 Patrice Dumas <pertusus@free.fr> | |
| When C code is called first, always initialize libraries from C | |
| * tta/C/convert/texinfo.c (txi_setup_main_load_interpreter), | |
| tta/C/texi2any.c (main), tta/perl/Texinfo/XSLoader.pm (init), | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs (init), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs (init), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs (init), | |
| tta/swig/texinfo.i (txi_ext_inline_setup): call | |
| messages_and_encodings_setup and setup_texinfo_main in main and in | |
| txi_ext_inline_setup, never in txi_setup_main_load_interpreter. Pass | |
| $mandatory_xs in XSLoader.pm init, such that init in DocumentXS.xs | |
| does not call messages_and_encodings_setup nor setup_texinfo_main | |
| when $mandatory_xs is set, as it will always have been already called. | |
| * tta/C/texi2any.c (main): do not set XS_STRXFRM_COLLATION_LOCALE, now | |
| we have a good collation in the default case. | |
| 2026-05-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_indices.c (setup_collator): do not call | |
| call_setup_collator if NATIVE_UTS10_COLLATION set. | |
| 2026-05-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/: replace deprecated locale gnulib module by locale-h. | |
| 2026-05-25 Patrice Dumas <pertusus@free.fr> | |
| TODO: After next release about unicode collation gnulib | |
| 2026-05-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/, tta/C/Makefile.am (libtexinfo_la_LDFLAGS, ctexi2any_LDADD) | |
| (teximakehtml_LDADD): replace uchar-h by uchar-h-c23 gnulib module. In | |
| the unicode collation C code char32_t is considered as unicode point. | |
| it is probably safer for other codes too. | |
| 2026-05-25 Gavin Smith <gavinsmith0123@gmail.com> | |
| Attempt at fixing index collation bug | |
| * tta/C/main/unicode-collation/collation_key.c | |
| (u32_make_collation_key_ext): Set length of collation key differently. | |
| It was possible the length would include uninitialised memory after | |
| a terminating null leading comparisons to be made incorrectly. | |
| Report from Bruno Haible. | |
| 2026-05-25 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libtexinfo_la_LDFLAGS, ctexi2any_LDADD) | |
| (teximakehtml_LDADD): add link flags needed by gnulib. | |
| 2026-05-24 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_prepare_converted_output_info): do not output @html in @documentinfo | |
| in the HTML preamble if EPUB is generated, such that the @html in | |
| @documentinfo is only output in the EPUB metadata and can be EPUB | |
| specific metadata. | |
| 2026-05-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| Integrate native Unicode collation code | |
| * tta/C/main/unicode-collation/collation-table.c, | |
| tta/C/main/unicode-collation/collation_data_loader.c, | |
| tta/C/main/unicode-collation/collation_data_loader.h, | |
| tta/C/main/unicode-collation/collation_key.c, | |
| tta/C/main/unicode-collation/collation_key.h: | |
| Copy files from 'experimental/unicode-collation' branch. | |
| * tta/C/main/unicode-collation/REAMDE: New file, explaining | |
| origin of the files under this subdirectory. | |
| * tta/C/main/manipulate_indices.c (get_sort_key) <ctn_unicode>: | |
| Add code to call 'u8_make_collation_key' in new code, rather than | |
| calling call_collator_getSortKey in order to call Perl subroutines. | |
| * tta/C/Makefile.am (libtexinfo_la_SOURCES): Add new files. | |
| (libtexinfo_la_LDFLAGS): Add flags that may be needed by the | |
| gnulib dependencies of the collation code. | |
| 2026-05-24 Gavin Smith <gavinsmith0123@gmail.com> | |
| * configure.ac (AM_INIT_AUTOMAKE): | |
| Remove dist-xz from options for speed when testing. | |
| 2026-05-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/debug.c: remove print_associate_info_debug and | |
| print_element_debug_details. Detailed tree element information in | |
| a compact format is available from manipulate_tree.c functions also | |
| used for tests. | |
| * tta/C/main/output_unit.c (print_output_unit) | |
| (print_output_units_details), tta/perl/Texinfo/OutputUnits.pm | |
| (print_output_unit, print_output_units_details): add print_output_unit | |
| based on print_output_units_details. Add more information to | |
| print_output_unit, the number of contents and the sectioning commands. | |
| * tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/OutputUnits.pm | |
| (debug_print_output_unit): move debug_print_output_unit to | |
| OutputUnits.pm and use print_output_unit to display the output unit. | |
| 2026-05-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/tree.c: inline and remove contents_child_by_index. It | |
| has been checked that bound checking in contents_child_by_index was | |
| never useful. Update callers. | |
| 2026-05-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ManipulateTree.pm (copy_element_tree): inline | |
| non_leading_trailing_tree and reorganize code to set type early, as in | |
| C. | |
| * tta/perl/Texinfo/Common.pm (non_leading_trailing_tree): remove TODO | |
| comment and shorten code. | |
| * tta/C/parsetexi/separator.c (handle_open_brace), | |
| tta/perl/Texinfo/ParserNonXS.pm (_handle_open_brace, _parse_texi): | |
| do not set/unset internal_space_holder as it is not used anywhere. | |
| 2026-05-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command): | |
| keep the letter command if it is already uppercase. | |
| * tta/C/convert/convert_html.c (html_convert_tree_append), | |
| tta/perl/Texinfo/Convert/HTML.pm (_convert): use print_element_debug | |
| or debug_print_element for the element debugging output. | |
| * tta/C/main/debug.c (print_element_debug), | |
| tta/C/parsetexi/debug_parser.c (print_element_debug_parser), | |
| tta/perl/Texinfo/Common.pm (debug_print_element): always type before | |
| command. | |
| * tta/perl/Texinfo/Common.pm (debug_print_element): append instead of | |
| reconstituting a string. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (converter_set_document), | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm (set_document), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (conversion_initialization): | |
| allow an undef/NULL document such that copy_options_for_convert_text | |
| is still called in that case. | |
| * tta/C/convert/get_converter_perl_info.c | |
| (get_converter_and_document_from_sv), | |
| tta/C/convert/html_converter_api.c (html_output, html_convert), | |
| tta/C/convert/html_prepare_converter.c | |
| (html_conversion_initialization), | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs (set_document), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs | |
| (conversion_initialization, output, convert): add document argument to | |
| html_conversion_initialization, and call set_document in | |
| html_conversion_initialization, as in Perl. Update callers. Add | |
| get_converter_and_document_from_sv to get both document and converter | |
| to use in XS. Remove converter_set_document_from_sv. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/get_perl_info.c (get_lang_info_hv): comment out unused | |
| variable. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking: add check that the debug output of pure Perl modules | |
| and XS/C are the same before the release as a manual test, since it | |
| allows to find real bugs. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/get_perl_info.c (get_lang_info_hv): do not set | |
| lang_info->bcp47_locale, it will be set in set_lang_info_translation. | |
| Found with valgrind as there was a memory leak. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTMLNonXS.pm (@sorted_no_arg_commands) | |
| (conversion_initialization, _translate_names): add | |
| @sorted_no_arg_commands and use it to have a reproducible order for no | |
| args commands processing, in particular for debug messages. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_info.c (pass_sv_converter_info), | |
| tta/C/convert/convert_html.c (html_prepare_converted_output_info) | |
| (html_convert_output), tta/perl/Texinfo/Convert/HTML.pm | |
| (_file_header_information), tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (%available_converter_info, _prepare_converted_output_info): set | |
| date_in_header in prepare_converted_output_info. Add it to | |
| converter_info. Use it from converter_info in | |
| _file_header_information. | |
| * doc/texi2any_api.texi (Converter General Information): document | |
| date_in_header. | |
| * tta/C/convert/converter.c (set_file_path): fix debug message. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c | |
| (reset_lang_translation_from_customization): no need to call | |
| set_translations_documentlanguagevariant, as a NULL lang_translations | |
| is used to reset fully the cur_lang_trans. | |
| * tta/perl/Texinfo/Convert/Converter.pm | |
| (reset_lang_translation_from_customization): add. | |
| * tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_prepare_converted_output_info) | |
| (_setup_output): call reset_lang_translation_from_customization to | |
| properly reset the current lang_translations. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (add_include_directory), | |
| tta/perl/Texinfo/ParserNonXS.pm (parser): canonicalize include | |
| directories in parsers. | |
| * tta/perl/Texinfo/OutputUnits.pm (units_directions): setup | |
| NodeForward and similar directions even if there are no node | |
| directions (no next, prev up). | |
| * tta/C/parsetexi/end_line.c (end_line_misc_line): rename fullpath as | |
| included_file_path. | |
| * tta/perl/Texinfo/Convert/HTML.pm | |
| (_default_format_special_body_about): add explanation. | |
| * tta/C/convert/convert_html.c (html_translate_names): handle NULL | |
| OUTPUT_ENCODING_NAME in debug message. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Common.pm (%spaces_protection) | |
| (debug_print_element), tta/perl/Texinfo/Convert/HTML.pm | |
| (%spaces_protection, _convert), tta/perl/Texinfo/ParserNonXS.pm | |
| (%spaces_protection, _debug_protect_eol): protect tabs and form feeds. | |
| * tta/perl/Texinfo/Convert/HTML.pm (_convert_menu_entry_type): | |
| remove unneeded container around node_content. Minor changes. | |
| * tta/perl/Texinfo/Convert/HTML.pm (_file_header_information): | |
| call Texinfo::TreeElement::new for new elements. | |
| * tta/perl/Texinfo/OutputUnits.pm (output_unit_texi): remove trailing | |
| spaces for external node formatting. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/convert_to_texinfo.c (root_heading_command_to_texinfo): | |
| reorganize code, use xasprintf instead of TEXT, never return NULL. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl: encode STDERR in UTF-8, to have the same | |
| encoding as C direct output on stderr (for debugging output). | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (replace_convert_substrings), | |
| tta/perl/Texinfo/Translations.pm (_replace_convert_substrings): show | |
| debug messages if debug > 1 to avoid seeing spurious differences | |
| between C and Perl debugging output in case both are compared. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (new_formatter): set debug in | |
| the Texinfo::Convert::Paragraph container only if debug > 1 as there | |
| is no equivalent debugging info in C. | |
| * tta/perl/Texinfo/Convert/Texinfo.pm | |
| (root_heading_command_to_texinfo): check if tree is empty on | |
| non_leading_trailing_tree returned tree. | |
| * tta/perl/Texinfo/Common.pm (debug_print_element): print type before | |
| command for the main element. | |
| 2026-05-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_special_unit_info_text): use enum | |
| direction_string_context instead of enum conversion_context. Update | |
| callers. | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_gdt_tree): add debugging message. | |
| * tta/C/main/debug.c (print_element_debug): do not print type in | |
| debugging if c_only flag is set. | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (replace_convert_substrings): | |
| print debug message both with substitute substrings and without. | |
| * tta/perl/Texinfo/Translations.pm (_replace_convert_substrings): | |
| distinguish translated string and parsed string with substitutions. | |
| Print different messages with substitute substrings and without. | |
| * tta/perl/Texinfo/Convert/Texinfo.pm | |
| (root_heading_command_to_texinfo): call non_leading_trailing_tree to | |
| avoid returning leading and trailing spaces and comment. | |
| * tta/perl/Texinfo/Convert/HTMLNonXS.pm (conversion_initialization): | |
| add debug message output in C. | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c, | |
| tta/C/convert/html_prepare_converter.c: prepend C| in debug messages. | |
| * tta/perl/Texinfo/Convert/HTMLNonXS.pm (_html_convert_convert), | |
| tta/C/convert/convert_html.c (html_convert_convert): change a debug | |
| message. | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ParserNonXS.pm (_process_remaining_on_line) | |
| (_parse_texi), tta/C/parsetexi/parser.c (parse_texi) | |
| (process_verb_contents): protect end of line and always add an end of | |
| line. | |
| * tta/C/parsetexi/*.c: prepend debug messagaes by C| to distinguish | |
| from Perl parser debug messages. | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (gdt_tree), | |
| tta/perl/Texinfo/Translations.pm (gdt): improved and same error | |
| message for gdt. | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree): do | |
| not use the tree provided by non_leading_trailing_tree such that a | |
| comment is kept. | |
| * tta/C/parsetexi/separator.c (handle_close_brace): use & for flag. | |
| * tta/C/main/element_types.txt (normal_text): add c_only. | |
| * tta/C/convert/convert_html.c (html_convert_tree_append), | |
| tta/C/parsetexi/debug_parser.c (print_element_debug_parser): do not | |
| print type in debugging if c_only flag is set. | |
| * tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line) | |
| (_handle_line_command): set index_entry_command type as soon as | |
| possible. | |
| * tta/perl/Texinfo/ParserNonXS.pm (_process_raw_block_contents): | |
| fix missing 'conf' key. | |
| 2026-05-17 Gavin Smith <gavinsmith0123@gmail.com> | |
| * README-hacking: add note for removal of texi2any_internals | |
| manual from webpages | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (current_bcp47_locale): add. | |
| * tta/C/convert/convert_html.c (html_translate_names) | |
| (html_prepare_converted_output_info), | |
| tta/C/convert/html_prepare_converter.c (html_setup_output): use | |
| current_bcp47_locale. | |
| 2026-05-16 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/NodeNameNormalization.pm | |
| (_protect_unicode_char): no need to check | |
| unicode_simple_character_map, the result is the same with sprintf. | |
| * tta/perl/Texinfo/Convert/NodeNameNormalization.pm | |
| (_unicode_to_transliterate): change ordering of conditionals for | |
| clearer code. | |
| Changes in TODO and comments. | |
| 2026-05-15 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm (_convert_def_line_type): call | |
| set_context_convert_tree instead of _set_code_context to use the | |
| HTML customization API. | |
| 2026-05-15 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm (set_context_convert_tree) | |
| ($CTXF_normal): add CTXF_normal, flag that can be used to unset code | |
| context. Add set_context_convert_tree that accepts CTXF_normal or | |
| CTXF_code to set or unset code context. Remove | |
| convert_tree_in_code_context. Update callers. | |
| * doc/texi2any_api.texi (Setting the Expansion Context for | |
| Conversion): update for the replacement of | |
| convert_tree_in_code_context by set_context_convert_tree. | |
| 2026-05-15 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_convert_printindex_command), | |
| tta/C/convert/html_conversion_state.c | |
| (html_open_command_update_context) | |
| (html_convert_command_update_context), | |
| tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_open_command_update_context) | |
| (_convert_command_update_context): start a new context for printindex | |
| in the generic conversion state updating instead of in the printindex | |
| conversion function. | |
| 2026-05-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ManipulateTree.pm (_copy_tree), configure.ac | |
| (Perl version and modules), tta/perl/Texinfo/Translations.pm | |
| (_replace_convert_substrings): call Scalar::Util weaken on | |
| parent added by _copy_tree. Do not remove the parent of the tree | |
| returned after translation now that the reference is weakened. | |
| 2026-05-14 Patrice Dumas <pertusus@free.fr> | |
| * doc/tta_api/Makefile.am (texi2any_internals_dependencies), | |
| tta/perl/Texinfo/Parser.pm: move POD documentation of the Parser out | |
| of ParserNonXS.pm to Parser.pm. | |
| 2026-05-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/*.pm, tta/perl/Texinfo/Convert/*.pm: verify that | |
| there is a VERSION for all modules that are not *NonXS modules. Add | |
| use warnings and use 5.006 if needed for our VERSION. | |
| * tta/perl/t/z_misc/test_is_content_empty.t, | |
| tta/perl/t/z_misc/nodenormalization.t: add "use Texinfo::Document;". | |
| * tta/perl/Texinfo/Parser*: small misc changes. Add "use | |
| Texinfo::Document;" in the main Parser.pm module. | |
| 2026-05-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/parser_document/ParserXS.xs | |
| (_register_parser_conf, _parser_store_values) | |
| (_parser_store_INCLUDE_DIRECTORIES, _parser_store_EXPANDED_FORMATS): | |
| add leading _ for functions that should only be called from | |
| ParserXS.pm in XS. | |
| * tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/ParserNonXS.pm | |
| (%parser_document_state_configuration, %parser_inner_options) | |
| (%parser_document_parsing_options): move to ParserNonXS.pm. | |
| 2026-05-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/errors.c (message_list_format_line_message) | |
| (message_list_format_document_message): rename | |
| message_list_line_formatted_message as | |
| message_list_format_line_message and | |
| message_list_document_formatted_message as | |
| message_list_format_document_message to have a common part in name | |
| with similar Perl functions. Update callers. | |
| * tta/C/main/errors.c, tta/perl/Texinfo/Report.pm: move code around. | |
| Improve POD and comments. | |
| 2026-05-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libperlcall_utils_la_SOURCES), | |
| tta/C/main/interpreter_use_types.h: rename use_interpreter_types.h as | |
| interpreter_use_types.h. | |
| 2026-05-13 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Other Dynamic Information): document | |
| command_is_in_referred_command_stack. | |
| 2026-05-13 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Document Structure): rename "Tree Elements and | |
| Document Structure" as "Document Structure" and make it a section | |
| directly in "Formatting HTML Output". | |
| * doc/texi2any_api.texi (Output Units Information): rename "Output | |
| Units in User Defined Functions" as "Output Units Information" and | |
| move to "Document Structure". | |
| 2026-05-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info): | |
| access command flags only if an element is not a text element. | |
| * tta/perl/Makefile.tres, tta/perl/t/converters_tests.t | |
| (documentinfo_with_empty_line): new test with empty line in | |
| @documentinfo. | |
| 2026-05-13 Patrice Dumas <pertusus@free.fr> | |
| Do not install nor put on the web the texi2any internals manual | |
| * doc/Makefile.am (wwwdoc-build, wwwdoc-install): do not generate the | |
| texi2any internals manual. The manual is only useful to develop | |
| texi2any and can be with the sources only. | |
| * doc/tta_api/Makefile.am (AUTOMAKE_OPTIONS): add no-installinfo to | |
| avoid installing the texi2any internals Info manual. | |
| 2026-05-13 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/html_convert_tree.t, | |
| tta/perl/t/z_misc/test_fill_gaps_in_sectioning.t: use a combination of | |
| XS_parser_enabled call return true and core_modules_built set to | |
| determine if the XS Parser is used, as it is the good way to check | |
| that the XS Parser is actually used. | |
| 2026-05-13 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/pod2texi.pl, tta/perl/t/*.t: remove unused code, | |
| change formatting of functions beginning. Change in spacing. | |
| Cosmetic changes. | |
| 2026-05-12 Patrice Dumas <pertusus@free.fr> | |
| * util/htmlxref.d/Texinfo_GNU.cnf: add autosprintf. | |
| 2026-05-11 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/t/Pod-Simple-Texinfo.t: change formatting of | |
| functions beginning. Change in spacing. | |
| * Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm: update Pod | |
| documentation. | |
| 2026-05-11 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm: change formatting of | |
| functions beginning. Use defined or exists if the value is not used. | |
| Change in spacing. | |
| 2026-05-11 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm (%line_commands) | |
| (_texinfo_handle_element_end): keep %pod_head_commands_level levels | |
| out of %line_commands. | |
| * Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm, | |
| Pod-Simple-Texinfo/pod2texi.pl: change formatting of functions | |
| beginning. Use defined or exists if the value is not used. Change in | |
| spacing. Other cosmetic changes. | |
| 2026-05-11 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/pod2texi.pl (BEGIN): update to match the change | |
| in Texinfo::ModulePath::init call. | |
| 2026-05-11 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/pod2texi.pl (pod2texi_help), POD: use document | |
| instead of manual, convert instead of translate. Other updates. | |
| * doc/texinfo.texi (Invoking @command{pod2texi}): use document | |
| instead of manual, convert instead of translate. | |
| 2026-05-11 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/epub3.pm (@epub_language, epub_setup, epub_init) | |
| (epub_finish): add epub_init handler where all the languages are | |
| gathered. Use configured documentlanguage and documentscript and | |
| go through global commands information language_commands to gather | |
| all the language in the document, and use all the languages to set | |
| dc:language elements. Only add a language with @documentscript or | |
| @documentlanguagevariant if there was already a script or variant | |
| setup, to avoid setting languages without following @documentscript or | |
| @documentlanguagevariant values set. | |
| * tta/perl/Makefile.tres, tta/perl/t/epub_tests.t | |
| (languages_scripts_variants): new test of multilingual document. | |
| 2026-05-10 Patrice Dumas <pertusus@free.fr> | |
| Generic metadata in HTML and DocBook in @documentinfo | |
| * tta/C/convert/build_html_perl_info.c (pass_sv_converter_info), | |
| tta/C/convert/convert_html.c (html_prepare_converted_output_info), | |
| tta/C/convert/format_html.c (html_default_format_begin_file) | |
| (html_default_format_node_redirection_page), | |
| tta/C/convert/html_converter_finish.c (html_free_converter), | |
| tta/C/convert/html_prepare_converter.c | |
| (html_conversion_initialization), tta/C/main/converter_types.h | |
| (CONVERTER), tta/perl/Texinfo/Convert/HTML.pm | |
| (_file_header_information, _default_format_begin_file) | |
| (_default_format_node_redirection_page), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (%available_converter_info) | |
| (_prepare_converted_output_info): add documentinfo_metadata | |
| to converter in C and to 'converter_info' in Perl with @documentinfo | |
| content except for metadata_commands. Get in _file_header_information | |
| in Perl. Output in file headers. | |
| * doc/texi2any_api.texi (Converter General Information): document | |
| documentinfo_metadata in converter information. | |
| * tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin): | |
| gather @documentinfo content except for metadata_commands and output | |
| in documentinfo element. | |
| * tta/perl/t/converters_tests.t (metadata_in_documentinfo), | |
| tta/perl/Makefile.tres: new test for metadata in @documentinfo. | |
| 2026-05-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/ext/epub3.pm ($epub_doc_dest_dir): reindent. Rename | |
| $epub_document_destination_directory as $epub_doc_dest_dir. | |
| 2026-05-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/api_for_swig/swig_element_types.h (TXI_CM_OTHER_FLAGS_LIST), | |
| tta/C/main/builtin_commands.h (CF_metadata), | |
| tta/C/main/command_data.awk, tta/data/command_data.txt: add metadata | |
| flag for @-commands with document metadata information that are | |
| supposed to be handled explicitly in output formats conversion. | |
| * tta/perl/ext/epub3.pm: remove local definition of | |
| $metadata_commands, use Texinfo::Commands::metadata_commands. | |
| 2026-05-10 Patrice Dumas <pertusus@free.fr> | |
| Generic metadata in EPUB in @documentinfo | |
| * tta/perl/ext/epub3.pm (%metadata_commands, conversion_output_begin): | |
| convert content of @documentinfo that is not an explicit @-command | |
| usually used for metadata in the <metadata> EPUB element. | |
| * tta/perl/t/epub_tests.t (epub_metadata), tta/perl/Makefile.tres: new | |
| test. | |
| 2026-05-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix M-TAB moving before DEL-quoted cross-reference | |
| * info/scan.c (scan_reference_label) [hide-note-references=On]: | |
| If "quoting" DEL bytes surround the reference label, remove them | |
| when rewriting the node contents. | |
| Because these bytes are invisible, if the node position is placed | |
| on one of these bytes, it would be advanced past that byte in | |
| display_cursor_at_point, which is called in the main loop in | |
| info_read_and_dispatch. Then the cursor would get "stuck" | |
| when trying to move before a cross-reference with M-TAB. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-05-07 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Text Tree Elements Conversion): document | |
| xml_format_text_with_numeric_entities. | |
| * doc/texi2any_api.texi (Commands Without Arguments Formatting): | |
| document expand_today. | |
| * doc/texi2any_api.texi (Accent Commands with Arguments Formatting): | |
| document %Texinfo::UnicodeData::unicode_accented_letters. | |
| * doc/texi2any_api.texi (Specific Formatting for Indices): add | |
| the description of more indices related formatting functions. | |
| * doc/texi2any_api.texi (@code{@@verbatiminclude} Formatting) | |
| (Definition Commands Formatting) | |
| (Float and List of Floats Formatting) | |
| (Block Commands with @code{@@item}) | |
| (Informative Commands): add nodes for diverse elements. | |
| * doc/texi2any_api.texi (Specific Functions for Specific Elements): | |
| remove previous "Specific Functions for Specific Elements" node and | |
| rename "Functions and Data for Default Formatting" as "Specific | |
| Functions for Specific Elements". | |
| * doc/texi2any_api.texi (Specific Functions for Specific Elements): | |
| document simple_arg_text, empty_spaces_argument and | |
| Texinfo::Convert::NodeNameNormalization methods. | |
| * tta/perl/Texinfo/Convert/HTML.pm (_convert_float_command): call | |
| float_name_caption object oriented. | |
| * tta/perl/Texinfo/Convert/NodeNameNormalization.pm (@EXPORT_OK): | |
| export convert_to_normalized. | |
| 2026-05-06 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Command Tree Element Conversion) | |
| (Functions and Data for Default Formatting): put information on | |
| default formatting functions used for diverse commands in a spearate | |
| chapter, keeping only formatting of commands that require calling some | |
| specific functions in "Command Tree Element Conversion". | |
| 2026-05-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| Replace use of strcat and strncat | |
| * install-info/install-info.c (split_entry): | |
| Remove sole remaining use of strncat. | |
| 2026-05-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| Replace use of strcat | |
| * install-info/install-info.c (format_entry): | |
| Eliminate use of strcat and strncat. | |
| 2026-05-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| Replace use of strcat | |
| * install-info/install-info.c (split_entry): | |
| Eliminate use of strcat in this function, as it always needs to scan | |
| the string from the beginning, which is a well-known defect in the use | |
| of this function. | |
| Remove pointless division by "sizeof (char)". | |
| 2026-05-06 Gavin Smith <gavinsmith0123@gmail.com> | |
| * install-info/install-info.c (split_entry): | |
| Only convert "\n" to " " a limited number of times, and allocate | |
| enough memory to do so. | |
| Memory overflow reported by LogicLuminary <memorylogicdev@gmail.com>. | |
| 2026-05-06 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Texinfo Tree Conversion Functions), | |
| POD documentation: update/improve. | |
| 2026-05-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/api_for_swig/swig_interface.c | |
| (txi_ext_get_index_sorted_by_index), tta/C/convert/converter.c | |
| (lang_info_sorting_locale, get_converter_indices_sorted_by_index) | |
| (get_converter_indices_sorted_by_letter), tta/C/main/document.c | |
| (sorted_indices_by_index, sorted_indices_by_letter) | |
| (print_document_indices_sort_strings), tta/C/main/document_types.h, | |
| tta/C/main/utils.c, tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (get_converter_indices_sorted_by_letter) | |
| (get_converter_indices_sorted_by_index), tta/perl/Texinfo/Document.pm | |
| (sorted_indices_by_letter, sorted_indices_by_index), | |
| tta/perl/Texinfo/DocumentNonXS.pm | |
| (print_document_indices_sort_strings): determine the | |
| lang_sorting_locale based either on COLLATION_LANGUAGE customization | |
| variable or current_lang_translations lang and script in Converter | |
| code, in get_converter_indices_sorted_by_index and | |
| get_converter_indices_sorted_by_letter instead of in Document code. | |
| Move lang_info_sorting_locale to converter.c. Remove | |
| SORTING_LANG_INFO and new_sorting_lang_info. | |
| 2026-05-05 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi: add indices entries. | |
| * tta/perl/Texinfo/Indices.pm (setup_index_entries_sort_strings) | |
| (_setup_sortable_index_entries, sort_indices_by_letter): cosmetic | |
| changes and variable names change. | |
| Changes in POD and comments. | |
| 2026-05-05 Gavin Smith <gavinsmith0123@gmail.com> | |
| info: Fix infinite loop | |
| * info/session-cmd.c (forward_move_node_structure): | |
| Replace call to info_handle_pointer to follow "Up" pointer. | |
| Check Up pointer is not to a different file, to avoid going | |
| all the way up to "(dir)". Also check that it does not point | |
| to the current node, to avoid an infinite loop. Fall through to | |
| code handling last node in the file when we can't go Up any more. | |
| Remove braces and extra level of indentation. | |
| An infinite loop occured when the "dir" node had an Up node. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-05-04 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (@documentlanguagevariant, @documentscript): | |
| Add stub implementations. | |
| 2026-05-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/get_converter_perl_info.c (get_hv_lang_translation) | |
| (copy_sv_options_for_convert_text), tta/C/main/get_perl_info.c | |
| (get_lang_translation_sv), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): add get_hv_lang_translation and | |
| get_lang_translation_sv based on copy_sv_options_for_convert_text | |
| code. Use in TranslationsXS.xs cache_translate_string. | |
| * tta/C/api_for_swig/swig_interface.c | |
| (txi_ext_get_index_sorted_by_index), tta/C/convert/converter.c | |
| (get_converter_indices_sorted_by_index) | |
| (get_converter_indices_sorted_by_letter), tta/C/main/document.c | |
| (lang_info_sorting_locale, sorted_indices_by_index) | |
| (sorted_indices_by_letter, print_document_indices_sort_strings), | |
| tta/C/main/document.h (SORTING_LANG_INFO), tta/C/main/utils.c | |
| (new_sorting_lang_info), tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (get_converter_indices_sorted_by_letter), tta/perl/Texinfo/Document.pm | |
| (sorted_indices_by_letter, sorted_indices_by_index), | |
| tta/perl/Texinfo/DocumentNonXS.pm | |
| (print_document_indices_sort_strings), | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs | |
| (get_converter_indices_sorted_by_index): setup information on | |
| language for sorting based COLLATION_LANGUAGE or on current lang | |
| translations lang_info in a SORTING_LANG_INFO structure in | |
| get_converter_indices_sorted_by_*, using new_sorting_lang_info in C. | |
| Use this information in sorted_indices_by_* to determine the | |
| language to use for sorting, based either on COLLATION_LANGUAGE | |
| or on the main language and script from the lang_info, using | |
| lang_info_sorting_locale in C. | |
| * tta/perl/Texinfo/Indices.pm (_setup_collator): rename $locale_lang | |
| as $lang_sorting_locale. | |
| * tta/tests/other/Makefile.am (EXTRA_DIST), | |
| tta/tests/other/index_collation_script_test.texi, | |
| tta/tests/other/list-of-tests | |
| (index_collation_script_test_documentlanguage_collation): add test | |
| with documentscript and DOCUMENTLANGUAGE_COLLATION set. This test is | |
| not final, as the order is not different with and without the | |
| documentscript for the selected index entries. | |
| * tta/tests/other/list-of-tests: comment out tests of | |
| XS_STRXFRM_COLLATION_LOCALE. | |
| 2026-05-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (Internationalization, Setting the language): | |
| Grammar fixes. | |
| 2026-05-03 Patrice Dumas <pertusus@free.fr> | |
| document @documentscript and @documentlanguagevariant | |
| * doc/texinfo.texi (Inserting Accents): add a pragraph stating that | |
| accented chracters and other can in general be input as encoded | |
| characters. | |
| * doc/texinfo.texi (Internationalization): be more precise on the | |
| current status of Internationalization in Texinfo. | |
| * doc/texinfo.texi (Internationalization): introduce the @-commands | |
| and elements of a language locale. | |
| * doc/texinfo.texi (Setting the language): rename | |
| @code{@@documentlanguage} as "Setting the language". Document that | |
| the IANA language subtag registry is used, use CC for the country code | |
| and do not use a precise ISO 639 standard. | |
| * doc/texinfo.texi (Setting the language) | |
| (Customization Variables for @@-Commands) | |
| (Global Customization Variables, Command List) | |
| (Internationalization of Document Strings): add | |
| @documentlanguagevariant and @documentscript. | |
| * doc/texinfo.texi (Invoking @command{texi2any}): update description | |
| of --document-language. | |
| 2026-05-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm (bcp47_tag), | |
| tta/perl/t/init/translated_strings_customization.pm: rename | |
| bcp47_locale as bcp47_tag. | |
| * doc/texi2any_api.texi (Translated Strings Customization): document | |
| the lang_info argument of format_translate_message and xpg_locale and | |
| bcp47_tag use. | |
| * tta/perl/init/documentation_examples.pm, doc/texi2any_api.texi | |
| (Translated Strings Customization): use a country code in language to | |
| show an XPG locale name in example. | |
| 2026-05-02 Patrice Dumas <pertusus@free.fr> | |
| object-based interface for format_translate_message lang info argument | |
| * tta/perl/Texinfo/Translations.pm (get_lang_info_xpg_locale): rename | |
| get_lang_info_xdg_locale as get_lang_info_xpg_locale. Update callers. | |
| * tta/perl/Texinfo/Convert/HTML.pm (Texinfo::Convert::HTML::Language) | |
| (new, bcp47_locale, xpg_locale): new package turning lang_info to a | |
| blessed reference, with two accessors xpg_locale and bcp47_locale. | |
| * tta/perl/Texinfo/Convert/HTML.pm ($unknown_lang_info) | |
| (_html_cache_translate_string): call | |
| Texinfo::Convert::HTML::Language::new on the lang_info argument of | |
| format_translate_message. | |
| * tta/C/convert/call_html_perl_function.c | |
| (call_formatting_function_format_translate_message): bless lang_info | |
| argument of format_translate_message into the | |
| Texinfo::Convert::HTML::Language class. | |
| * tta/perl/t/init/translated_strings_customization.pm (%translations) | |
| (_texi2any_tests_format_translate_message), | |
| tta/perl/t/init_files_tests.t (customize_translations): use bcp47 | |
| locale name, add test of language with country code. | |
| 2026-05-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm: rename translations argument as | |
| translations_cache. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_state.c (build_html_translated_names), | |
| tta/perl/Texinfo/Translations.pm (_init_lang_translation) | |
| (_set_lang_info_translation, $converters_translation_cache), | |
| tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string): use | |
| lang_translations array references as | |
| $Texinfo::Translations::converters_translation_cache values, not | |
| translated strings hash. The translated strings hash is last in the | |
| lang_translations array references and now set in | |
| _init_lang_translation. Preset the empty string lang_translations in | |
| converters_translation_cache for the unknown language. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (_lang_info_bcp47_locale): rename | |
| lang_info_bcp47_locale as _lang_info_bcp47_locale. | |
| * tta/C/main/translations.c (set_lang_info_translation), | |
| tta/perl/Texinfo/Translations.pm (_set_lang_info_translation): set | |
| bcp47_locale in set_lang_info_translation instead of right before in | |
| callers. Update callers. | |
| * tta/C/main/translations.c (new_element_language_translation), | |
| tta/perl/Texinfo/Translations.pm (new_element_language_translation): | |
| inline new_lang_info in new_element_language_translation. Remove | |
| new_lang_info. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (set_translations_documentlanguage) | |
| (set_translations_documentscript) | |
| (set_translations_documentlanguagevariant), | |
| tta/perl/Texinfo/Translations.pm (set_translations_documentlanguage) | |
| (set_translations_documentscript) | |
| (set_translations_documentlanguagevariant): do not check the current | |
| lang translations to return it, as it can only happen if the | |
| user use the same command twice, which is not supposed to happen. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info), | |
| tta/C/convert/html_prepare_converter.c (html_setup_output), | |
| tta/C/main/translations.c (reset_lang_translation_from_customization): | |
| add reset_lang_translation_from_customization and use it in | |
| html_prepare_converted_output_info and html_setup_output. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/convert_utils.c (definition_category_tree), | |
| tta/perl/Texinfo/Convert/Utils.pm (definition_category_tree): remove | |
| unused command_line_encoding argument. Update callers. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_state.c (build_html_translated_names): | |
| pass a full current_lang_translations including the translated strings | |
| cache hash, setup if needed. | |
| * tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string): | |
| update code now that lang translations always have a translation cache | |
| associated. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/get_perl_info.c (get_lang_info_hv): get bcp47_locale from | |
| Perl data. | |
| * tta/C/main/get_perl_info.c (set_lang_info_copy_translation): rename | |
| get_lang_info_translation as set_lang_info_copy_translation. Update | |
| caller. | |
| * tta/C/main/get_perl_info.c (new_lang_info_copy) | |
| (set_lang_info_copy_translation): add new_lang_info_copy based on | |
| new_copy_translation. Inline the remaining of new_copy_translation in | |
| set_lang_info_copy_translation. | |
| * tta/perl/Texinfo/Translations.pm (_init_lang_translation) | |
| (_new_lang_info): rename new_lang_info as _new_lang_info and | |
| _set_lang_info_translation as _init_lang_translation. | |
| * tta/perl/Texinfo/Translations.pm (%parser_translation_cache): rename | |
| %indices_lang_translations as %parser_translation_cache. | |
| * tta/perl/Texinfo/Translations.pm (complete_indices): call | |
| new_element_language_translation instead of two levels caching. | |
| 2026-05-01 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (new_element_language_translation): | |
| add a translations cache argument and call _set_lang_info_translation. | |
| Update callers. | |
| * tta/perl/Texinfo/Translations.pm: remove new_lang_translations. | |
| 2026-04-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (set_translations_documentscript) | |
| (set_translations_documentlanguagevariant): copy lang only if it is | |
| set. | |
| * tta/perl/Makefile.tres, tta/perl/t/languages.t | |
| (documentscript_documentlanguagevariant) | |
| (documentlanguagevariant_documentscript): add tests for current lang | |
| translations without @documentlanguage being set. | |
| 2026-04-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c: move code around. | |
| 2026-04-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (new_element_language_translation): add | |
| lang translation cache arguments, such that they are always set by the | |
| callers, call set_lang_info_translation. Update callers. | |
| * tta/C/parsetexi/indices.c (complete_indices): call | |
| new_element_language_translation. | |
| * tta/C/main/translations.c: remove new_element_lang_info and | |
| new_lang_translations. Make more functions static. | |
| * tta/C/main/translations.c (cache_translate_string): simplify now | |
| that translations can only be unset if the lang_translation argument | |
| is NULL. | |
| * tta/C/main/translations.c (unknown_lang_translations) | |
| (set_output_strings_translate_method, cache_translate_string): | |
| add a specific lang translation tree list for unknown language, and | |
| simpler code for that case. Remove unknown_lang_info. | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_state.c (build_html_translated_names): | |
| build language_env again, reverting recent change, in case | |
| cache_translate_string is not overriden. | |
| * tta/perl/Texinfo/TransformationsNonXS.pm | |
| (complete_tree_nodes_missing_menu, regenerate_master_menu): set | |
| the translation cache when calling set_preamble_language_commands. | |
| * tta/C/main/translations.c (cache_translate_string), | |
| tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string): move | |
| code around to have all the code related to finding the translation | |
| hash before the code finding the string and context in the hash. | |
| Reorganize Perl code to be more like C code, to first find | |
| translations hash. | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_state.c (build_html_translated_names): | |
| inline set_perl_lang_translations in build_html_translated_names and | |
| remove set_perl_lang_translations. | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_state.c (set_perl_lang_translations): | |
| do not pass language_env, it is not needed as cache_translate_string | |
| is overriden. | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| add const for current lang translation in argument and return | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_state.c (set_perl_lang_translations): | |
| do not pass translations at all, it is not needed as | |
| cache_translate_string is overriden. | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_state.c (set_perl_lang_translations): | |
| update for the changes in Perl code, by using converters_translation_cache | |
| directly. | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| gnulib update | |
| * tta: run "gnulib-tool --add-import". | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| revert 2026-04-22 change of bcp47.c now fixed upstream | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm (converter_perl_release) | |
| (converter_set_documentlanguage, converter_set_documentscript) | |
| (converter_set_documentlanguagevariant) | |
| (set_converter_preamble_language_commands), | |
| tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text): do | |
| not add a 'translations' state in converters, pass directly | |
| $Texinfo::Translations::converters_translation_cache argument. | |
| 2026-04-29 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking: add a note to update TXI_DOCUMENT_TRANSLATED_STRINGS_NR | |
| * tta/C/main/translations.c (converters_translation_cache), | |
| tta/C/parsetexi/indices.c (parser_translation_cache), | |
| tta/perl/Texinfo/Translations.pm ($converters_translation_cache) | |
| ($parser_translation_cache): rename translation_cache as | |
| converters_translation_cache and | |
| lang_translations_cache/lang_translations as parser_translation_cache. | |
| Update users | |
| * tta/C/main/translations.c (get_lang_info_translation): add const. | |
| 2026-04-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text) | |
| (convert, output): inline and remove | |
| _initialize_converter_text_options_encoding and | |
| _initialize_text_options_encoding. | |
| * tta/C/main/convert_to_text.c, tta/perl/Texinfo/Convert/Text.pm: | |
| remove text_set_language, text_set_script, text_set_languagevariant, | |
| set_language, set_script and set_languagevariant. | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info): | |
| remove language_variants unused variable code. | |
| * tta/perl/t/z_misc/convert_to_text.t: add a test with a | |
| @documentlanguage before the translated appendix @-command. | |
| 2026-04-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (build_lang_info): build bcp47_locale | |
| field too. | |
| 2026-04-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_tree.c (parse_node_manual): destroy node if it | |
| is not registered. | |
| * tta/C/main/translations.c (set_translations_documentlanguage): free | |
| bcp47_locale. | |
| 2026-04-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (pass_global_info): remove unused | |
| variables. | |
| 2026-04-27 Patrice Dumas <pertusus@free.fr> | |
| Document language_commands global commands data | |
| 2026-04-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/texi2any.pl: do not set main_configuration documentlanguage | |
| based on document information, as it is not gathered in document | |
| information anymore. It wouldn't be needed from there anyway, as | |
| values set from command-line or init files are already in | |
| main_configuration. | |
| * tta/C/parsetexi/parser.c (get_parser_info): rename get_document_info | |
| as get_parser_info to have the same name as in Perl. | |
| Changes in comments. | |
| 2026-04-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl (test): pass documentlanguage and | |
| documentscript to test_customization_options. | |
| * tta/perl/t/transformations.t (@tests_converted): set full_document. | |
| * tta/perl/Makefile.tres, tta/perl/t/transformations.t | |
| (regenerate_master_menu_language_at_beginning_and_end) | |
| (regenerate_master_menu_language_at_beginning_end_set_lang), | |
| tta/tests/formatting/no_detailmenu_lang_at_begin_end.texi, | |
| tta/tests/formatting/Makefile.am (EXTRA_DIST), | |
| tta/tests/formatting/list-of-tests (no_detailmenu_lang_at_begin_end) | |
| (no_detailmenu_lang_at_begin_end_set_lang): add tests of | |
| regenerate_master_menu tree transformations and documentlanguage at | |
| beginning and end of Texinfo file, and setting documentlanguage. | |
| 2026-04-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c | |
| (set_converter_preamble_language_commands), | |
| tta/perl/Texinfo/Convert/Converter.pm | |
| (set_converter_preamble_language_commands): reset configuration | |
| variables to begin values in set_converter_preamble_language_commands. | |
| Update callers. | |
| * tta/C/main/translations.c (set_preamble_language_commands), | |
| tta/perl/Texinfo/Translations.pm (set_preamble_language_commands): | |
| start from a NULL lang_translations, remove the corresponding | |
| argument. Update callers. | |
| * tta/C/convert/build_html_perl_state.c (set_perl_lang_translations): | |
| rename set_perl_translations_documentlanguage as | |
| set_perl_lang_translations. | |
| * tta/C/convert/build_html_perl_state.c (build_html_translated_names): | |
| remove code setting documentlanguage for Text converter, as it is not | |
| used. | |
| 2026-04-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (pass_global_info): do not register | |
| language related commands information directly in global_info. | |
| 2026-04-26 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_tree.c (copy_tree_internal), | |
| tta/perl/Texinfo/ManipulateTree.pm (_copy_tree): do not add a parent | |
| to the copied element if the source element does not have a parent. | |
| * tta/perl/Texinfo/Translations.pm (gdt): use | |
| Texinfo::ManipulateTree::copy_element_tree to copy tree, and not | |
| dclone, to get the same detailed tree as in C. | |
| * tta/perl/Texinfo/Translations.pm (_set_lang_info_translation): | |
| handle an undef $translations. | |
| * tta/C/structuring_transfo/transformations.c | |
| (complete_tree_nodes_missing_menu, regenerate_master_menu), | |
| tta/perl/Texinfo/TransformationsNonXS.pm | |
| (complete_tree_nodes_missing_menu, regenerate_master_menu): create | |
| lang_translation by calling set_preamble_language_commands. | |
| * tta/perl/Texinfo/ParserNonXS.pm (get_parser_info): do not register | |
| language related commands information directly in global_info. | |
| 2026-04-26 Patrice Dumas <pertusus@free.fr> | |
| for DocBook, take into account resetting by @documentlanguage in preamble | |
| * tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin): call | |
| set_converter_preamble_language_commands to determine the bcp47_locale | |
| at the end of the preamble. | |
| 2026-04-26 Patrice Dumas <pertusus@free.fr> | |
| for HTML, take into account resetting by @documentlanguage in preamble | |
| * tta/C/convert/convert_html.c (html_translate_names) | |
| (html_convert_tree_append), tta/perl/Texinfo/Convert/HTML.pm | |
| (_convert), tta/perl/Texinfo/Convert/HTMLNonXS.pm (_translate_names), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs (_translate_names): do not | |
| set current_lang_translations converter in *_translate_names, set it | |
| before calling *_translate_names, for instance in | |
| html_convert_tree_append. Remove language_variants *_translate_names | |
| argument, update callers. | |
| * tta/perl/Texinfo/Common.pm (in_preamble), tta/C/main/utils.c | |
| (in_preamble): rename _in_preamble as in_preamble in Perl. Make | |
| function extern in C and add const. | |
| * tta/C/main/command_data.awk, tta/C/parsetexi/end_line.c | |
| (end_line_misc_line), tta/C/main/build_perl_info.c | |
| (build_global_commands), tta/C/main/utils.c (delete_global_commands), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): add new elements | |
| list in global_commands with all the language related commands in the | |
| order they appear in in the document. This allows to get the commands | |
| in order to take into acount that @documentlanguage resets | |
| @documentscript and @documentlanguagevariant. | |
| * tta/C/main/document_types.h (PREAMBLE_LANG_CMD) | |
| (PREAMBLE_LANG_CMD_LIST, GLOBAL_INFO), tta/C/main/utils.c | |
| (delete_global_info), tta/C/parsetexi/parser.c (add_preamble_lang_cmd), | |
| (get_document_info, parse_texi_document), tta/C/main/build_perl_info.c | |
| (pass_global_info), tta/perl/Texinfo/ParserNonXS.pm (get_parser_info): | |
| new global info field, preamble_lang_cmd with add textual information | |
| on lang related commands appearing in preamble in the order the appear | |
| in the preamble, and only if the values are not already set from | |
| command-line. | |
| * tta/C/convert/converter.c | |
| (set_converter_preamble_language_commands), tta/C/main/translations.c | |
| (set_preamble_language_commands), tta/C/main/convert_to_text.c | |
| (copy_options_for_convert_text), tta/perl/Texinfo/Convert/Converter.pm | |
| (set_converter_preamble_language_commands), | |
| tta/perl/Texinfo/Translations.pm (set_preamble_language_commands), | |
| tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text): add | |
| to set current_lang_translations based on global info | |
| preamble_lang_cmd. Use in copy_options_for_convert_text. | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info), | |
| tta/C/convert/html_prepare_converter.c (html_setup_output), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_prepare_converted_output_info) | |
| (_setup_output): call set_converter_preamble_language_commands to set | |
| current_lang_translations to the end of the preamble values. Reset | |
| afterwards. | |
| * tta/perl/t/languages.t (documentscript_variant_reset_in_preamble), | |
| tta/perl/Makefile.tres: add a test with @documentscript and | |
| @documentlanguagevariant reset by @documentlanguge in preamble. | |
| 2026-04-24 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/languages.t (unknown_documentscript_selection) | |
| (documentlanguagevariant_selection): add more testing to have some | |
| combinations now that documentlanguage unset the other language | |
| commands. | |
| 2026-04-24 Patrice Dumas <pertusus@free.fr> | |
| documentlanguage resets documentscript and variants in conversion | |
| * tta/C/main/translations.c (set_translations_documentlanguage), | |
| tta/perl/Texinfo/Translations.pm (set_translations_documentlanguage): | |
| reset script and language variants. | |
| * tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text): | |
| call set_translations_documentlanguage first to avoid resetting the | |
| other commands values. | |
| 2026-04-24 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (%indices_lang_translations) | |
| (complete_indices): collect a lang_info only from the definition | |
| element, and cache the corresponding lang_translations. Separate the | |
| current_lang_translations and the element lang_translations such that | |
| the element lang_translations can be undef independently of the | |
| current_lang_translations. | |
| * tta/C/main/translations.c (new_element_lang_info) | |
| (new_element_language_translation), tta/perl/Texinfo/Translations.pm | |
| (new_element_language_translation): return undef/NULL immediately | |
| if documentlanguage is not present. | |
| 2026-04-24 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm | |
| (converter_set_documentlanguage, converter_set_documentscript) | |
| (converter_set_documentlanguagevariant), | |
| tta/perl/Texinfo/Convert/Text.pm (set_language, set_script) | |
| (set_languagevariant): do not register undef as | |
| current_lang_translations. | |
| * tta/perl/Texinfo/Translations.pm (new_lang_translations): return | |
| directly undef if $lang_info is undef. | |
| * tta/perl/Texinfo/Convert/HTML.pm (_html_cache_translate_string): use | |
| a file scoped $unknown_lang_info when lang_translation is undef. | |
| * tta/perl/Texinfo/Translations.pm (lang_info_bcp47_locale): add. | |
| * tta/perl/Texinfo/Translations.pm (new_lang_info) | |
| (set_translations_documentlanguage, set_translations_documentscript) | |
| (set_translations_documentlanguagevariant): always set 'bcp47_locale' | |
| when creating a lang translations. Remove get_lang_info_bcp47_locale. | |
| Update get_lang_info_bcp47_locale callers. | |
| 2026-04-24 Patrice Dumas <pertusus@free.fr> | |
| documentlanguage resets documentscript and variants in parsers | |
| * tta/C/parsetexi/end_line.c (end_line_misc_line), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): reset | |
| documentscript and documentlanguagevariant states when encountering | |
| documentlanguage. | |
| 2026-04-24 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (pass_global_info): pass | |
| documentlanguagevariant from the end of the preamble. | |
| * tta/C/main/utils.c (documentlanguagevariant_variants): change a | |
| variable name. | |
| 2026-04-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| Index sort key output for UTF-8 | |
| * doc/texinfo.tex (\unicodechardefs): | |
| Use \DeclareUnicodeCharacterSK instead of \DeclareUnicodeCharacter | |
| for several characters in the Latin-1 block (U+00A0-U+OOFF). | |
| 2026-04-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| Index sort key output for UTF-8 | |
| * doc/texinfo.tex (\DeclareUnicodeCharacterSK): Add definition | |
| to be used in place of \DeclareUnicodeCharacter to allow defining | |
| sort string for index sort key along with the main definition for | |
| the character. | |
| 2026-04-26 Gavin Smith <gavinsmith0123@gmail.com> | |
| Index sort key output for UTF-8 | |
| * doc/texinfo.tex | |
| (\ifinindexsortkey): Define with \newif. | |
| (\doindexsegment): Set \inindexsortkeytrue when processing index | |
| sort key. | |
| (\UTFviiiSortkeyTwo, \UTFviiiSortkeyThree, \UTFviiiSortkeyFour): | |
| Special definitions for UTF-8 sequences inside UTF-8 sequences. | |
| By default, output the sequences as they are within a pair of | |
| curly brackets. Check for special sort key definition and | |
| use that instead if available. | |
| (\DefineSortKey): Add macro to define special sort key for | |
| Unicode codepoint. Do not actually use it anywhere yet. | |
| (\DeclareUnicodeCharacterNative): Handle \ifinindexsortkey similarly | |
| for luatex and xetex. | |
| (\DeclareUnicodeCharacterUTFviii): Correct a comment. | |
| There would be errors with texindex output with a UTF-8-encoded | |
| Texinfo file under a non-UTF-8 locale, or with an awk program | |
| that didn't pay attention to the locale encoding. | |
| Report from Vincent Belaïche, March 2026, and Werner Lemberg, | |
| November 2022. | |
| 2026-04-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/get_converter_perl_info.c | |
| (copy_sv_options_for_convert_text), tta/C/main/get_perl_info.c | |
| (get_lang_info_hv), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): allocate lang info in get_lang_info_hv. | |
| * tta/C/main/translations.c (lang_info_bcp47_locale): add. | |
| * tta/C/main/get_perl_info.c (get_lang_info_hv), | |
| tta/C/main/translations.c (new_lang_info, new_copy_translation) | |
| (set_translations_documentlanguage, set_translations_documentscript) | |
| (set_translations_documentlanguagevariant): always set bcp47_locale | |
| when creating a lang info. Remove get_lang_info_bcp47_locale. Update | |
| get_lang_info_bcp47_locale callers to access directly bcp47_locale. | |
| The bcp47_locale is always needed soon after the creation and it | |
| simplifies the code. | |
| * tta/C/parsetexi/indices.c (complete_indices): rename | |
| current_lang_translations variable as element_lang_translations. | |
| 2026-04-23 Patrice Dumas <pertusus@free.fr> | |
| use documentlanguagevariant in HTML, DocBook and LaTeX conversion | |
| * tta/C/main/utils.c (documentlanguagevariant_variants): add. | |
| * tta/C/convert/convert_html.c (html_translate_names) | |
| (html_prepare_converted_output_info, html_convert_tree_append), | |
| tta/C/convert/format_html.c | |
| (html_convert_documentlanguagevariant_command), | |
| tta/C/convert/html_prepare_converter.c | |
| (commands_internal_conversion_table), tta/perl/Texinfo/Convert/HTML.pm | |
| (_convert_documentlanguagevariant_command, _convert), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_translate_names) | |
| (_prepare_converted_output_info), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs (_translate_names): add | |
| language_variants argument to *_translate_names. Set variants based | |
| on documentlanguagevariant and value at the end of the preamble and | |
| pass to translate_names. Update *_translate_names callers. | |
| * tta/C/convert/html_prepare_converter.c (html_setup_output), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_setup_output): handle | |
| documentlanguagevariant for BODY_ELEMENT_ATTRIBUTES lang attribute. | |
| * tta/perl/Texinfo/Convert/DocBook.pm (%docbook_global_commands) | |
| (conversion_output_begin, _convert): handle documentlanguagevariant. | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (%LaTeX_formatted_line_commands) | |
| (%LaTeX_formatted_nobrace_commands): rename %formatted_line_commands | |
| as %LaTeX_formatted_line_commands and %formatted_nobrace_commands as | |
| %LaTeX_formatted_nobrace_commands. | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (%LaTeX_formatted_line_commands) | |
| (_convert): handle documentlanguagevariant. | |
| 2026-04-23 Patrice Dumas <pertusus@free.fr> | |
| use documentlanguagevariant in Plaintext and in Text with converter | |
| * tta/C/main/utils.c (join_strings_list): add const. | |
| * tta/C/main/convert_to_text.c (copy_options_for_convert_text) | |
| (text_set_languagevariant), tta/C/main/translations.c | |
| (set_translations_documentlanguagevariant), | |
| tta/perl/Texinfo/Convert/Converter.pm (converter_set_documentscript), | |
| tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text) | |
| (set_languagevariant), tta/perl/Texinfo/Translations.pm | |
| (set_translations_documentlanguagevariant): handle | |
| documentlanguagevariant with set_translations_documentlanguagevariant, | |
| converter_set_documentscript and text_set_languagevariant. Add | |
| document argument to copy_options_for_convert_text and update callers. | |
| Use global_information for documentlanguage and documentscript in Perl | |
| copy_options_for_convert_text. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (%formatted_line_commands) | |
| (_convert): set current lang translation based on | |
| documentlanguagevariant. | |
| * tta/C/main/translations.c (new_copy_translation): inline | |
| copy_lang_info in new_copy_translation. | |
| * tta/C/main/translations.c (set_translations_documentscript): set to | |
| 0 before copying. | |
| * po_document/qaa.po, po_document/qaa@1234.po, | |
| po_document/qaa@latin.po, tta/perl/t/z_misc/convert_to_text.t | |
| (@tests_specs, run_test): add a function to generalize running tests | |
| and tests specifications that also test documentscript and | |
| documentlanguagevariant. Call parse_texi_text instead of | |
| parse_texi_piece and let the generic code set documentlanguage and | |
| documentscript. | |
| 2026-04-22 Patrice Dumas <pertusus@free.fr> | |
| use documentlanguagevariant in completed def alias translations | |
| * tta/C/main/translations.c (init_lang_translation): use both the XPG | |
| full locale and the lang part if they are different. | |
| * tta/C/main/translations.c (new_lang_info), tta/C/main/translations.c | |
| (new_element_lang_info, new_element_language_translation), | |
| tta/perl/Texinfo/Translations.pm (new_lang_info) | |
| (new_element_language_translation): get documentlanguagevariant from | |
| element and put variants in lang info. | |
| * tta/perl/Makefile.tres, tta/perl/t/languages.t | |
| (documentlanguagevariant_conversion): add test of | |
| @documentlanguagevariant for conversion. | |
| 2026-04-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/gnulib/lib/bcp47.c (bcp47_to_xpg): do not consider a subtag with | |
| numbers to possibly be a script subtag. Local fix reported upstream: | |
| https://lists.gnu.org/archive/html/bug-gnulib/2026-04/msg00154.html | |
| 2026-04-22 Patrice Dumas <pertusus@free.fr> | |
| * po_document/LINGUAS, po_document/Makevars (UNDESIRED_LINGUAS), | |
| po_document/qaa@1234.po: rename qaa@123.po as qaa@1234.po and update | |
| translations. A variant with numbers must be at least 4 characters | |
| long. | |
| 2026-04-22 Patrice Dumas <pertusus@free.fr> | |
| Set documentlanguagevariant in extra for translations and global info | |
| * tta/C/main/utils.c (analyze_documentlanguagevariant_argument_e), | |
| tta/C/parsetexi/end_line.c (end_line_misc_line), | |
| tta/perl/Texinfo/Common.pm | |
| (_analyze_documentlanguagevariant_argument_e) | |
| (warn_documentlanguagevariant_arguments) | |
| (documentlanguagevariant_variants), tta/perl/Texinfo/ParserNonXS.pm | |
| (_end_line_misc_line) (@translation_commands), : add | |
| analyze_documentlanguagevariant_argument_e. Add warnings on malformed | |
| or unknown documentlanguagevariant arguments. | |
| * tta/C/main/tree_types.h (AI_KEYS_LIST), tta/C/parsetexi/def.c | |
| (parse_def), tta/C/parsetexi/end_line.c (end_line_def_line), | |
| tta/perl/Texinfo/ManipulateTree.pm (_print_element_associated_info), | |
| tta/perl/Texinfo/ParserNonXS.pm (@translation_commands): add extra | |
| documentlanguagevariant and pass it to def elements to translate. | |
| * tta/C/main/build_perl_info.c (pass_global_info), | |
| tta/C/main/document_types.h (GLOBAL_INFO), tta/C/main/utils.c | |
| (delete_global_info), tta/C/parsetexi/end_line.c (end_line_misc_line), | |
| tta/perl/Texinfo/ParserNonXS.pm (get_parser_info): pass | |
| documentlanguagevariant to global info. | |
| * tta/perl/Makefile.tres, tta/perl/t/08misc_commands.t | |
| (documentlanguagevariant_validity), tta/perl/t/languages.t | |
| (documentlanguagevariant_selection): add tests for malformed | |
| documentlanguagevariant arguments, and to see extra being set. | |
| 2026-04-22 Patrice Dumas <pertusus@free.fr> | |
| * po_document/qaa@123.po: add pseudo-translations that make clear | |
| which file they come from. | |
| 2026-04-21 Patrice Dumas <pertusus@free.fr> | |
| Use documentscript in conversion | |
| * tta/C/main/utils.c (analyze_documentscript_argument): handle NULL | |
| text. | |
| * tta/perl/Texinfo/Translations.pm (get_lang_info_xdg_locale): fix | |
| typo in module name. | |
| * tta/perl/Texinfo/Translations.pm | |
| (set_translations_documentlanguage): return current_lang_translations | |
| if the documentlanguage is bogus. | |
| * tta/C/convert/build_html_perl_state.c | |
| (set_perl_translations_documentlanguage), | |
| tta/C/convert/get_converter_perl_info.c | |
| (copy_sv_options_for_convert_text): use converter | |
| current_lang_translations to build the lang info Perl information | |
| through a call to build_lang_info. | |
| * tta/C/main/translations.c (new_lang_info, new_element_lang_info) | |
| (new_lang_translations, new_element_language_translation) | |
| (set_translations_documentlanguage), tta/C/main/tree_types.h | |
| (LANG_TRANSLATION), tta/perl/Texinfo/Translations.pm (new_lang_info) | |
| (new_lang_translations, new_element_language_translation), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): add new_lang_info and new_element_lang_info, | |
| new_lang_translations and new_element_language_translation. Use a | |
| pointer for DOCUMENT_LANG_INFO info in LANG_TRANSLATION. Update | |
| set_translations_documentlanguage and other users. Remove | |
| new_documentlanguage_translation, get_documentlanguage_translation and | |
| fill_document_lang_info. | |
| * tta/C/main/translations.c (destroy_document_lang_info): replace | |
| free_document_lang_info by destroy_document_lang_info and free the | |
| lang_info too. | |
| * tta/C/main/translations.c (set_translations_documentscript), | |
| tta/perl/Texinfo/Translations.pm (set_translations_documentscript): | |
| add. | |
| * tta/C/main/build_perl_info.c (build_convert_text_options), | |
| tta/C/main/convert_to_text.c (destroy_text_options) | |
| (copy_options_for_convert_text, text_set_language, text_set_script) | |
| tta/C/main/convert_to_text.h (TEXT_OPTIONS), | |
| tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text) | |
| (set_script): remove documentlanguage from text options, instead set | |
| current_lang_translations based on documentlanguage and documentscript | |
| options values. Add text_set_script and set_script. | |
| * tta/C/convert/converter.c (set_converter_init_information), | |
| tta/perl/Texinfo/Convert/Converter.pm (converter_set_documentscript), | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm (_generic_converter_init): | |
| pass documentscript. Add converter_set_documentscript. | |
| * tta/C/convert/convert_html.c (html_prepare_converted_output_info), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_prepare_converted_output_info): use current_lang_translations to get | |
| bcp47_locale and set documentlanguage and documentscript in | |
| html_prepare_converted_output_info. | |
| * tta/C/parsetexi/indices.c (complete_indices), | |
| tta/perl/Texinfo/Translations.pm (complete_indices): use | |
| new_element_lang_info and set_lang_info_translation in | |
| complete_indices in C and new_element_language_translation in Perl. | |
| * tta/C/structuring_transfo/transformations.c | |
| (complete_tree_nodes_missing_menu, regenerate_master_menu), | |
| tta/perl/Texinfo/TransformationsNonXS.pm | |
| (complete_tree_nodes_missing_menu, regenerate_master_menu): setup | |
| lang_translation with a call to new_lang_translations. | |
| * tta/C/convert/convert_html.c (html_translate_names) | |
| (conf_for_documentlanguage, html_convert_tree_append), | |
| tta/C/convert/html_prepare_converter.c (informative_global_commands) | |
| (conf_for_documentlanguage, commands_internal_conversion_table), | |
| tta/perl/Texinfo/Convert/HTML.pm (@informative_global_commands) | |
| (_convert), tta/perl/Texinfo/Convert/HTMLNonXS.pm (_translate_names): | |
| in html_translate_names, call text_set_script and | |
| set_translations_documentscript based on documentscript option. Get | |
| documentscript value during conversion, and call html_translate_names | |
| for documentscript too. | |
| * tta/perl/Texinfo/Convert/DocBook.pm (%docbook_global_commands) | |
| (conversion_output_begin, _convert), tta/perl/Texinfo/Convert/LaTeX.pm | |
| (_informative_command_output, _latex_begin_output), | |
| tta/perl/Texinfo/Convert/Plaintext.pm (@informative_global_commands) | |
| (_convert): handle documentscript. | |
| * tta/C/main/convert_to_text.c (convert_to_text_internal), | |
| tta/C/main/convert_utils.c (definition_category_tree), | |
| tta/perl/Texinfo/Convert/Text.pm (_convert), | |
| tta/perl/Texinfo/Convert/Utils.pm (definition_category_tree): use | |
| new_element_language_translation to set lang translations for category | |
| text when there is no converter. | |
| * tta/C/convert/html_prepare_converter.c (html_setup_output), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_setup_output): use | |
| new_lang_info with configuration options to determine the body lang | |
| attribute. | |
| * tta/perl/t/languages.t (documentscript_conversion), | |
| tta/perl/Makefile.tres: add test for documentscript in conversions. | |
| * tta/perl/t/z_misc/do_master_menu.t: simply pass undef for | |
| lang_translation. | |
| 2026-04-20 Patrice Dumas <pertusus@free.fr> | |
| * po_document/qaa.po po_document/qaa@latin.po: add pseudo-translations | |
| that make clear which file they come from. | |
| 2026-04-20 Patrice Dumas <pertusus@free.fr> | |
| Setup po files with private use language for script and variant tests | |
| * README-hacking, po_document/LINGUAS, po_document/Makevars | |
| (UNDESIRED_LINGUAS, INST_LINGUAS, CATALOGS), po_document/qaa.po, | |
| po_document/qaa@123.po, po_document/qaa@latin.po: add po files solely | |
| used for in-build tests. Reset CATALOGS in Makevars excluding these | |
| po files such that they are not installed. Use qaa language for these | |
| files, which is in a range with "Private use" Description in | |
| language-subtag-registry. | |
| 2026-04-20 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/tree_types.h (enum extra_type): rename extra_misc_args as | |
| extra_string_list. Update users. | |
| * tta/C/main/extra.c (add_extra_string_list) | |
| (lookup_extra_string_list): rename lookup_extra_misc_args as | |
| lookup_extra_string_list and add_extra_misc_args as | |
| add_extra_string_list. Update callers. | |
| * tta/C/main/tree_types.h (AI_KEYS_LIST), tta/C/parsetexi/macro.c | |
| (parse_macro_command_line, lookup_macro_parameter) | |
| (expand_macro_arguments, expand_linemacro_arguments, handle_macro), | |
| tta/perl/Texinfo/Example/TexinfoMarkup.pm (_convert), | |
| tta/perl/Texinfo/ManipulateTree.pm (_print_element_associated_info), | |
| tta/perl/Texinfo/ParserNonXS.pm (_parse_macro_command_line) | |
| (_expand_macro_arguments, _expand_linemacro_arguments) | |
| (_handle_macro): add formal_args extra_string_list extra element for | |
| macro formal arguments list and use it. | |
| * tta/C/api_for_swig/swig_interface.c (txi_ext_element_formal_args), | |
| tta/swig/texinfo.i (element_formal_args): add. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/html_converter_finish.c (html_free_converter): clear | |
| units_direction_names_index (found with valgrind). | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c: move code around. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/build_perl_info.c (build_key_pair_info), | |
| tta/C/tree_elements/build_perl_tree_elements.c | |
| (build_element_attribute): replace build_extra_misc_args by a call to | |
| build_string_list. Remove build_extra_misc_args. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/languages.t (invalid_documentlanguage) | |
| (documentlanguage_selection_accented_region) | |
| (documentlanguage_selection_region_unicode): do not set | |
| COMMAND_LINE_ENCODING as documentlanguage argument is not encoded | |
| anymore. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/end_line.c (end_line_misc_line), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): do not set | |
| documentscript state if it is an empty string. | |
| * tta/perl/Makefile.tres, tta/perl/t/languages.t | |
| (documentscript_selection, documentscript_before_documentlanguage) | |
| (unknown_documentscript_selection): add tests of documentscript | |
| being set in translated elements extra. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| Set documentscript extra on translated elements | |
| * tta/C/main/utils.c (analyze_documentscript_argument): rename | |
| analyse_documentscript_argument as analyze_documentscript_argument. | |
| Add valid_script argument. Fix one-off NUL. | |
| * tta/C/parsetexi/parser.c (text_contents_to_plain_text): return an | |
| empty string, never return NULL. Update callers. | |
| * tta/C/main/parser_conf.h (PARSER_CONF), tta/C/parsetexi/api.c | |
| (initialize_parsing), tta/C/parsetexi/conf.c | |
| (parser_conf_set_documentscript), tta/C/parsetexi/parser.c | |
| (global_documentscript), tta/C/parsetexi/end_line.c | |
| (end_line_def_line), tta/perl/Texinfo/Common.pm | |
| (analyze_documentscript_argument), tta/perl/Texinfo/ParserNonXS.pm | |
| (@translation_commands, get_parser_info, _initialize_parsing) | |
| (_end_line_misc_line), tta/perl/Texinfo/ParserXS.pm (parser), | |
| tta/perl/XSTexinfo/parser_document/ParserXS.xs | |
| (parser_conf_set_documentscript), tta/C/convert/texinfo.c | |
| (txi_parser), tta/C/main/build_perl_info.c (pass_global_info), | |
| tta/perl/texi2any.pl, tta/C/main/document.c (set_document_options): | |
| pass documentscript from command line. Analyze documentscript | |
| argument and warn if needed. Set documentscript in parser state. | |
| * tta/C/parsetexi/def.c (parse_def), tta/C/main/tree_types.h | |
| (AI_KEYS_LIST), tta/C/parsetexi/end_line.c (end_line_def_line), | |
| tta/perl/Texinfo/ParserNonXS.pm (_parse_def, _end_line_def_line): | |
| put documenscript in extra for elements needing to be translated. | |
| * tta/C/api_for_swig/swig_parser_api.c | |
| (txi_ext_parser_conf_set_documentscript), tta/swig/texinfo.i | |
| (parser_conf_set_documentscript): add. | |
| * tta/perl/t/08misc_commands.t (documentscript_argument), | |
| tta/perl/Makefile.tres: add @documentscript arguments test. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm | |
| (converter_set_documentlanguage), tta/perl/Texinfo/Convert/Text.pm | |
| (set_language), tta/perl/Texinfo/Convert/Utils.pm, | |
| tta/perl/Texinfo/Translations.pm (_set_lang_info_translation) | |
| (set_translations_documentlanguage): move _set_lang_info_translation | |
| and set_translations_documentlanguage, have | |
| set_translations_documentlanguage return the new current translations, | |
| pass translations hashes and current translations in argument. Add | |
| converter_set_documentlanguage wrapper and use Text.pm set_language | |
| as wrapper. Update callers to call the wrappers. For a more logical | |
| separation of code and to be more like C. | |
| * tta/perl/Texinfo/Translations.pm (_new_lang_info_translation): | |
| rename new_lang_info_translation as _new_lang_info_translation. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (set_translations_documentlanguage), | |
| tta/perl/Texinfo/Convert/Utils.pm (set_translations_documentlanguage), | |
| tta/C/convert/build_html_perl_state.c | |
| (set_perl_translations_documentlanguage): rename | |
| switch_lang_translations as set_translations_documentlanguage and | |
| switch_perl_lang_translations as | |
| set_perl_translations_documentlanguage. | |
| 2026-04-19 Patrice Dumas <pertusus@free.fr> | |
| Merge new documentlanguage with current lang translations | |
| * tta/perl/Texinfo/Translations.pm (new_lang_info_translation): | |
| split out of new_documentlanguage_translation. | |
| * tta/C/main/translations.c (switch_lang_translations), | |
| tta/perl/Texinfo/Convert/Utils.pm (switch_lang_translations) | |
| (_switch_lang_info_translations): compare lang and region to | |
| current_lang_translations. Merge current_lang_translations lang_info | |
| with new documentlanguage information. add _set_lang_info_translation | |
| in Perl. | |
| * tta/C/structuring_transfo/structuring.c (new_complete_node_menu): | |
| allow NULL lang_translations. | |
| * tta/perl/Texinfo/Common.pm (analyze_documentlanguage_argument): | |
| allow undef argument. | |
| * tta/C/main/translations.c (set_lang_info_translation): inline and | |
| remove new_set_translation. Rename info as lang_info. | |
| 2026-04-18 Patrice Dumas <pertusus@free.fr> | |
| Add data fields for language scripts and variants | |
| * tta/C/convert/build_html_perl_state.c | |
| (switch_perl_lang_translations), | |
| tta/C/convert/call_html_perl_function.c | |
| (call_formatting_function_format_translate_message), | |
| tta/C/main/build_perl_info.c (build_lang_info): add build_lang_info. | |
| * tta/C/main/translations.c (free_document_lang_info): rename | |
| clear_document_lang_info as free_document_lang_info. Update callers. | |
| * tta/C/main/translations.c (copy_lang_info, new_copy_translation): | |
| add copy_lang_info, based on new_copy_translation. | |
| * tta/C/convert/build_html_perl_state.c | |
| (switch_perl_lang_translations), | |
| tta/C/convert/call_html_perl_function.c | |
| (call_formatting_function_format_translate_message), | |
| tta/C/convert/convert_html.c (unknown_lang_info), | |
| tta/C/convert/html_prepare_converter.c (html_setup_output), | |
| tta/C/main/build_perl_info.c (build_lang_info), | |
| tta/C/main/get_perl_info.c (get_lang_info_hv), | |
| tta/C/main/translations.c (get_lang_info_bcp47_locale) | |
| (fill_document_lang_info, free_document_lang_info) | |
| (init_lang_translation, new_documentlanguage_translation) | |
| (new_set_translation, copy_lang_info, new_copy_translation) | |
| (find_lang_translation, set_lang_info_translation) | |
| (get_lang_info_translation, switch_lang_translations) | |
| (unknown_lang_info), tta/C/main/tree_types.h (DOCUMENT_LANG_INFO), | |
| tta/perl/Texinfo/Convert/Converter.pm (current_bcp47_locale), | |
| tta/perl/Texinfo/Convert/HTML.pm (_html_cache_translate_string), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_setup_output), | |
| tta/perl/Texinfo/Convert/Utils.pm (switch_lang_translations), | |
| tta/perl/Texinfo/Translations.pm (get_lang_info_xdg_locale), | |
| (get_lang_info_bcp47_locale, fill_document_lang_info) | |
| (new_documentlanguage_translation, complete_indices), | |
| tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): use a hash for lang_info in Perl. Add | |
| script and variants to lang info data structures. Add | |
| get_lang_info_bcp47_locale in C. Do not set immediately bcp47_locale, | |
| set when needed by calling get_lang_info_bcp47_locale. Initialize | |
| lang info to 0. Because get_lang_info_bcp47_locale modifies the data, | |
| remove const for most LANG_TRANSLATION. Add get_lang_info_hv. Modify | |
| get_lang_info_xdg_locale and get_lang_info_bcp47_locale to prepare for | |
| having script and variants set in lang info. | |
| * tta/C/parsetexi/indices.c: reindent. | |
| 2026-04-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/regenerate_documentlanguages-iana.pl: add | |
| %documentscript_XPG_script to associated ISO script name to name | |
| usable for XPG locales. | |
| 2026-04-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/data/options_data.txt (documentscript): add documentscript. | |
| 2026-04-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (join_strings_list): add delimiter argument. | |
| Update callers. | |
| * tta/C/main/utils.c (analyse_documentscript_argument): add. | |
| * tta/C/main/utils.h (TXI_DOCUMENT_SCRIPT): add typedef. | |
| 2026-04-18 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/init/translate_txiinternalvalue_macro.init: change | |
| beginning of function, use exists instead of defined. | |
| 2026-04-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (C_libtexinfo_sources), | |
| tta/maintain/regenerate_documentlanguages-iana.pl: get language | |
| variants. | |
| 2026-04-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.h (TXI_DOCUMENT_SCRIPT), | |
| tta/maintain/regenerate_documentlanguages-iana.pl: add aliases for | |
| script names to be able to specify scripts usually part of XPG locale | |
| @variant. | |
| 2026-04-16 Patrice Dumas <pertusus@free.fr> | |
| @documentlanguagevariant and @documentscript in texi2any tree | |
| * tta/C/parsetexi/end_line.c (end_line_misc_line), | |
| tta/C/parsetexi/handle_commands.c (handle_line_command), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line) | |
| (_handle_line_command): handle variadic line command. Use the same | |
| condition to remove remaining_args for line commands as for adding it. | |
| * tta/C/parsetexi/end_line.c (end_line_misc_line), | |
| tta/data/command_data.txt (documentscript, documentlanguagevariant), | |
| tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): | |
| add @documentlanguagevariant and @documentscript. | |
| * tta/perl/t/08misc_commands.t (documentlanguagevariant_arguments), | |
| tta/perl/Makefile.tres: add test of @documentlanguagevariant. | |
| 2026-04-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\onepageout): Remove call to \turnoffactive | |
| directly after \atdummies as \atdummies also calls \turnoffactive. | |
| 2026-04-19 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/dir.c (build_dir_node): avoid crash if dir file is malformed | |
| or couldn't be loaded. | |
| Report from Hilmar Preuße. | |
| 2026-04-14 Patrice Dumas <pertusus@free.fr> | |
| Use BCP 47 language format in output formats | |
| * tta/C/convert/html_prepare_converter.c (html_setup_output), | |
| tta/perl/Texinfo/Convert/Converter.pm (current_bcp47_locale), | |
| tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin) | |
| (_convert), tta/perl/Texinfo/Convert/HTMLNonXS.pm (_setup_output), | |
| tta/perl/Texinfo/Convert/LaTeX.pm (_informative_command_output) | |
| (_latex_header): add current_bcp47_locale to get the BCP 47 language | |
| locale in the current_lang_translations. Output BCP 47 language | |
| locales for output formats, as output formats use this language | |
| specification format. | |
| * tta/C/main/convert_utils.h: do not include translations.h in | |
| convert_utils.h. Update users. | |
| * tta/C/main/translations.c (init_lang_translation): add const. | |
| 2026-04-14 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/DocBook.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm, | |
| tta/perl/Texinfo/Convert/Info.pm, tta/perl/Texinfo/Convert/LaTeX.pm, | |
| tta/perl/Texinfo/Convert/Plaintext.pm, | |
| tta/perl/Texinfo/Convert/Text.pm, | |
| tta/perl/Texinfo/Example/ReadDocBook.pm: remove now unused command | |
| line encoding argument in calls to | |
| Texinfo::Convert::Utils::switch_lang_translations. | |
| * tta/perl/Texinfo/Convert/DocBook.pm: minor changes in code order. | |
| 2026-04-12 Patrice Dumas <pertusus@free.fr> | |
| add lang information in lang_translation and use bcp47 locale | |
| * tta/perl/Texinfo/Common.pm (analyze_documentlanguage_argument): add. | |
| * tta/perl/Texinfo/Translations.pm ($lang_translations_cache): rename | |
| $lang_translations as $lang_translations_cache. | |
| * tta/C/convert/build_html_perl_state.c | |
| (switch_perl_lang_translations, build_html_translated_names), | |
| tta/C/convert/convert_html.c (html_cache_translate_string), | |
| tta/C/main/call_perl_function.c (call_translations_translate_string), | |
| tta/C/main/translations.c (translate_string, fill_document_lang_info) | |
| (clear_document_lang_info, init_lang_translation) | |
| (new_documentlanguage_translation, new_set_translation) | |
| (new_copy_translation, free_lang_translation, find_lang_translation) | |
| (set_lang_info_translation, get_lang_info_translation) | |
| (get_documentlanguage_translation, switch_lang_translations) | |
| (cache_translate_string), tta/C/main/tree_types.h (DOCUMENT_LANG_INFO) | |
| (LANG_TRANSLATION), tta/C/parsetexi/indices.c (complete_indices), | |
| (analyze_documentlanguage_argument), tta/perl/Texinfo/Convert/HTML.pm | |
| (_html_cache_translate_string), tta/perl/Texinfo/Convert/Utils.pm | |
| (switch_lang_translations), tta/perl/Texinfo/Translations.pm | |
| (translate_string, fill_document_lang_info) | |
| (new_documentlanguage_translation, complete_indices), | |
| tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): add lang information with the language, | |
| region and bcp47 language locale name to lang_translation. Setup | |
| string to use with LANGUAGE environement variable for gettext when | |
| creating lang_translation and pass it to translate_string to avoid | |
| recomputing it many times. Rename new_lang_translation as | |
| new_documentlanguage_translation and get_lang_translation as | |
| get_documentlanguage_translation. Use the bcp47 language name to | |
| retrieve translations. Remove encoded language as argument | |
| and remove get_lang_encoded_lang_translation. | |
| * tta/perl/Texinfo/Translations.pm (get_lang_info_xdg_locale) | |
| (get_lang_info_bcp47_locale, get_lang_info_language) | |
| (get_lang_info_region): add accessors for lang_info. | |
| * tta/C/convert/call_html_perl_function.c | |
| (call_formatting_function_format_translate_message), | |
| tta/C/convert/convert_html.c (format_translate_message) | |
| (html_custom_translate_string, html_cache_translate_string): pass | |
| lang_info to html_custom_translate_string and | |
| format_translate_message. | |
| * tta/perl/init/documentation_examples.pm (*_translate_message), | |
| tta/perl/t/init/css_in_node_redirection_page.pm (*_translate_message), | |
| tta/perl/t/init/special_element_customization.pm | |
| (*_translate_message), | |
| tta/perl/t/init/translated_strings_customization.pm | |
| (*_translate_message), | |
| tta/perl/t/init/translation_in_parser_in_translation.pm | |
| (*_translate_message): use get_lang_info_xdg_locale to get language | |
| from lang_info. | |
| * tta/C/main/utils.c (analyze_documentlanguage_argument): allocate | |
| region. Update callers. | |
| 2026-04-11 Patrice Dumas <pertusus@free.fr> | |
| add gnulib bcp47 module | |
| * tta: run "gnulib-tool --add-import bcp47". | |
| 2026-04-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (analyze_documentlanguage_argument), | |
| tta/perl/Texinfo/Common.pm (warn_unknown_language): if the | |
| documentlanguage is invalid, for instance if not ASCII, or not | |
| lower-case language and upper-case region, return NULL/undef for the | |
| language code. | |
| * tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line), | |
| tta/C/parsetexi/end_line.c (end_line_misc_line), tta/C/texi2any.c | |
| (main), tta/perl/texi2any.pl: do not set documentlanguage if the | |
| argument is invalid. | |
| 2026-04-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (C_libtexinfo_sources), | |
| tta/maintain/regenerate_documentlanguages-iana.pl: improve | |
| regenerate_documentlanguages-iana.pl to correctly extract language | |
| names and region names. Extract scripts names and generate Perl hash, | |
| gperf input and gperf generated C code. | |
| 2026-04-10 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/coverage/formatting.texi: add something in Top. | |
| 2026-04-10 Patrice Dumas <pertusus@free.fr> | |
| Add @ifepub and @ifnotepub in texi2any | |
| * tta/C/texi2any.c (is_texinfo_output_formats) | |
| (format_expanded_formats): add is_texinfo_output_formats. | |
| * tta/C/texi2any.c (main): add converted_format_specification | |
| for the converted format, and keep format_specification for the | |
| main format. | |
| * tta/C/texi2any.c (format_expanded_formats), tta/perl/texi2any.pl | |
| (_format_expanded_formats): add expanded region for main format (as | |
| opposed to converted format). | |
| * tta/C/main/parser_conf.h (PARSER_CONF), tta/C/main/utils.c | |
| (default_expanded_formats), tta/data/command_data.txt (ifepub) | |
| (ifnotepub), tta/perl/Texinfo/Common.pm (%texinfo_output_formats): | |
| add ifepub and ifnotepub block @-commands and epub expanded format. | |
| * tta/C/texi2any.c (converter_format_expanded_region_name) | |
| (IFEPUB_OPT, NO_IFEPUB_OPT, long_options, main), | |
| tta/perl/t/test_utils.pl (convert_to_html, test), tta/perl/texi2any.pl | |
| (%converter_format_expanded_region_name, makeinfo_help, GetOptions): | |
| add epub as expanded format for EPUB output format and corresponding | |
| command-line options. | |
| * NEWS, doc/texinfo.texi (Conditional Commands, Raw Formatter Commands) | |
| (Inline Conditionals, Invoking @command{texi2any}, Command List): | |
| document @ifepub, @ifnotepub and associated command-line arguments. | |
| * tta/perl/Makefile.tres, tta/perl/t/16raw.t (raw_epub), | |
| tta/perl/t/epub_tests.t (epub_conditional, epub_inline_conditional), | |
| tta/perl/t/html_tests.t (epub_conditionals): add tests for epub | |
| conditionals. | |
| 2026-04-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| No menu positioning after "Up" to different file | |
| * info/session-cmd.c (info_handle_pointer): | |
| If going up to a different file, do not try to find the current | |
| node in the new node's menu. This led to a bad result when going | |
| "Up" to the dir node. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| No crash for repeated visit to "*" node | |
| * info/nodes.c (info_get_node_of_file_buffer): | |
| If nodename is "*", set replica bit on node so to avoid attempt | |
| to free the contents of the node. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-09 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix searching dir node | |
| * info/scan.c (scan_node_contents): Clear N_Simple flag. | |
| As we used info_node_of_tag_fast to build the dir node, the final | |
| dir node still had this flag set on it, which led to an infinite | |
| recursion in info_search_in_node_internal attempting to retrieve | |
| the dir node without the N_Simple flag set. | |
| * info/session-cmd.c (info_search_internal): Avoid attempting | |
| to load other nodes when searching in the dir node (or other nodes | |
| flagged as internal). | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix dir node for hide-note-references=On | |
| * info/nodes.c (info_get_node_tag_of_file_buffer): | |
| New function, returning pointer into tags table. | |
| (info_get_node_of_file_buffer): Use it. | |
| * info/dir.c (build_dir_node): Use info_get_node_tag_of_file_buffer | |
| along with info_node_of_tag_fast to load dir nodes without scanning | |
| their contents. Only call scan_node_contents once, on the composite | |
| dir node. | |
| When hide-note-references was On, the dir node was completely broken | |
| due to parts of it being processed by scan_node_contents multiple | |
| times. Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/translations.c (translate_string), | |
| tta/perl/Texinfo/Translations.pm (translate_string): only get the main | |
| language, do not try to match the region code at all, such that bogus | |
| region codes do not prevent matching the main language, in case | |
| gettext does not do it already. | |
| * tta/perl/t/test_utils.pl (test): pass COMMAND_LINE_ENCODING to | |
| convert_to_text. | |
| * tta/perl/Makefile.tres, tta/perl/t/languages.t | |
| (invalid_documentlanguage, documentlanguage_selection_accented_region) | |
| (documentlanguage_selection_region_unicode): add more tests of invalid | |
| documentlanguage. Check if the main language is selected with a bogus | |
| region code. | |
| 2026-04-08 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/session-cmd.c (info_move_to_next_xref, info_move_to_prev_xref): | |
| If cursor-movement-scrolls=On and scroll-behaviour="Page Only", issue | |
| an error message when there is no later (resp. earlier) cross-reference | |
| to move to. Suggestion from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-07 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/dir.c (build_dir_node): Add blank line at end of list of | |
| used dir nodes. Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * README-hacking: information on testing ffmpeg HTML customization | |
| init file. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/transformations.c (new_node): add missing | |
| NUL at end of string in place of white spaces. | |
| * tta/perl/Texinfo/ManipulateTree.pm (modify_tree): if the returned | |
| content is an empty string, remove the tree contents if it becomes | |
| empty. | |
| * tta/perl/Texinfo/Transformations.pm (_reference_to_arg): rename | |
| $result as $new. Always return a list if the element is an @*ref | |
| element. | |
| * tta/C/structuring_transfo/transformations.c | |
| (reference_to_arg_internal), tta/perl/Texinfo/Transformations.pm | |
| (_reference_to_arg): put new element in returned elements list only if | |
| there is a non-empty argument for the @*ref command. | |
| * tta/perl/Makefile.tres, tta/perl/t/transformations.t | |
| (test_new_node_empty_ref): test adding nodes with empty @ref to test | |
| reference_to_arg_in_tree with empty @ref, and the result in _new_node. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/transformations.t (insert_nodes_for_sectioning_commands): | |
| sync with tta/perl/t/z_misc/automatic_nodes.t $sections_text. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (node_name), | |
| tta/perl/Texinfo/Transformations.pm | |
| (_protect_first_parenthesis_in_targets): simplify conditions on | |
| Texinfo::Common::get_label_element returned element. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Transformations.pm, | |
| tta/perl/Texinfo/TransformationsNonXS.pm (_new_node): move _new_node | |
| to TransformationsNonXS.pm. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/automatic_nodes.t: remove test_new_node and | |
| associated tests, that are now equivalently done in the | |
| t/transformations.t various_added_nodes_and_refs test. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.tres, tta/perl/t/transformations.t | |
| (various_added_nodes_and_refs): add test of node additions with | |
| insert_nodes_for_sectioning_commands tree transformation corresponding | |
| to tests of _new_node in tta/perl/t/z_misc/automatic_nodes.t. | |
| * tta/perl/Texinfo/Transformations.pm (_reference_to_arg): undef | |
| contents of removed tree elements to remove more references. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/transformations.c | |
| (move_selected_element_index_entries_after_items), | |
| tta/perl/Texinfo/ManipulateTreeNonXS.pm | |
| (_move_selected_element_index_entries_after_items): remove condition | |
| on @subentry, which is not relevant now that subentries are in index | |
| commands in the tree. | |
| * tta/C/parsetexi/handle_commands.c (handle_line_command), | |
| tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): rename | |
| internal variable to avoid reusing the name of an external variable | |
| for a more readable code. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.tres, tta/perl/t/transformations.t | |
| (index_entry_before_item_with_subentry): test index entry with | |
| @subentry before @item with move_index_entries_after_items. | |
| 2026-04-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/formatting/indices_in_begin_tables_lists.texi: add index | |
| command and comments or something else in @itemize in @example. | |
| 2026-04-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| gnulib update | |
| * tta: run "gnulib-tool --add-import". | |
| * .gitignore: update | |
| 2026-04-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| gnulib update | |
| * (top-level): run "gnulib-tool --add-import". | |
| 2026-04-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta: run "gnulib-tool --add-import | |
| unictype/property-unified-ideograph uninorm/nfd | |
| uninorm/u32-normalize unistr/u8-to-u32" in preparation for | |
| testing collation code. | |
| 2026-04-03 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta: replace gnulib module uchar (old name) with uchar-h. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| Remove misleading messages for move-to-next/prev-xref. | |
| * info/session-cmd.c | |
| (forward_move_node_structure, backward_move_node_structure) | |
| [scroll-behaviour=Page Only]: Do not print message saying we | |
| are already on the last (or first) page of a node. This may | |
| not be true if called via move-to-next-xref (or move-to-prev-xref). | |
| (point_next_line, point_prev_line, _scroll_backward, _scroll_forward): | |
| Reinstate the removed messages for cursor movement and scrolling | |
| commands where they would be accurate. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix M-Tab with "info -v scroll-behaviour=Page\ Only" | |
| * info/session-cmd.c (info_move_to_prev_xref): | |
| Move misplaced ) in order to correctly pass value of | |
| info_scroll_behaviour to backward_move_node_structure. | |
| M-Tab would move to a previous node with scroll-behavior=Page Only | |
| and cursor-movement-scrolls=On, which was incorrect. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/variables.c (variable_long_description_string): | |
| Handle alias variable specially, in part to avoid printing | |
| null pointer. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| Implement scroll-behavior/scroll-behaviour alias differently | |
| * info/variables.c (ALIAS_VAR, alias_var): | |
| New macro and dummy variable for declaring an alias of a variable. | |
| (info_variables) <"scroll-behavior">: Use it. | |
| (variable_by_name): Check if variable is an alias and if so resolve | |
| the alias. | |
| This is to avoid using separate 'where_set' fields for the two | |
| equivalent names of the variable, which could lead to inconsistency, | |
| including in the help buffer. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/variables.c (set_variable_to_value): | |
| For variables with a list of possible choices, if requested value | |
| is not in that list, do not update 'where_set' field and return 0. | |
| This has the effect of printing an error message if an incorrect | |
| value is used in an infokey file, which wasn't done before with this | |
| version of the code. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/info-stnd.texi (Selecting Xrefs): | |
| Remove text "in this node" from description of move-to-next-xref | |
| and move-to-prev-xref as this is incorrect. | |
| Report from Aidan <aidanczhai@gmail.com>. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/info-stnd.texi (Cursor Commands): | |
| Add a note mentioning that some of these commands are governed | |
| by the "cursor-movement-scrolls" variable. | |
| 2026-04-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/info-stnd.texi (Xref Commands): Move chapter before | |
| "Searching Commands" and "Index Commands". | |
| 2026-04-01 Patrice Dumas <pertusus@free.fr> | |
| Update po files | |
| 2026-04-01 Patrice Dumas <pertusus@free.fr> | |
| * po/POTFILES.in: add XS interface files with translated strings. | |
| * Makefile.am (po-check, po_document-check): match .xs files. | |
| 2026-04-01 Patrice Dumas <pertusus@free.fr> | |
| Update po files | |
| 2026-04-01 Patrice Dumas <pertusus@free.fr> | |
| * configure.ac (AC_CONFIG_FILES): remove removed doc/refcard/Makefile. | |
| 2026-04-01 Patrice Dumas <pertusus@free.fr> | |
| * NEWS, configure.ac, tta/configure.ac: remove | |
| --enable-refcounts-checks, --enable-perl-api-texi-build and | |
| --enable-pod-simple-texinfo-tests configure flags, keeping the | |
| automatic detection only. | |
| 2026-04-01 Patrice Dumas <pertusus@free.fr> | |
| * po/POTFILES.in, po_document/POTFILES.in: update. | |
| * Makefile.am (po-check, po_document-check): update. | |
| 2026-04-01 Patrice Dumas <pertusus@free.fr> | |
| * TODO: update, item on translations, SWIG information when relevant, | |
| update non implemented manuals installation support to hint that it is | |
| not really rejected, but one possibility among others. | |
| 2026-04-01 Bruno Haible <bruno@clisp.org> | |
| * INSTALL: edit description of --enable-xs-perl-libintl. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * TODO: remove done items | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| No -c DUMP_TREE=1 | |
| * tta/perl/texi2any.pl, | |
| * tta/C/texi2any.c (main): | |
| Do not accept "1" as synonym for "-". | |
| * doc/texinfo.texi, TODO: update | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * README-hacking: update for refcard removal. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/refcard/txicmdcheck, doc/txicmdcheck, | |
| * doc/refcard/txivarcheck, doc/txivarcheck: | |
| Move to doc/. | |
| * doc/refcard: remove subdirectory. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Remove refcard | |
| * doc/refcard/txicmdcheck, doc/refcard/txivarcheck: | |
| check texi2any and manual only. | |
| * doc/refcard/txirefcard.tex: deleted | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * TODO: remove done item | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * NEWS, | |
| * doc/texinfo.texi (Click Sequences, Macro Details, Command List) | |
| (Obsolete @-Commands): | |
| Document @clickstyle removal. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Test updates for removal of @clickstyle | |
| * tta/perl/t/08misc_commands.t | |
| (clickstyle, clickstyle_no_end_of_line, invalid_clickstyle) | |
| (clickstyle_and_comments): remove. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Test updates for removal of @clickstyle | |
| * tta/perl/t/50value.t (value_in_misc_commands), | |
| * tta/perl/t/60value.t (macro_in_misc_commands), | |
| * tta/perl/t/html_tests.t, | |
| * tta/perl/t/xml_tests.t (commands_and_spaces): | |
| Remove use of @clickstyle. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Test updates for removal of @clickstyle | |
| * tta/tests/coverage_macro.texi: remove use of @clickstyle. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| Remove @clickstyle | |
| * tta/data/command_data.txt, | |
| * tta/C/parsetexi/handle_commands.c (parse_rawline_command), | |
| * tta/perl/Texinfo/ParserNonXS.pm (_parse_rawline_command), | |
| * tta/perl/Texinfo/Example/TexinfoMarkup.pm (_convert): | |
| Remove @clickstyle as a Texinfo command. | |
| 2026-04-01 Gavin Smith <gavinsmith0123@gmail.com> | |
| * TODO: remove done item | |
| 2026-03-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\indexwritesortas): Remove useless change | |
| of catcode around definition. | |
| 2026-03-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.tex (\dummybox): Move definition in file. | |
| 2026-03-31 Gavin Smith <gavinsmith0123@gmail.com> | |
| Fix "Missing character" messages in log file | |
| * doc/texinfo.tex | |
| (\extractindexcommands, \checksortas, \checkseealso, \checkseeentry): | |
| New. Use TeX macros to check if @sortas, @seeentry and @seealso occur | |
| in the text of an index entry. | |
| (\doindexsegment): | |
| Replace implementation of the @sortas, @seeentry and @seealso commands | |
| with call to \extractindexcommands. The problem with the old way was | |
| that we typeset the index text inside a dummy box, which could lead to | |
| many error messages about missing glyphs being output in the log file. | |
| Report from Jamenson Espindula. | |
| 2026-03-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c, tta/C/main/convert_to_text.c, | |
| tta/C/main/convert_utils.c, tta/C/main/converter_types.h (CONVERTER), | |
| tta/C/main/translations.c (find_lang_translation) | |
| (store_new_lang_translation, get_lang_translation) | |
| (get_lang_encoded_lang_translation, switch_lang_translations) | |
| (cache_translate_string, gdt_string, gdt_tree, pgdt_tree), | |
| tta/C/parsetexi/indices.c, tta/C/structuring_transfo/structuring.c, | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): add const for LANG_TRANSLATION passed | |
| around. | |
| * tta/C/main/translations.c (substitute_substrings_in_tree) | |
| (substitute_element_array): const for replaced_substrings. | |
| 2026-03-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (%LaTeX_environment_commands) | |
| (_convert): use Texinfoindented environment for @indentedblock and | |
| @def item. | |
| * tta/perl/t/converters_tests.t (table_in_display_in_example) | |
| (table_in_example_in_display): add some text for easier visualization. | |
| 2026-03-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/tests/coverage_macro.texi: remove empty line in @displaymath to | |
| avoid invalid LaTeX. | |
| 2026-03-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/DocBook.pm (_convert): use blockquote for | |
| @indentedblock and @smallindentedblock. Report from Per Bothner in | |
| 2014. | |
| * tta/tests/coverage_macro.texi: add @indentedblock and | |
| @smallindentedblock. | |
| 2026-03-30 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_stop_embrac, _convert_def_line) | |
| (_convert): simplify code related to embrac context stack. | |
| 2026-03-30 Noé Lopez <noelopez@free.fr> (tiny change) | |
| * util/htmlxref.d/Texinfo_GNU.cnf: Update URLs for Guix and | |
| Shepherd. | |
| 2026-03-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Utils.pm (output_files_rename_opened): add. | |
| * tta/perl/Texinfo/Convert/Info.pm (output): call | |
| Texinfo::Convert::Utils::output_files_rename_opened instead of setting | |
| an unused array. | |
| 2026-03-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/LaTeX.pm (_tree_anchor_label): get an | |
| element in argument. | |
| * tta/perl/Texinfo/Convert/LaTeX.pm: use | |
| Texinfo::Common::empty_spaces_argument to determine if arguments are | |
| empty. Use elements instead of contents when relevant. Use exists or | |
| defined when the value is not used. | |
| 2026-03-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert): do not output | |
| anything for @itemx in @itemize or @enumerate in @table. | |
| 2026-03-29 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/convert/get_html_perl_info.c | |
| (html_converter_get_customization_sv): initialize | |
| direction_node_name->direction_nr to 0. | |
| * tta/C/convert/html_prepare_converter.c (html_set_global_direction) | |
| (html_set_main_units_direction_names) | |
| (html_prepare_output_units_global_targets), | |
| tta/perl/Texinfo/Convert/HTML.pm (converter_initialize), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (set_global_direction): warn if | |
| a customized global direction is set on a relative direction. | |
| * tta/C/convert/html_prepare_converter.c | |
| (html_prepare_output_units_global_targets): more explicit fatal | |
| message. | |
| * tta/perl/t/init/set_global_direction_for_relative.pm: also test | |
| calling set_global_direction on a relative direction. | |
| * tta/perl/Makefile.tres, tta/perl/t/init_files_tests.t | |
| (set_global_direction_for_relative_direction): enable test. | |
| 2026-03-28 Patrice Dumas <pertusus@free.fr> | |
| * ta/maintain/generate_code_convert_data.pl (@ordered_text_directions) | |
| (%ordered_text_global_directions_hash, %direction_orders) | |
| (@orders_order, @ordered_directions): separate text directions from | |
| global units directions. | |
| * tta/maintain/generate_code_convert_data.pl, | |
| tta/C/convert/format_html.c, tta/C/convert/html_prepare_converter.c: | |
| generate DEFAULT_GLOBAL_DIRECTION_LAST_IDX and | |
| DEFAULT_TEXT_DIRECTION_LAST_IDX and use instead of D_Last and | |
| D_direction_This. | |
| * tta/C/convert/html_prepare_converter.c | |
| (html_prepare_output_units_global_targets), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (_prepare_output_units_global_targets): show default text directions | |
| in debugging code. | |
| * tta/perl/Texinfo/Convert/HTML.pm (@text_directions_order) | |
| (converter_initialize): set @text_directions_order based on | |
| automatically generated directions and use it to set default text | |
| directions in converter_initialize. | |
| 2026-03-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/DocBook.pm (_convert): determine $part if | |
| not already determined. | |
| 2026-03-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/document.c (setup_texinfo_main), | |
| tta/C/main/translations.c (set_output_strings_translate_method) | |
| (setup_output_strings_translations): split | |
| set_output_strings_translate_method out of | |
| setup_output_strings_translations. Call it in setup_texinfo_main, as | |
| it sets use_external_translate_string, which should always be set, | |
| even if C functions are not used for translation of output strings. | |
| * tta/C/convert/texinfo.c (txi_general_output_strings_setup), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (setup_output_strings): update for change in | |
| setup_output_strings_translations. Update callers. | |
| 2026-03-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/structuring.c | |
| (check_node_tree_menu_structure), tta/perl/Texinfo/StructuringNonXS.pm | |
| (check_node_tree_menu_structure): remove a condition on node | |
| associated to node menu relation being set, as if there is a number, | |
| the relation exists. | |
| * tta/perl/Makefile.tres, tta/perl/t/10menu.t | |
| (menu_pointing_to_anchor_nodes): add test of anchor and namedanchor | |
| nodes in menu, with another node with a sectioning command too, such | |
| that the menu structure is checked (with CHECK_NORMAL_MENU_STRUCTURE). | |
| 2026-03-28 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (BEGIN): do not load XS module for | |
| translations if Perl is older than 5.38.0 as before Perl 5.38.0 | |
| getenv/setenv and similar cannot be reliably used in XS. | |
| * tta/configure.ac: remove setting HAVE_USABLE_GETENV_IN_XS, unused. | |
| 2026-03-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/TranslationsNonXS.pm (setup_output_strings), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (setup_output_strings): rename configure as setup_output_strings. | |
| Update callers. | |
| * tta/C/main/translations.c (setup_output_strings_translations): | |
| rename configure_output_strings_translations as | |
| setup_output_strings_translations. Update callers. | |
| 2026-03-27 Patrice Dumas <pertusus@free.fr> | |
| XS interface for Texinfo::Translations configure | |
| * tta/perl/Texinfo/DocumentNonXS.pm, tta/perl/Texinfo/Translations.pm, | |
| tta/perl/Texinfo/TranslationsNonXS.pm (configure), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs, | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs (configure): add | |
| an XS interface for Texinfo::Translations configure. Remove | |
| configure_output_strings_translations from Perl code and from Document | |
| XS interface. | |
| 2026-03-27 Patrice Dumas <pertusus@free.fr> | |
| XS interface for Texinfo::Translations for cache_translate_string | |
| * tta/configure.ac (use_libintl_perl_in_xs), tta/perl/Makefile.am | |
| (ModulePath.pm), tta/perl/Texinfo/ModulePath.pm.in | |
| ($use_libintl_perl_in_xs): pass use_libintl_perl_in_xs to Perl. | |
| * tta/C/main/translations.c (find_lang_translation) | |
| (get_lang_translation, store_new_lang_translation) | |
| (get_lang_encoded_lang_translation): split find_lang_translation and | |
| store_new_lang_translation out of get_lang_translation. Add | |
| get_lang_encoded_lang_translation that is very similar to | |
| get_lang_translation, but directly uses encoded lang instead of | |
| determining it. | |
| * tta/perl/Texinfo/Translations.pm (BEGIN), | |
| tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES, TranslationsXS*), | |
| tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/TranslationsNonXS.pm (cache_translate_string), | |
| tta/perl/XSTexinfo/parser_document/TranslationsXS.xs | |
| (cache_translate_string): add an XS interface for | |
| Texinfo::Translations cache_translate_string. | |
| 2026-03-27 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/z_misc/do_master_menu.t: setup the lang_translation by | |
| calling new_lang_translation. | |
| 2026-03-26 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Tree Elements and Document Structure) | |
| (Heading Commands Formatting): describe relevant functions in "Tree | |
| Elements and Document Structure" not in the appendix. Improve | |
| references to this node. | |
| * tta/perl/Texinfo/Convert/DocBook.pm (%docbook_level_section) | |
| (%docbook_sections, _docbook_section_element): split | |
| %docbook_level_section out of %docbook_sections for the map of section | |
| levels, for a more readable code. | |
| * tta/perl/t/z_misc/no_structure_test.t: add raisesctions to the | |
| test Texinfo code. | |
| 2026-03-26 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Simple Formatting Customization) | |
| (Internationalization of Output Strings): rename "Simple formatting | |
| customization" as "Simple Formatting Customization" and | |
| "Internationalization of Strings Function" as "Internationalization of | |
| Output Strings". | |
| * doc/texi2any_api.texi (Accent Commands with Arguments Formatting): | |
| add. | |
| * doc/texi2any_api.texi: remove cross-references to modules | |
| documentation that are not needed for the described tasks. Copy the | |
| function or data descriptions instead of having a cross reference, as | |
| the corresponding text is small and requiring to go to another | |
| document to get the information is distracting. | |
| Improve Pod documentation of output strings translation language | |
| switching. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.h (ARG_INDICES), tta/C/main/utils.c | |
| (non_leading_trailing_indices): add the ARG_INDICES struct to hold the | |
| first and last indices of non trailing non leading contents. Use it | |
| in non_leading_trailing_indices. Update callers. | |
| 2026-03-22 Gavin Smith <gavinsmith0123@gmail.com> | |
| Always build info/makedoc when cross-compiling | |
| * Makefile.am (SUBDIRS) [TOOLS_ONLY]: | |
| Always include "info" subdirectory to allow "makedoc" program | |
| to be built on "build" system when cross-compiling, even if terminal | |
| library is not found on "build". | |
| * info/Makefile.am (bin_PROGRAMS): Use HAVE_TERMLIBS conditional to | |
| only include "ginfo" if terminal library is found. Use TOOLS_ONLY | |
| not to built "ginfo" if building tools for cross-compiling. | |
| (LDADD, ginfo_LDADD): Only use $(TERMLIBS) in ginfo_LDADD. | |
| Report and investigation by Manuel Jacob, | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_convert_tree_append), | |
| tta/perl/Texinfo/Convert/HTML.pm (_convert): different message for | |
| ignored text type and other ignored types and commands. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/html_prepare_converter.c (html_converter_customize): | |
| set ignored types for css conversion too. This is not needed when | |
| called from Perl XS, but necessary for ctexi2any. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/macro.c (expand_macro_body), | |
| tta/perl/Texinfo/ParserNonXS.pm (_expand_macro_body): simplify | |
| conditions, taking into account that macro call arguments can only | |
| contain text elements. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/handle_commands.c (handle_line_command), | |
| tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): use | |
| spaces_before_argument for an empty lineraw line. | |
| * tta/perl/Texinfo/Common.pm (non_leading_trailing_indices): verify | |
| that end_idx is not negative. This could happen if there are only | |
| spaces_after_argument. | |
| * tta/perl/Texinfo/ParserNonXS.pm (_expand_macro_body): use a tree | |
| element in input for macro arguments. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/element_types.txt, tta/C/parsetexi/parser.c | |
| (process_remaining_on_line), tta/perl/Texinfo/ParserNonXS.pm | |
| (%trailing_space_types, _process_remaining_on_line): use | |
| spaces_after_argument for ignored spaces before @subentry. Remove | |
| ignorable_spaces_before_command type everywhere. | |
| * tta/C/parsetexi/parser.c (isolate_leading_trailing), | |
| tta/perl/Texinfo/ParserNonXS.pm (_isolate_leading_trailing): add a | |
| debugging statement. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ParserNonXS.pm (_is_container_empty): do not check | |
| info value, and avoid checking contents for text elements, with same | |
| code as in C. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/close.c (remove_empty_content), | |
| tta/perl/Texinfo/ParserNonXS.pm (_remove_empty_content): remove the | |
| empty element, which could theoretically be before comments and | |
| trailing spaces. | |
| 2026-03-23 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/parsetexi/close.c (close_container), | |
| tta/perl/Texinfo/ParserNonXS.pm (_close_container): remove check that | |
| was needed when there were args in tree. Reorganize code to be easier | |
| to read. | |
| 2026-03-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Example/TexinfoMarkup.pm (_convert): inline | |
| and remove _arg_leading_spaces_arg and simplify attribute setting of | |
| endspaces. | |
| 2026-03-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/element_types.awk, tta/C/main/element_types.txt, | |
| tta/C/main/tree_types.h (enum elt_info_type), tta/C/main/tree.c | |
| (elt_info_names), tta/C/parsetexi/parser.c (do_abort_empty_line) | |
| (merge_text), tta/perl/Texinfo/ParserNonXS.pm (%leading_space_types) | |
| (_merge_text, _abort_empty_line): remove | |
| internal_spaces_after_command, now unused. Remove spaces_before and | |
| spaces_after flags too, as they are not generated anymore. Remove | |
| spaces_before_argument, spaces_after_argument and comment_at_end names | |
| and enums. Remove move_last_space_to_element, not called anymore. | |
| * tta/C/structuring_transfo/structuring.c (new_block_command), | |
| tta/C/structuring_transfo/transformations.c (correct_level) | |
| (fill_gaps_in_sectioning_in_document, new_node), | |
| tta/perl/Texinfo/ManipulateTree.pm (_print_tree_elements_ref) | |
| (tree_remove_parents, _element_remove_references, @elt_info_names), | |
| tta/perl/Texinfo/Structuring.pm (new_block_command), | |
| tta/perl/Texinfo/Transformations.pm (_new_node), | |
| tta/perl/Texinfo/TransformationsNonXS.pm (_correct_level) | |
| (fill_gaps_in_sectioning_in_document): do not generate | |
| spaces_before_argument, spaces_after_argument nor comment_at_end in | |
| info additional information, directly in the tree. Update to match | |
| the new tree structure. | |
| * tta/C/main/convert_to_texinfo.c (convert_to_texinfo_internal), | |
| tta/C/main/convert_utils.c (get_comment_or_end_line), | |
| tta/perl/Texinfo/Convert/Converter.pm (comment_or_end_line), | |
| tta/perl/Texinfo/Convert/DocBook.pm (_format_comment), | |
| tta/perl/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo), | |
| tta/perl/Texinfo/DebugTree.pm, | |
| tta/perl/Texinfo/Example/TexinfoMarkup.pm: remove use of | |
| spaces_before_argument, spaces_after_argument and comment_at_end in | |
| info additional information. | |
| * tta/perl/t/z_misc/01use.t: update for the new tree structure. | |
| 2026-03-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/element_types.txt, tta/perl/Texinfo/ParserNonXS.pm | |
| (%leading_space_types): remove | |
| internal_spaces_before_context_argument, which is not set | |
| anymore, and remove all conditions with this type. | |
| 2026-03-22 Patrice Dumas <pertusus@free.fr> | |
| Put lineraw line commands leading and trailing directly in tree | |
| * tta/C/parsetexi/handle_commands.c (raw_line_command_arg_spaces) | |
| (handle_line_command, add_comment_at_end), | |
| tta/perl/Texinfo/ParserNonXS.pm (_raw_line_command_arg_spaces) | |
| (_add_comment_at_end, _handle_line_command): put lineraw line commands | |
| leading and trailing spaces, and comments directly in tree, not in | |
| info elements. Remove raw_line_command_arg_spaces second argument, | |
| since it is not used anymore. | |
| * tta/perl/Texinfo/Convert/DocBook.pm (_format_comment), | |
| tta/perl/Texinfo/Convert/LaTeX.pm (_convert), | |
| tta/perl/Texinfo/Example/TexinfoMarkup.pm (_format_comment, _convert), | |
| tta/perl/t/init/ignore_and_comments_output.init: adapt for change in | |
| tree. | |
| 2026-03-22 Patrice Dumas <pertusus@free.fr> | |
| Put context brace commands leading spaces directly in tree | |
| * tta/C/main/element_types.txt (spaces_before_argument), | |
| tta/C/parsetexi/separator.c (handle_open_brace), | |
| tta/perl/Texinfo/ParserNonXS.pm (%leading_space_types) | |
| (_handle_open_brace): use spaces_before_argument instead of | |
| internal_spaces_before_context_argument at context brace command | |
| opening such that it stays as is in the tree and is not collected in | |
| info. | |
| * tta/C/convert/format_html.c (html_convert_float_command) | |
| (html_convert_listoffloats_command), tta/C/main/floats.c | |
| (print_caption_shortcaption), tta/perl/Texinfo/Convert/HTML.pm | |
| (_convert_listoffloats_command, _convert_float_command), | |
| tta/perl/Texinfo/Convert/LaTeX.pm (_convert), | |
| tta/perl/Texinfo/Convert/Plaintext.pm (_convert), | |
| tta/perl/Texinfo/ManipulateTree.pm (_print_caption_shortcaption): | |
| update for change in tree, and also to cope with bogus @caption | |
| without brace at all. | |
| * tta/perl/t/27float.t (no_brace_caption), tta/perl/Makefile.tres: | |
| caption without brace in float with listoffloats. | |
| 2026-03-22 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/element_types.txt, tta/perl/Texinfo/ParserNonXS.pm | |
| (%leading_space_types): remove internal_spaces_before_argument as it | |
| is not set anywhere anymore. Remove in test in all the using codes. | |
| 2026-03-22 Patrice Dumas <pertusus@free.fr> | |
| Put macro expansion element leading spaces directly in tree | |
| * tta/C/parsetexi/close.c (remove_empty_content), | |
| tta/perl/Texinfo/ParserNonXS.pm (_remove_empty_content): remove empty | |
| elements starting from the end, avoiding empty spaces. | |
| * tta/C/parsetexi/macro.c (expand_macro_arguments) | |
| (expand_linemacro_arguments, expand_macro_body), | |
| tta/perl/Texinfo/ParserNonXS.pm (_expand_macro_arguments) | |
| (_expand_linemacro_arguments, _expand_macro_body): put leading spaces | |
| directly in argument elements, and call isolate_leading_trailing in | |
| expand_macro_body. Avoid leading and trailing spaces when gathering | |
| formal arguments. | |
| 2026-03-21 Patrice Dumas <pertusus@free.fr> | |
| Put leading and trailing spaces directly in tree for block and line non | |
| raw | |
| * tta/C/parsetexi/separator.c (handle_close_brace): remove spurious | |
| backslash in string. | |
| * tta/C/main/utils.c (informative_command_value), | |
| tta/perl/Texinfo/Common.pm (informative_command_value): do not handle | |
| rawline @-command with more than one argument, as it is only the case | |
| for @set, which is not an informative command associated to a | |
| customization variable. More const. | |
| * tta/C/main/manipulate_tree.c (parse_node_manual): set node_content | |
| in result only if not empty. | |
| * tta/C/parsetexi/parser.c (isolate_leading_spaces_element), | |
| tta/perl/Texinfo/ParserNonXS.pm (_isolate_leading_spaces_element): | |
| rebase remaining source marks. Always set the type. Consider that | |
| spaces are ascii. Rename leading_spaces as spaces_len. | |
| * tta/C/main/utils.c (simple_arg_text, empty_text), | |
| tta/perl/Texinfo/Common.pm (simple_arg_text): ignore comments. | |
| Return TEXT instead of string in C and update callers. | |
| * tta/C/parsetexi/parser.c (text_contents_to_plain_text), | |
| tta/perl/Texinfo/ParserNonXS.pm (_text_contents_to_plain_text): ignore | |
| comments. | |
| * tta/perl/Texinfo/Common.pm (non_leading_trailing_tree): remove | |
| optional arguments. | |
| * tta/perl/Texinfo/Common.pm (non_trailing_tree), | |
| tta/perl/Texinfo/Convert/Converter.pm (comment_end_line_end_space): | |
| add. | |
| * tta/C/main/convert_to_texinfo.c (convert_contents_to_texinfo), | |
| tta/C/main/structure_list.c: use non_leading_trailing_indices to | |
| determine the slice to convert. Update callers as the function can | |
| now return NULL if the argument is empty. | |
| * tta/C/main/manipulate_tree.c, tta/C/main/utils.c | |
| (non_leading_trailing_indices): move non_leading_trailing_indices to | |
| utils.c. | |
| * tta/perl/Texinfo/Common.pm (non_leading_trailing_indices): rename | |
| _non_leading_trailing_indices as non_leading_trailing_indices. | |
| * tta/C/parsetexi/def.c (split_def_args), | |
| tta/C/structuring_transfo/transformations.c | |
| (protect_first_parenthesis), tta/perl/Texinfo/ManipulateTree.pm | |
| (protect_first_parenthesis), tta/perl/Texinfo/ParserNonXS.pm | |
| (_split_element_delimiters): catch all types of text elements and | |
| spaces_before_argument. | |
| * tta/perl/Texinfo/ParserNonXS.pm (_parse_def): move code around to be | |
| more similar to C implementation. | |
| * tta/C/parsetexi/def.c (parse_def), tta/C/parsetexi/end_line.c | |
| (parse_line_command_args, end_line_starting_block) | |
| (end_line_misc_line), tta/C/parsetexi/labels.c | |
| (check_register_target_element_label), tta/C/parsetexi/parser.c | |
| (parent_of_command_as_argument, process_remaining_on_line), | |
| tta/C/parsetexi/separator.c (handle_close_brace, handle_comma), | |
| tta/perl/Texinfo/ParserNonXS.pm (_parse_def, _end_line_misc_line) | |
| (_end_line_starting_block, _check_register_target_element_label) | |
| (_parent_of_command_as_argument, _handle_line_command) | |
| (_handle_close_brace, _handle_comma, _process_remaining_on_line): | |
| put leading and trailing spaces and comments directly in tree by | |
| isolate_leading_trailing instead of isolate_last_space, having effect | |
| on all block command lines and most line commands arguments, except | |
| for raw line commands. Remove isolate_last_space. | |
| * tta/C/parsetexi/handle_commands.c (handle_other_command), | |
| tta/C/parsetexi/parser.c, tta/perl/Texinfo/ParserNonXS.pm | |
| (_handle_other_command): inline start_empty_line_after_command as now | |
| there is only one case that remains and remove | |
| start_empty_line_after_command. | |
| * tta/perl/Texinfo/Convert/Texinfo.pm (convert_contents_to_texinfo): | |
| add. | |
| * tta/C/main/convert_utils.c (get_comment_or_end_line), | |
| tta/C/main/manipulate_tree.c (copy_contents), tta/C/main/utils.c | |
| (block_line_argument_command, multitable_columnfractions) | |
| (informative_command_value, enumerate_item_representation), | |
| tta/perl/Texinfo/Common.pm (multitable_columnfractions) | |
| (block_line_argument_command, informative_command_value) | |
| (enumerate_item_representation), tta/perl/Texinfo/Convert/Converter.pm | |
| (comment_or_end_line, table_item_content_tree), | |
| tta/perl/Texinfo/Convert/Texinfo.pm (target_element_to_texi_label) | |
| (check_node_same_texinfo_code), tta/perl/Texinfo/ManipulateTree.pm | |
| (copy_contents, _print_root_command, print_element_base), | |
| tta/perl/Texinfo/OutputUnits.pm (_output_unit_name_string), | |
| tta/perl/Texinfo/StructuringNonXS.pm (_print_line_command) | |
| (_print_root_command, _print_menu_node, print_headings_list) | |
| (print_nodes_list): update for changes in tree. | |
| * tta/C/main/convert_to_texinfo.c (link_element_to_texi): call | |
| convert_to_texinfo instead of convert_contents_to_texinfo as there is | |
| no need to convert contents only, and to always return a string. | |
| * tta/C/main/convert_utils.c: comment out item_itemize_prepended as it | |
| is unused. | |
| * tta/C/convert/format_html.c (html_internal_command_tree) | |
| (html_convert_enumerate_command, html_convert_item_command) | |
| (html_open_quotation_command), tta/C/main/convert_utils.c | |
| (itemize_line_prepended_element), | |
| tta/C/structuring_transfo/transformations.c | |
| (protect_hashchar_at_line_beginning_internal), | |
| tta/perl/Texinfo/Convert/Converter.pm (sort_element_counts), | |
| tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin) | |
| (_format_comment_or_end_line, _convert_def_line, _convert), | |
| tta/perl/Texinfo/Convert/HTML.pm (_convert_enumerate_command) | |
| (_convert_item_command, _open_quotation_command), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_internal_command_tree) | |
| (_node_redirections), tta/perl/Texinfo/Convert/Info.pm (output), | |
| tta/perl/Texinfo/Convert/LaTeX.pm (_set_environment_options) | |
| (_convert), tta/perl/Texinfo/Convert/Plaintext.pm (_convert), | |
| tta/perl/Texinfo/Convert/TextContent.pm (_convert), | |
| tta/perl/Texinfo/Document.pm (_existing_label_error), | |
| tta/perl/Texinfo/Example/TexinfoMarkup.pm, | |
| tta/perl/Texinfo/Transformations.pm | |
| (_protect_hashchar_at_line_beginning), | |
| tta/perl/init/documentation_examples.pm | |
| (_set_appendix_direction_node_name), | |
| tta/perl/t/init/index_direction_from_index_name.pm | |
| (_set_index_global_direction_from_index_name): update for changes in | |
| tree, mainly by using empty_spaces_argument, simple_arg_text, or | |
| handling especially spaces_* types. Also calling | |
| convert_contents_to_texinfo in Perl. | |
| 2026-03-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (simple_arg_text), tta/perl/Texinfo/Common.pm | |
| (simple_arg_text): return information related to unexpected non text | |
| elements. Update callers. | |
| * tta/C/parsetexi/separator.c (handle_close_brace), | |
| tta/perl/Texinfo/ParserNonXS.pm (_handle_close_brace): add more | |
| information on superfluous argument to @U. | |
| * tta/C/parsetexi/end_line.c (parse_line_command_args), | |
| tta/perl/Texinfo/ParserNonXS.pm (_parse_line_command_args): use | |
| simple_arg_text. | |
| 2026-03-17 Patrice Dumas <pertusus@free.fr> | |
| Move @math command from context commands to arguments commands | |
| * tta/data/command_data.txt (math), tta/C/parsetexi/close.c | |
| (close_brace_command, close_current), tta/C/parsetexi/separator.c | |
| (handle_open_brace, handle_close_brace), | |
| tta/perl/Texinfo/ParserNonXS.pm (_close_brace_command, _close_current) | |
| (_handle_open_brace, _handle_close_brace): change math data type to be | |
| arguments. Move code related to math to arguments brace commands | |
| handling, with explicit setting of context. | |
| * tta/C/convert/html_conversion_state.c | |
| (html_open_command_update_context) | |
| (html_convert_command_update_context), | |
| tta/perl/Texinfo/Convert/DocBook.pm (_convert), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_open_command_update_context) | |
| (_convert_command_update_context): set explicitly math context for | |
| brace math command. | |
| 2026-03-17 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ParserNonXS.pm (_end_line_def_line): reorganize the | |
| code to be more legible, and converge to C version. | |
| 2026-03-17 Patrice Dumas <pertusus@free.fr> | |
| Put leading spaces and trailing spaces directly in brace arg elements | |
| * tta/C/main/manipulate_tree.c (non_leading_trailing_indices) | |
| (parse_node_manual), tta/C/main/utils.c (empty_spaces_argument) | |
| (simple_arg_text), tta/perl/Texinfo/Common.pm | |
| (_non_leading_trailing_indices, parse_node_manual) | |
| (empty_spaces_argument, simple_arg_text): add functions to | |
| determine if empty, what are the non empty argument and simple text | |
| argument if there are trailing, leading spaces and comments. Use in | |
| parse_node_manual. | |
| * tta/C/parsetexi/close.c (close_all_style_commands, close_current), | |
| tta/C/parsetexi/def.c (split_def_args), tta/C/parsetexi/parser.c | |
| (isolate_leading_spaces_element, isolate_leading_trailing), | |
| tta/C/parsetexi/separator.c (handle_open_brace, handle_close_brace) | |
| (handle_comma), tta/perl/Texinfo/ParserNonXS.pm | |
| (_close_all_style_commands, _close_current) | |
| (_isolate_leading_spaces_element, _split_element_def_args) | |
| (_end_line_def_line, _handle_open_brace, _handle_close_brace) | |
| (_handle_comma): add functions to isolate trailing spaces and comments | |
| and leading spaces and comments, use them in parsing for brace | |
| commands and also use simple_arg_text and empty_spaces_argument. | |
| Isolate trailing spaces in @math too. | |
| * tta/C/main/element_types.txt (empty_line), | |
| tta/perl/Texinfo/ParserNonXS.pm (%trailing_space_types): set | |
| empty_line as trailing space such that it is not replaced by | |
| spaces_after_argument. | |
| * tta/C/parsetexi/parser.c (isolate_last_space), | |
| tta/perl/Texinfo/ParserNonXS.pm (_isolate_last_space): simplify, it is not | |
| called for brace commands anymore. | |
| * tta/C/structuring_transfo/transformations.c | |
| (reference_to_arg_internal), tta/perl/Texinfo/Common.pm | |
| (non_leading_trailing_tree), tta/perl/Texinfo/Transformations.pm | |
| (_reference_to_arg), tta/perl/ext/tex4ht.pm (tex4ht_prepare): update | |
| for change in tree. | |
| * tta/C/convert/html_prepare_converter.c (ignored_types), | |
| tta/C/main/convert_to_text.c (convert_to_text_internal), | |
| tta/C/main/node_name_normalization.c (convert_to_normalized_internal), | |
| tta/C/main/manipulate_indices.c (idx_leading_text_or_command), | |
| tta/C/parsetexi/end_line.c (end_line_def_line), | |
| tta/C/parsetexi/parser.c (text_contents_to_plain_text), | |
| tta/perl/Texinfo/ParserNonXS.pm (_text_contents_to_plain_text), | |
| tta/perl/Texinfo/Convert/DocBook.pm, tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/LaTeX.pm, | |
| tta/perl/Texinfo/Convert/NodeNameNormalization.pm, | |
| tta/perl/Texinfo/Convert/Plaintext.pm, | |
| tta/perl/Texinfo/Convert/Text.pm, | |
| tta/perl/Texinfo/Convert/TextContent.pm: ignore spaces_before_argument | |
| and spaces_after_argument. Catch all spaces in more code. | |
| * tta/C/convert/convert_html.c, tta/perl/Texinfo/Convert/DocBook.pm | |
| (_convert), tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm, | |
| tta/perl/Texinfo/Convert/Info.pm, tta/perl/Texinfo/Convert/LaTeX.pm, | |
| tta/perl/Texinfo/Convert/Plaintext.pm: call empty_spaces_argument to | |
| determine if an argument is empty, cannot check only that there are no | |
| contents anymore. | |
| 2026-03-16 Gavin Smith <gavinsmith0123@gmail.com> | |
| * NEWS: mention removal of --xml etc. options | |
| 2026-03-14 Gavin Smith <gavinsmith0123@gmail.com> | |
| * doc/texinfo.texi (@example): Tweak description of tab handling. | |
| Report from Werner Lemberg. | |
| 2026-03-12 Patrice Dumas <pertusus@free.fr> | |
| Obey @exampleindent in plaintext and Info output | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (_convert): use exampleindent | |
| customization info to increase the indent length for | |
| %example_indented_commands. Report from Rik. | |
| * tta/perl/Makefile.tres, tta/perl/t/20preformatted.t | |
| ($nested_examples, exampleindent_set, exampleindent_zero) | |
| (exampleindent_set_nestings, exampleindent_zero_nestings): new tests | |
| of @exampleindent. | |
| 2026-03-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (new_formatter, _convert): | |
| never put 'indent_length' in 'format_context', only in new_formatter | |
| $conf. | |
| 2026-03-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (%example_indented_commands): | |
| set to the indented %preformatted_commands. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm (push_top_formatter) | |
| (new_formatter, new_formatter, _convert): replace 'indent_level' | |
| by a length, 'context_indent_len'. This prepares for indentation | |
| added being different from the default. | |
| 2026-03-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Plaintext.pm | |
| (@informative_global_commands): add exampleindent. | |
| * tta/perl/Texinfo/Convert/Plaintext.pm ($default_indent_length) | |
| (_text_heading): rename $indent_length as $default_indent_length. | |
| Rename $indent_length in _text_heading as $indented_len. | |
| 2026-03-12 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/convert_html.c (html_cache_translate_string): | |
| initialize lang. | |
| 2026-03-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/infodoc.c (create_internal_info_help_node): | |
| Free return value of variable_long_description_string. | |
| 2026-03-11 Gavin Smith <gavinsmith0123@gmail.com> | |
| * info/infodoc.c (create_internal_info_help_node): | |
| Check if return value of where_is is null before using it. This | |
| shouldn't happen but it is not easy to see this just by looking | |
| at this function. Avoid calling strdup on a string. | |
| Report from Patrice. | |
| 2026-03-10 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/Texinfo/Translations.pm (fake_setlocale) [openbsd]: | |
| Remove forced override of POSIX::setlocale as now we use the | |
| "gettext_dumb" option of Locale::Messages. | |
| 2026-03-09 Patrice Dumas <pertusus@free.fr> | |
| * Pod-Simple-Texinfo/t/Pod-Simple-Texinfo.t: set number of tests when | |
| importing Test::More. | |
| 2026-03-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/texi2any.c (main), tta/perl/texi2any.pl: if TEST is set and | |
| OUTFILE is set to /dev/null and /dev/null is not a null device, reset | |
| OUTFILE to a platform null device. For a test that uses -o /dev/null. | |
| 2026-03-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libtexinfo_main_la_LDFLAGS): add $(LTLIBINTL) | |
| since gettext is used in texinfo.c. | |
| 2026-03-09 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Indices.pm (BEGIN): add missing texinfo libraries | |
| dependencies. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libtexinfo_convert_la_LIBADD) | |
| (libtexinfo_main_la_LIBADD, ctexi2any_LDADD): remove libgnu.la from | |
| libraries and executable linking against libtexinfo, as libtexinfo | |
| already includes libgnu.a files through libperlcall_utils convenience | |
| library linked in libtexinfo. Based on Bruno Haible report. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/utils.c (html_get_direction_index): remove unused | |
| variable. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (@command{texi2any} Environment Variables): | |
| remove explanations on TEXINFO_XS_* and TEXINFO_C_EMBED_PERL as these | |
| environment variables are likely to be removed at some point. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (@command{texi2any} Environment Variables): | |
| update for changes in TEXINFO_XS. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * doc/texinfo.texi (Invoking @command{texi2any}) | |
| (Global Customization Variables): remove references to xml | |
| command-line and format options. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.tres, tta/perl/t/xml_tests.t: remove the | |
| sectioning_test_no_use_nodes that is now a duplicate. Replace | |
| $sectioning_test by its value. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/maintain/check_back_xml_forth_texi_t.sh: update. | |
| * util/txixml2texi.pl: update Perl modules names. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * NEWS, TODO: update for Texinfo XML removed as an output format. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * doc/tta_api/Makefile.am (texi2any_internals_dependencies): fix | |
| TexinfoMarkup.pm and TexinfoXML.pm paths. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| Move TexinfoXML.pm, TexinfoSXML.pm and TexinfoMarkup.pm to Example | |
| * tta/perl/Makefile.am (dist_convertmodules_DATA), | |
| tta/perl/Texinfo/Example/TexinfoMarkup.pm, | |
| tta/perl/Texinfo/Example/TexinfoSXML.pm, | |
| tta/perl/Texinfo/Example/TexinfoXML.pm: move TexinfoMarkup.pm, | |
| TexinfoSXML.pm and TexinfoXML.pm out of Texinfo/ to Example/. | |
| * tta/C/texi2any.c (formats_table), | |
| tta/perl/Texinfo/Example/TexinfoMarkup.pm, | |
| tta/perl/Texinfo/Example/TexinfoSXML.pm, | |
| tta/perl/Texinfo/Example/TexinfoXML.pm, tta/perl/t/test_utils.pl, | |
| tta/perl/t/z_misc/no_structure_test.t, tta/perl/texi2any.pl: update | |
| Perl modules names. | |
| * tta/maintain/regenerate_converters_documentation.sh, | |
| tta/perl/Convert_format_template.pod: update to handle TexinfoXML | |
| being in Example. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/test_utils.pl (test): remove xml from the default | |
| expanded formats. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| Mark texinfo XML related @-command as deprecated | |
| * tta/data/command_data.txt: mark xml, ifxml and ifnotxml as | |
| deprecated. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| Remove Texinfo XML command line options | |
| * tta/C/texi2any.c (format_command_line_names, long_options) | |
| (main), tta/perl/texi2any.pl (%format_command_line_names) | |
| (makeinfo_help): remove Texinfo XML related command line options. | |
| * tta/tests/coverage/list-of-tests (formatting_xml): update. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| Deprecate xml format in documentation and associated variables | |
| * doc/texinfo.texi (Output Formats, Adding Output Formats) | |
| (Conditional Commands, Conditional Not Commands) | |
| (Raw Formatter Commands, Inline Conditionals) | |
| (Generic Translator @command{texi2any}, Invoking @command{texi2any}) | |
| (Output Format Selection, Command List) | |
| (Customization Variables for Multiple Formats): do not document | |
| Texinfo XML as being a supported output format. Document @ifxml, @xml | |
| and @ifnotxml as being deprecated. | |
| * tta/maintain/catalog.xml.in, | |
| tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert), | |
| tta/perl/Texinfo/Convert/TexinfoXML.pm (txi_markup_header): remove | |
| TXI_MARKUP_NO_SECTION_EXTENT, considering that it is always false. | |
| Hardcode TEXINFO_DTD_VERSION to 7.3. | |
| * tta/data/options_data.txt: set TEXINFO_DTD_VERSION to 7.3, document | |
| markup and Texinfo XML customization variables as not being used | |
| anymore. | |
| * doc/texinfo.texi (Other Formats Customization Variables), | |
| tta/Makefile.am (maintain/catalog.xml), tta/perl/Makefile.am | |
| (do_subst): remove Texinfo XML customization variables documentation | |
| and substitutions. | |
| * configure.ac, tta/configure.ac, | |
| tta/maintain/change_perl_modules_version.sh: do not set | |
| TEXINFO_DTD_VERSION. | |
| * tta/C/convert/texinfo.c (txi_set_base_default_options), | |
| tta/perl/texi2any.pl ($main_program_set_options): do not set | |
| TEXINFO_DTD_VERSION. | |
| * tta/perl/t/xml_tests.t (sectioning_test_no_use_nodes): do not set | |
| TXI_MARKUP_NO_SECTION_EXTENT. | |
| * Makefile.am, README-hacking: remove dtd-check. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/convert/ConvertTextXS.xs (XS_convert_tree): | |
| remove call of get_sv_element_document and get_sv_element_element, | |
| no code sets the corresponding handle and document descriptor. | |
| * tta/C/tree_elements/get_perl_tree_elements.c | |
| (get_sv_element_document, get_sv_element_element), | |
| tta/C/main/get_perl_info.c: move unused get_sv_element_document and | |
| get_sv_element_element to get_perl_tree_elements.c. | |
| * tta/C/main/document.c (destroy_document), | |
| tta/C/main/document_types.h (DOCUMENT): comment out definition of | |
| element_handles document field and associated code, as no code built | |
| uses it currently. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libtexinfo_convertxs_la_SOURCES, EXTRA_DIST): do | |
| not build tree_elements/build_perl_tree_elements.c and | |
| tree_elements/get_perl_tree_elements.c. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| remove the Texinfo::TreeElement XS interface | |
| * doc/tta_api/Makefile.am (texi2any_internals_dependencies), | |
| tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/TreeElement.pm, tta/perl/XSTexinfo/Makefile.am: | |
| rename TreeElementNonXS.pm as TreeElement.pm. Remove TreeElement XS | |
| loading and reader_element/TreeElementXS.xs. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/TreeElementNonXS.pm, | |
| tta/perl/XSTexinfo/reader_element/TreeElementXS.xs: remove all the | |
| methods except for new. Those methods should not be used. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm (txt_image_text), | |
| tta/perl/Texinfo/Example/ReadDocBook.pm (_convert): do not use the | |
| TreeElement interface. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/tree_elements/build_perl_tree_elements.c: remove unused header | |
| includes. | |
| * tta/C/tree_elements/get_perl_tree_elements.c: remove | |
| get_sv_reader_reader. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| remove the Texinfo::Reader XS interface | |
| * doc/tta_api/Makefile.am (texi2any_internals_dependencies), | |
| tta/perl/Makefile.am (dist_modules_DATA), tta/perl/Texinfo/Reader.pm, | |
| tta/perl/XSTexinfo/Makefile.am: | |
| remove XS interface of Texinfo::Reader. Rename ReaderNonXS.pm as | |
| Reader.pm. Remove reader_element/ReaderXS.xs. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/tree_elements/build_perl_tree_elements.c: remove | |
| register_document_sections_list_elements, | |
| register_document_nodes_list_elements, | |
| register_document_headings_list_elements, | |
| register_document_relations_lists_elements, | |
| build_tree_elements_relations_lists, | |
| build_tree_elements_sections_list, build_tree_elements_nodes_list, | |
| build_tree_elements_headings_list that were only used in | |
| TreeElementConverterXS. | |
| * tta/C/tree_elements/get_perl_tree_elements.c: remove | |
| get_lang_translations_sv. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * doc/tta_api/Makefile.am (texi2any_internals_dependencies), | |
| tta/perl/Makefile.am (dist_convertmodules_DATA), | |
| tta/perl/XSTexinfo/Makefile.am: remove completely | |
| TreeElementConverter by removing TreeElementConverterXS.xs, | |
| TreeElementConverter.pm and TreeElementConverterXS.pm. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * Texinfo/Example/ReadDocBook.pm: remove or replace code related to XS | |
| interfaces. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_convertmodules_DATA), | |
| tta/perl/texi2any.pl (%formats_table): remove completely | |
| Texinfo::Example::TreeElementReadDocBook. | |
| * tta/perl/Texinfo/Example/TODO: move information on obsolete code to | |
| this new file. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/XSLoader.pm: make $disable_C_libraries a file | |
| scoped variable. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Parser.pm (BEGIN): do not call | |
| set_XS_parser_loaded. | |
| * tta/perl/Texinfo/XSLoader.pm: remove XS_parser_loaded and | |
| set_XS_parser_loaded. The information can be determined in advance | |
| with $Texinfo::XSLoader::core_modules_built and XS_parser_enabled. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ManipulateTree.pm (tree_remove_references): | |
| determine early the object count number by using the | |
| $Texinfo::XSLoader::core_modules_built variable value to determine if | |
| the XS parser module is loaded. | |
| 2026-03-08 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/perl/t/20index_sort.t: load the SWIG interface before the | |
| texi2any internal modules and call Texinfo::setup in a BEGIN block to | |
| make sure that set_XS_mandatory is called before any module reading | |
| TEXINFO_XS_* environmnent variables is loaded. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/XSLoader.pm (set_XS_mandatory, init): unset | |
| $ENV{'TEXINFO_XS'} if set to omit in set_XS_mandatory, not in init. | |
| * tta/perl/Texinfo/XSLoader.pm (init): handle first the case where | |
| there is no attempt to load XS module. Make $TEXINFO_XS a file | |
| lexical. | |
| * tta/perl/Texinfo/XSLoader.pm ($core_modules_built): add. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/call_perl_function.c (call_eval_load_texinfo_modules): no | |
| need to check whether Document XS loaded, XS is mandatory such that | |
| XSLoader would already have died if Document XS was not loaded. | |
| * tta/perl/Texinfo/Document.pm (BEGIN): no more need to detect that | |
| Document XS was loaded. In general, it should be better to make sure | |
| in upstream codes that failure happens as soon as the XS module does | |
| not load. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/swig/perl/test_refold.sh: avoid using diff exit status. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/call_perl_function.c (call_eval_load_texinfo_modules): | |
| call set_XS_mandatory to be more like C texi2any and simplify the | |
| possible cases. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/XSLoader.pm (init): handle mandatory_xs more like | |
| other cases since in situations with mandatory_xs set, all the XS | |
| modules should be enabled. | |
| Show missing fallback only after the required modules that have not | |
| been loaded caused to die. | |
| Silently reset TEXINFO_XS if set to omit and mandatory_xs is set. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/XSLoader.pm ($mandatory_xs, set_XS_mandatory): | |
| rename embedded_xs to mandatory_xs and set_XS_embedded to | |
| set_XS_mandatory. Update users and callers. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm (BEGIN), | |
| tta/perl/Texinfo/Convert/HTML.pm (BEGIN), | |
| tta/perl/Texinfo/Convert/Texinfo.pm (BEGIN), | |
| tta/perl/Texinfo/Convert/Text.pm (BEGIN), tta/perl/Texinfo/Indices.pm | |
| (BEGIN), tta/perl/Texinfo/ManipulateTree.pm (BEGIN), | |
| tta/perl/Texinfo/OutputUnits.pm (BEGIN), | |
| tta/perl/Texinfo/Structuring.pm (BEGIN), | |
| tta/perl/Texinfo/Transformations.pm (BEGIN): remove unused | |
| Texinfo::XSLoader::init return value variable. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ModulePath.pm.in ($XS_modules_dir, init), | |
| tta/perl/Texinfo/XSLoader.pm (init): set $XS_modules_dir in ModulePath | |
| instead of prepending to @INC. Search for libtool archive in | |
| $XS_modules_dir only in XSLoader init. Remove _find_file_in_inc. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * INSTALL, README-hacking: document TEXINFO_XS_CONVERT only in | |
| INSTALL. Move documentation about all the TEXINFO_XS_* to | |
| README-hacking. Mention that those variables will be removed in the | |
| future. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * INSTALL, tta/perl/Texinfo/XSLoader.pm (_message, init, override): | |
| make requiredifenabled the default for TEXINFO_XS. Remove | |
| TEXINFO_XS warn, required and previous default possibilities. | |
| 2026-03-07 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (modulesdir), tta/perl/Texinfo/Config.pm | |
| (BEGIN): move ConfigXS.pm code to Config.pm. Remove ConfigXS.pm. | |
| 2026-03-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/init/documentation_examples.pm: add a license. | |
| 2026-03-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (test_files): remove unused | |
| test_renamed_nodes.init. | |
| 2026-03-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/get_perl_info.c, tta/C/main/txi_config.c, | |
| tta/C/tree_elements/get_perl_tree_elements.c, | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs, | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs, | |
| tta/perl/XSTexinfo/convert/get_html_perl_info.c, | |
| tta/perl/XSTexinfo/parser_document/ConfigXS.xs, | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs, | |
| tta/perl/XSTexinfo/parser_document/ManipulateTreeXS.xs, | |
| tta/perl/XSTexinfo/parser_document/OutputUnitsXS.xs, | |
| tta/perl/XSTexinfo/parser_document/ParserXS.xs: remove cast for | |
| SvPVutf8_nolen and SvPVbyte_nolen. Add const. | |
| 2026-03-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs (direction_string): | |
| remove static for const size_t, as the solaris compiler does not want | |
| a non-constant initializer with strlen call. | |
| 2026-03-06 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs: remove cast to char * | |
| for SvPVutf8_nolen, it should not be useful. | |
| 2026-03-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm, | |
| tta/perl/XSTexinfo/xspara.c: minor changes in spacing, parentheses | |
| use. | |
| 2026-03-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (dump, add_text): check | |
| if $paragraph->{'end_sentence'} exists, not if defined. | |
| * tta/perl/XSTexinfo/xspara.c (enum eos_status): rename eos_undef as | |
| eos_unset. Update users. | |
| 2026-03-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (add_end_sentence), | |
| tta/perl/XSTexinfo/ParagraphXS.xs (xspara_add_end_sentence), | |
| tta/perl/XSTexinfo/xspara.c (xspara_add_end_sentence): remove | |
| add_end_sentence value argument, always set to eos_present. Update | |
| callers. | |
| 2026-03-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (get_pending) | |
| (_add_pending_word): do not delete $paragraph->{'space'}, set it to an | |
| empty string instead. | |
| 2026-03-05 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm (new, get_pending) | |
| (_add_pending_word, _add_next, set_space_protection, add_text): | |
| instead of setting paragraph->{'word'} to undef to signal that there | |
| is no empty string pending that need to be kept as is, add | |
| invisible_pending_word to signal it, as in C. | |
| * tta/perl/XSTexinfo/xspara.c (xspara__add_next) | |
| (xspara_set_space_protection): change conditions to be simpler. | |
| * tta/perl/XSTexinfo/xspara.c (xspara_add_text, xspara__add_next): | |
| more similar debug messages as in Perl. | |
| 2026-03-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/ParagraphNonXS.pm: reformat functions | |
| beginning. | |
| 2026-03-04 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi, tta/perl/init/documentation_examples.pm: | |
| change the formatting of functions beginning in | |
| documentation_examples.pm and in texi2any_api.texi examples. | |
| 2026-03-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ParserNonXS.pm: update POD. | |
| 2026-03-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/get_perl_info.c (find_element_from_sv), | |
| tta/C/main/tree_types.h (enum string_info_type), | |
| tta/C/parsetexi/labels.c (check_register_target_element_label), | |
| tta/C/structuring_transfo/transformations.c (new_node), | |
| tta/perl/Texinfo/Transformations.pm (_new_node), | |
| tta/perl/Texinfo/ParserNonXS.pm | |
| (_check_register_target_element_label): set 'identifier' extra | |
| information with element label instead of 'normalized' for elements | |
| being targets of links. Update code accessing the extra information. | |
| 2026-03-04 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/targets.c: remove unused compare_labels. | |
| * tta/C/main/build_perl_info.c: update comments. | |
| 2026-03-04 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Simple Customization for Commands Without | |
| Arguments): fix documentation of | |
| texinfo_register_no_arg_command_texinfo. | |
| 2026-03-03 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/build_html_perl_info.c, | |
| tta/C/convert/build_html_perl_state.c: commented out code and unused | |
| variables. Remove unused build_directions_strings function. | |
| 2026-03-03 Patrice Dumas <pertusus@free.fr> | |
| TODO: update DevHelp information | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/api_to_perl.c: remove useless includes and preprocessor | |
| code. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/Makefile.am: remove BUILD_C_CODE conditional use, | |
| as it should always be true. BUILD_C_CODE true is implied by XS being | |
| enabled, and code is built in the directory only if XS is enabled. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Paragraph.pm (BEGIN), | |
| tta/perl/XSTexinfo/Makefile.am, tta/perl/XSTexinfo/ParagraphXS.xs: | |
| rename XSParagraph.xs as ParagraphXS.xs. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Parser.pm (BEGIN), tta/perl/XSTexinfo/Makefile.am, | |
| tta/perl/XSTexinfo/parser_document/ParserXS.xs: rename Parsetexi.xs to | |
| ParserXS.xs. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| Finish TEXINFO_XS requiredifenabled implementation | |
| * tta/perl/Texinfo/XSLoader.pm (init): now that all the modules that | |
| need one have fallback, die if fallback is missing when it should be | |
| present. Update comments. | |
| * tta/perl/Texinfo/XSLoader.pm (override): die if overriding a | |
| function failed and embedded_xs is set. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/configure.ac (prefer_c_t2a): move ctexi2any related code later | |
| to depend on use_shared_txi_libraries rather than am_func_iconv. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Structuring.pm (_associate_internal_references): | |
| rename associate_internal_referencesNonXS as | |
| _associate_internal_references. Update callers. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_tree.c (copy_tree_root), | |
| tta/perl/Texinfo/ManipulateTreeNonXS.pm (copy_tree_root), | |
| tta/perl/XSTexinfo/parser_document/ManipulateTreeXS.xs | |
| (copy_tree_root), tta/perl/t/z_misc/test_tree_copy.t: add | |
| copy_tree_root that copies a whole tree root element. | |
| * tta/perl/Texinfo/ManipulateTree.pm (copy_element_tree), | |
| tta/C/main/manipulate_tree.c (copy_element_tree): rename | |
| copy_treeNonXS as copy_element_tree in Perl. Rename copy_tree as | |
| copy_element_tree in C. Update callers. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Texinfo.pm (BEGIN), | |
| tta/perl/XSTexinfo/Makefile.am, | |
| tta/perl/XSTexinfo/convert/ConvertTexinfoXS.xs: rename | |
| ConvertToTexinfoXS.xs to ConvertTexinfoXS.xs. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| Finish TEXINFO_XS requiredifenabled implementation | |
| * tta/perl/Texinfo/XSLoader.pm (init): now that all the modules that | |
| need one have fallback, die if fallback is missing when it should be | |
| present. Update comments. | |
| * tta/perl/Texinfo/XSLoader.pm (override): die if overriding a | |
| function failed and embedded_xs is set. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/configure.ac (prefer_c_t2a): move ctexi2any related code later | |
| to depend on use_shared_txi_libraries rather than am_func_iconv. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Structuring.pm (_associate_internal_references): | |
| rename associate_internal_referencesNonXS as | |
| _associate_internal_references. Update callers. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/main/manipulate_tree.c (copy_tree_root), | |
| tta/perl/Texinfo/ManipulateTreeNonXS.pm (copy_tree_root), | |
| tta/perl/XSTexinfo/parser_document/ManipulateTreeXS.xs | |
| (copy_tree_root), tta/perl/t/z_misc/test_tree_copy.t: add | |
| copy_tree_root that copies a whole tree root element. | |
| * tta/perl/Texinfo/ManipulateTree.pm (copy_element_tree), | |
| tta/C/main/manipulate_tree.c (copy_element_tree): rename | |
| copy_treeNonXS as copy_element_tree in Perl. Rename copy_tree as | |
| copy_element_tree in C. Update callers. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/ManipulateTree.pm (copy_contents): remove | |
| copy_contentsNonXS, copy_contents does not have an XS implementation. | |
| Update callers. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/structuring_transfo/transformations.c | |
| (move_selected_element_index_entries_after_items): rename | |
| move_index_entries_after_items as | |
| move_selected_element_index_entries_after_items. | |
| * tta/perl/Texinfo/ManipulateTreeNonXS.pm | |
| (_move_selected_element_index_entries_after_items): rename | |
| move_index_entries_after_items as | |
| _move_selected_element_index_entries_after_items. | |
| * tta/perl/Texinfo/ManipulateTreeNonXS.pm | |
| (move_index_entries_after_items_in_document): remove | |
| move_index_entries_after_items_in_tree. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/convert/ConvertToTexinfoXS.xs | |
| (_XS_texinfo_convert_tree): rename plain_texinfo_convert_tree as | |
| _XS_texinfo_convert_tree. | |
| * tta/perl/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo): rename | |
| convert_to_texinfoNonXS as _convert_to_texinfo. | |
| * tta/perl/Texinfo/Convert/Texinfo.pm (BEGIN, convert_to_texinfo), | |
| tta/perl/Texinfo/Convert/TexinfoNonXS.pm (_XS_texinfo_convert_tree), | |
| tta/perl/XSTexinfo/convert/ConvertToTexinfoXS.xs | |
| (_XS_texinfo_convert_tree): have _XS_texinfo_convert_tree return undef | |
| if the C data is not found. Override _XS_texinfo_convert_tree in | |
| TexinfoNonXS.pm, returning undef. Define convert_to_texinfo in | |
| Texinfo.pm, by calling _XS_texinfo_convert_tree and switching to Perl | |
| implementation if _XS_texinfo_convert_tree returns undef. | |
| * tta/perl/Makefile.am (dist_convertmodules_DATA): remove | |
| Texinfo/Convert/TexinfoXS.pm. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree): | |
| rename table_item_content_tree_noxs as table_item_content_tree. | |
| Update callers. | |
| * tta/C/main/get_perl_info.c (get_messages_from_sv), | |
| tta/perl/Texinfo/Convert/Converter.pm, | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (merge_converter_error_messages_lists), | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs | |
| (merge_converter_error_messages_lists): add get_messages_from_sv, and | |
| use it in merge_converter_error_messages_lists to get messages from | |
| the Perl object if a C converter could not be found. Move | |
| merge_converter_error_messages_lists_noxs code to | |
| merge_converter_error_messages_lists in ConverterNonXS.pm. Remove | |
| merge_converter_error_messages_lists_noxs. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| Change in comments | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Config.pm, tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/Plaintext.pm, | |
| tta/perl/Texinfo/Convert/Unicode.pm, | |
| tta/perl/Texinfo/Example/TreeElementConverter.pm, | |
| tta/perl/Texinfo/ParserNonXS.pm: make $module_loaded a file scoped my | |
| variable. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm, | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs: prepend _ to function | |
| names for functions that are not supposed to be called outside of | |
| HTML converter. | |
| * tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (command_is_in_referred_command_stack), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs | |
| (command_is_in_referred_command_stack): rename | |
| _command_is_in_referred_command_stack as | |
| command_is_in_referred_command_stack. Update callers. | |
| * tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs: remove | |
| _push_referred_command_stack_command and _pop_referred_command_stack | |
| XS interfaces, the functions are only called from already overriden | |
| functions. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/Indices.pm (BEGIN), tta/perl/Texinfo/IndicesNonXS.pm, | |
| tta/perl/XSTexinfo/parser_document/IndicesXS.xs: add IndicesNonXS.pm | |
| based on Indices.pm for the code also in the XS interface. Add | |
| loading of XS module in Indices.pm. | |
| Remove tta/perl/Texinfo/IndicesXS.pm. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm, | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs: prepend _ to function | |
| names for functionss that are not supposed to be called outside of | |
| HTML converter. | |
| * tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (command_is_in_referred_command_stack), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs | |
| (command_is_in_referred_command_stack): rename | |
| _command_is_in_referred_command_stack as | |
| command_is_in_referred_command_stack. Update callers. | |
| * tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs: remove | |
| _push_referred_command_stack_command and _pop_referred_command_stack | |
| XS interfaces, the functions are only called from already overriden | |
| functions. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs: fix names in strings | |
| used in warn message. Modify 2 XS interface names. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_unit_is_top_output_unit): rename | |
| unit_is_top_output_unit as html_unit_is_top_output_unit. | |
| * tta/C/main/get_perl_info.c (get_output_unit_from_sv): add, based on | |
| find_root_command code. | |
| * tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (_get_top_unit) | |
| (unit_is_top_output_unit), tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs | |
| (unit_is_top_output_unit): add an XS interface for | |
| unit_is_top_output_unit. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/html_prepare_converter.c | |
| (html_set_main_units_direction_names), tta/C/main/converter_types.h | |
| (CONVERTER), tta/C/main/utils.c (html_get_direction_index): setup an | |
| hash associating direction names to their index in | |
| main_units_direction_names while filling the array. Use it in | |
| html_get_direction_index. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_direction_string): rename | |
| direction_string as html_direction_string. | |
| * tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm (direction_string), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs (direction_string): add XS | |
| interface for direction_string. | |
| * tta/C/convert/build_html_perl_info.c | |
| (html_pass_converter_initialization_state), | |
| tta/C/convert/build_html_perl_state.c (build_html_translated_names): | |
| do not pass nor reset direction_string converter hash, as nothing | |
| access the Perl data when going through the XS interface. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_special_unit_info): handle an | |
| unknown special_unit_variety being given in argument. | |
| * tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm | |
| (get_special_unit_info_varieties, special_unit_info), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs | |
| (get_special_unit_info_varieties, special_unit_info): do not sort | |
| get_special_unit_info_varieties output. Add an XS interface for | |
| get_special_unit_info_varieties and special_unit_info. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/format_html.c (html_get_top_unit): reorganize code to | |
| be more efficient, and more similar to Perl code. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Customizing Output Target Names) | |
| (Target Tree Element Link), tta/perl/Texinfo/Convert/ConverterNonXS.pm | |
| (converter_find_identifier_target), tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs | |
| (converter_find_identifier_target): rename find_identifier_target as | |
| converter_find_identifier_target. Move to ConverterNonXS.pm and add | |
| an XS implementation. Update callers. | |
| * tta/perl/Texinfo/Convert/HTML.pm (_get_top_unit) | |
| (_convert_xref_command, _convert_printindex_command): use | |
| converter_find_identifier_target. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * doc/texi2any_api.texi (Customizing Output Target Names) | |
| (Target Tree Element Link), tta/perl/Texinfo/Convert/HTML.pm | |
| (find_identifier_target), tta/perl/init/documentation_examples.pm, | |
| tta/perl/t/init/access_output_unit_in_handler.pm: rename label_command | |
| as find_identifier_target. Update callers. | |
| * tta/perl/Texinfo/Convert/HTML.pm (_convert_xref_command): rename | |
| _convert_xref_commands as _convert_xref_command. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/t/init/t2h_singular.init (singular_collect_values) | |
| (singular_get_value): collect version set values in the tree. Use | |
| them in formatting. | |
| * tta/perl/Texinfo/Convert/HTML.pm: remove get_value. | |
| * tta/tests/coverage/formatting.texi: add setting of VERSION value, | |
| for t2h_singular.init testing. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm, | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm: move functions around and | |
| modify comments for a better organized code. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_convertmodules_DATA), | |
| tta/perl/Texinfo/Convert/HTML.pm (BEGIN), | |
| tta/perl/Texinfo/Convert/HTMLNonXS.pm, tta/perl/XSTexinfo/Makefile.am | |
| (xs_LTLIBRARIES, *_ConvertHTMLXS_la_*), | |
| tta/perl/XSTexinfo/convert/ConvertHTMLXS.xs: add HTMLNonXS.pm based on | |
| HTML.pm for the code also in the XS interface. Rename ConvertXS.xs as | |
| ConvertHTMLXS.xs. Add loading of XS module in HTML.pm. Use the same | |
| name in Perl code and in XS interface. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/HTML.pm (%XS_conversion_overrides), | |
| tta/perl/XSTexinfo/convert/ConvertXS.xs: use the same name in Perl | |
| code and in XS interface. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/converter.c (setup_converter_generic_done) | |
| (setup_converter_generic), tta/C/convert/html_prepare_converter.c | |
| (html_format_setup): have html_format_setup call | |
| setup_converter_generic_done as it depends on some xml conversion data | |
| having been set. Add setup_converter_generic_done to avoid running | |
| setup_converter_generic code twice. | |
| * tta/perl/Texinfo/Convert/HTML.pm (%XS_conversion_overrides, import), | |
| tta/perl/XSTexinfo/convert/ConvertXS.xs (init): call html_format_setup | |
| in init in ConvertXS.xs. Remove html_format_setup. | |
| * tta/perl/Texinfo/Convert/HTML.pm (%XS_conversion_overrides) | |
| (html_converter_initialize_beginning) | |
| (XS_html_converter_get_customization), | |
| tta/perl/XSTexinfo/convert/ConvertXS.xs | |
| (XS_html_converter_get_customization): rename | |
| _XS_html_converter_initialize_beginning as | |
| html_converter_initialize_beginning and | |
| _XS_html_converter_get_customization and | |
| html_converter_get_customization_sv as | |
| XS_html_converter_get_customization. | |
| * tta/perl/Texinfo/Convert/HTML.pm | |
| (html_converter_initialize_beginning, converter_initialize): do not | |
| use a dynamic check of converter_descriptor presence before | |
| html_converter_initialize_beginning and converter_initialize calls, it | |
| should always set and we do not do it for any other function. Move | |
| Perl code called where html_converter_initialize_beginning was to the | |
| function. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_convertmodules_DATA), | |
| tta/perl/Texinfo/Convert/Text.pm (BEGIN), | |
| tta/perl/Texinfo/Convert/TextNonXS.pm, | |
| tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES, *_ConvertTextXS_la_*), | |
| tta/perl/XSTexinfo/convert/ConvertXS.xs, | |
| tta/perl/XSTexinfo/convert/ConvertTextXS.xs: add TextNonXS.pm based on | |
| Text.pm with the trivial code present in the XS interface. Split | |
| ConvertTextXS.xs out of ConvertXS.xs with the Texinfo::Convert::Text | |
| XS interface code. Add loading of XS module in Text.pm. | |
| * tta/perl/XSTexinfo/Makefile.am: cleanups. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Convert/Text.pm (XS_convert_tree), | |
| tta/perl/XSTexinfo/convert/ConvertXS.xs (XS_convert_tree): rename | |
| _convert_tree_with_XS and text_convert_tree as XS_convert_tree. | |
| * tta/perl/Texinfo/Convert/Text.pm (XS_convert_tree, convert_to_text) | |
| (convert, output), tta/perl/XSTexinfo/convert/ConvertXS.xs | |
| (XS_convert_tree): determine in XS_convert_tree if a C element | |
| corresponding to the input Perl tree element is found and if not found | |
| return undef. Always call XS_convert_tree in Perl code, and determine | |
| if the element was converted by checking if the return value is undef. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_convertmodules_DATA), | |
| tta/perl/Texinfo/Convert/Converter.pm, | |
| tta/perl/Texinfo/Convert/ConverterNonXS.pm, | |
| tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES) | |
| (*ConvertConverterXS_la_*), tta/perl/XSTexinfo/convert/ConvertXS.xs, | |
| tta/perl/XSTexinfo/convert/ConvertConverterXS.xs: add | |
| ConverterNonXS.pm based on Converter.pm with the code also present in | |
| the XS interface. Split ConvertConverterXS.xs out of ConvertXS.xs with | |
| the Texinfo::Convert::Converter XS interface code. Add loading of XS | |
| module in Converter.pm. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/ManipulateTree.pm, | |
| tta/perl/Texinfo/ManipulateTreeNonXS.pm, | |
| tta/perl/Texinfo/OutputUnits.pm, tta/perl/Texinfo/OutputUnitsNonXS.pm, | |
| tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES, *_OutputUnitsXS_*) | |
| (*_ManipulateTreeXS_la_), | |
| tta/perl/XSTexinfo/parser_document/ManipulateTreeXS.xs, | |
| tta/perl/XSTexinfo/parser_document/OutputUnitsXS.xs: add | |
| OutputUnitsNonXS.pm based on OutputUnits.pm with the code also present | |
| in the XS interface. Similarly, add ManipulateTreeNonXS.pm based on | |
| ManipulateTree.pm with the code also present in the XS interface. | |
| Split StructuringTransfoXS.xs in ManipulateTreeXS.xs and | |
| OutputUnitsXS.xs. | |
| Add loading of XS module in OutputUnits.pm and ManipulateTree.pm, | |
| and keep there the functions not in the XS interfaces. | |
| Remove StructuringTransfoXS.xs and perl/Texinfo/StructTransfXS.pm. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/Transformations.pm, | |
| tta/perl/Texinfo/TransformationsNonXS.pm | |
| tta/perl/XSTexinfo/parser_document/TransformationsXS.xs, | |
| tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES) | |
| (*_TransformationsXS_la_*), | |
| tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs: add | |
| TransformationsNonXS.pm based on Transformations.pm with the code also | |
| present in the XS interface. Separate TransformationsXS.xs from | |
| StructuringTransfoXS.xs with the transformations interface only. Add | |
| loading of XS modules in Transformations.pm and keep the code not in | |
| the XS interface in that file too. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/StructuringNonXS.pm, tta/perl/Texinfo/Structuring.pm, | |
| tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs, | |
| tta/perl/XSTexinfo/parser_document/StructuringXS.xs, | |
| tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES, *_StructuringXS_la_*): | |
| add StructuringNonXS.pm based on Structuring.pm code, keeping only | |
| code also in the XS interface. Separate StructuringXS.xs from | |
| StructuringTransfoXS.xs with the structuring interface only. Add | |
| loading of XS in Structuring.pm and keep code not in the XS interface | |
| too. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/Makefile.am (libcallperl_libtexinfo_la_SOURCES) | |
| (libcallperl_libtexinfo_convert_la_SOURCES): move | |
| call_document_perl_functions.c to libtexinfo. | |
| * tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/XSTexinfo/parser_document/DocumentXS.xs (destroy_document): | |
| call call_document_remove_document_references in destroy_document in | |
| DocumentXS.xs. Remove DocumentXS.pm. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/Texinfo/Document.pm (BEGIN), | |
| tta/perl/Texinfo/DocumentNonXS.pm, tta/perl/Texinfo/DocumentXS.pm | |
| (destroy_document), tta/perl/XSTexinfo/parser_document/DocumentXS.xs | |
| (MODULE, PACKAGE): move code loading XS to Document.pm, move non XS | |
| interface code to the new DocumentNonXS.pm code file. Use | |
| DocumentXS.pm for the only Perl function needed by the XS interface. | |
| Update XS interface function names. | |
| * tta/perl/Texinfo/Translations.pm (configure): simply call | |
| Texinfo::Document::configure_output_strings_translations, remove XS | |
| override. | |
| * tta/C/main/call_perl_function.c (call_eval_load_texinfo_modules): | |
| update for change in Perl modules. | |
| 2026-02-21 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Makefile.am (dist_modules_DATA), | |
| tta/perl/XSTexinfo/Makefile.am, tta/perl/Texinfo/Parser.pm (BEGIN), | |
| tta/perl/Texinfo/ParserXS.pm: rename tta/perl/XSTexinfo/Parsetexi.pm | |
| as ParserXS.pm and move to tta/perl/Texinfo/ to be consistent with | |
| the other modules. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/perl/Texinfo/Translations.pm (translate_string): switch to | |
| gettext_dumb implementation to use a gettext implementation that does | |
| not use the current locale information at all. Idea of Guido Flohr. | |
| 2026-03-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * README-hacking: add instructions for updating refcard on | |
| website | |
| 2026-03-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * TODO: change "Post-release" section to "After 7.3 release". | |
| 2026-03-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * tta/perl/t/08misc_commands.t | |
| (definfoenclose_command_on_section_line): | |
| Re-enable test. | |
| 2026-03-02 Patrice Dumas <pertusus@free.fr> | |
| * tta/C/convert/call_html_perl_function.c: add includes for libc files | |
| used in the code. Report from Eli Zaretskii. | |
| 2026-03-02 Gavin Smith <gavinsmith0123@gmail.com> | |
| * configure.ac: bump version to 7.3dev. | |
| Copyright 2026 Free Software Foundation, Inc. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. | |