blob: bdd2fcde7e73dcc84dc9e3b619469099b3f78ba8 [file] [log] [blame]
2025-09-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/highlight_syntax.pm (_get_language): remove $cmdname
argument, get it from the Texinfo tree element. Update callers.
* tta/perl/ext/highlight_syntax.pm (%highlighted_cmds): rename
%commands and %highlighted_cmds.
* tta/perl/ext/highlight_syntax.pm: add comments.
2025-09-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/highlight_syntax.pm (highlight_process): rename
@highlighted_commands as @highlighted_commands_names.
* tta/perl/ext/highlight_syntax.pm (_add_command_language)
(highlight_process): separate better the 'source-highlight' case from
the other cases. Indeed, the other cases do not need to collect
per-language information.
2025-09-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/highlight_syntax.pm (highlight_process): check earlier
that HIGHLIGHT_SYNTAX is set. Put tree elements only in languages
'commands' array.
2025-09-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/highlight_syntax.pm (highlight_process): increase
input_languages_counters key value for each collected command.
2025-09-13 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/ext/highlight_syntax.pm (highlight_setup):
Correct comment.
2025-09-13 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/ext/highlight_syntax.pm (highlight_setup):
Add comment saying what this function does.
2025-09-12 Patrice Dumas <pertusus@free.fr>
HIGHLIGHT_SYNTAX value used as command-line
* NEWS, doc/texinfo.texi (Syntax Highlighting)
(HTML Customization Variables List), tta/perl/ext/highlight_syntax.pm
($highlighted_languages_list, highlight_setup, _get_language)
(highlight_process): make $highlighted_languages_list a reference on a
hash, and if undef, do not check the language. If the
HIGHLIGHT_SYNTAX value is not a specific program, concatenate the
value to the highlighted language name to generate the command-line
used for highlighting. Update documentation.
2025-09-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/highlight_syntax.pm (_convert_element): copy and modify
contents as an array first.
* tta/perl/ext/highlight_syntax.pm (highlight_process): put file
argument last on command line.
* tta/perl/ext/highlight_syntax.pm: use exists or defined in
conditions when the value is not used. Change formatting of functions
call code. Change in spacing.
2025-09-07 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/separator.c (handle_close_brace),
tta/perl/Texinfo/ParserNonXS.pm (_handle_close_brace): do not reset
anchor and namedanchor source_info at closing, the source info should
be set where the @-command is.
2025-09-09 Gavin Smith <gavinsmith0123@gmail.com>
* tta/configure.ac,
* tta/m4/txi_libperl_link.m4 (txi_LIBPERL_LINK):
Split check for linking against libperl into separate file.
2025-09-09 Gavin Smith <gavinsmith0123@gmail.com>
* tta/configure.ac,
* tta/m4/txi_embedded_perl.m4 (txi_EMBEDDED_PERL):
Split check for embedded perl into a separate .m4 file.
2025-09-09 Gavin Smith <gavinsmith0123@gmail.com>
* tta/configure.ac,
* tta/m4/txi_iconv_converts_euc_cn.m4 (txi_ICONV_CONVERTS_EUC_CN):
Move code checking if iconv works for EUC-CN character encoding
to separate .m4 file.
2025-09-09 Gavin Smith <gavinsmith0123@gmail.com>
Comments for parts of tta/configure.ac
* tta/configure.ac (LIBPERL_LINK): add comment above lengthy
section of file explaining that this is only used for SWIG.
(PERL_EMBEDDED): add another comment saying when this conditional
is used.
2025-09-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Command List): fix node reference. from Bruno.
2025-09-07 Patrice Dumas <pertusus@free.fr>
* tta/C/swig/swig_element_types.h (TXI_CM_FLAGS_LIST): add
no_paragraph.
* tta/C/swig/swig_interface.c (txi_ext_messages_list_messages_number):
return 0 if there are no messages.
* tta/swig/perl/Makefile.am (SWIG_header_dependencies): add
swig/swig_element_types.h.
* tta/swig/texinfo.i (block_line_argument_command): add.
2025-09-07 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: update now that @maketitle is fully implemented
2025-09-07 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Tips): Remove section about using @value in
@copying as this is covered elsewhere in the manual.
(@settitle, Preamble): Change link to "@titlepage" node to
"Titlepage & Copyright Page".
(GNU Sample Texts): Use @maketitle in example.
2025-09-07 Gavin Smith <gavinsmith0123@gmail.com>
@maketitle in documentation
* doc/texinfo.texi (Short Sample Texinfo File, @sp, @page)
(@value Example, Overfull hboxes, HTML Output Structure Customization)
(HTML Customization Variables List):
Update examples to use @maketitle instead of @titlepage.
* doc/info-stnd.texi: use @maketitle instead of @titlepage.
2025-09-07 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (scripts_test_files, EXTRA_DIST),
tta/swig/perl/tests/test_expansion_lines_block/test_expansion_lines_block.texi:
new test for macro expansion with empty lines and block command.
2025-09-06 Patrice Dumas <pertusus@free.fr>
* tta/C/swig/swig_interface.c (txi_ext_messages_list_messages_number)
(txi_ext_destroy_error_messages_list): handle NULL formatted error
messages, as it may easily happen, if there are no error messages, and
it is better not to rely on the caller to check that it is not
NULL/undef or similar.
2025-09-01 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (ctexi2any_CPPFLAGS): add
PERL_EXTUTILS_EMBED_ccopts to match LDFLAGS. Could be needed on
AlmaLinux. Not needed for libraries, probably because libtool already
adds the cflags.
* tta/C/Makefile.am (libperlembed_libtexinfo_main_la_CPPFLAGS)
(libperlembed_libtexinfo_main_la_CFLAGS)
(libperlembed_libtexinfo_main_la_LIBADD): use consistent flags
with/without Perl embedding.
2025-08-31 Gavin Smith <gavinsmith0123@gmail.com>
* info/Makefile.am: fix use of Automake variables to install,
distribute and clean the correct files under info-hooks-default.
2025-08-31 Patrice Dumas <pertusus@free.fr>
Add a parser 'virtual' object in SWIG interface
* tta/C/main/document_types.h (PARSER): add struct in this file to
hide it from the SWIG interface. It only holds a parser configuration
descriptor.
* tta/C/main/parser_conf.c (unregister_parser_conf_descriptor): add.
* tta/C/Makefile.am (C_libtexinfo_main_sources),
tta/C/swig/swig_parser_api.c (txi_ext_parser, txi_ext_destroy_parser)
(txi_ext_parse_*, txi_ext_parser_conf_*), tta/swig/perl/Makefile.am
(SWIG_header_dependencies): add an interface for parse_* and
parser_conf_* with a constructor and a desstructor and parser in
argument, that allows to find associated parser conf and apply conf.
* tta/swig/perl/parse_refold.pl, tta/swig/perl/t/*.t,
tta/swig/python/test_Texinfo.py, tta/swig/texinfo.i (parse_*)
(parser_conf_*): use interface with a parser.
2025-08-31 Patrice Dumas <pertusus@free.fr>
* tta/C/main/parser_conf.c (global_parser_conf, register_conf)
(apply_conf), tta/C/parsetexi/conf.c (simple_parser_conf)
(reset_parser_conf): do not copy in apply_conf, but replace. For
this, make global_parser_conf a pointer. Add simple_parser_conf
structure to hold memory for the configurations that do not need to be
registered, which global_parser_conf did previously. Update
reset_parser_conf. Update code accessing global_parser_conf.
2025-08-31 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/z_misc/same_parser_multiple_files.t,
tta/perl/t/z_misc/no_structure_test.t,
tta/perl/XSTexinfo/Parsetexi.pm: use exists or defined in conditions
when the value is not used. Change formatting of functions call code.
2025-08-31 Patrice Dumas <pertusus@free.fr>
* tta/C/main/utils.c (print_values_list): add, for debugging.
2025-08-30 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (C_libtexinfo_main_sources),
tta/swig/*/Makefile.am (SWIG_include_directories)
(SWIG_header_dependencies, Texinfo_la_CPPFLAGS), tta/C/swig/swig_*:
move files in C libraries used for the swig interface to their own
directory.
2025-08-26 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/DocBook.pm: use
exists or defined in conditions when the value is not used. Change
formatting of functions call code.
* tta/perl/Texinfo/Convert/Utils.pm: use exists in conditions when the
value is not used.
* tta/perl/Texinfo/Convert/HTML.pm: change formatting of functions
call code.
2025-08-26 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Info.pm,
tta/perl/Texinfo/Convert/Plaintext.pm: use exists or defined in
conditions when the value is not used. Change formatting of functions
call code.
* tta/perl/Texinfo/Convert/Plaintext.pm: always use prototypes.
2025-08-26 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Text.pm: use exists or defined in
conditions when the value is not used. Change formatting of functions
call code.
2025-08-26 Patrice Dumas <pertusus@free.fr>
@maketitle in LaTeX output
* tta/perl/Texinfo/Convert/Utils.pm (get_titlepage_publication_info):
directly reuse $document_info.
* tta/perl/Texinfo/Convert/LaTeX.pm (_format_title): add based on
_convert code.
* tta/perl/Texinfo/Convert/LaTeX.pm (_make_title, _convert): format
@maketitle.
* tta/perl/Makefile.tres, tta/perl/t/latex_tests.t
(maketitle_documentinfo_publication): add test.
2025-08-25 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (new_document_info)
(destroy_document_info, get_document_documentinfo)
(get_titlepage_publication_info), tta/C/main/document_types.h
(DOCUMENT_INFO), tta/perl/Texinfo/Convert/Utils.pm
(get_document_documentinfo, get_titlepage_publication_info): add
get_document_documentinfo to get the information in @documentinfo, and
get_titlepage_publication_info to additionally get @copying and
@publication information.
* tta/C/convert/format_html.c (format_maketitle)
(html_default_format_titlepage), tta/perl/Texinfo/Convert/HTML.pm
(_format_maketile, _default_format_titlepage): format maketitle
title page in HTML, getting title page information with
get_document_documentinfo.
* tta/perl/Makefile.am (test_files), tta/perl/t/docbook_tests.t
(maketitle_documentinfo_publication), tta/perl/t/html_tests.t
(maketitle_documentinfo_publication),
tta/perl/t/input_files/maketitle_documentinfo_publication.texi,
tta/perl/Makefile.tres: add maketitle_documentinfo_publication.texi,
which calls @maketitle, @publication and @documentinfo with several
commands. Add tests for HTML and Docbook formatting of document info
and title mage with those commands.
2025-08-24 Patrice Dumas <pertusus@free.fr>
Add @documentinfo, @publication, @maketitle in texi2any, preliminary
* tta/data/command_data.txt: add maketitle, documentinfo and
publication.
* tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): allow author
to be in documentinfo.
* tta/perl/Texinfo/Convert/DocBook.pm (%ignored_block_commands)
(conversion_output_begin), tta/C/convert/format_html.c
(html_default_format_titlepage, html_convert_maketitle_command)
(html_convert_unit_type), tta/C/convert/html_prepare_converter.c
(commands_internal_conversion_table), tta/perl/Texinfo/Convert/HTML.pm
(%ignored_block_commands, _convert_maketitle_command)
(_convert_unit_type, _default_format_titlepage),
tta/perl/Texinfo/Convert/Plaintext.pm (%formatted_line_commands,
%advance_paragraph_count_commands) (%ignored_commands),
tta/perl/Texinfo/Convert/Text.pm (%ignored_block_commands),
tta/perl/ext/epub3.pm (epub_finish): basic handling of documentinfo
and publication, mainly by ignoring, but also by searching for author
and subtitle in documentinfo. Handle maketitle in HTML. The
titlepage formatting for maketitle is not yet implemented.
* tta/perl/Texinfo/Convert/LaTeX.pm (%ignored_block_commands)
(_make_title, _convert, _tableofcontents_after_title)
(_begin_document): add _tableofcontents_after_title with code from
_begin_document related to table of contents. Do titlepage in
_begin_document only if maketitle is not found. Handle maketitle.
Add mainmatter and table of contents where maketitle is output. The
titlepage formatting for maketitle, expected to be in the _make_title
function is not yet implemented.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/C/main/get_perl_info.c (get_sv_option), tta/C/main/txi_config.c
(set_option_value): if an integer option is not an integer, set it to
0 if it is the string value is empty, or to 1 if not empty. This
mimics Perl. Not exactly the same as comparison won't fail in C, while
it will fail in Perl and trigger a warning.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/C/texi2any.c (check_integer_option, main): add
check_integer_option that aborts with an error message similar the the
one in Perl if an integer option is not an integer. Call for the
options that are integer and not obsolete.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (contents_inline_element): free
table_of_contents when it is the empty string.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree.c (destroy_key_pair_value, destroy_associated_info):
split destroy_key_pair_value out of destroy_associated_info to destroy
a single key pair value.
* tta/C/main/extra.c (get_associated_info_key): if a key pair is
reused, call destroy_key_pair_value on the value.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/DocBook.pm (convert_tree): report a
formatting context not setup, with empty lang_stack as a bug.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/LaTeX.pm (_latex_header): call
_push_new_context and call _convert for settitle_tree conversion,
instead of calling convert_tree without context.
* tta/perl/Texinfo/Convert/LaTeX.pm (convert_tree): report no
formatting_context in convert_tree as a bug.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/LaTeX.pm (output): call _push_new_context
explicitly and call _convert.
* tta/perl/Texinfo/Convert/LaTeX.pm (convert): reset
formatting_context, always call _push_new_context.
* tta/perl/Texinfo/Convert/LaTeX.pm (_latex_begin_output): rename
$header as $result_text.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/LaTeX.pm: use exists or defined in
conditions when the value is not used. Change formatting of functions
call code. DO not use object oriented syntax when calling local scope
functions.
* tta/perl/Texinfo/Convert/LaTeX.pm (converter_reset): add.
* tta/perl/Texinfo/Convert/LaTeX.pm (_prepare_conversion): reset more
state keys, in particular those that may not exist at all.
* tta/perl/Texinfo/Convert/LaTeX.pm (output): set
$self->{'formatting_context'} explicitly.
* tta/perl/Texinfo/Convert/LaTeX.pm (_format_heading_command)
(_set_custom_headings): rename first_custom_heading as
is_first_custom_heading.
* tta/perl/Texinfo/Convert/LaTeX.pm (_convert_def_line): rename
deftypefnnewline as with_deftypefnnewline.
2025-08-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/texi2any.pl: update comment about memory release.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (Global Customization Variables): add more
information on setting TEST value, to described that setting TEST can
trigger some additional checks and test related features enabling.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/C/texi2any.c (main): rename i as file_index. As in Perl,
release memory if TEST > 0 or the processed file is not the last one.
* tta/C/texi2any.c (main): set external_module to
elt_count_external_module for sort_element_count, to notify that the
a Perl module is used, and in particular that document was built to Perl.
* tta/C/main/call_document_perl_functions.c
(call_document_remove_document_references): check that document hv is
non-NULL. It may be NULL if the Texinfo file was not found.
* tta/C/main/tree.c (destroy_element): improve refcount check message.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/texi2any.pl ($file_index, $input_files_nr): rename
$file_number as $file_index. Set $input_files_nr. Call
reset_converter, destroy on converter and on document if the file
being processed is not the last one.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/structuring.c (print_down_menus): do not
wrongly redefine the reuse_existing_menu variable when setting it.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (add_comment_at_end),
tta/perl/Texinfo/ParserNonXS.pm (_add_comment_at_end): rename
input_comment_text as input_comment_cmd_text and comment_text as
comment_cmd_text. Rename q as argument_text.
* tta/C/parsetexi/handle_commands.c (add_comment_at_end): free
comment_cmd_text.
* tta/C/main/output_unit.c (print_output_units_details): free
root_command_texi.
* tta/C/parsetexi/handle_commands.c (handle_line_command): destroy
line_args element if the raw line element is ignored.
* tta/C/parsetexi/macro.c (expand_macro_arguments)
(expand_linemacro_arguments, handle_macro),
tta/C/parsetexi/separator.c (handle_open_brace): add static variables
to hold the new line pointer returned by next_text and free them
before getting the next line.
* tta/C/structuring_transfo/structuring.c (print_down_menus): add a
variable set if the existing menu is reused, and use that variable
value to decide if menus need to be destroyed.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (raw_line_command_arg_spaces):
leave an fully empty text element on a raw line command as is. Can
only happen if there is nothing at all after the command, not even an
new line.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm: add comment explaining that the
overrides without whole output or convert overriding do not work
anymore.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/convert/get_html_perl_info.c
(html_get_no_arg_commands_formatting_sv)
(html_get_directions_strings_sv): split
html_conversion_initialization_sv in two,
html_get_no_arg_commands_formatting_sv and
html_get_directions_strings_sv. This code is unused.
Remove all the references to html_conversion_initialization_sv from
code and comments.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (_run_stage_handlers): rename
run_stage_handlers as _run_stage_handlers since it is a local function
only and do not call with object oriented syntax.
* tta/perl/Texinfo/Convert/HTML.pm (_prepare_converted_output_info):
use $self->{'document'} in the whole function.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/call_html_perl_function.c (call_stage_handler): do not
use document SV found in converter if undef.
2025-08-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (_default_format_element_header):
only test if tree_unit_directions exists to determine that there are
directions and more than one element.
2025-08-23 Patrice Dumas <pertusus@free.fr>
Remove enumerate_specification extra information from tree
* tta/C/main/tree_types.h (AI_KEYS_LIST), tta/C/parsetexi/end_line.c
(end_line_starting_block), tta/perl/Texinfo/ParserNonXS.pm
(_end_line_starting_block): do not put enumerate_specification extra
information in tree.
2025-08-23 Patrice Dumas <pertusus@free.fr>
Do not use enumerate_specification extra information in converters
* tta/perl/Texinfo/ParserNonXS.pm (_end_line_starting_block): inverse
condition, simplify regex.
* tta/C/main/utils.c (enumerate_number_representation)
(enumerate_item_representation), tta/C/main/convert_to_text.c
(convert_to_text_internal), tta/C/structuring_transfo/structuring.c
(sectioning_structure), tta/perl/Texinfo/Common.pm
(enumerate_number_representation, enumerate_item_representation),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Convert/Text.pm (_convert): rename
enumerate_item_representation as enumerate_number_representation, and
handle malformed specification in enumerate_number_representation.
Readd enumerate_item_representation as a function that determines an
item tree element enumerate representation by calling
enumerate_number_representation and without using
enumerate_specification extra information. Update callers.
* tta/C/convert/format_html.c (html_convert_enumerate_command),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_convert_enumerate_command),
tta/perl/Texinfo/Convert/LaTeX.pm (_set_environment_options),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): use the
enumerate arguments to get the @enumerate argument instead of
using the enumerate_specification extra information.
2025-08-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm: do not use object oriented call
for file scope functions.
2025-08-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm: use exists in conditions when the
value is not used.
* tta/perl/init/book.pm: use exists or defined in conditions when the
value is not used. Change formatting of functions call code. Sync
common parts of book_convert_heading_command with HTML.pm.
2025-08-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm: use exists or defined in conditions
when the value is not used. Change formatting of functions call code.
* tta/perl/Texinfo/Convert/HTML.pm (_parse_htmlxref_files): minor
changes in code.
* tta/perl/Texinfo/Convert/HTML.pm (converter_initialize): handle
undef customization data.
2025-08-22 Patrice Dumas <pertusus@free.fr>
* tta/tests/run_parser_all.sh (check_strxfrm_ok): remove a space in
string in condition that can be significant.
2025-08-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm: use exists or defined in conditions
when the value is not used. Change formatting of functions call code.
* tta/perl/Texinfo/Convert/Converter.pm: use exists in conditions.
2025-08-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm, tta/perl/init/html32.pm,
tta/perl/texi2any.pl: use exists or defined in conditions when the value
is not used. Change formatting of functions call code. Use the value
of TEXI2HTML customization variable in conditions, not whether it is
defined.
* tta/perl/texi2any.pl: add comments.
2025-08-21 Patrice Dumas <pertusus@free.fr>
* tta/tests/formatting/list-of-tests: remove setting TEXI2HTML undef,
it is never needed.
2025-08-20 Patrice Dumas <pertusus@free.fr>
* tta/perl/texi2any.pl, tta/perl/load_txi_modules.pl: remove the
references to the standalone module infrastructure.
2025-08-20 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/XSLoader.pm ($xs_parser_loaded, XS_parser_loaded)
(set_XS_parser_loaded), tta/perl/Texinfo/Parser.pm (BEGIN): add a
setter and a getter for the XS Parser being actually loaded. Set in
Parser.pm if XS is enabled and init did not return the non-XS package
name.
* tta/perl/Texinfo/ManipulateTree.pm (_element_remove_references)
(tree_remove_references): distinguish tree_remove_references that
removes the reference for a whole the, and _element_remove_references
that remove recusrively the references for elements except for the
tree root. Setup reference Refcounts in tree_remove_references, using
XS_parser_loaded.
2025-08-20 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm
($destroyed_objects_refcount_text): rename
$destroyed_objects_refcount_target as
$destroyed_objects_refcount_text. Update
$destroyed_objects_refcount_text when $destroyed_objects_refcount
changes.
2025-08-20 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (perl_texinfo_wrap.c),
tta/swig/python/Makefile.am (python_texinfo_wrap.c): expand $< in
non-suffix rules for BSD make.
2025-08-20 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac (AM_PATH_PYTHON): set value if not found, and
set with_swig_python only if the python interpreter is found.
2025-08-20 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (noinst_LTLIBRARIES): do not build
libcallperl_libtexinfo.la if HAVE_ICONV is not set even of the library
do not depend on iconv, as the library is only used as a convenience
library for libtexinfo.la, which depends on iconv.
2025-08-20 Patrice Dumas <pertusus@free.fr>
* info/Makefile.am (dist_check_SCRIPTS): make
t/config/texinfo/info-hooks/manual-not-found dist_ to have it
distributed.
2025-08-19 Patrice Dumas <pertusus@free.fr>
* tta/README, tta/configure.ac (refcounts-checks): remove Devel::Cycle
from the modules that should load for refcounts-checks, as it is not
needed. Add information in tta/README on how to modify the code to
test for cycles.
* tta/perl/Texinfo/Convert/Converter.pm ($devel_findref_loading_error)
(reset_converter), tta/perl/Texinfo/ManipulateTree.pm
($devel_findref_loading_error, tree_remove_references): remove
Devel::FindRef from the modules that should load for refcounts-checks,
instead add a runtime check and adapt message.
* tta/perl/Texinfo/Convert/Converter.pm ($output_unit_SV_target_count)
($output_unit_object_target_count, reset_converter),
tta/perl/Texinfo/ManipulateTree.pm
($destroyed_objects_refcount_target, $element_SV_target_count)
(tree_remove_references): modify messages related to refcount checks.
2025-08-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (new_document): remove
output_units_lists, get_output_units_lists and
register_output_units_lists. It is already done by converters, no
point in having two possibilities.
Changes in comments.
2025-08-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (_remove_section_relations_relations):
remove cycle going through toplevel prev directions.
* tta/perl/Texinfo/Document.pm (remove_document_references):
reorganize code to separate code that remove cycles and code that
remove all the references to elements.
2025-08-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (release): delete instead of
undefining document associated to the parser.
2025-08-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (converter_destroy): do not call
tree_remove_references on no arg commands translated_tree, as there is
no check on those trees.
* C/convert/call_conversion_perl.c
(call_object_converter_perl_release), tta/C/convert/texinfo.c
(txi_converter_destroy), tta/perl/Texinfo/Convert/Converter.pm
(converter_destroy, converter_perl_release, _XS_destroy, destroy),
tta/perl/Texinfo/Convert/HTML.pm (converter_destroy),
tta/perl/XSTexinfo/convert/ConvertXS.xs (destroy): remove
remove_references argument of converter destroy functions. It is not
used anymore, but there should not be a need to readd it, as the
converter and all the references on elements it could have had should
be released when checks on refcounts are done on the Document tree.
Update callers.
2025-08-19 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/call_conversion_perl.c (call_object_reset_converter),
tta/C/convert/texinfo.c (txi_converter_reset),
tta/perl/Texinfo/Convert/Converter.pm (reset_converter),
tta/perl/Texinfo/Convert/HTML.pm (converter_reset): remove the
remove_references argument of reset_converter and converter_reset.
Update callers.
2025-08-19 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/get_converter_perl_info.c
(converter_release_output_units_built), tta/C/main/get_perl_info.c
(release_output_units_list_built, release_output_units_lists_built),
tta/perl/Texinfo/Convert/Converter.pm (reset_converter),
tta/perl/Texinfo/OutputUnits.pm (release_output_units_list),
tta/perl/XSTexinfo/convert/ConvertXS.xs (reset_converter),
tta/perl/t/test_utils.pl (test), tta/perl/Texinfo/Convert/HTML.pm
(converter_reset): in release_output_units_list, always remove
associated_unit from elements when releasing output units, it does not
make sense to have elements point to released output units. Always
remove all references to output units, even if it is not needed to
remove cycles.
2025-08-19 Gavin Smith <gavinsmith0123@gmail.com>
Fix make distcheck
* info/Makefile.am: Distribute info-hooks-default/manual-not-found.in
instead of info-hooks-default. Look for file in srcdir in rule.
Report from Patrice.
2025-08-18 Patrice Dumas <pertusus@free.fr>
Register error messages during destruction, for refcounts warnings
* tta/perl/Texinfo/Convert/Converter.pm (destroy),
tta/perl/Texinfo/Document.pm (destroy_document): do not undef
the reference when destroying some data and removing cycles to prepare
for full removal, as the caller may still have some use for the
remaining data and methods. In practice to be able to call the
method to retrieve error messages messages registered during
converter or document destruction after calling the method doing the
destruction.
* tta/perl/Texinfo/Convert/Converter.pm (reset_converter): pass
a debugging warning message when the refcounts are not correct,
such that this is visible in the tests.
* tta/perl/Texinfo/Convert/HTML.pm (converter_destroy),
tta/perl/Texinfo/Document.pm (remove_document_references),
tta/perl/Texinfo/ManipulateTree.pm (tree_remove_references):
pass a document as check_refcount tree_remove_references argument, and
use it to pass a debugging warning message when the refcounts are not
correct, such that this is visible in the tests.
* tta/C/main/build_perl_info.c (pass_errors_to_hv): add an optional
key argument. Update callers. Allow the error messages argument to
be NULL.
* tta/perl/XSTexinfo/convert/ConvertXS.xs (destroy)
(get_converter_errors): if there are still error messages in the
C converter data when destroy is called, pass the messages to
the Perl converter. Register/reuse the Perl messages lists in
get_converter_errors and pass the messages stored in Perl even if the
C converter is not found.
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs (destroy_document)
(document_errors): if there are still error messages in the C document
data when destroy_document is called, pass the messages to the Perl
Document. Register/reuse the Perl messages lists in document_errors
and pass the messages stored in Perl even if the C document is not
found.
* tta/perl/t/test_utils.pl (convert_to_*, test): do not set the
converter errors in convert_to_* functions, call get_converter_errors
in test after conversion.
* tta/perl/t/test_utils.pl (test): get converter errors after
destroying the converter. This is possible thanks to the changes
in ConverterXS.xs above.
* tta/perl/t/test_utils.pl (test): add a variable to store whether the
parsing was successful or not instead of using the tree, such that the
tree can be undefined. Convert the tree back to Texinfo earlier on,
after the conversions by the other converters. Destroy the document
before doing the comparisons and get the errors in document after
destroying the document, which is possible thanks to the changes in
DocumentXS.xs above. That way, all the errors are gathered and
code that does conversion and comparisons are well separated.
* tta/C/main/utils.c (interpreter_refcount_error_messages)
(set_check_element_interpreter_refcount)
(get_check_element_interpreter_refcount), tta/C/main/output_unit.c
(destroy_output_unit), tta/C/main/tree.c (destroy_element): add an
error messages list to be used with
*_check_element_interpreter_refcount, pass it to code setting
check_element_interpreter_refcount and codes checking
get_check_element_interpreter_refcount. Add warning messages in the
error message lists in destroy_element and destroy_output_unit. A
separate error messages list is handy because, in general, the
refcounts are checked when the structure that unregister the
references that could hold the error messages is being destroyed.
* tta/C/convert/converter.c (reset_generic_converter),
tta/C/convert/texinfo.c (txi_destroy_document),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (destroy_document):
handle error messages on refcounts gathered during document
destruction and converter reset. Pass to the converter in converter
reset, discard in txi_destroy_document, and pass to Perl Document
error messages list array in XS destroy_document.
2025-08-18 Patrice Dumas <pertusus@free.fr>
Support for refcounts checks in build system
* configure.ac (refcounts-checks), tta/configure.ac (refcounts-checks)
(DEFAULT_TEST_LEVEL), tta/defs.in (DEFAULT_TEST_LEVEL),
tta/perl/Makefile.am (Texinfo/ModulePath.pm),
tta/perl/Texinfo/ModulePath.pm.in ($default_test_level): add
--enable-refcounts-checks flag to configure with default detected and
set DEFAULT_TEST_LEVEL.
* tta/perl/t/test_utils.pl ($default_test_level): use
$Texinfo::ModulePath::default_test_level for the default test level.
* tta/tests/many_input_files/*.sh, tta/tests/run_parser_all.sh: set
TEST customization variable value in calls based on DEFAULT_TEST_LEVEL.
2025-08-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/tex4ht.pm (tex4ht_finish): reset %formats to release
references on tree elements.
2025-08-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (converter_reset): reset
document_units instead of emptying it as the Converter still needs the
content on the list document_units points to.
2025-08-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (reset_converter): minor
changes in code, avoid using splice to remove array content.
* tta/perl/Texinfo/Convert/HTML.pm (converter_reset): empty directly
global_units_directions. Empty document_units instead of removing.
2025-08-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/texi2any.pl: reset and destroy converter only if TEST is
set.
2025-08-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/convert/ConvertXS.xs (reset_converter): elide
reset_converter remove_references_sv argument.
2025-08-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (remove_document_references),
tta/perl/Texinfo/ManipulateTree.pm (tree_remove_references): change
tree_remove_references argument to be check_refcount.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line),
tta/perl/Texinfo/Transformations.pm (_new_node): call
tree_remove_parents on nodes that do not end up in the tree to release
them, to have Perl reclaim their memory and avoid references to
elements in the tree from discarded tree elements.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm ($no_XS_objects_refcount)
(tree_remove_references): allow a object refcount of the reference
minus one if there is XS, but no XS for structure, as the elements
added for structure may be Perl only.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl ($default_test_level, test): set TEST in
cutomization options based on $default_test_level, or the test. Set
TEST in format converter options based on $default_test_level.
Set $default_test_level to 2.
* tta/perl/t/test_utils.pl (test): set $remove_references based on
TEST customization variable value and pass to reset_converter,
destroy and destroy_document. If remove_references is set, release
the output_units setup by the tests.
* tta/perl/t/test_utils.pl (test): release the $tree reference before
destroying the document to avoid a last reference on the tree root
when checking with C code that there are no references left.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/swig/texinfo.i (%inline): add a txi_ext_inline_ prefix for all
the functions defined inline in the SWIG interface file. All the
functions defined that way should follow this rule. This is to avoid
name clash with Texinfo library functions, including future names.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/swig/texinfo.i (element_print_details): remove implementation,
it exists in the library now.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/texinfo.c (txi_destroy_document), tta/C/texi2any.c
(main): add external_module argument, and call
call_document_remove_document_references only if set.
* tta/C/main/call_document_perl_functions.c
(call_document_remove_document_references): remove check on
has_perl_interpreter and document->hv, having
call_document_remove_document_references called only if
external_module is set should ensure that.
* tta/swig/texinfo.i (destroy_document)
(txi_ext_inline_destroy_document): add txi_ext_inline_destroy_document
to wrap the call to txi_destroy_document. Use a prefix
txi_ext_inline_ to disambiguate with library function.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/texinfo.c (txi_converter_output, txi_converter_reset):
change the arguments order. Update callers.
* tta/C/convert/texinfo.c (txi_converter_destroy): add external_module
argument and call Perl function only if set. Update caller.
* tta/C/convert/call_conversion_perl.c (call_object_reset_converter)
(call_object_converter_perl_release): remove the check on self->sv.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_state.c (build_html_formatting_state):
do not check if converter->sv, the function is only called in
situations where it is set.
* tta/C/convert/call_html_perl_function.c
(call_latex_convert_to_latex_math): do not check self->sv, as the
main program will fail if this function could be called and no Perl
interpreter is available.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_output_units_list),
tta/perl/XSTexinfo/convert/ConvertXS.xs (get_output_units_lists),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(split_by_node, split_by_section): add build_output_units_list, based
on pass_output_units_list case where there is no array already. Use
it where this is the case.
* tta/C/main/build_perl_info.c (store_output_units_texinfo_tree):
inline pass_output_units_list in store_output_units_texinfo_tree,
using also build_output_units_list and remove pass_output_units_list.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (store_output_units_texinfo_tree): add
the converter SV as argument to store_output_units_texinfo_tree to
align with other functions. Update callers.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c
(html_pass_conversion_initialization): remove condition on converter
being non-NULL, which should always be true.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c: remove
build_html_global_units_directions and
pass_html_global_units_directions.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c (set_document_units_handle),
tta/perl/XSTexinfo/convert/ConvertXS.xs (html_output, html_convert):
add set_document_units_handle based on
html_pass_conversion_output_units code to set "document_units" in a
converter to a handle that holds a descriptor only, no units list Perl
data. Inline html_pass_conversion_output_units in html_output and
html_convert and remove the function.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c
(html_pass_conversion_output_units), tta/C/main/build_perl_info.c
(store_output_units_texinfo_tree): remove references on output units
list arguments. Update callers, which had already the arguments set
to 0 only.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (%XS_conversion_overrides),
tta/perl/XSTexinfo/convert/ConvertXS.xs: remove XS overrides for
_prepare_conversion_units, _prepare_units_directions_files and
_prepare_output_units_global_targets that are not called since output
and convert are overriden and use html_pass_conversion_output_units
and/or store_output_units_texinfo_tree, which interface changed.
Remove html_prepare_output_units_global_targets,
html_prepare_conversion_units and html_prepare_units_directions_files
from XS.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (%XS_conversion_overrides),
tta/perl/XSTexinfo/convert/ConvertXS.xs: remove XS overrides for
_register_id, _id_is_registered and _get_target that are in functions
that are themselves overriden and are not likely to stop being so.
Remove html_register_id, html_id_is_registered and html_get_target in
the XS interface.
* tta/C/convert/build_html_perl_info.c: remove now unused
build_html_target.
2025-08-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c
(html_pass_conversion_output_units): handle NULL output units lists
pointers references in input.
* tta/C/main/build_perl_info.c (pass_output_units_list): add an
indicator in return value, set if a new array was created.
* tta/C/convert/build_html_perl_info.c
(store_output_units_texinfo_tree): always use "document_units" value
for output units list if it exists, and set it early to the value
pointed to by the output units pointer if it is set. Always set
"document_units" if there is a converter->hv. Use the return value of
pass_output_units_list to determine if the output units list reference
on array returned should be stored as "document_units".
* tta/perl/XSTexinfo/convert/ConvertXS.xs (html_output, html_convert):
do not set output units arrays as they were never used nor released.
* tta/perl/XSTexinfo/convert/ConvertXS.xs (get_output_units_lists),
tta/perl/Texinfo/Convert/Converter.pm (%XS_overrides)
(XS_get_output_units_lists): add an XS interface to get output units
lists.
* tta/perl/Texinfo/Convert/Converter.pm (converter_reset)
(reset_converter): add a converter_reset function that can be
redefined by converters. Call in reset_converter.
* tta/perl/XSTexinfo/convert/ConvertXS.xs (reset_converter),
tta/C/main/get_perl_info.c (release_output_units_list_built),
tta/perl/Texinfo/OutputUnits.pm (release_output_units_list),
tta/perl/Texinfo/Convert/HTML.pm (converter_reset),
tta/perl/Texinfo/OutputUnits.pm (release_output_units_list): if the
remove references argument of release_output_units_list_built or
release_output_units_list is set, remove all the references to output
units that can be found in output units. Set
remove_output_units_references argument in reset_converter if TEST > 1,
and remove the output units lists stored in converter. Add a
converter_reset function in HTML converter, remove global units
directions and document_units if TEST > 1 to remove all rteferences to
output units.
* tta/perl/Texinfo/Convert/Converter.pm (reset_converter): check that
the refcounts are the expected ones in pure Perl in case TEST > 1. In
that case the references to output units have been removed as much as
possible.
* tta/C/convert/converter.c (reset_generic_converter),
tta/C/main/output_unit.c (destroy_output_unit): if TEST > 1, call
set_check_element_interpreter_refcount and
unset_check_element_interpreter_refcount in reset_generic_converter.
Call get_check_element_interpreter_refcount in destroy_output_unit,
and if true, check that the reference to the output unit held in C was
the last one.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (remove_document_references): do not
remove associated_unit anymore, the references from the output units
are now all removed.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (release_output_units_list),
tta/C/main/get_perl_info.c (release_output_units_list_built): remove
references to tree elements to avoid cycles going through
associated_unit before removing anything from tree elements.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (%XS_overrides),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs: remove
rebuild_output_units, it is unused and it would be best to think again
when a similar function is needed.
2025-08-16 Patrice Dumas <pertusus@free.fr>
add commented out code and text about references to output units
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (free_generic_converter),
tta/C/main/output_unit.c (destroy_output_unit): add code showing the
refcounts after release, for debugging, not executed.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (converter_perl_release):
delete 'output_units_lists', to allow for checks of cycles.
* tta/C/main/get_perl_info.c (release_output_units_list_built): delete
directions to be more like Perl code.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (store_output_units_texinfo_tree):
transfer the reference on the output units list to the converter hash
"document_units".
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/texinfo.c (txi_destroy_document),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (destroy_document):
use a variable to avoid accessing document after being freed. Use
TEST > 1 for txi_destroy_document too.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(indices_sort_strings): setup a new reference with newSVsv when
retrieving from the hash. Do not retain an additional reference on
returned SV.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs (document_errors):
do not retain a reference on returned SV.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (pass_errors_to_hv),
tta/perl/XSTexinfo/parser_document/Parsetexi.xs (parse_texi_line):
create AV and store if not found. Remove the corresponding code from
pass_document_parser_errors_to_parser_sv. Inline
pass_document_parser_errors_to_parser_sv and remove.
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs (document_errors):
make sure that the error messages passed to pass_errors_to_hv is not
NULL. Simplify code.
* tta/perl/XSTexinfo/parser_document/Parsetexi.xs (errors): simplify.
* tta/perl/t/z_misc/test_parse_texi_line.t (test_line): fix return
values of errors().
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (errors),
tta/perl/Texinfo/Convert/Converter.pm
(merge_converter_error_messages_lists_noxs): use splice to get array
content and empty the array at the same time.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (pass_errors, pass_errors_to_hv),
tta/perl/XSTexinfo/convert/ConvertXS.xs (get_converter_errors)
(text_convert_tree), tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(document_parser_errors): rename build_errors as pass_errors and get
the AV as argument. Update callers. Use in pass_errors_to_hv.
* tta/perl/Texinfo/ParserNonXS.pm (parse_texi_line, errors):
use splice to empty arrays when passing errors. Check if
'error_messages' exists by calling exists.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (store_extra_additional_info):
rename store_additional_info as store_extra_additional_info, remove
key argument, hardocde "extra". Rename info_hv as extra_hv.
Update caller.
* tta/C/main/build_perl_info.c (pass_source_info_hash): rename
build_source_info_hash as pass_source_info_hash.
* tta/C/main/build_perl_info.c (element_to_perl_hash): do not reuse
intermediary sv variable.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_element_attribute)
(store_additional_info): have build_associated_info return nr_info
instad of using a pointer.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (store_additional_info): use more
straightforward code, creating the HV without sv_2mortal but using
SvREFCNT_dec if it remains empty should be released.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (setup_info_hv, store_extra_flags):
do not retain a superfluous reference.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm, tta/perl/Texinfo/ManipulateTree.pm
(_print_tree_elements_ref): move _print_tree_elements_ref to
ManipulateTree.pm and add refcounts.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (tree_remove_references): do not
show any message for the tree root element.
* tta/perl/Texinfo/Document.pm (remove_document_references): no
special handling of tree root.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (sort_element_counts),
tta/perl/texi2any.pl: register output units created in
sort_element_counts. Call reset_converter on element counts
converter.
2025-08-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TextContent.pm: use exists or defined
conditions when the value is not used. Change formatting of functions
call code.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/makedoc.c: Do not #include "window.h" in generated
doc.c, as this appears only to be needed in order to indirectly
include doc.h. Include doc.h directly.
* info/window.h: Do not #include "doc.h" as it is not needed for
the definitions in this file.
* info/session.h: #include "doc.h".
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/infodoc.c (pretty_keyseq): Declare argument as pointer to
const int.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/display.c (printed_representation): Declare return value
as const. Remove comment saying return value is not to be freed
as this is now evident from the type of the return value.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/terminal.c (terminal_put_text, terminal_put_text_hook),
(terminal_write_chars, terminal_write_chars_hook):
Declare first parameter as const char *.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/dir.c (get_dir_node),
* info/nodes.c (info_get_node): Remove instructions on freeing
return value from comment. Simply calling 'free_node' should
be enough.
2025-08-15 Patrice Dumas <pertusus@free.fr>
Add check of released refcounts to Perl object in C if TEST > 2
* tta/C/main/utils.c (set_check_element_interpreter_refcount)
(unset_check_element_interpreter_refcount)
(get_check_element_interpreter_refcount): add functions to
set/unset/get an indicator that signals whether all the references
except the one hold by C code have been released and messages should
be shown.
* tta/C/convert/texinfo.c (txi_destroy_document),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (destroy_document):
if the customization variable TEST is > 2, call
set_check_element_interpreter_refcount and
unset_check_element_interpreter_refcount before and after
destroy_document to have messages shown.
* tta/C/main/tree.c (destroy_element): call
get_check_element_interpreter_refcount, and if true, show the Perl
object which still have a refcount after having been released in C,
and in Perl.
2025-08-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (destroy): fix the call of
converter_perl_release.
* tta/perl/Texinfo/Convert/Converter.pm (converter_destroy): do not
check the number of references for the translated_tree elements, as
they are not in the same situation as regular tree elements.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (free_node): remove check that either N_IsInternal
or N_Replica is set.
2025-08-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (float_name_caption): revert
copying the element before using it in translation, now that the
part of the tree corresponding to the translation do not have parent
anymore and is removed automatically.
2025-08-15 Patrice Dumas <pertusus@free.fr>
Remove parents in translation trees
* tta/C/main/manipulate_tree.c (tree_remove_parents): implement in C.
* tta/C/main/translations.c (gdt_tree),
tta/perl/Texinfo/Translations.pm (gdt): remove parents in translated
string tree, to avoid cycles such that this part of the tree is
destroyed as soon as the tree root is out of scope (in Perl).
2025-08-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (release_output_units_list): fix
call.
2025-08-15 Patrice Dumas <pertusus@free.fr>
/exis
* tta/perl/Texinfo/ParserNonXS.pm (_rearrange_tree_beginning): merge
_add_preamble_before_content in _rearrange_tree_beginning and remove.
* tta/perl/Texinfo/ParserNonXS.pm (_rearrange_tree_beginning),
tta/C/parsetexi/parser.c (rearrange_tree_beginning): redo a different
implementation that determine indices and then splice the contents.
Do not take information from the global setfilename command, in case
there would be more than one. In C, add parents only if there were
parents to begin with as in Perl.
2025-08-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (_parse_texi): determine the tree
root by going through the current element parent, as in C.
* tta/C/parsetexi/parser.c (parse_texi),
tta/perl/Texinfo/ParserNonXS.pm (_parse_texi): remove unused root
argument. Update callers.
* tta/perl/Texinfo/ParserNonXS.pm
(_setup_document_root_and_before_node_section): return
$before_node_section only. Update callers.
* tta/perl/Texinfo/Document.pm (_print_tree_elements_ref): print more
information.
2025-08-15 Patrice Dumas <pertusus@free.fr>
Check unexpected references to tree elements if TEST > 1
* configure.ac: also check 'use Devel::Peek' (module in Perl core
since long). We only need Devel::Peek for debugging, so a runtime
load would have been better. However, the function used does not
seems to work correctly if the module is loaded with require, but
works if loaded with use.
* tta/perl/Texinfo/ManipulateTree.pm (tree_remove_references),
tta/perl/Texinfo/Convert/HTML.pm (converter_destroy),
tta/perl/Texinfo/Document.pm (remove_document_references): add a test
level argument for tree_remove_references and check references only if
> 2. Set this argument to the TEST customization variable value in
callers.
* tta/perl/Texinfo/Document.pm (remove_document_references): remove
the tree variable before calling tree_remove_references, such that the
reference count for the tree root element is the same as the other
elements reference count.
* tta/perl/Texinfo/OutputUnits.pm (release_output_units_list):
undef and directions for simpler and hopefully more efficient code.
Also more similar to C code.
2025-08-15 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (table_item_content_tree),
tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree_noxs),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(tree_element_table_item_content_tree): do not set parents in the
returned tree, such that there is no cycle and Perl can release the
elements as soon as they are out of scope.
2025-08-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm: use exists or defined in
conditions when the value is not used. Change formatting of functions
call code.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
Review use of N_IsInternal flag.
* info/nodes.c (internal_info_node_p): Remove function. It is
simple enough that it may as well be inlined into calling sites.
(free_node): Comment updated.
* info/session-cmd.c
(forward_move_node_structure, backward_move_node_structure):
Also make an exception for "dir" nodes.
N_IsInternal still exists but is not used for memory allocation
purposes. It is used for minor user-visible behaviour such as
tiling windows, and as an optimisation when searching through
lists of nodes.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/session-cmd.c (info_split_window): Check N_Replica
flag when deciding whether to duplicate internal data structures.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/dir.c (get_dir_node),
* info/man.c (get_manpage_node):
Abbreviate code by calling replicate_node.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (copy_node, replicate_node): Rename. Set N_Replica
flag on result. Do not do anything with the N_IsInternal flag.
* info/session-cmd.c (info_follow_menus): Call replicate_node on
starting node.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
N_Replica flag
* info/nodes.h (N_Replica): Add flag for NODE.flags
* info/dir.c (get_dir_node),
* info/nodes.c (info_node_of_tag_ext),
* info/man.c (get_manpage_node): Set N_Replica flag.
* info/nodes.c (free_node): Check N_Replica instead of
N_IsInternal when deciding whether to free internal structures.
The purpose of this flag is intended to be more clear than that
of N_IsInternal. Some nodes like the "dir" node are generated
by Info, but do not have the "internal" flag on as there is another
reference to the storage for the node.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
free_node instead of free
* info/session-cmd.c (dump_node_to_stream):
Consistently call 'free_node' instead of 'free' on NODE
object. It shouuld not make a difference as the node was
returned by info_get_node_of_file_buffer and is a replica
of an object held in the file buffer data structures, but
it should be clearer that the code is correct for somebody
reading it.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (free_history_node, free_node): rename.
* info/nodes.c (copy_history_node, copy_node): rename.
2025-08-15 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodemenu.c (select_visited_node): Call free_history_node
instead of free. This fixes a memory leak.
2025-08-14 Gavin Smith <gavinsmith0123@gmail.com>
* info/scan.c, info/nodes.c (free_history_node, copy_history_node):
Move to nodes.c.
2025-08-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/DocBook.pm: use exists or defined in
conditions when the value is not used. Change formatting of functions
call code.
2025-08-14 Patrice Dumas <pertusus@free.fr>
* tta/C/main/output_unit.c (output_units_print_details): add, for
debugging.
2025-08-14 Patrice Dumas <pertusus@free.fr>
Release output units in converter reset, not in document destroy
* tta/perl/Texinfo/Document.pm, tta/perl/Texinfo/OutputUnits.pm
(release_output_units_list): move _remove_output_units_directions and
_remove_output_units_references to OutputUnits.pm as
release_output_units_list.
* tta/perl/Texinfo/Convert/Converter.pm (get_output_units_lists)
(register_output_units_lists): add registering output units to Perl
converter.
* tta/C/convert/get_converter_perl_info.c
(converter_release_output_units_built), tta/C/main/get_perl_info.c
(release_output_units_list_built, release_output_units_lists_built):
add C functions to be used with XS to release Perl references for the
output units lists that are kept in C doing the same as
release_output_units_list.
* tta/perl/XSTexinfo/convert/ConvertXS.xs (reset_converter),
tta/perl/texi2any.pl, tta/perl/Texinfo/Convert/Converter.pm
(%XS_overrides, _XS_reset_converter, reset_converter),
tta/perl/Texinfo/Convert/HTML.pm (_prepare_conversion_units),
tta/perl/Texinfo/Convert/Info.pm (output),
tta/perl/Texinfo/Convert/Plaintext.pm (convert, output),
tta/perl/Texinfo/Document.pm (remove_document_references): add
_XS_reset_converter and modify reset_converter to always have both
Perl and XS run. Add remove_references argument to reset_converter.
Release output units in converters reset, not in document destroy.
Register output units in Perl in converter, not in document.
* tta/C/convert/call_conversion_perl.c (call_object_reset_converter),
tta/C/convert/texinfo.c (txi_converter_reset), tta/C/texi2any.c
(main): add call_object_reset_converter and update txi_converter_reset
to release output units in converters reset, not in document destroy.
* tta/C/convert/texinfo.c (txi_converter_destroy): always call
call_object_converter_perl_release to match with Perl.
* tta/perl/Texinfo/ManipulateTree.pm ($destroyed_objects_refcount):
handle automatically the difference in object refcount with XS and
without (one more reference with XS).
2025-08-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/convert/ConvertXS.xs
(get_converter_indices_sorted_by_index)
(get_converter_indices_sorted_by_letter): relinquish the reference to
index_entries_by_letter_hv to the caller. Use newSVsv instead of
SvREFCNT_inc. Change in spacing, remove an intermediary variable.
2025-08-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Info.pm (output),
tta/perl/Texinfo/Convert/Plaintext.pm (conversion_initialization)
(_convert): do not set elements_images key value at all if there are
no elements_images.
* tta/perl/Texinfo/Convert/Plaintext.pm (converter_destroy): remove
elements_images.
* tta/perl/Texinfo/Convert/Plaintext.pm (%command_style_map): use a
different hash for commands style character than %style_map.
* tta/perl/Texinfo/Convert/Plaintext.pm: use exists or defined in
conditions when the value is not used. Change formatting of functions
call code.
2025-08-13 Gavin Smith <gavinsmith0123@gmail.com>
* info/scan.c (copy_history_node): New function.
* info/session-cmd.c (info_follow_menus): Do not free first
argument and declare as const. Use copy_history_node to get
a NODE to start with.
* info/info.c (add_initial_nodes): Update. This means we can
avoid calling info_get_node three times for the same node.
2025-08-13 Gavin Smith <gavinsmith0123@gmail.com>
Prefer initial node for command-line index lookup
* info/indices.c (index_lookup_from_node): New function, based on
'look_in_indices'.
* info/info.c (add_initial_nodes): Call index_lookup_from_node.
2025-08-13 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_document): get ownership of the
reference released when the C document is destroyed before destroying
the document.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Translations.pm: change formatting of functions
call code. Use exists or defined in conditions when the value is not
used.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (float_type_number)
(float_name_caption), tta/perl/Texinfo/Convert/Info.pm (format_ref),
tta/perl/Texinfo/Convert/Plaintext.pm (format_ref, _convert): change
formatting of functions call code. Use exists or defined in
conditions when the value is not used. Check for contents in
format_ref.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm: change formatting of functions
call code.
* tta/perl/Texinfo/Convert/HTML.pm: use exists or defined in
conditions when the value is not used.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_xml_numeric_entities_accent, tree_element_xml_accents):
remove _tree_element_xml_accent now that it is the same as the
Texinfo::Convert::Converter function.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/C/main/unicode.c (unicode_accent),
tta/perl/Texinfo/Convert/Unicode.pm (unicode_accent),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_unicode_accent): add index in
accent stack and accent stack as arguments. Update callers.
* tta/perl/Texinfo/Convert/Unicode.pm (unicode_accent),
tta/C/main/unicode.c (unicode_accent),
tta/perl/Texinfo/Convert/Converter.pm (xml_accent),
tta/perl/Texinfo/Convert/HTML.pm (_accent_entities_html_accent),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_unicode_accent, _tree_element_xml_accent): use position
in accent stack instead of parent information to determine if
dotless could be composed with the parent accent command.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c, tta/C/main/utils.c
(find_innermost_accent_contents), tta/perl/Texinfo/Common.pm
(find_innermost_accent_contents), tta/perl/Texinfo/Convert/Utils.pm:
move find_innermost_accent_contents to Texinfo::Common and to utils.c,
now that it is used in conversion to identifiers code.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Utils.pm: change formatting of functions
call code.
* tta/perl/Texinfo/Convert/Utils.pm: use exists or defined in
conditions when the value is not used.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/C/main/node_name_normalization.c
(convert_to_normalized_internal),
tta/perl/Texinfo/Convert/NodeNameNormalization.pm (_convert): call
find_innermost_accent_contents and encoded_accents to format an
accent.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/NodeNameNormalization.pm: change formatting
of functions call code.
* tta/perl/Texinfo/Convert/NodeNameNormalization.pm: use exists or
defined in conditions when the value is not used.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (convert_accents),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_format_unicode_accents_stack)
(_tree_element_format_eight_bit_accents_stack)
(tree_element_convert_accents), tta/perl/Texinfo/Convert/Unicode.pm
(_format_unicode_accents_stack, _format_eight_bit_accents_stack):
change the implementation to be more like C code implementation.
* tta/C/convert/converter.c (convert_accents),
tta/C/main/convert_to_text.c (ascii_accents_internal),
tta/C/main/unicode.c (format_eight_bit_accents_stack)
(format_unicode_accents_stack_internal),
tta/perl/Texinfo/Convert/Converter.pm (convert_accents),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_format_unicode_accents_stack)
(_tree_element_format_eight_bit_accents_stack)
(tree_element_convert_accents), tta/perl/Texinfo/Convert/Unicode.pm
(_format_unicode_accents_stack, _format_eight_bit_accents_stack): pass
accent stack and position in stack to accent formatting functions.
Update calls and prototypes.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/html_prepare_converter.c (html_format_setup),
tta/perl/Texinfo/Convert/HTML.pm (%html_default_commands_args): no
argument formatting for accent commands.
* tta/perl/Texinfo/Convert/HTML.pm (_convert): remove a condition that
is always true.
2025-08-12 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_convert_preformatted_type),
tta/perl/Texinfo/Convert/HTML.pm (_convert_preformatted_type):
remove condition on parent being def*, it cannot happen anymore, now
there is an inter_def_item container.
* tta/C/main/convert_utils.c (expand_verbatiminclude),
tta/perl/Texinfo/Convert/HTML.pm (_convert_quotation_command),
tta/perl/Texinfo/Convert/Utils.pm (expand_verbatiminclude): do not
generate a parent for element not originally in tree.
* tta/perl/Texinfo/Convert/HTML.pm (_convert): use exists or defined
when the value is not useful.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Hooks): Clarify that argument to
hook may not always be the name of a manual.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Installing Dir Entries):
Say a bit more about why you would have multiple @direntry's.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* info/info-hooks-default/manual-not-found.in:
Check for variables set in data file and use them for the URL
locations.
* info/info-hooks-default/gnu-manuals-locations.dat:
Use variables to abbreviate the file.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* info/info-hooks-default/manual-not-found.in, info/Makefile.am:
add message in generated file saying that it was generated.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* configure.ac: run AC_PROG_AWK explicitly to make sure that
@AWK@ is set (although it seemed to be set anyway).
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* info/info-hooks-default/manual-not-found,
* info/info-hooks-default/manual-not-found.in: Rename. Generate
the former from the latter by substituting the value of @AWK@
found by configure.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program): if couldn't
exec, then exit subprocess with EXIT_FAILURE rather than EXIT_SUCCESS.
* info/configfiles.c (run_info_hook) <debug>: report exit status of
hook.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* info/info-hooks-default/manual-not-found: avoid
printing to stderr as Info can print its own messages.
replace perl script with awk as awk will be more portable.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (nodist_perllib_DATA)
(archlib_LTLIBRARIES, TESTS), tta/swig/python/Makefile.am
(nodist_python_PYTHON, pyexec_LTLIBRARIES): do modules only if
HAVE_ICONV is set, as otherwise there is no libtexinfo.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_minimal_document): move code.
* tta/C/main/build_perl_info.c (fill_document_hv, build_document):
move code related to no_store and setting descriptors in Perl data
out of fill_document_hv to build_document.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c,
tta/C/convert/build_html_perl_state.c,
tta/C/convert/get_converter_perl_info.c, tta/C/main/get_perl_info.c:
use newSVsv instead of SvREFCNT_inc.
* tta/C/convert/call_conversion_perl.c,
tta/C/convert/call_html_perl_function.c: reorganize code to make
clearer that the calls to SvREFCNT_inc are associated to subroutine
call. Add casts.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (store_document_texinfo_tree)
(store_output_units_texinfo_tree)
(store_document_tree_output_units, document_tree): do not return
a reference to the tree. Update document_tree to find the reference
to the tree in document->tree->sv.
* tta/C/main/build_perl_info.c (document_tree): simplify code.
2025-08-12 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Custom Key Bindings): Update
to reflect the fact that pkgdatadir is now also checked.
(Hooks): mention default hook
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* info/t/config/texinfo/info-hooks/manual-not-found:
Add dummy file to stop an installed hook from running.
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* info/Makefile.am: List info-hooks-default/manual-not-found
in "SCRIPTS" and not "DATA" so that it will be installed with
executable permissions.
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* info/configfiles.c (locate_init_file_internal): Also check
under $pkgdatadir (i.e., usually /usr/share/texinfo).
* info/Makefile.am (AM_CFLAGS): Propagate value of $pkgdatadir.
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* info/configfiles.c (locate_init_file): Report on attempts
to find init file with debug macro (at level "-x 1").
(run_info_hook): Use "-x 1" level rather than "-x 3".
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Invoking Info):
Index all command line options multiple times if they have
synonyms, with each synonym appearing first in the index entry
text. This is for ease of lookup of short options.
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* info/session.c, info/info.c (info_debug): move to info.c.
* info/session.h, info/info.h (debug): move to info.h.
* info/info.c (get_initial_file),
* info/configfiles.c (run_info_hook): output debug message in
run_info_hook, using name of the hook as a variable.
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* info/info-hooks-example/gnu-manuals-locations.dat,
info/info-hooks-default/gnu-manuals-locations.dat,
info/info-hooks-example/manual-not-found,
info/info-hooks-default/manual-not-found: Rename subdirectory to
info-hooks-default. Install files by default (not found by info
yet).
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* info/info-hooks-example/manual-not-found,
* info/info-hooks-example/gnu-manuals-locations.dat:
Add copyright notice.
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
Add further ALTIMP dependencies
* tta/perl/Texinfo/Convert/Converter.pm,
* tta/perl/Texinfo/Convert/HTML.pm,
* tta/perl/Texinfo/Convert/PlainTexinfo.pm,
* tta/perl/Texinfo/Convert/Texinfo.pm,
* tta/perl/Texinfo/Convert/Text.pm,
* tta/perl/Texinfo/Convert/Utils.pm,
* tta/perl/XSTexinfo/convert/ConvertXS.xs:
Add ALTIMP lines. (No changes needed to *.c files as these
already referenced the corresponding Perl modules.)
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
Add ALTIMP comments to reference alternative implementation files
* tta/C/main/document.c,
* tta/C/parsetexi/errors_parser.c,
* tta/C/texi2any.c,
* tta/perl/texi2any.pl,
* tta/perl/Texinfo/Document.pm,
* tta/perl/Texinfo/DocumentXS.pm,
* tta/perl/Texinfo/Indices.pm,
* tta/perl/Texinfo/IndicesXS.pm,
* tta/perl/Texinfo/ManipulateTree.pm,
* tta/perl/Texinfo/OutputUnits.pm,
* tta/perl/Texinfo/ParserNonXS.pm,
* tta/perl/Texinfo/Parser.pm,
* tta/perl/Texinfo/ReaderNonXS.pm,
* tta/perl/Texinfo/Reader.pm,
* tta/perl/Texinfo/Report.pm,
* tta/perl/Texinfo/StructTransfXS.pm,
* tta/perl/Texinfo/Structuring.pm,
* tta/perl/Texinfo/Transformations.pm,
* tta/perl/Texinfo/Translations.pm,
* tta/perl/Texinfo/TreeElementNonXS.pm,
* tta/perl/Texinfo/TreeElement.pm,
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs,
* tta/perl/XSTexinfo/parser_document/IndicesXS.xs,
* tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs,
* tta/perl/XSTexinfo/reader_element/ReaderXS.xs,
* tta/perl/XSTexinfo/reader_element/TreeElementXS.xs:
For .pl and .pm files under tta/perl, add comments referencing
other relevant source codes with parts of alternative implementations
in C. This is so someone updating the source code can be aware
they exist.
* tta/README: explain ALTIMP comments
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* tta/README: Add note re Perl/C/XS code maintenance dependency
2025-08-11 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking, tta/README: move information about running
uninstalled program into tta/README. Add some headings in the
latter file.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (BUILD_PERL_DOCUMENT_ITEM)
(BUILD_PERL_DOCUMENT_LIST): change the code to duplicate the returned
reference. Simplify code.
* tta/C/main/build_perl_info.c (document_global_information):
rearrange code.
* tta/C/main/build_perl_info.c (setup_output_units_handler)
(html_build_button): avoid retaining superfluous references.
* tta/C/main/build_perl_info.c (html_build_buttons_specification):
duplicate the returned reference instead of increasing reference
count.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_perl_section_directions)
(build_perl_section_relations_array, build_section_relations)
(build_sectioning_root): Have build_perl_section_directions and
build_perl_section_relations_array return HV and AV. Do not keep a
reference in build_section_relations and build_sectioning_root.
* tta/C/main/build_perl_info.c (build_tree_elements_relations_lists)
(store_document_texinfo_tree): do not keep duperfluous references.
* tta/C/main/build_perl_info.c (store_document_texinfo_tree):
duplicate returned reference.
* tta/C/main/build_perl_info.c (store_output_units_texinfo_tree): use
newSVsv instead of SvREFCNT_inc.
* tta/C/main/build_perl_info.c (pass_global_info)
(build_minimal_document, fill_document_hv)
(document_global_information): rename build_global_info as
pass_global_info, and have pass_global_info use an HV in argument.
Have build_minimal_document and fill_document_hv create the HV before
calling pass_global_info. Modify document_global_information such
that the reuse of global info hash is done in this function before
calling pass_global_info. Simplify code based on document->hv
necessarily being set.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_state.c,
tta/C/convert/call_html_perl_function.c, tta/C/main/build_perl_info.c,
tta/perl/XSTexinfo/parser_document/DocumentXS.xs,
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs,
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs,
tta/perl/XSTexinfo/reader_element/TreeElementXS.xs: use newSVsv
instead of SvREFHVCNT_inc everywhere. It is better to have
independent references, and additionaly SvREFHVCNT_inc leads to
unreleased references as the added SV reference prevents removal of an
HV reference.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_indices_sort_strings)
(build_sorted_indices_by_index, build_sorted_indices_by_letter)
(build_convert_text_options, pass_document_sv_to_converter_sv): use
newSVsv instead of SvREFCNT_inc to obtain independent reference on the
same object instead of reusing the same reference.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_filenames, build_file_counters)
(build_out_filepaths, pass_output_unit_files): return HV from build
functions. Pass all the references. Note that the functions are
currently unused and therefore could not be tested.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (html_build_buttons_specification):
do not return anything.
* tta/C/main/build_perl_info.c (build_sv_option, build_global_info)
(build_sv_options_from_options_list)
(latex_build_options_for_convert_to_latex_math): remove useless
increase in reference counts.
2025-08-11 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_convert_tree_append): add
explicit checks to verify that functions references called for
conversion are not NULL.
* tta/C/texi2any.c (main): load HTML Perl conversion if
XS_EXTERNAL_FORMATTING or XS_EXTERNAL_CONVERSION is set.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (new_element_perl_data)
(element_to_perl_hash), tta/C/main/tree.c (destroy_element): do not
retain an additional reference in new_element_perl_data, and
consistently do not remove an HV reference in destroy_element.
Call newSVsv instead of SvREFHVCNT_inc in element_to_perl_hash.
* tta/C/main/build_perl_info.c (build_elements_list)
(fill_document_hv, store_document_texinfo_tree): use newSVsv instead
of SvREFHVCNT_inc.
* tta/C/main/build_perl_info.c (build_perl_const_element_array)
(build_perl_directions, build_extra_misc_args)
(build_extra_index_entry): do not retain an additional reference
to the AV/HV.
* tta/C/main/build_perl_info.c (build_perl_array)
(build_perl_container): return an AV. Update caller.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (_copy_tree, copy_contents)
(copy_contentsNonXS): handle an tree without contents in input of
copy_contents and copy_contentsNonXS.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (copy_associated_info),
tta/C/main/tree.c (destroy_associated_info), tta/C/main/tree_types.h
(INDEX_ENTRY_LOCATION), tta/C/parsetexi/indices.c (enter_index_entry),
tta/C/structuring_transfo/transformations.c
(relate_index_entries_to_table_items_in): do a copy of the index name
in INDEX_ENTRY_LOCATION index_entry in extra information. That way,
the element can outlive the indices information.
2025-08-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Headings): Remove extra comma after "and".
2025-08-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (@titlepage): Remove text about "@end titlepage"
being required to turn on page numbering, as this is no longer
the case.
2025-08-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Titlepage & Copyright Page, @setchapternewpage):
'frontmatter' -> 'front matter'.
2025-08-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (@titlepage):
Mention that @insertcopying is needed for @titlepage. Mention
that the copyright page is always produced in the same way. Combine
two examples.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (%XS_overrides, destroy)
(_XS_destroy, converter_perl_release): rename destroy as
converter_perl_release. Re-add destroy calling converter_perl_release
and _XS_destroy, which is now the XS override. That way, the Perl
data can be released before destroying the C data.
* tta/C/Makefile.am (libtexinfoxs_la_SOURCES)
(libcallperl_libtexinfo_convert_la_SOURCES),
tta/perl/Texinfo/Document.pm (%XS_overrides, _XS_destroy_document)
(destroy_document), tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(destroy_document): add _XS_destroy_document, called by
destroy_document and use it as XS override. That way, the Perl data
can be released before destroying the C data. Do not call
call_document_remove_document_references in destroy_document in
DocumentXS.xs. Move call_document_perl_functions.c to
libcallperl_libtexinfo_convert_la_SOURCES.
* tta/C/convert/call_conversion_perl.c
(call_object_converter_perl_release), tta/C/convert/texinfo.c
(txi_converter_destroy, txi_destroy_document), tta/C/texi2any.c
(main): add call_object_converter_perl_release and call from
txi_converter_destroy. Call call_document_remove_document_references
from txi_destroy_document. Add remove_references argument to
txi_destroy_document and txi_destroy_document. Set remove_references
in texi2any.c.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (converter_destroy, destroy),
tta/perl/Texinfo/Convert/HTML.pm (converter_destroy),
tta/perl/Texinfo/Convert/LaTeX.pm (converter_destroy),
tta/perl/Texinfo/Convert/Plaintext.pm (converter_destroy): add
converter_destroy to the Perl converter API, called in Converter
destroy, defined by each of the converters that need to.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm, tta/perl/Texinfo/ManipulateTree.pm
(tree_remove_parents, tree_remove_references): move
tree_remove_parents and tree_remove_references to
Texinfo::ManipulateTree. Update callers.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (float_name_caption): copy
tree in substrings to be able to destroy the tree afterwards.
* tta/perl/Texinfo/Convert/HTML.pm (_convert_float_command): fix
variable used in output when in string (which probably never happens).
* tta/perl/Texinfo/Convert/Converter.pm (float_name_caption),
tta/perl/Texinfo/Convert/HTML.pm (_convert_float_command),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Structuring.pm (number_floats): use exists or defined
if the variable value is not used.
* tta/perl/Texinfo/ParserNonXS.pm (_enter_index_entry): minor change
in code.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (_get_current_node_relations):
simplify condition, the current node is always registered in
nodes_list.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm
(%parser_document_state_initialization, _move_last_space_to_element)
(_parse_texi): do not initialize current_node, current_section,
current_part and internal_space_holder to undef, and delete them to
unset them.
Update users.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (units_directions): check that
_label_target_unit_element did not return undef before setting
a direction.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm (_print_down_menus): go out of the
loops used to find lenu entry names as soon as a menu entry name is
found. Only look in menu_entry.
* tta/perl/Texinfo/Structuring.pm (_print_down_menus): use exists or
defined if the variable value is not used, change arguments code.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (parse_node_manual): fix return in case
there is no contents.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.tres (test_files_generated_list): add
missing_detailmenu_menu_entry_names.
2025-08-10 Patrice Dumas <pertusus@free.fr>
detailmenu generation in C
* tta/C/structuring_transfo/structuring.c (print_down_menus):
implement change in detailmenu generation: check for presence of a
'menu_entry_name' element in a menu, and if found, do not use it to
make a detailmenu.
Update test result.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (_prepare_conversion_units),
tta/perl/Texinfo/Convert/Info.pm (output),
tta/perl/Texinfo/Convert/Plaintext.pm (convert, output),
tta/perl/Texinfo/Document.pm (new_document)
(register_output_units_lists, get_output_units_lists): add the
possibility to register output units in document to be able to find
them back (similar to C).
* tta/perl/Texinfo/Convert/Plaintext.pm (conversion_finalization):
remove count contexts.
* tta/perl/Texinfo/ParserNonXS.pm (release),
tta/perl/XSTexinfo/parser_document/Parsetexi.xs (release),
tta/perl/t/test_utils.pl (test, tta/perl/texi2any.pl): add
function in Perl to remove keys in parser that could create cycles or
refer to elements.
* tta/perl/Texinfo/ParserNonXS.pm (_parse_texi): properly unset
internal_space_holder, and current_*.
* tta/perl/Texinfo/Document.pm (tree_remove_parents): add to remove
elements parents in a tree. This allows to remove cycles in tree,
such that Perl can reuse the memory.
* tta/perl/Texinfo/Document.pm (tree_remove_references): add to remove
references to tree elements, work in progress to be able to check that
the refcounting in XS/C is done correcty.
* tta/perl/Texinfo/Convert/Converter.pm (destroy),
tta/perl/texi2any.pl: remove cycles in converters. Add a
remove_references argument, if set try to remove references to
elements that cannot be accessed through the document too. Set
remove_references in texi2any if TEST is > 1.
* tta/perl/Texinfo/Document.pm (_remove_section_relations_relations)
(_remove_output_units_directions): remove keys in relations and output
units that could create cycles in data, such that Perl can reuse the
memory.
* tta/perl/Texinfo/Document.pm (_remove_section_relations_references)
(_remove_node_relations_references)
(_remove_heading_relations_references)
(_remove_output_units_references, remove_document_references)
(destroy_document), tta/C/Makefile.am (libtexinfoxs_la_SOURCES),
tta/C/main/call_document_perl_functions.c
(call_document_remove_document_references),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (destroy_document),
tta/perl/texi2any.pl: implement destroy_document in Perl. In the
default case, remove cycles. With the remove_references argument,
remove all references to elements. Add a call to Perl function from
XS to remove Perl data before destroying the C document.
* tta/perl/Texinfo/ParserNonXS.pm
(_check_register_target_element_label): minor change in code.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/ManipulateTree.pm,
tta/perl/Texinfo/OutputUnits.pm: change formatting of sub arguments
passing. Minor changes in code.
* tta/perl/Texinfo/OutputUnits.pm: use exists or defined if the
value is not used.
2025-08-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (_protect_text),
(protect_first_parenthesis): modify directly the element source marks.
* tta/perl/Texinfo/ManipulateTree.pm: use exists or defined if the
value is not used. Minor changes in code.
2025-08-09 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm: use exists or defined if the value is not
used. Minor changes in code.
2025-08-09 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (element_print_details): add, for
debugging.
2025-08-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Copyright, @titlepage, Document Permissions):
Move material out of 'Copyright' node and delete node.
2025-08-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi
(@title @subtitle @author, @titlefont @center @sp):
Make these sub-sections of the '@titlepage' node..
2025-08-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Titlepage & Copyright Page): Move discussion
of @settitle here.
(Title Page Version): Create new node for discussion of version
and edition on the title page.
(@titlepage): Content moved from this node.
2025-08-09 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: mention new title page commands
* doc/texinfo.texi
(Titlepage & Copyright Page, Document Metadata, @titlepage):
Start work on documentation.
2025-08-08 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/texi2any.c (main): Check for the existence of a built
file relative to executable location, rather than a source code file,
as this could be an out-of-source build. Report from Patrice.
2025-08-08 Gavin Smith <gavinsmith0123@gmail.com>
* info/info-hooks-example/manual-not-found: if nothing known
about a manual, exit unsucessfully to allow Info to continue.
this means we display a manpage immediately, if one exists, rather
than the hook output.
2025-08-08 Gavin Smith <gavinsmith0123@gmail.com>
* TODO: add desideratum re info index lookup for manuals documenting
many programs, such as coreutils.
2025-08-08 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks, info/info-hooks-example: Move directory.
* doc/info-stnd.texi (Hooks): update
2025-08-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (HTML Xref Configuration):
Adjust wording slightly re htmlxref.d location.
2025-08-07 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/t/z_misc/do_master_menu.t: update as re-using labels
for the master menu is no longer supported
2025-08-07 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/XS: run gnulib-tool --remove-import getcwd
2025-08-07 Gavin Smith <gavinsmith0123@gmail.com>
ctexi2any remove use of getcwd
* tta/C/texi2any.c (main): If TEXINFO_DEV_SOURCE is not set, check if
program is uninstalled by checking directory above program directory
in argv[0] contains a file that should be in that directory. argv[0]
should always contain a directory name because the executable is run
via the libtool wrapper script.
This is simpler, and avoids calling getcwd, which requires gnulib
modules to be installed.
2025-08-07 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Node Names, Macro Details): Document that
user-defined macros should not appear within node names. Report
from Werner Lembrg, bug-texinfo, 2025-02-05.
2025-08-06 Gavin Smith <gavinsmith0123@gmail.com>
detailmenu generation
* tta/perl/Texinfo/Structuring.pm (_print_down_menus):
Check for presence of a 'menu_entry_name' element in a menu,
and if found, do not use it to make a detailmenu.
(NB no XS override exists for this function.)
* tta/perl/t/10menu.t (missing_detailmenu_menu_entry_names): new test.
2025-08-06 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/HTML.pm: remove debugging code
committed by mistake.
2025-08-06 Gavin Smith <gavinsmith0123@gmail.com>
* info/dir.c (build_dir_node): Output labels for the list
of dir files. Restructure code slightly so it is easier to follow.
2025-08-05 Gavin Smith <gavinsmith0123@gmail.com>
* info/dir.c (build_dir_node): Add section to menu listing
all the dir files used to make this dir node, if there were
more than one.
2025-08-05 Gavin Smith <gavinsmith0123@gmail.com>
* info/dir.c (build_dir_node): Use "dir" as file name,
not the path to the first dir file found.
2025-08-05 Gavin Smith <gavinsmith0123@gmail.com>
* info/dir.c (build_dir_node): free memory in one situation
2025-08-05 Gavin Smith <gavinsmith0123@gmail.com>
Don't replace text from dir node
* info/dir.c (build_dir_node): Don't supply our own introduction
to the dir node. Just use what was in the user's dir node.
Use higher-level functions to access the dir files. This also
means that "dir.info" will work as a dir file.
(insert_text_into_node): Free memory appropriately.
* info/filesys.c (info_file_find_next_in_path): Change comment
slightly.
* NEWS: mention
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
Change default for WORDS_IN_PAGE
* tta/data/converters_defaults.txt (WORDS_IN_PAGE): Change
default from 300 to 200. This means the navigation panel is
more likely to be output at the bottom of fairly short nodes,
hopefully reducing user confusion.
* doc/texinfo.texi (Customization of Navigation and Headers):
Explain why WORDS_IN_PAGE is only approximate.
(HTML Customization Variables List) <WORDS_IN_PAGE>: update for
new default.
* NEWS: mention.
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/manual-not-found: update name of data file.
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
* configure.ac:
Rename variable from ac_cv_var_ospeed to ac_cv_var_extratermlib
as we are not checking only the 'ospeed' variable.
Remove comment:
/* Make sure all variables actually exist. AIX 4.3 has ospeed but no BC.
--Andreas Ley <andy@rz.uni-karlsruhe.de> 24 Aug 2000. */
This comment was added when more variables, including BC, were added
to the test. Since this change is not apparent from looking at
the current state of the file, the comment is not useful.
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
* configure.ac: Move AC_CHECK_HEADERS of "ncurses/termcap.h"
before test that uses it (with #ifdef HAVE_NCURSES_TERMCAP_H).
This had been in that location since commit on 2003-04-18. See
https://lists.gnu.org/archive/html/bug-texinfo/2003-04/msg00092.html.
This has not been a problem in practice as the following test
only needs to succeed to find extra libraries to link with on rare
occasions.
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
* configure.ac: In AC_LANG_PROGRAM used in AC_LINK_IFELSE used
in terminal library check, provide first argument, which appears
in the test program outside of the 'main' function. Including
header files inside 'main' appears not to work well for this test,
as all libraries tested failed.
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
* configure.ac: check for libtinfow and libncursesw in addition to
libtinfo and libncurses.
Report from Дилян Палаузов <dilyan.palauzov@aegee.org>.
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Directory Category):
Note that dircategories will never be consistent but user can
edit them if they like. Mention the possibility of package-
specific categories. Add some suggested category names to list.
Remove "Emacs" and "Basics".
2025-08-04 Gavin Smith <gavinsmith0123@gmail.com>
* util/dir-example: some changes to categories to move towards
categories used at https://www.gnu.org/manual/manual.html. Eliminate
"Basics" category. Add reference to https://www.gnu.org/manual/manual.html.
2025-08-03 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: mention that we now create extra redirection pages
if --transliterate-file-names is given.
2025-08-02 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Hooks): Mention sample hook in util/info-hooks.
2025-08-02 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (@pxref): mention Info-hide-not-references
variable in Emacs Info.
2025-08-02 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations,
* util/info-hooks/gnu-manuals-locations.dat: rename.
* util/Makefile.am: distrubute files in util/info-hooks.
2025-08-02 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add missed manuals.
2025-08-02 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations:
reorder and group related manuals together for ease
of maintence (similarly to htmlxref.d files)
2025-08-02 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/manual-not-found: Skip comments and blank
lines in data file.
2025-08-02 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add links for
remaining manuals.
2025-08-01 Gavin Smith <gavinsmith0123@gmail.com>
* util/htmlxref.d/Texinfo_GNU.cnf (iwf_mh, scantest): fix.
2025-08-01 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (@pxref):
Attempt at clarifying why "see @ref" may often be better
than "@pxref".
2025-08-01 Gavin Smith <gavinsmith0123@gmail.com>
* util/htmlxref.d/Texinfo_GNU.cnf (mit-scheme-*):
Unify the two blocks of mit-scheme-* manuals. A second
block was added on 2022-11-12 not taking into account
an existing block.
2025-08-01 Gavin Smith <gavinsmith0123@gmail.com>
* util/htmlxref.d/Texinfo_GNU.cnf (dico): seems only to
be available by node now.
(lispintro): Make synonymous with eintr.
2025-08-01 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add more URLs
2025-08-01 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: continue
adding links.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: fix gcc links
and add more links
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add link for R
manuals (no link for Info manuals).
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add link for mit-scheme
manuals (no link for Info manuals).
2025-08-01 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/end_line.c (end_line_starting_block): re-add setting
parent of element used in expanded conditional source mark to 0, that
was erroneously removed.
2025-08-01 Patrice Dumas <pertusus@free.fr>
Remove parent information for text elements
* tta/C/structuring_transfo/transformations.c
(protect_hashchar_at_line_beginning_internal),
tta/perl/Texinfo/Transformations.pm
(_protect_hashchar_at_line_beginning): instead of processing text
elements, process elements with contents, such that it is easier to
find the position of the text with regard to end of lines.
* tta/C/main/tree.c (add_element_to_element_contents)
(insert_into_contents_as_array): add insert_into_contents_as_array.
Add add_element_to_element_contents that works both for text elements
and other types of elements.
* tta/C/main/tree_types.h (CONTAINER, ELEMENT),
tta/C/parsetexi/debug_parser.c (print_element_debug_parser),
tta/C/main/build_perl_info.c (element_to_perl_hash),
tta/C/convert/swig_interface.c (txi_ext_element_parent),
tta/C/main/debug.c (print_element_debug), tta/C/*/*.c,
tta/perl/Texinfo/*.pm, tta/perl/Texinfo/ParserNonXS.pm
(_split_element_delimiters, _split_element_def_args),
tta/perl/XSTexinfo/reader_element/TreeElementXS.xs: do not set parent
for text elements, considering that the structure information should
be with the parent already. Use add_to_contents_as_array and
insert_into_contents_as_array to add text elements to contents, move
the parent field from ELEMENT to CONTAINER, check if text element, or,
in Perl, if there is already a parent to determine if the parent
should be set.
* tta/C/main/manipulate_tree.c (protect_text),
tta/perl/Texinfo/ManipulateTree.pm (_protect_text): do not set the
parent of the added @comma or @asis commands.
* tta/perl/Texinfo/ManipulateTree.pm (element_print_details): add.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
Separate footnote markers with commas
* doc/texinfo.tex (\dofootnote): Do not reuse definition for
the footnote marker, as this could include a separating comma.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
Separate footnote markers with commas
* doc/texinfo.tex (\dofootnote): Use \aftergroup to output a
small penalty after the footnote.
(\footnote): Check \lastpenalty and output a comma before our
footnote marker if it appears that we are immediately after
another footnote marker.
* NEWS: mention
Suggestion from Werner Lemberg.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/htmlxref.d/Texinfo_GNU.cnf (ada-mode, music-glossary):
Corrections.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add locations for
gcc manuals. no links to Info files, so reference the top-level
documentation index that gives links to more formats including
the Texinfo sources.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: continue to add links,
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: continue to add links,
including for guile-gnome.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: continue to add links,
including for gnupg and binutils manuals. note some manuals
don't have downloads for Info files so we just link to the
HTML version of the documentation instead.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations (emacs, eintr, elisp):
add specific links.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/htmlxref.d/Texinfo_GNU.cnf (eintr): Add.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add links for
emacs manuals. most of them don't have Info download links
on the main page so just link to the main index page.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/info-hooks/gnu-manuals-locations: add URLs for
more manuals that follow the usual pattern under www.gnu.org/software.
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
* util/htmlxref.d/Texinfo_GNU.cnf (autogen): Fix node URL,
changing "autoconf" to "autogen". (Wrong ever since this entry
was added.)
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
Add example hook program and supporting data file
* util/info-hooks/manual-not-found,
* util/info-hooks/gnu-manuals-locations: new
2025-07-31 Gavin Smith <gavinsmith0123@gmail.com>
Info hooks documentation
* doc/info-stnd.texi (Hooks): Describe how to get data files
for a hook. Add index entries. In a comment, add exhortation
not to use the collocation "hook script".
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* TODO.HTML: discuss possible way forward for use of locally
installed HTML. edit for flow after reordering document.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* TODO.HTML: spacing, formatting.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* TODO.HTML: re-order to put discussion of info.js, webkitgtk-info
at the end of the file.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* TODO.HTML: edit slightly, update.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.js (init_index_page, init_sidebar, init_iframe):
Add comments to make the "context initializers" easier to find
as these are long functions that contain many other functions.
2025-07-30 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_minimal_document): do not retain
a reference to the document tree root element in C before registering
the Perl object in the C element structure.
2025-07-30 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (C_libtexinfo_main_sources),
tta/C/convert/swig_element_types.h (TXI_CM_FLAGS_LIST)
(TXI_CM_OTHER_FLAGS_LIST, TXI_TY_FLAGS_LIST),
tta/C/convert/swig_element_data.h,
tta/C/convert/swig_text_options_types.h
(TEXT_INDICATOR_CONVERTER_OPTIONS), tta/C/convert/swig_text_options.h:
split #define of swig_element_data.h out to a new file
swig_element_types.h and swig_text_options.h #define to
swig_text_options_types.h.
* tta/C/convert/swig_interface.c, tta/C/convert/swig_text_options.h,
tta/C/convert/swig_element_data.h, tta/swig/texinfo.i: prefix swig
interface function names by txi_ext_.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.js (resolve_page): remove debugging code committed
by accident.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.js: remove commented-out block of code checking
screen width. This was commented out on 2021-02-24 when
a button to hide the sidebar was added.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
Reduce info.js indirection
* js/info.js (Store): Do not pass "reducer" argument to
constructor. There is only one Store object and it is only
ever used with the 'updater' function.
(Store.prototype.dispatch): Hardcode use of 'updater'.
2025-07-30 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (all-local, .libs/auto/Texinfo),
tta/swig/perl/_Texinfo_Tests.pm: add the all-local rule to setup the
link from .libs/auto/Texinfo to .libs to have in-build XS extension
found before other extensions in @INC auto/Texinfo subdirectories.
Remove from _Texinfo_Tests.pm the code doing the link.
2025-07-30 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (libperlcall_utils_la_SOURCES)
(libperlcall_utils_la_CPPFLAGS), tta/C/main/use_interpreter_types.h
(enum interpreter_use): add enum interpreter_use.
* tta/C/main/set_perl_interpreter.c
(tta/C/main/set_perl_interpreter.c): rename get_use_perl_interpreter
as has_perl_interpreter. Update callers.
* tta/C/convert/texinfo.c (txi_setup_main_load_interpreter)
(txi_load_init_file, txi_stop_interpreter), tta/swig/texinfo.i
(setup), tta/C/main/set_perl_interpreter.c (set_use_perl_interpreter)
(has_perl_interpreter): use enum interpreter_use as argument and as
variable. Update callers.
2025-07-30 Patrice Dumas <pertusus@free.fr>
Initialize the C library when Texinfo modules are loaded but not XS
* tta/perl/Texinfo/DocumentXS.pm ($XS_package): set $XS_package as
Texinfo::XSLoader::init return value.
* tta/C/main/call_perl_function.c (call_eval_load_texinfo_modules):
return -1 (or croak) if the Perl modules could not be used. Return
the Texinfo::DocumentXS::XSLoader true or false value if the modules
could be used, such that the caller knows if the Document XS module
was loaded. It is in this XS module that the C library is
initialized.
* tta/C/convert/texinfo.c (txi_setup_main_load_interpreter): check the
return value of call_eval_load_texinfo_modules and initialize the C
library and set use interpreter accordingly.
2025-07-30 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/StructTransfXS.pm: do not set $XS_package, it is not
used anywhere.
Do not set Texinfo::XSLoader::init return value if not used.
* tta/swig/perl/t/40convert_to_text.t: minor changes in code and
comment.
2025-07-30 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c: remove html_translate_string, it is
not used anymore.
* tta/C/main/manipulate_tree.c (copy_tree): rename copy variable as
copy_tree and current variable as element.
* tta/C/main/manipulate_tree.c (set_element_tree_numbers): make a
simple no-op as it does nothing currently, and rename the
implementation.
Changes in comments and TODO
* tta/swig/perl/t/*.t: move code around.
* tta/swig/perl/t/20index_sort.t: change in spacing.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.css (.highlight): Change background (used for search
matches from "lightgrey" to #FFCC33 (orange-yellow) as the
grey highlighting is easy to miss.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
Don't accumulate <datalist> elements under text input box
* js/info.js (Text_input.prototype.show): Check if <datalist>
element already exists before creating it. Previously, multiple
<datalist> elements would accumulate within the <index type=search>
as 'i' was repeatedly used.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.js (init_iframe) <on_load>, (actions.cache_index_links):
Inline most of actions.cache_index_links into on_load. This way
actions.cache_index_links is focused on the structure of the message.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: mention info.js fix
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.js (on_keydown): Check that no modifiers (namely,
Alt, Ctrl nor Meta) are pressed. This means specifically that
C-l can still select the location bar and C-r can refresh the page.
2025-07-30 Gavin Smith <gavinsmith0123@gmail.com>
Make clicking on links on Top node not so broken
* js/info.js (config) <TOP_ID>: Change from "top" to "index".
Links in the Top node are still rewritten to have href attributes
that look like "index.html#index.toc-Nodes" and the value "index"
is needed to make sure that the check for the Top node in
'resolve_page' works. This reverses change on 2024-10-07 (before
which TOP_ID was called "INDEX_ID".)
Before this, clicking on links in a short table of contents, or
clicking on the copiable anchor in the manual title, would lead
"index.html" to be loaded in the main iframe and two copies of the
navigation interface would be visible.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
Fewer functions called 'render'
* js/info.js
(Help_page.prototype.render, Minibuffer.prototype.render)
(Echo_area.prototype.render, Sidebar.prototype.render)
(Pages.prototype.render):
Rather than defining all of these as "function render", use the
names help_page_render, minibuffer_render, echo_area_render,
sidebar_render, and pages_render respectively.
This makes the output of "console.trace()" easier to understand.
2025-07-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/tex4ht.pm (tex4ht_prepare): warn if there was an error
with close.
2025-07-29 Patrice Dumas <pertusus@free.fr>
Remove the Texinfo::TeX4HT customization package
* NEWS, tta/perl/ext/tex4ht.pm (tex4ht_prepare)
(tex4ht_process_format): remove the Texinfo::TeX4HT customization
package, replace by the defaults. If customization is needed, it
should be implemented through customization variables.
* tta/perl/t/init/t2h_singular.init: replace the use of long gone
Texinfo::TeX4HT STYLE by setting T4H_TEX_CONVERSION and
T4H_MATH_CONVERSION to latex.
2025-07-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/latex2html.pm (l2h_retrieve_from_html): do not modify
image file names. Remove l2h_change_image_file_names.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.js (on_load):
Store "components" as an array rather than as a hash
called "components" containing an array called "components".
(Store.prototype.dispatch): Update.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (@sp): Include argument within @code in
section title.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* js/info.js (Store.prototype.dispatch):
Inline contents of "render" function.
(init_index_page) <on_load>: Remove "render" as a property
of "components" object referencing a function.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
Eliminate "listeners" abstraction
* js/info.js (Store): Do not set 'listeners' array.
(Store.prototype.dispatch): Call 'render' function directly
rather than looping over 'listeners'.
(init_index_page) <on_load>: Save 'components' array on
'store' object, rather than adding a single function to 'listeners'.
Historically, the "listeners" paradigm was inspired by the
"Redux" library (private May 2017 discussion). However,
it appears to be unnecessary here as there was only only one
listener.
2025-07-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/latex2html.pm (l2h_finish): warn if unlink did not
succeed.
2025-07-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/latex2html.pm (l2h_to_latex, l2h_retrieve_from_html)
(l2h_init_cache, l2h_store_cache): check close error condition and
warn.
* tta/perl/ext/latex2html.pm (l2h_process)
(l2h_change_image_file_names, l2h_retrieve_from_html): handle empty
destination_directory.
* tta/perl/t/test_utils.pl: change in spacing.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* info/echo-area.c (ea_scroll_completions_window):
Reinstate removed lines but use result as intended in call
to set_window_pagetop.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* info/man.c (get_manpage_from_formatter): Keep on going
if return value from 'get_output_from_program' is non-zero,
in line with following comment.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program):
Enclose use of WIFEXITED and WEXITSTATUS in HAVE_SYS_WAIT_H
check. Report from Patrice.
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program) [!PIPE_USE_FORK]:
Check if return value of pclose is -1 before using WEXITSTATUS etc.
on it. Report from Patrice.
2025-07-29 Patrice Dumas <pertusus@free.fr>
Code cleanups based on compiler warnings
* info/echo-area.c (ea_scroll_completions_window): remove unused lines
variable and associated code.
* info/makedoc.c (process_one_file): remove line_start variable, set
but not used.
* info/session-cmd.c (info_get_node_with_defaults)
(info_select_reference): remove unused variables.
* tta/swig/texinfo.i (setup): initialize variables to silence compiler
warning (they are not used anywhere if texinfo_uninstalled is set).
2025-07-29 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program):
Use WIFEXITED on exit status from wait or popen before
using WEXITSTATUS. Return 127 as a general error code
if WIFEXITED is false. Report from Patrice.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
Remove annoying tooltip for Top node with info.js
(updater): Add new action type "window-title-of-linkid".
Not much is done in this function.
(Pages.prototype.render): This called indirectly and is where a
lot of the real processing is done after the main "store"
receives an action. Handle "window-title-of-linkid" action.
(init_iframe) <on_load>: Initiate "window-title-of-linkid"
action. This contains the ID of the node as well as the new
title to use, leading the "title" to be updated on the correct
<div>. We get the ID from the window location. This is more
reliable than the "window-title" action as that seemed to try
to use whichever node was currently being displayed, which was
wrong when the index nodes were read in at start up. This led
to a "title" attribute being set incorrectly on some element in
the Top node, which would lead to a tool-tip appearing with the
title of whichever Index node was read in last.
(actions) (window_title_of_linkid): Add for "window-title-of-linkid"
message.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
* info.js (init_sidebar) <add_header>:
Remove 'a.copiable-link' element from main title in sidebar.
This often contains a large ¶ symbol which is unnecessary.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/Makefile.am (ReaderXS_la_LIBADD): add dependency
on libtexinfo.la.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
Less recommendation of @menu
* doc/texinfo.texi (Short Sample Texinfo File):
Remove @menu block from example. Add equivalent
@nodedescription lines for the menu descriptions.
(The Top Node): Explain that the @menu block is optional.
(GNU Sample Texts): Remove @menu from example input.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
Update info.js for new index output
* js/info.js (init_iframe) <on_load>:
Use 'printindex-index-subentry-level-1' and
'printindex-index-subentry-level-2' classes to find index
entries.
(actions.cache_index_links): Change 'index-entry-level-1'
to 'printindex-index-subentry-level-1'; likewise change
'index-entry-level-2' to 'printindex-index-subentry-level-2'.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/_Texinfo_Tests.pm, tta/swig/perl/parse_refold.pl: put
swig/perl directory in @INC to find Texinfo.pm in out of source
builds.
* tta/swig/perl/parse_refold.pl: update call of Texinfo::setup to
avoid using a Perl interpreter, as it is not needed, and the default
paths do not allow to find the texi2any modules.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/_Texinfo_Tests.pm: do not create directory and link if
the .libs directory does not exist, assuming that the MakeMaker build
system is used in that case.
* tta/swig/perl/Makefile.PL (INC): update compile flags.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/swig/Makefile.am, tta/swig/p*/Makefile.am (BUILT_SOURCES)
(SWIG_include_directories, SWIG_header_dependencies)
(*_texinfo_wrap.c, CLEANFILES): build files generated by swig in the
language directories, not in the main swig directory.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
Do not distribute generated SWIG files
* tta/swig/perl/Makefile.am: Do not distribute Texinfo.pm or
perl_texinfo_wrap.c.
* tta/swig/python/Makefile.am: Do not distribute Texinfo.py or
python_texinfo_wrap.c.
* tta/swig/Makefile.am: Wrap rules for rebuilding files in
"if SWIG_INTERFACES" conditional.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/C/main/set_perl_interpreter.c (use_perl_interpreter): correct
default to be 1.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (AM_CPPFLAGS), tta/swig/texinfo.i (setup),
tta/swig/perl/t/20index_sort.t: set the compile-time default for the
Perl SWIG Interface to use an existing interpreter, by setting the
USE_PERL_INTERPRETER define.
* tta/swig/texinfo.i (setup): rename *embed_perl as *use_interpreter.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/_Texinfo_Tests.pm: add Texinfo as a link from
.libs/auto to .libs, such that with .libs in @INC, XSLoader finds the
Texinfo.so object file.
* tta/C/main/replace_set_perl_interpreter.c,
tta/C/main/set_perl_interpreter.c (set_use_perl_interpreter)
(get_use_perl_interpreter): change the logic, by having a positive
value if a Perl interpreter is present. Rename
get_no_perl_interpreter as get_use_perl_interpreter and
set_no_perl_interpreter as set_use_perl_interpreter. Update callers.
* tta/C/main/call_perl_function.c (call_modulepath_init)
(call_eval_load_texinfo_modules): add a function to add to @INC, call
Texinfo::ModulePath::init and load Texinfo texi2any Perl modules.
Similar to texi2any.pl or load_txi_modules.pl initialization code,
but trimmed down.
* tta/C/convert/texinfo.c (txi_setup_main_load_interpreter): call
call_eval_load_texinfo_modules if use_interpreter is > 1, add
corresponding arguments, update callers.
* tta/swig/python/Makefile.am (AM_CPPFLAGS), tta/swig/perl/Makefile.am
(AM_CPPFLAGS), tta/swig/texinfo.i: add LIBDIR in defines, add
embed_perl and updirs arguments to setup, pass new arguments to
txi_setup_main_load_interpreter.
* tta/configure.ac (swig_perl_tests), tta/swig/perl/Makefile.am
(t_test_files), tta/swig/perl/t/20index_sort.t: add test of index
sorting with the comparison with texi2any Perl modules sorting. Calls
Texinfo::setup with use_interpreter set to 2.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/convert/convert_html.c (copy_file_to):
Call fwrite with the correct buffer size.
2025-07-28 Patrice Dumas <pertusus@free.fr>
* tta/maintain/all_tests.sh: call -g on t/z_misc/*.t files which
now accept -g.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
Smaller index letter headers.
* tta/data/default_css_element_class_styles.csv
(th.index-letter-header-printindex): Remove
"font-size: large; padding-bottom: 0.5em; padding-top: 0.5em".
This makes the HTML index formatting close in appearance to
the formatting of the last release and earlier.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
Indent index entries.
* tta/data/default_css_element_class_styles.csv
(td.printindex-index-entry, td.printindex-index-subentry-level-1)
(td.printindex-index-subentry-level-2):
Add 1.5 em of indent. This can help to make the letter headers
more conspicuous when skimming through an index quickly.
2025-07-28 Gavin Smith <gavinsmith0123@gmail.com>
Combined CSS class for index subentries
* tta/C/convert/format_html.c (html_convert_printindex_command),
* tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command):
For index subentries, output 'printindex-index-subentry-level-1'
or 'printindex-index-subentry-level-2' class, and do not output
'index-entry-level-1', 'index-entry-level-2', or
'printindex-index-entry'. For the output of @seeentry, always
output 'printindex-index-see-entry' as an additional class.
* tta/data/default_css_element_class_styles.csv
(td.index-entry-level-1, td.printindex-index-subentry-level-1)
(td.index-entry-level-2, td.printindex-index-subentry-level-2):
Rename and add "vertical-align: top" in order to be consistent
with 'td.printindex-index-entry'.
This is to make it easier to control the indentation of
index entries in an index. Previously, 'printindex-index-entry' was
output on index subentries too, which meant that customising
'padding-left' would override the setting for all index subentries.
Using completely different classes avoids any trouble with the
relative priorities of CSS rules.
2025-07-27 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Makefile.am: Add Texinfo/HTMLDataCSS.pm to
and dist_modules_DATA and MAINTAINERCLEANFILES.
2025-07-27 Gavin Smith <gavinsmith0123@gmail.com>
Add maintain/generate_css_data.pl
* tta/maintain/generate_css_data.pl: New. Generate source code
files with CSS data for HTML output.
* tta/maintain/generate_code_convert_data.pl: Do not output
CSS data.
* tta/C/Makefile.am: Update to use maintain/generate_css_data.pl
to generate main/html_css_data.c and main/html_css_data.h.
* tta/perl/Makefile.am: Update to use maintain/generate_css_data.pl
to generate Texinfo/HTMLDataCSS.pm.
* tta/perl/Texinfo/Convert/HTML.pm: use "Texinfo::HTMLDataCSS".
* tta/C/convert/html_prepare_converter.c:
include "main/html_css.data.h" as well as html_css_data.h.
This cuts the time taken to rebuild after
tta/data/default_css_element_class_styles.csv is touched by
a factor of about 10.
2025-07-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/ParserNonXS.pm:
use exists or define in conditions if the value is not of interest.
Remove useless check of number of contents elements.
2025-07-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (_split_element_delimiters)
(_split_element_def_args): rename _split_delimiters as
_split_element_delimiters and _split_def_args as
_split_element_def_args to make clear that these functions do
something different from the C functions.
Use parent instead of passing it as argument.
Fix a wrong parent.
Rename $root as $element.
Undef explicitly element when it is not used anymore to clarify the
code (and maybe help release/reuse memory).
2025-07-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (_split_delimiters)
(_split_def_args): use directly element source marks.
2025-07-27 Patrice Dumas <pertusus@free.fr>
Changes in comments
2025-07-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.tres, tta/perl/t/03coverage_braces.t
(empty_line_in_command_in_math): add test.
2025-07-27 Patrice Dumas <pertusus@free.fr>
* TODO: add more flexible source highlighting interface entry
2025-07-27 Patrice Dumas <pertusus@free.fr>
Add/improve comments
2025-07-26 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): warn if a
rawline @-command without argument has non-space argument.
2025-07-26 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): warn if a
lineraw command without argument has non-space argument before
a comment on the line.
* tta/perl/Makefile.tres, tta/perl/t/08misc_commands.t
(contents_arg_and_comment): add a test with a lineraw command without
argument with an unexpected argument before a comment.
2025-07-26 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command): fix
order of hr output with regard to index entries.
Update missed test results.
2025-07-26 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (parse_rawline_command),
tta/perl/Texinfo/ParserNonXS.pm (_parse_rawline_command): remove
special_arg unused return value. Update caller.
* tta/C/convert/html_prepare_converter.c,
tta/perl/Texinfo/Convert/HTML.pm: add comments.
2025-07-26 Gavin Smith <gavinsmith0123@gmail.com>
-g option for two t/z_misc tests
* tta/perl/t/z_misc/same_parser_multiple_files.t,
* tta/perl/t/z_misc/no_structure_test.t
(_update_test_results_dir, _do_format_test_file):
Recognise -g option given to test program and copy the
output files to the reference directory if given. This is
an aid for updating the results of these tests, which are
not covered by maintain/all_tests generate.
2025-07-26 Gavin Smith <gavinsmith0123@gmail.com>
* tta/data/default_css_element_class_styles.csv
(th.index-letter-header-printindex): Specify "font-size: large".
2025-07-26 Patrice Dumas <pertusus@free.fr>
* tta/swig/Makefile.am (EXTRA_DIST): add TODO.
* tta/swig/TODO b/tta/swig/TODO: update.
* tta/swig/perl/parse_refold.pl (BEGIN): handle better the MakeMaker
based build system.
* tta/swig/perl/parse_refold.pl: remove obsolete FIXME.
* tta/swig/perl/MANIFEST, tta/swig/perl/MANIFEST.SKIP,
tta/swig/perl/Makefile.PL: remove -DEMBED_PERL flag. Update and
Improve MakeMaker based build system.
* tta/swig/perl/Makefile.am (scripts_test_files): rename
other_test_files as scripts_test_files.
2025-07-26 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/_Texinfo_Tests.pm (get_parser_error_messages),
tta/swig/perl/t/30source_marks.t: add get_parser_error_messages based
on 30source_marks.t code and use it in 30source_marks.t.
2025-07-26 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (C_libtexinfo_main_sources),
tta/C/convert/swig_error_messages_types.h (FORMATTED_ERROR_MESSAGE)
(FORMATTED_ERROR_MESSAGE_LIST), tta/C/convert/swig_interface.c
(get_error_messages_list_messages, get_parser_error_messages)
(get_document_error_messages, messages_list_message_by_index)
(messages_list_messages_number), tta/C/main/errors.c
(error_message_text): make error_message_text extern. Add interface
to error messages, with formatted error message added. With the
functions get_parser_error_messages, get_document_error_messages,
messages_list_message_by_index and messages_list_messages_number.
* tta/swig/Makefile.am (SWIG_header_dependencies), tta/swig/texinfo.i:
add interface to get formatted error messages.
* tta/configure.ac (swig_perl_tests),
tta/swig/perl/t/30source_marks.t: use formatted error messages
interface.
2025-07-26 Gavin Smith <gavinsmith0123@gmail.com>
Use <hr> in index formatting
* tta/C/convert/format_html.c (html_convert_printindex_command),
* tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command):
Use <hr> to separate sections of index.
* tta/data/default_css_element_class_styles.csv
(th.index-letter-header-printindex):
Remove "border-width: thin; border-top-style: solid".
This is a partial reversion of change to index formatting made
on 2024-12-24.
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/t/30source_marks.t: use _Texinfo_Tests.
* tta/swig/perl/_Texinfo_Tests.pm (protect_perl_string),
tta/swig/perl/t/30source_marks.t: move protect_perl_string to
_Texinfo_Tests.pm.
2025-07-25 Patrice Dumas <pertusus@free.fr>
Add tta/C/main/reader_types.h
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (C_libtexinfo_main_sources),
tta/C/swig_text_options.h, tta/C/convert/swig_interface.c
(document_text_options, text_options_set_*)
(text_options_clear_expanded_formats)
(text_options_add_expanded_format, text_options_set_encoding),
tta/C/main/convert_to_text.c (copy_options_for_convert_text),
tta/swig/texinfo.i: add copy_options_for_convert_text to interface.
Setup an interface that can be used to set text options from document
options and with functions. Use in texinfo.i.
* tta/swig/texinfo.i: add interface to convert to text.
* tta/swig/perl/Makefile.am (EXTRA_DIST),
tta/swig/perl/_Texinfo_Tests.pm: add an internal module to be used for
common code for tests.
* tta/swig/perl/Makefile.am (t_test_files),
tta/swig/perl/t/40convert_to_text.t: add a test of conversion to text
through the Perl SWIG interface.
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/swig/texinfo.i: move code around, change in comments.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
* tta/data/default_css_element_class_styles.csv
(table.index-entries-printindex): Remove "border-spacing: 0 0.5em".
This produced extra spacing between table rows and was added
on 2024-12-24. The extra spacing combines badly with
the "padding-bottom: 0.5em; padding-top: 0.5em" for
'th.index-letter-header-printindex' as in combination with the
border-spacing, there was more space below the letter headers
than there was above. It is also unnecesssary and doesn't match
the formatting from previous releases.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
* tta/data/default_css_element_class_styles.csv
(th.index-letter-header-printindex): Remove "font-size: 150%".
This was added with changes to index formatting on 2024-12-24.
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/C/main/reader_types.h (TXI_READER_TOKEN_CAT_LST)
(enum reader_token_category, READER_TOKEN), tta/C/main/tree_types.h,
tta/swig/texinfo.i: move TXI_READER_TOKEN_CAT_LST, enum
reader_token_category and READER_TOKEN to a distinct reader_types.h
include file.
* tta/C/main/reader.h: do not include reader_api.h.
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (C_libtexinfo_sources),
tta/C/main/get_perl_info.c, tta/C/main/reader.h (READER_CONTEXT)
(READER), tta/C/main/reader_api.h (retrieve_reader_descriptor)
(txi_register_new_reader, txi_reader_read, txi_reader_skip_children),
tta/C/main/tree_types.h, tta/swig/texinfo.i: move READER and
READER_CONTEXT types to reader.h. Add a new file, reader_api.h with
the functions needed to use the reader, retrieve_reader_descriptor,
txi_register_new_reader, txi_reader_read and txi_reader_skip_children,
but no definition of READER struct.
* tta/C/main/reader.c (destroy_reader, new_reader): rename
txi_new_reader as new_reader. Declare destroy_reader and new_reader
static.
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (C_libtexinfo_sources), tta/C/main/tree_types.h,
tta/C/main/source_mark_types.h (SM_TYPES_LIST, enum source_mark_type)
(enum source_mark_status, SOURCE_MARK): move source mark type and
enums to a separate file, source_mark_types.h.
* tta/swig/Makefile.am (SWIG_include_directories)
(SWIG_header_dependencies), tta/swig/texinfo.i: use source_mark_types.
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/swig/texinfo.i (setup): add embed_perl argument to be able to
set at runtime.
* tta/swig/python/test_Texinfo.py: disable Perl interpreter embedding
as it does not work (for me).
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/m4/txi_perl_conf.m4: change a message.
Minor changes in spacing, TODO, POD, comments, messages, move code
around.
2025-07-25 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl, tta/swig/perl/t/30source_marks.t,
tta/swig/texinfo.i (new_reader): wrap txi_register_new_reader and
retrieve_reader_descriptor in a new_reader interface and do not
provide with an interface through txi_new_reader. Update callers.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi: Remove "@clear txicodevaristt" lines.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Functions Commands, Typed Functions):
Place discussion of the style of fonts used within @deffn and
@deftypefn inside @ignore blocks.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Hooks): update to reflect last
change.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
Remove node-not-found-interactive hook as separate hook
* info/session-cmd.c (info_select_reference): In case of
manual not found, run 'manual-not-found' hook with an extra
"--interactive" argument, rather than a separate
"node-not-found-interactive" hook.
* info/configfiles.c (run_info_hook): Suppress stderr output
from hook only if info_windows_initialized_p.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
* info/pseudotty.c: Readd #include <string.h> as it is
needed for a declaration of 'memset', used via FD_ZERO, on
some systems. Reports from Bruno Haible and Collin Funk.
2025-07-25 Gavin Smith <gavinsmith0123@gmail.com>
Check infodir in loaded file list
* info/nodes.c (check_loaded_file_in_infodir):
New function to check both directory and filename in
list of loaded files.
* info/session-cmd.c (filename_for_xref): Use it before
calling info_file_of_infodir. This means we avoid repeatedly
checking the filesystem for the same file.
2025-07-24 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: update a couple of items for Info.
2025-07-24 Gavin Smith <gavinsmith0123@gmail.com>
Save directory name with file record
* info/nodes.h (FILE_BUFFER): Add 'infodir' field.
* info/nodes.c (info_load_file, forget_info_file): Set 'infodir'
field to directory component of full file name used to load file.
2025-07-24 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/t/30source_marks.t (BEGIN): find the source directory
by using the command location if there is no information in the
environment.
* tta/swig/README: update.
2025-07-24 Patrice Dumas <pertusus@free.fr>
Check linking with libperl
* tta/configure.ac (libperl_link, LIBPERL_LINK), tta/swig/Makefile.am
(SUBDIRS): check linking with libperl. If not possible and XS is
enabled, do not build the Python SWIG interface as it requires linking
with libperl.
2025-07-24 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl (_handle_source_marks): retrieve the
correct current source mark at the end of an include file.
* tta/swig/perl/Makefile.am (other_test_files): add test_includes.sh.
2025-07-24 Patrice Dumas <pertusus@free.fr>
* Pod-Simple-Texinfo/test_scripts/*.sh: add copyright notices.
* tta/swig/perl/Makefile.am (t_test_files, other_test_files)
(TESTS, EXTRA_DIST), tta/swig/perl/tests/*,
tta/swig/perl/test_scripts/*.sh: add tests of parse_refold.pl and add
parse_refold.pl to EXTRA_DIST.
2025-07-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/LaTeX.pm (%informative_commands): fix
use of command_equivalent_set_flag.
2025-07-24 Gavin Smith <gavinsmith0123@gmail.com>
review info/window.h
* info/window.h: Reorder to match order of window.c, and remove
duplicative comments.
* info/window.c (window_initialize_windows): Remove part of
comment discussing non-existent "deleter" parameter.
(window_message_in_echo_area, message_in_echo_area):
Remove obsolete parts of comment from when these were not a variadic
functions.
2025-07-24 Gavin Smith <gavinsmith0123@gmail.com>
* info/window.h: Remove declaration for 'window_scroll_step'
that is duplicated in variables.h.
2025-07-24 Patrice Dumas <pertusus@free.fr>
Leave @set/@clear as an alternative to @codequote* in Texinfo tree
* tta/perl/Texinfo/Common.pm (%set_flag_command_equivalent)
(%command_equivalent_set_flag), tta/perl/Texinfo/ParserNonXS.pm: move
%set_flag_command_equivalent to Common.pm and add
%command_equivalent_set_flag.
* tta/C/main/utils.c (element_value_equivalent), tta/C/main/utils.c
(element_value_equivalent), tta/perl/Texinfo/Common.pm
(element_value_equivalent),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_element_value_equivalent): add function to return value
and command of a @set/@clear command with a flag making it an
alternative to another command.
* tta/C/main/utils.c (informative_command_value),
tta/C/main/customization_options.c (set_informative_command_value),
tta/perl/Texinfo/Common.pm (informative_command_value)
(set_informative_command_value),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_informative_command_value)
(tree_element_set_informative_command_value): call
element_value_equivalent in informative_command_value and return the
command being actually modified. Update callers.
* tta/C/parsetexi/parser.c (register_global_command),
tta/perl/Texinfo/ParserNonXS.pm (_register_global_command): add an
optional argument to give the command to store as. This is useful if
the actual element is an alternative to another command, as is the
case for @set/@clear command with a texicode* flag. Update callers.
* tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): keep @set or
@clear as an alternative to @codequote* as is in the tree, but
register as a global command associated to the equivalent command.
2025-07-24 Patrice Dumas <pertusus@free.fr>
* contrib/mass_test/README: add.
2025-07-24 Gavin Smith <gavinsmith0123@gmail.com>
No file fallback for "foo::" reference.
* info/session-cmd.c (info_select_reference):
Remove code for a reference that looks like "* foo::" checking
for a manual called foo if a node foo is not found.
This reverses change announced in NEWS for Info 2.11 (1995).
However, this functionality does not appear to be present in
Emacs Info (checked with Emacs 27.1) so presumably is not important.
2025-07-24 Gavin Smith <gavinsmith0123@gmail.com>
Don't run hook if file for manual is found but node isn't.
* info/session-cmd.c (info_select_reference): Inline some code
from info_get_node_with_defaults and info_get_node. Only
trigger the 'node-not-found-interactive' hook if the manual
is not found, not if a node is not found within a manual that
is found.
* info/session-cmd.c (filename_for_xref): Remove an unused argument.
2025-07-24 Gavin Smith <gavinsmith0123@gmail.com>
* info/session-cmd.c (filename_for_xref): New function, splitting
out logic from info_get_node_with_defaults.
(info_get_node_with_defaults): Use it. Omit calling it if
we have a dir or manpage reference.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/t/follow-remain-other-dir.sh: new test
2025-07-23 Patrice Dumas <pertusus@free.fr>
* contrib/mass_test/check_refold.sh: improve.
* contrib/mass_test/extract_manuals.sh: more fix of CRLF. Add
@documentencoding ISO-8859-1 for two manuals.
* contrib/mass_test/notes_on_manuals.txt: add.
2025-07-23 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl: add -I option.
* tta/swig/perl/parse_refold.pl: set texi2any formats to be expanded.
* tta/swig/perl/parse_refold.pl: missing @verb delimiter decode added.
2025-07-23 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/close.c (close_current),
tta/perl/Texinfo/ParserNonXS.pm (_close_current): use source mark at
the opening of a block command without @end found, instead of at the
end of the document.
2025-07-23 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl: take a directory in argument and
output files in that directory. Handle included files using an inputs
stack and putting the result in a reference on a string. Decode
strings early to get correct counting of characters.
* contrib/mass_test/check_refold.sh: update for change in
parse_refold.pl.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
const for info
* info/scan.c
(info_concatenate_references, info_copy_references info_new_reference):
Declare arguments as const.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
const for info
* info/scan.c (info_get_menu_entry_by_label, info_copy_reference)
* info/session-cmd.c (info_select_reference)
* info/dir.c (lookup_dir_entry, dir_entry_of_infodir)
Declare more parameters and return values as const.
* info/session-cmd.c (info_intuit_options_node): Avoid modifying
field in REFERENCE object returned by info_get_menu_entry_by_label.
* info/info.c (info_find_matching_files): Copy REFERENCE before
adding it to a list.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
info/scan.h
* info/scan.c (read_bracketed_filename, init_conversion)
(close_conversion, save_conversion_state, reset_conversion):
Declare as static.
* info/scan.h: reorder slightly to match order of scan.c.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/session.c, info/scan.c (free_history_node):
Move to scan.c, as this is a slightly "lower-level" source file.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
No <!-- ... --> for <style>.
* tta/C/convert/format_html.c (html_default_format_css_lines),
* tta/perl/Texinfo/Convert/HTML.pm (_default_format_css_lines):
No <!-- ... --> wrapping contents of <style> block, as this is
long obsolete. help-texinfo discussion, July 2025.
* NEWS: report.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/dir.c (lookup_dir_entry, dir_entry_of_infodir),
* info/filesys.c (info_file_of_infodir),
* info/nodes.c
(info_find_subfile, node_printed_rep, internal_info_node_p),
* info/scan.c (info_get_menu_entry_by_label):
Declar some arguments or return values as const.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.h: review to match order of nodes.c. remove
several comments about functions duplicating what was in the
*.c files. move a couple of declarations to other header
files as those symbols weren't actually defined in nodes.c.
2025-07-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/session-cmd.c (_scroll_forward, _scroll_backward):
declare as static.
* info/session.c (mouse_event_handler): Call set_window_pagetop
instead of _scroll_forward or _scroll_backward.
2025-07-22 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/swig_interface.c (document_global_information),
tta/swig/texinfo.i (GLOBAL_INFO): add an interface to global
information.
* tta/swig/perl/parse_refold.pl: use global information interface to
get the input encoding. SWIG always uses sv_setpvn returning bytes
and C encodes in UTF-8, so convert to characters by decoding from
UTF-8. Encode output in document enoding, using ISO-8859-1 for
US-ASCII such as to support old manuals in which US-ASCII can be
specified although the encoding corresponds to any 8bit encoding
compatible with ISO-8859-1.
2025-07-22 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl (BEGIN): find modules when called from
outside of the current directory.
* contrib/mass_test/check_refold.sh: add script to check difference
between call of parse_refold.pl and original file for the manuals in
mass_test.
2025-07-22 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/source_marks.c (place_source_mark),
tta/perl/Texinfo/ParserNonXS.pm (_place_source_mark): place source
mark on the last element in arguments_line when there is an argument
line.
* tta/perl/Makefile.tres, tta/perl/t/55conditionals.t
(root_command_in_conditional): add test of root command in expanded
conditional.
2025-07-22 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/macro.c (handle_macro), tta/C/parsetexi/parser.c
(process_remaining_on_line), tta/perl/Texinfo/ParserNonXS.pm
(_handle_macro, _process_remaining_on_line): pass amias information to
handle_macro and set the information in this function.
* tta/C/parsetexi/macro.c (handle_macro),
tta/perl/Texinfo/ParserNonXS.pmm (_handle_macro): keep the
macro_call_element in the tree in source mark even if the macro body
is not expanded, in case there are source marks in the
macro_call_element. If the macrobody is not expanded the state of the
source mark is not set to start, and there is no source mark for an
end of the macro call added.
* tta/perl/t/60macro.t: add/improve comments explaining why
incorrectly placed source marks are correct.
2025-07-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.tres, tta/perl/t/02coverage.t
(braces_for_line_command), tta/perl/t/init_files_tests.t
(sc_formatting_with_css): move test of line @-command with braces out
of sc_formatting_with_css to 02coverage.t new test
braces_for_line_command.
2025-07-22 Patrice Dumas <pertusus@free.fr>
Add source marks for macro argument escape backslash
* tta/C/main/tree_types.h (SM_TYPES_LIST), tta/C/parsetexi/macro.c
(expand_macro_arguments), tta/perl/Texinfo/ParserNonXS.pm
(_expand_macro_arguments), tta/swig/perl/parse_refold.pl
(_handle_source_marks): add a source mark for \ protectng comma,
braces or \ in macro argument expansion.
* tta/swig/perl/parse_refold.pl (_convert): always call _convert on
comment_at_end element, the closingsource mark could be in the
comment.
2025-07-22 Gavin Smith <gavinsmith0123@gmail.com>
const for info
* info/nodes.c (info_get_node, info_get_node_of_file_buffer):
Declare nodename argument as const.
2025-07-22 Gavin Smith <gavinsmith0123@gmail.com>
const for info
* info/nodes.c (info_get_node): Declare first argument, filename,
as const. Make consequent changes throughout the program,
likewise declaring parameters as const.
Using const could have a benefit for the readability of this C
program as the person reading the code knows that a const pointer
does not need to be passed to 'free'.
2025-07-22 Gavin Smith <gavinsmith0123@gmail.com>
* info/util.c, info/display.c (printed_representation):
Move to display.c.
2025-07-22 Gavin Smith <gavinsmith0123@gmail.com>
* info/*.c, info/*.h: continue review of needed header files.
* info/util.c (printed_representation):: Use 0x7f for a byte
value instead of preprocessor symbol.
2025-07-22 Gavin Smith <gavinsmith0123@gmail.com>
* info/scan.c, info/util.c: Move include of <wchar.h>
and conditional redefinition of wcwidth to util.c, as that
is the file where wcwidth is used.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/*.c: review needed header files.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* doc/makedoc.c: Do not include "doc.c" (file generated
by makedoc), as this appears to be unnecessary. Do not include
"info.h" as it is confusing to use the same header for both
the ginfo and makedoc programs: instead, include the necessary
system headers directly.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/filesys.c (info_add_extension, info_file_of_infodir):
Rename function and swap the order of the first two parameters.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c: Add missing include <sys/time.h>. Report
from Bruno Haible.
* info/man.c: Remove apparently unnecessary include directive.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c, info/session-cmd.c (info_get_node_with_defaults):
Move to session-cmd.c as that is the only place it is now called.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (info_get_node_with_defaults): Eliminate
erroneous duplicate variable definition.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (info_get_node_with_defaults, info_get_node):
Make info_get_node_with_defaults call info_get_node rather
than the other way around. Move special handling of dir node
and manpages to info_get_node. This means that
info_get_node_with_defaults is more focused on handling
"-v follow-strategy=remain".
2025-07-21 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/input.c, tta/C/parsetexi/separator.c
(handle_open_brace), tta/perl/Texinfo/ParserNonXS.pm
(_process_ignored_raw_format_block_contents, _handle_open_brace): call
next_text instead of new_line. Remove completely new_line, using it
leads to badly placed source marks.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/Makefile.am (ginfo_SOURCES): Remove extraneous \ from
file list. Report from Bruno Haible.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
Add tests of 'follow-strategy' variable
* info/t/follow-remain.sh, info/t/follow-path.sh: new tests.
2025-07-21 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/macro.c (expand_macro_arguments, handle_macro)
(expand_linemacro_arguments), tta/perl/Texinfo/ParserNonXS.pm
(_expand_macro_arguments, _handle_macro, _expand_linemacro_arguments):
call _next_text instead of _new_line to have source marks placed
correctly with text added gradually to the current element.
2025-07-21 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl (_text): handle
bracketed_linemacro_arg better and more simply by recreating the text
the source marks are relative to.
* tta/swig/perl/parse_refold.pl (_convert): always call _convert
on spaces_before_argument and spaces_after_argument, the text is
ignored if in a source mark when processing the line, and the end
source mark could be in the spaces.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (info_get_node_with_defaults): Use default
"node name" of "intro" for a "manual" of "*manpages*", as
before, following a cross-reference to "(*manpages*)", without
a node name, oddly landed you at the man page 'top(1)'.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c, info/dir.c: remove mention of "localdir" files
from comments.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (info_get_node_of_file_buffer):
If node is not found, and node name matches "Top" regardless
of case, then check through tag table again matching
case-insensitively.
(info_get_node_with_defaults): Remove handling of case of "Top"
with list of alternative capitalisations to try.
(info_get_node_of_file_buffer): Remove obsolete part of function
comment saying that a null nodename can be passed in.
2025-07-21 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (add_initial_nodes): Call
info_get_node instead of info_get_node_with_defaults with
a null final argument.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program):
Take extra argument giving full path to executable
and pass to execv.
* info/configfiles.c (run_info_hook):
Avoiding clobbering array argument when calling
get_output_from_program.
* info/man.c (get_manpage_from_formatter): Update
get_output_from_program call.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodes.c (info_get_node_of_file_buffer): Do not
check for null FILE_BUFFER argument.
(info_get_node_with_defaults): Make sure not to call
info_get_node_of_file_buffer with a null argument.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
Tidy up include files
* info/session-cmd.c, info/session.c, info/session.h:
Remove some unnecessary #include or #define directives.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
Tweak ea_scroll_completions_window
* info/echo-area.c (ea_scroll_completions_window):
Do not delegate to info_scroll_forward. Since info_scroll_forward
checks info_explicit_arg and not ea_explicit_arg, "C-u N M-C-v"
would scroll N screens, not N lines. Call set_window_pagetop
directly, instead of via _scroll_forward as is done in
info_scroll_forward.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
info_abort
* info/session.c (info_abort): New function. Call in many
places instead of info_abort_key.
* info/session-cmd.c (info_abort_key): Move body of function
into info_abort.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/session-cmd.c, info/session.c
(info_initialize_numeric_arg): Move to session.c.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/session.c, info/session.h: Declare some functions
using COMMAND_FUNCTION typedef.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/session.c (info_session_quit): New function.
* info/session-cmd.c (info_quit): Call info_session_quit
rather than communicating with main loop by setting a
global variable.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/session-cmd.c: New file, containing all of the
functions defined with DECLARE_INFO_COMMAND that were in
session.c. This means that code in session.c can change
without 'makedoc' having to rerun to rebuild doc.c and funs.h.
* info/session.c (control_g_waiting): New function.
* info/session-cmd.c (info_search_internal): Use it instead of
accessing info_input_buffer directly.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/session.c (info_keyseq_displayed_p):
Eliminate duplicate declaration of static variable. This
interferes with attempts at splitting source code file.
(check_info_keyseq_displayed): Add short wrapper function.
2025-07-20 Patrice Dumas <pertusus@free.fr>
Add source marks for cpp line directives
* tta/C/main/tree_types.h (SM_TYPES_LIST), tta/C/parsetexi/parser.c
(check_line_directive, parse_texi), tta/perl/Texinfo/ParserNonXS.pm
(_check_line_directive, _parse_texi): add line_directive source mark
for cpp line directives in _check_line_directive. Pass current
element to _check_line_directive.
2025-07-20 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm: replace object oriented calls of
file internal functions.
2025-07-20 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm: homogenize formatting of sub
beginning and arguments getting. Remove unused argument, add
prototypes. Replace object oriented calls of file internal functions.
No functional change.
2025-07-20 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl (_text): set length to 0 (empty string
as result) if to and from positions are equal.
* tta/swig/perl/parse_refold.pl (_handle_source_marks): handle
recursive source marks.
* tta/swig/perl/parse_refold.pl: more debugging output.
2025-07-20 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl, tta/swig/perl/parse_refold.pl
(_handle_source_marks): add use strict and use warnings, and
command-line debug option. Pass $type to _handle_source_marks.
Fix other issues uncovered by use strict.
* tta/swig/perl/parse_refold.pl (_convert): also consider
elided_brace_command_arg as a command arg separated by comma.
Handle empty bracketed_arg.
* tta/swig/perl/parse_refold.pl (_handle_source_marks): add DEL
character for del comment.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert) <definfoenclose>:
Split out code from other brace commands.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program):
When returning exit status of executed program, wrap result
from 'wait' function in WEXITSTATUS to get the exit status
as intended.
2025-07-20 Gavin Smith <gavinsmith0123@gmail.com>
add node_from_hook_output
* info/nodes.c (node_from_hook_output): New function.
* info/session.c (info_select_reference),
* info/info.c (get_initial_file): Use it.
2025-07-20 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac (AC_CANONICAL_HOST), tta/perl/CheckXS/configure.ac
(AC_CANONICAL_HOST): call AC_CANONICAL_HOST, as host is used in
txi_PERL_CONF (and possibly in other parts of configure.ac).
* tta/m4/txi_perl_conf.m4: add more messages to show final libperl and
Perl link flags.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/util.c, info/infodoc.c (get_internal_info_window):
Move to infodoc.c. Declare in session.h.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/util.c, info/session.c (file_buffer_of_window):
Move to session.c.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/util.c, info/nodes.c
(node_printed_rep, internal_info_node_p, name_internal_node)
Move functions to nodes.c.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/swig_element_data.h (TXI_TY_FLAGS_LIST),
tta/C/convert/swig_interface.c (element_attribute_string)
(set_element_attribute_string), tta/C/main/build_perl_info.c
(build_element_attribute), tta/C/main/builtin_commands.c
(element_command_name), tta/C/main/element_types.txt,
tta/C/main/tree.c (new_command_element, destroy_element),
tta/C/main/utils.c (new_element_from_names): add TF_with_command
for type of elements coresponding to @-commands with name determined
dynamically. Replace TF_macro_call as add to index_entry_command and
definfoenclose_command. The corresponding elements have
string_info[sit_command_name] set and do not have a builtin cmd code.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/swig/Makefile.am (python_texinfo_wrap.c, perl_texinfo_wrap.c)
(SWIG_header_dependencies): re-add header dependencies for swig
command, they are not added automatically. Revert previous commit.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program):
Add extra parameter to allow suppressing stderr output.
* info/man.c (get_manpage_from_formatter): Hide stderr
output when calling 'get_output_from_program', as "man" sometimes
prints warnings.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/swig_interface.c (element_attribute_string)
(set_element_attribute_string), tta/C/main/build_perl_info.c
(build_element_attribute), tta/C/main/tree_types.h (AI_KEYS_LIST):
remove AI_key_command_name, this information is internal to the C code
and should not go through interfaces.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree.c (new_element, new_command_element),
tta/C/main/utils.c (new_element_from_names), tta/C/parsetexi/macro.c
(handle_macro): create macro call elements with new_command_element.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (element_to_perl_hash),
tta/C/main/manipulate_tree.c (print_element_info),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line, _handle_macro)
(_handle_brace_command): remove info command_name from Perl elements.
cmdname can always be used instead.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (element_to_perl_hash)
(print_element_info): handle user-defined macro call elements together
with other @-commands.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/init/documentation_examples.pm
(my_test_documentation_convert_index_entry_command_type): use cmdname
instead of {'info'}->{'command_name'}.
2025-07-19 Patrice Dumas <pertusus@free.fr>
Add cmdname for user-defined macro calls
* tta/C/main/build_perl_info.c (build_base_element),
tta/C/main/manipulate_tree.c (print_element_details),
tta/perl/Texinfo/ParserNonXS.pm b/tta/perl/Texinfo/ParserNonXS.pm
(_handle_macro): add cmdname to user-defined macro calls elements
in Perl data.
* tta/C/main/convert_to_texinfo.c (convert_to_texinfo_internal),
tta/perl/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo):
handle user-defined macro calls together with @-commands.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/element_types.txt, tta/C/parsetexi/macro.c
(expand_linemacro_arguments), tta/perl/Texinfo/ParserNonXS.pm
(_expand_linemacro_arguments): use a new type for user-defined
linemacro arguments, linemacro_arg as it is not delimited by commas
like line_arg.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/swig/Makefile.am (python_texinfo_wrap.c, perl_texinfo_wrap.c):
remove explicit header dependencies, they are created automatically.
Remove SWIG_header_dependencies.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl (_convert): handle alias. Pass
current source mark to recursive calls of _convert. Call _convert for
all conversions to be sure that alias and source marks are correctly
expanded.
2025-07-19 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/swig_interface.c (element_cmdname): return command
name for user-defined macro calls too.
2025-07-19 Patrice Dumas <pertusus@free.fr>
Rename swig_command_data.h as swig_element_data.h and add types
* tta/C/Makefile.am (C_libtexinfo_main_sources),
tta/C/convert/swig_element_data.h: rename swig_command_data.h as
swig_element_data.h.
* tta/C/convert/swig_element_data.h (TXI_TY_FLAGS_LIST),
tta/C/convert/swig_interface.c (element_type_is_*),
tta/swig/texinfo.i: add element_type_is_* functions.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (main): do not call close_info_session unnecessarily
after info_session, as info_session calls this itself.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (main) <manpage fallback>: Check success of
finding initial file before trying to fallback.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (main) <--all>: Handle --all completely within
this condition, and call 'exit' at the end. This eliminates
any dependence following code might have on --all.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (main) <not --all>: Move block of code
out of "else" clause of condition. This reduces the indentation
by one level.
2025-07-19 Gavin Smith <gavinsmith0123@gmail.com>
info_session_allfiles
* info/session.c (info_session): Remove second parameter
and do not use for --all.
(info_session_allfiles): New function, used for --all.
* info/info.c (main) <--all>: Call info_session_allfiles
directly in this section rather than leaving it for info_session
later on in the function.
2025-07-18 Gavin Smith <gavinsmith0123@gmail.com>
Use info_session_one_node more
* info/info.c (get_initial_file):
Remove logic looking for a manpage from here.
(main): Check for man page after calling get_initial_file, and
if found, start info session with info_session_one_node.
* info/session.c (info_intuit_options_node) Return a pointer to NODE
rather than than a REFERENCE.
(info_goto_invocation_node): Update.
* info/info.c (add_initial_nodes) <--show-options>: Start session
with invocation node with info_session_one_node.
2025-07-18 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/ext/highlight_syntax.pm (highlight_process):
Create output directory if it does not exist. Otherwise there
can be an error that a file couldn't be opened.
Report and investigation by Raymond Toy <toy.raymond@gmail.com>.
2025-07-18 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (main): Reformat string constant in usage message
so to have whitespace in first column. No functional change.
2025-07-18 Gavin Smith <gavinsmith0123@gmail.com>
* info/session.c (info_session_one_node): New function.
* info/info.c (get_initial_file, main): Call info_session_one_node.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/element_types.txt, tta/C/main/utils.c
(new_element_from_names), tta/C/parsetexi/handle_commands.c
(handle_other_command): remove C specific container_command type, use
nobrace_command instead.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/element_types.txt, tta/C/main/utils.c
(new_element_from_names), tta/C/parsetexi/handle_commands.c
(handle_brace_command): remove C specific brace_args_command type, use
brace_command instead.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (EXTRA_DIST),
tta/swig/perl/test_refold.sh: compare the output of parse_refold.pl
and the original file for all the Texinfo manuals generated based on
tta/perl/t/*.t tests.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/parse_refold.pl: finished implementation.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_element_source_info): define
decoded_file_name even if there is no encoding.
2025-07-18 Gavin Smith <gavinsmith0123@gmail.com>
* tta/configure.ac (--with-swig): Make third argument to AC_ARG_WITH
blank and change the fourth to set 'with_swig' to 'check' rather than
'no'. Do not set 'with_swig' variable before AC_ARG_WITH use as
this appears to lead the third argument always to be executed.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure, find_identifier_target): remove
unused variables.
* tta/C/structuring_transfo/structuring.c (construct_nodes_tree): add
a const.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/errors.c (count_errors): add to count the number of
errors that are not continuations.
* tta/C/main/document_types.h (ERROR_MESSAGE_LIST),
tta/C/main/errors.c (message_list_line_formatted_message)
(message_list_document_formatted_message, output_error_messages):
remove the number of errors that are not continuations from
ERROR_MESSAGE_LIST, call count_errors to determine it when needed
only. Same as Perl.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (pass_errors_to_hv): inline
add_formatted_error_messages in pass_errors_to_hv.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (converter_or_document_line_warn): add
continuation argument.
* tta/perl/Texinfo/Common.pm (converter_or_document_line_warn),
tta/perl/Texinfo/Transformations.pm
(_protect_hashchar_at_line_beginning): call document_line_warn.
* tta/perl/Texinfo/Document.pm (document_line_warn)
(document_line_error): remove intermediary variable.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (document_line_warn)
(document_line_error), tta/perl/Texinfo/Structuring.pm: move
structuring_line_warn to Document.pm and rename as document_line_warn.
Move structuring_line_error to Document.pm and rename as
document_line_error. Remove unused silent argument of
document_line_warn and document_line_error. Update callers.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (pass_errors_to_hv)
(pass_document_parser_errors_to_parser_sv): rename
pass_errors_to_registrar as pass_errors_to_hv and
pass_document_parser_errors_to_registrar as
pass_document_parser_errors_to_parser_sv. Rename registrar as
error_messages. Update callers.
* tta/C/main/build_perl_info.c (build_minimal_document)
(build_document), tta/perl/Texinfo/Common.pm
(converter_or_document_line_warn), tta/perl/Texinfo/Document.pm
(new_document, parser_errors, errors), tta/perl/Texinfo/ParserNonXS.pm
(parse_texi_line, parse_texi_file, errors, _line_warn, _line_error)
(_next_text, _parse_texi), tta/perl/Texinfo/Structuring.pm
(structuring_line_warn, structuring_line_error),
tta/perl/Texinfo/Transformations.pm (_new_node)
(_protect_hashchar_at_line_beginning),
tta/perl/XSTexinfo/parser_document/Parsetexi.xs (errors):
rename registrar as error_messages.
2025-07-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (_existing_label_error)
(set_labels_identifiers_target, register_label_element): rename
registrar as error_messages.
* tta/perl/Texinfo/Transformations.pm (_new_node)
(insert_nodes_for_sectioning_commands): use the document only for
error messages.
* tta/perl/Texinfo/Transformations.pm
(_protect_hashchar_at_line_beginning)
(protect_hashchar_at_line_beginning): use document only for error
reporting.
2025-07-18 Gavin Smith <gavinsmith0123@gmail.com>
Allow 'manual-not-found' hook to create a node
* info/info.c (get_initial_file): If the 'manual-not-found'
hook produced any output, use the output as a node and start
the Info session displaying that node.
* doc/info-stnd.texi (Hooks): update with example of outputing
a node.
2025-07-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm (new_detailmenu): pass $debug for
translations as argument.
* tta/perl/Texinfo/Common.pm (converter_or_document_line_warn),
tta/perl/Texinfo/Document.pm (setup_indices_sort_strings)
(indices_sort_strings, sorted_indices_by_letter)
(sorted_indices_by_index, print_document_indices_sort_strings),
tta/perl/Texinfo/Indices.pm (setup_index_entries_sort_strings)
(_setup_sort_sortable_strings_collator, sort_indices_by_index)
(sort_indices_by_letter), tta/perl/Texinfo/Structuring.pm
(new_detailmenu, _print_down_menus),
tta/perl/Texinfo/Transformations.pm (regenerate_master_menu),
tta/perl/t/z_misc/do_master_menu.t, tta/perl/t/z_misc/test_sort.t:
use converter and/or document in argument instead of
customization_information and registrar for error messages, and use
the document if the converter is not set. Replace
converter_or_registrar_line_warn by converter_or_document_line_warn.
2025-07-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Indices.pm (_setup_sort_sortable_strings_collator)
(sort_indices_by_index, sort_indices_by_letter): remove unused
registrar argument. Update callers.
* tta/perl/Texinfo/Structuring.pm (_check_menu_entry): remove unused
customization_information argument. Update callers.
2025-07-17 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Hooks): initial documentation of
'node-not-found-interactive'.
2025-07-17 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program): Do not
close stderr in child process.
* doc/info-stnd.texi (Hooks): Hooks should print messages on
standard error.
2025-07-17 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (add_formatted_error_messages)
(pass_errors_to_registrar, pass_document_parser_errors_to_registrar)
(build_minimal_document, build_document),
tta/perl/Texinfo/Convert/HTML.pm
(_prepare_output_units_global_targets), tta/perl/Texinfo/Document.pm
(new_document, parser_errors, errors), tta/perl/Texinfo/ParserNonXS.pm
(parse_texi_line, errors), tta/perl/Texinfo/Report.pm (count_errors),
tta/perl/Texinfo/Translations.pm (_replace_convert_substrings),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (document_errors)
(document_parser_errors),
tta/perl/XSTexinfo/parser_document/Parsetexi.xs (errors),
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(utils_tree_element_expand_verbatiminclude), tta/perl/t/test_utils.pl
(test), tta/perl/texi2any.pl (handle_errors): store error and warning
messages directly in lists in document and parser. Determine the
number of errors only when used, with the new count_errors method.
Remove new_texinfo_report. Remove Texinfo::Report new, clear,
add_formatted_message and errors.
* tta/perl/Texinfo/Report.pm (line_warn, line_error, document_warn)
(document_error), tta/perl/Texinfo/Common.pm
(converter_or_registrar_line_warn), tta/perl/Texinfo/Document.pm
(_existing_label_error), tta/perl/Texinfo/ParserNonXS.pm
(parse_texi_file, _line_warn, _line_error, _next_text),
tta/perl/Texinfo/Structuring.pm (structuring_line_warn)
(structuring_line_error), tta/perl/Texinfo/Transformations.pm
(_protect_hashchar_at_line_beginning): have
line_error, line_warn, document_error and document_warn return the
error message instead of putting it in a list.
* tta/perl/Texinfo/Document.pm, tta/perl/Texinfo/Structuring.pm
(structuring_line_warn, structuring_line_error),
tta/perl/Texinfo/Transformations.pm (_new_node)
(regenerate_master_menu, protect_hashchar_at_line_beginning),
tta/perl/t/z_misc/do_master_menu.t, tta/perl/t/z_misc/test_sort.t:
access document messages list directly, not through a method. Remove
the registrar method.
2025-07-17 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/z_misc/same_parser_multiple_files.t
(_do_format_test_file), tta/perl/t/z_misc/no_structure_test.t
(_do_format_test_file): return directly the converter error messages
list.
2025-07-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (convert_to_*): return directly the
converter error messages list.
2025-07-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (set_labels_identifiers_target): use
the registrar given in argument.
* tta/perl/Texinfo/Document.pm (parser_errors, errors)
(_existing_label_error), tta/perl/Texinfo/ParserNonXS.pm
(parse_texi_file, errors, _line_error, _next_text),
tta/perl/Texinfo/Report.pm (new, errors, clear, add_formatted_message)
(format_line_message, line_warn, line_error, document_warn)
(document_error), tta/perl/Texinfo/Structuring.pm
(structuring_line_warn, structuring_line_error),
tta/perl/Texinfo/Transformations.pm
(_protect_hashchar_at_line_beginning), tta/perl/t/test_utils.pl
(convert_to_*), tta/perl/t/z_misc/no_structure_test.t
(_do_format_test_file), tta/perl/t/z_misc/same_parser_multiple_files.t
(_do_format_test_file), tta/perl/texi2any.pl b/tta/perl/texi2any.pl:
do not call Texinfo::Report functions as methods. Rename $self in
Texinfo::Report as $error_messages.
2025-07-16 Gavin Smith <gavinsmith0123@gmail.com>
'node-not-found-interactive' hook
* info/session.c (info_select_reference):
Run 'node-not-found-interactive' and create a node with the
results.
2025-07-16 Gavin Smith <gavinsmith0123@gmail.com>
* info/run-external.c (get_output_from_program): Return exit
status of program or 127 if there was an error. Add a parameter
to save output from the program. All callers updated.
* info/configfiles.c (run_info_hook):
Use get_output_from_program. Add a parameter to save hook
output. All callers updated.
2025-07-16 Gavin Smith <gavinsmith0123@gmail.com>
info/run-external.c
* info/run-external.c: New file.
* info/run-external.c (get_output_from_program): Move code for running
and capturing the output of an external program here from man.c.
* info/man.c (get_manpage_from_formatter):
Call get_output_from_program.
* info/man.c (fd_set_cast) [hpux, !hpux]: Remove definiton which
appears to accommodate a system where fd_set does not exist.
* info/run-external.c, info/man.c (read_from_fd):
Move to run-external.c.
2025-07-16 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl: improve MakeMaker based build system.
Modify AUTHOR to use the bug-texinfo address instead of the personal
address. Remove some dubious original author information.
2025-07-16 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (test_files, EXTRA_DIST): remove t/01use.t
and test_Texinfo.pl that are not useful.
2025-07-16 Gavin Smith <gavinsmith0123@gmail.com>
* doc/info-stnd.texi (Hooks): New chapter to document new Info
hooks feature.
2025-07-17 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac (perl_install*): substitute Perl conf siteprefix or
vendorprefix with ${prefix} to follow the GNU Standards and have
make distcheck work.
2025-07-17 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (AM_CPPFLAGS): do not embed a perl
interpreter as there is already one running.
* tta/swig/perl/Makefile.am (clean-local): add for leftovers of Perl
MakeMaker based build system.
* tta/swig/README, tta/swig/TODO: update.
2025-07-16 Patrice Dumas <pertusus@free.fr>
* tta/swig/perl/Makefile.am (test_files): remove t/30source_marks.t as
there something xrong with embedded Perl and the SWIG interface.
2025-07-16 Patrice Dumas <pertusus@free.fr>
Integrate Perl SWIG interface in the build system
* tta/swig/python/Makefile.am (AM_CPPFLAGS), tta/swig/texinfo.i
(setup), tta/configure.ac, tta/swig/perl/Makefile.PL: remove include
<config.h> from texinfo.i as it could be incompatible with Perl
includes. Pass EMBED_PERL and PACKAGE_VERSION_CONFIG through
AM_CPPFLAGS. Remove HAVE_EMBEDDED_PERL. Modify setup to use
EMBED_PERL to set the embed_perl variable only.
* tta/swig/python/Makefile.am (txi_libs_srcdir): add and use variable.
* configure.ac, tta/configure.ac (perl-install-mode, installsitearch)
(installvendorarch, installvendorlib, installsitelib, swig_perl_tests)
(perlarchdir, perllibdir, AC_CONFIG_FILES), tta/swig/Makefile.am
(SUBDIRS, DIST_SUBDIRS), tta/swig/perl/Makefile.am: integrate Perl
SWIG interface in the build system.
* tta/swig/perl/t/*.t, tta/swig/perl/parse_refold.pl: add code to find
module and XS object in source dir and build dir.
* tta/swig/perl/t/*.t, tta/swig/perl/parse_refold.pl: update.
2025-07-15 Gavin Smith <gavinsmith0123@gmail.com>
Add @documentinfo, @publication, @maketitle.
* doc/texinfo.tex
(@documentinfo): Define environment.
(@title, @subtitle, @author): If inside @documentinfo environment,
save argument.
(@publication): Add command, working like @copying.
(@maketitle): Output title page and title page verso, depending
on what information is available from @documentinfo, @publication
and @copying.
Suggestions from Patrice.
2025-07-15 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\finishtitlepage): Put bottom rule at the
bottom of the title page even if no @author line was given.
2025-07-15 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac (HAVE_EMBEDDED_PERL): add define
HAVE_EMBEDDED_PERL.
* tta/swig/python/Makefile.am (_Texinfo_la_LIBADD): add PERL_EMBEDDED
case linking flags.
* tta/swig/texinfo.i (setup): setup paths and call
txi_setup_main_load_interpreter, remove from %init such that
texinfo_uninstalled can be passed in argument.
* tta/swig/python/test_Texinfo.py: call Texinfo.setup.
2025-07-14 Patrice Dumas <pertusus@free.fr>
Integrate swig and Python interface in the tta build system
* configure.ac (AC_ARG_WITH swig), tta/Makefile.am (SUBDIRS)
(DIST_SUBDIRS), tta/configure.ac (with_swig, SWIG_INTERFACES)
(with_swig_python, SWIG_PYTHON_INTERFACE, AC_CONFIG_FILES)
(AC_ARG_WITH swig): add --with-swig options to configure. Set
automake conditionals based on SWIG and Python macros results.
Add swig directory to tta/Makefile.am, conditionally.
* tta/swig/Makefile.am (SUBDIRS, DIST_SUBDIRS): build python interface
only if SWIG_PYTHON_INTERFACE is set.
* tta/swig/python/Makefile.am (_Texinfo_la_LIBADD): update paths.
* tta/swig/python/Makefile.am (_Texinfo_la_LIBADD): add perl libraries
only if XS is not disabled.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/m4/ax_pkg_swig.m4, tta/m4/ax_python_devel.m4: update to git
latest.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/m4/ax_pkg_swig.m4, tta/m4/ax_python_devel.m4,
tta/m4/ax_swig_python.m4, README-hacking: add local copies of the
autoconf archive macros used for SWIG/Python. They seem to be very
stable.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): check that
get_label_element returns something for a node direction.
* tta/perl/Texinfo/ParserNonXS.pm (_raw_line_command_arg_spaces)
(_handle_line_command): avoid autovivification.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac (CC, CFLAGS, CPPFLAGS, LDFLAGS): set CC, CFLAGS,
CPPFLAGS and LDFLAGS to PERL_EXT_* values only if enable_xs is not no.
That way, a 'pure C' build of the libraries does not use the
PERL_EXT_* variables but the regular C variables.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac: use enable_xs instead of disable_xs, as disable_xs
does not exist.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ReaderNonXS.pm (read), tta/C/main/reader.c
(txi_reader_read): remove the commented out code that put spaces
after/before commands and comment at ends in the Reader flow. It is
better to let the calling code decide if this information is relevant
or not.
Other changes in comments.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): inline call of
_new_line, and have the text element hold the line, such that the
source marks are well positioned. Save the current source info and
the source info at the end of the line to keep the current source info
while the command is processed and switch to the next at the end of
the line.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (add_comment_at_end): determine
comment text length early, before possibly adding an end of line.
* tta/C/parsetexi/handle_commands.c (add_comment_at_end): use
comment_text_element for this element source marks.
* tta/perl/Texinfo/ParserNonXS.pm (_add_comment_at_end): delete
source mark position instead of setting it to 0.
* tta/perl/t/60macro.t (macro_expansion_in_raw_line_leading_spaces)
(macro_expansion_in_set_comment)
(double_macro_expansion_in_set_comment)
(double_macro_expansion_in_set_arg_comment)
(macro_expansion_in_set_comment_command)
(macro_expansion_in_set_comment_leading_spaces),
tta/perl/Makefile.tres: add tests of source marks positions associated
to end of macro expansion in raw line command (@set).
2025-07-14 Patrice Dumas <pertusus@free.fr>
* util/texinfo.dtd: allow %Spaces.elements; in lineraw commands
special arguments.
2025-07-14 Patrice Dumas <pertusus@free.fr>
* util/texinfo.dtd: remove cropmarks, setcontentsaftertitlepage and
setshortcontentsaftertitlepage.
* util/texinfo.dtd: update for rawline commands changes.
* util/txixml2texi.pl: do not treat set nor clickstyle especially.
2025-07-14 Gavin Smith <gavinsmith0123@gmail.com>
Eliminate menu_directions
* tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus)
(print_nodes_list): Remove any code setting or reading
'menu_directions'.
* tta/C/main/tree_types.h (NODE_RELATIONS): Remove field
"const struct ELEMENT **menu_directions".
* tta/C/structuring_transfo/structuring.c
(complete_node_tree_with_menus),
* tta/C/main/structure_list.c
(free_node_relations_list, print_node_relations_info_internal),
* tta/C/main/build_perl_info.c (build_node_relations):
Remove any use of 'menu_directions' field of NODE_RELATIONS.
* tta/C/main/build_perl_info.c (build_section_relations):
Use STORE_RELS_INFO_NODE_RELATIONS instead of
STORE_RELS_INFO_SECTION_RELATIONS to store 'part_following_node'.
The latter was erroneous but the error was hidden due to
the NODE_RELATIONS and SECTION_RELATIONS objects having the same
size by sheer chance.
2025-07-14 Gavin Smith <gavinsmith0123@gmail.com>
Combine complete_node_tree_with_menus and set_menus_node_directions
* tta/perl/Texinfo/Structuring.pm,
* tta/perl/t/results/html_tests/node_footnote_use_node.pl
(complete_node_tree_with_menus, set_menus_node_directions):
Rename set_menus_node_directions to complete_node_tree_with_menus
and extend to perform the task of this function.
This change means that directions will be determined from
the first menu a node is listed in rather than the last.
Next and prev directions can also be set to external nodes.
2025-07-13 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus),
* tta/C/structuring_transfo/structuring. (complete_node_tree_with_menus):
Comment updated as this function no longer calls set_top_node_next.
2025-07-13 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): use the same
formatting for rawline commands without specific parsing independently
of the number of arguments.
2025-07-13 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/swig_interface.c (element_attribute_string)
(set_element_attribute_string), tta/C/main/build_perl_info.c
(build_element_attribute, element_to_perl_hash),
tta/C/main/convert_to_texinfo.c (convert_to_texinfo_internal),
tta/C/main/manipulate_tree.c (print_element_info),
tta/C/main/tree_types.h (enum string_info_type),
tta/perl/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm,
tta/perl/Texinfo/ManipulateTree.pm (_print_element_associated_info), :
remove everything related to arg_line now that it is not generated
anymore.
* tta/C/main/element_types.txt, tta/C/main/manipulate_tree.c
(copy_tree_internal), tta/C/main/node_name_normalization.c
(convert_to_normalized_internal), tta/C/main/tree.c
(new_command_element, destroy_element), tta/C/main/utils.c
(new_element_from_names),
tta/perl/Texinfo/Convert/NodeNameNormalization.pm (_convert): remove
lineraw_command, use line_command for the lineraw line commands.
* tta/C/main/element_types.txt, tta/C/main/manipulate_tree.c
(protect_text), tta/C/parsetexi/handle_commands.c (add_comment_at_end)
(handle_line_command), tta/perl/Texinfo/ManipulateTree.pm
(_protect_text), tta/perl/Texinfo/ParserNonXS.pm (_add_comment_at_end)
(_handle_line_command): remove rawline_arg and add rawline_text. Use
rawline_text as type of text in rawline commands arguments.
* tta/C/structuring_transfo/transformations.c (correct_level),
tta/perl/Texinfo/Transformations.pm (_correct_level): update for
changes in tree.
2025-07-13 Patrice Dumas <pertusus@free.fr>
Same tree elements for lineraw as for other line commands
* tta/C/parsetexi/handle_commands.c (skip_to_argument_end): rename
skip_to_comment as skip_to_argument_end, and extract skip_to_comment
from skip_to_argument_end, in which the pointer is not going back for
whitespaces.
* tta/C/parsetexi/handle_commands.c (parse_rawline_command),
tta/perl/Texinfo/ParserNonXS.pm (_parse_rawline_command): return
args as strings, return the comment text instead of an indicator. Do
not return anything for non special arg commands. Update caller.
* tta/C/main/element_types.txt, tta/C/parsetexi/handle_commands.c
(new_element_at_begin_reloc, raw_line_command_arg_spaces)
(add_comment_at_end, handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_new_element_at_begin_reloc)
(_raw_line_command_arg_spaces, _add_comment_at_end)
(_handle_line_command): change the representation of lineraw commands
arguments, setting up a line args, text argument and info spaces
elements. This allows to place correctly the source marks, and
relocate them.
* tta/perl/Texinfo/Convert/DocBook.pm (_format_comment)
(_format_comment_or_end_line, _convert),
tta/perl/t/init/ignore_and_comments_output.init: update for change in
comment tree element.
* tta/perl/Texinfo/Convert/LaTeX.pm (_convert): update for change in
vskip.
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_format_comment)
(_format_comment_or_end_line, _convert): update for changes in lineraw
tree commands.
2025-07-13 Gavin Smith <gavinsmith0123@gmail.com>
Move set_menus_node_directions call
* tta/perl/Texinfo/Structuring.pm,
* tta/C/structuring_transfo/structuring.c
(complete_node_tree_with_menus, check_node_tree_menu_structure):
Call set_menus_node_directions in complete_node_tree_with_menus
rather than check_node_tree_menu_structure as 'menu_directions'
are no longer used in the latter.
2025-07-13 Gavin Smith <gavinsmith0123@gmail.com>
Save condition in variable
* tta/C/structuring_transfo/structuring.c
(check_nodes_are_referenced, sectioning_structure, check_menu_entry)
(construct_nodes_tree, check_node_tree_menu_structure)
(associate_internal_references): Set variable for checking DEBUG
in options for passing to message_list_command_warn rather than
repeating the condition. This helps to shorten the code.
2025-07-13 Gavin Smith <gavinsmith0123@gmail.com>
Revise node pointer checking
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Report line number of menu entry rather than node line. Although
the user's mistake could be in either place, it would be harder for
them to find the menu entry, especially considering a node could be
listed in more than one place in a menu.
2025-07-13 Gavin Smith <gavinsmith0123@gmail.com>
Revise node pointer checking
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Loop over every menu in every node and check consistency with
any explicit node pointers.
* tta/perl/t/40moresectioning.t (rec_nodes):
Remove TODO comment about only one menu being checked.
This change also has the effect that warnings will be made
about pointers to external nodes.
2025-07-12 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (@documentlanguage): Do not issue a fatal
error if txi-en.tex only could not be found. Report from
Sebastian Meyer <seb.meyer@fau.de>.
2025-07-11 Gavin Smith <gavinsmith0123@gmail.com>
Wrappers for line_warn and line_error.
* tta/perl/Texinfo/Structuring.pm
(structuring_line_warn, structuring_line_error): Make $continutation
argument optional and set to 0 if not given.
(_check_menu_entry): Take Texinfo::Document argument rather
than Texinfo::Report.
2025-07-11 Gavin Smith <gavinsmith0123@gmail.com>
Wrappers for line_warn and line_error.
* tta/perl/Texinfo/Structuring.pm
(structuring_line_warn, structuring_line_error): New functions.
Take $document argument and retrieve "DEBUG" setting therefrom.
Use throughout module.
This avoids storing more information in the Texinfo::Report
object which conflicts with Patrice's ideas for error reporting.
2025-07-11 Gavin Smith <gavinsmith0123@gmail.com>
Revert change on 2025-07-11 "No debug argument for line_error or line_warn"
2025-07-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_element_details)
(print_tree_details), tta/swig/texinfo.i: split print_element_details
out of print_tree_details. Use in texinfo.i.
2025-07-11 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (_place_source_mark),
tta/C/parsetexi/source_marks.c (place_source_mark): find position on
mark_element.
2025-07-11 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Common.pm (debug_print_tree):
Export from module as 'print_tree' as a convenience for
working on the program.
2025-07-11 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Common.pm (debug_print_tree):
Strip bless (..., 'Texinfo::TreeElement') from output.
2025-07-11 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/source_marks.c (place_source_mark),
tta/perl/Texinfo/ParserNonXS.pm (_place_source_mark): place source
mark after the block_line_arg/line_arg and not between the
arguments_line and the block_line_arg/line_arg.
2025-07-11 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (parser, parse_texi_line): create
a parser registrar only where it is needed, in parse_texi_line.
2025-07-11 Patrice Dumas <pertusus@free.fr>
* tta/swig/configure.ac, tta/swig/python/Makefile.am: update paths.
Add Perl in the Python object link since it needs to be there as there
is no Perl executable already. Still work in progress.
2025-07-11 Gavin Smith <gavinsmith0123@gmail.com>
No debug argument for line_error or line_warn
* tta/perl/Texinfo/Report.pm (new): Take optional argument
to say whether debugging output is on, and save in the
Texinfo::Report object.
(line_error, line_warn): Remove $debug argument.
* tta/perl/Texinfo/Document.pm (new_document): Take additional
argument which is propagated to Texinfo::Report::new.
All callers updated.
2025-07-10 Gavin Smith <gavinsmith0123@gmail.com>
Prevent use of uninitialized value in string comparison
* tta/perl/Texinfo/Structuring.pm: Reverse order of a conditional..
* tta/perl/Texinfo/ManipulateTree.pm (first_menu_node):
Add detail to comment that it might not return a reference
to a node, but to a 'menu_entry_node' element.
This happened with the test "perl -w t/html_tests.t menu".
2025-07-10 Patrice Dumas <pertusus@free.fr>
Move back util/swig to tta/swig
* tta/swig/Makefile.am, tta/swig/perl/Makefile.PL: update paths.
* ChangeLog: change in spacing.
2025-07-10 Patrice Dumas <pertusus@free.fr>
* tta/C/main/command_data.awk: generate command_data only for the
output. Exit if flags or category are missing.
2025-07-10 Patrice Dumas <pertusus@free.fr>
* tta/C/main/command_data.awk, tta/data/command_data.txt,
tta/maintain/regenerate_commands_perl_info.pl: consider that the first
flag is the category of the command. Remove the uppercased category
from command_data.txt, add it automatically in command_data.awk.
2025-07-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm: remove internal commands outside of the
loop adding commands.
* tta/maintain/regenerate_commands_perl_info.pl,
tta/data/command_data.txt: do not consider internal commands as a
separate category, but as a flag.
* tta/data/command_data.txt (index_entry_command): remove explicit
no_paragraph, it is added automatically.
2025-07-10 Gavin Smith <gavinsmith0123@gmail.com>
Use Texinfo::ManipulateTree::normalized_entry_associated_internal_node
* tta/perl/Texinfo/Structuring.pm
(_register_menu_node_targets, check_node_tree_menu_structure):
Call Texinfo::ManipulateTree::normalized_entry_associated_internal_node
to avoid using the same logic in multiple places.
* tta/perl/Texinfo/ManipulateTree.pm (normalized_entry_associated_internal_node):
Add to @EXPORT_OK.
2025-07-09 Patrice Dumas <pertusus@free.fr>
* tta/C/main/command_data.awk: set data type to other when there is no
data type, for block commands.
* tta/C/main/command_data.awk: setup lists of command data type per
command category, TXI_CMD_CATEGORY_* in command_ids.h.
* tta/C/main/builtin_commands.h (enum line_command_type)
(enum nobrace_command_type, enum block_command_type)
(enum brace_command_type): use enums for command data types, generated
based on TXI_CMD_CATEGORY_*.
* util/swig/Makefile.am, util/swig/texinfo.i,
tta/C/convert/swig_command_data.h, tta/C/convert/swig_interface.c
(*_command_data_type_name, element_command_data_type)
(element_command_is_*): add lists of flags. Generate element commands
classification. Add names of command data types. Add
element_command_data_type that returns a command element data type.
2025-07-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Writing a Menu): Edit description
of "menu comment" lines.
2025-07-09 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Add check if variable defined before checking equality.
2025-07-08 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert, process_printindex):
Remove useless non-void return statements.
2025-07-08 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (_node_automatic_directions):
New function to check if a node has automatic directions, matching
XS code.
2025-07-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\contents): Mark the beginning of the contents
with a small \penalty.
(\partentry): check for this \penalty and use less space if at the
very beginning.
2025-07-07 Patrice Dumas <pertusus@free.fr>
Skip unknown tag in Info tag table
* info/nodes.c (get_nodes_of_tags_table): skip an unknown tag in tag
table instead of considering that this is the end of the tag table.
An unknown tag is detected as a line with a colon :.
Note that previous Info readers will not find the nodes and anchors
after an unknown tag, therefore new tags could be introduced
in a backawrd compatible way only when all the older Info readers have
been replaced. The Emacs Info reader already skips unknown tags.
2025-07-07 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\raggedbottom): Reduce stretch from 60pt
to 30pt to avoid too much space being left at the bottom of
pages in the table of contents. Suggestion from Werner.
2025-07-07 Gavin Smith <gavinsmith0123@gmail.com>
Part line tables of contents formatting
* doc/texinfo.tex (\ifafterpartentry): new conditional.
(\dopartentry, \dochapentry):
Discourage page break between part entry and chapter entry
in table of contents.
(\dopartentry): call \entryinternal directly rather than
going through \tocentry.
2025-07-07 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_default_format_date_in_header)
(html_convert_printindex_command), tta/C/main/convert_utils.c
(setup_convert_utils), tta/C/main/element_types.txt,
tta/C/main/manipulate_tree.c (protect_text),
tta/C/structuring_transfo/transformations.c
(protect_hashchar_at_line_beginning_internal): replace
brace_noarg_command type by brace_command. Remove brace_noarg_command
type.
2025-07-07 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (teximakehtml_SOURCES): add
main/replace_set_perl_interpreter.c.
2025-07-07 Patrice Dumas <pertusus@free.fr>
Build the C libraries without Perl C code if XS is disabled
* tta/C/convert/replace_perl_call_html_function.c
(call_latex_convert_to_latex_math),
tta/C/main/replace_perl_api_call.c: move
call_latex_convert_to_latex_math to replace_perl_call_html_function.c,
since it is now in call_html_perl_function.c.
* tta/C/main/replace_perl_api_call.c, tta/C/Makefile.am
(libperlcall_utils_la_SOURCES), tta/C/main/xs_utils.c,
tta/C/main/replace_set_perl_interpreter.c,
tta/C/main/set_perl_interpreter.c (set_no_perl_interpreter)
(get_no_perl_interpreter): move set_no_perl_interpreter and
get_no_perl_interpreter to a different file to be able to replace
those two functions only, depending on whether there is XS or not.
* tta/C/Makefile.am (libperlcall_utils_la_SOURCES)
(libcallperl_libtexinfo_la_SOURCES, libtexinfoxs_la_as_dependency)
(libcallperl_libtexinfo_convert_la_SOURCES)
(libcallperl_libtexinfo_convert_la_LIBADD)
(libtexinfo_convert_la_LIBADD, libtexinfo_main_la_LIBADD),
tta/Makefile.am (SUBDIRS): build the C libraries without the C Perl,
ie with replacement functions used in libraries and without building
libtexinfoxs.la nor libtexinfo-convertxs.la if HAVE_ICONV and
DISABLE_XS are set.
2025-07-07 Gavin Smith <gavinsmith0123@gmail.com>
Part line tables of contents formatting
* doc/texinfo.tex (\partentry): Do not indent part line
and increase preceding vertical space. Suggestion from Werner.
(\shortpartentry): No indent.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_to_texinfo.c (convert_to_texinfo_internal),
tta/perl/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo): handle
bracketed_linemacro_arg type with text elements, as it is a text
element.
* util/swig/perl/t/30source_marks.t: add @linemacro calls test.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_to_texinfo.c (convert_to_texinfo_internal),
tta/perl/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo): output the
user-defined macro name, braces and comma when expanding a
user-defined macro call (only appearing in source marks).
2025-07-06 Patrice Dumas <pertusus@free.fr>
* util/swig/texinfo.i: avoid char * memory leaks with %newobject.
Add tree_print_details.
2025-07-06 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/structuring_transfo/structuring.c
(node_automatic_directions): New helper function.
(construct_nodes_tree, check_nodes_are_referenced)
(complete_node_tree_with_menus, node_number_of_node)
(check_node_tree_menu_structure, set_top_node_next): Use it.
2025-07-06 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure): Look up "Top" node before
iterating over nodes to avoid checking normalized node name
every time. Use a "continue" statement to exdent a conditional block.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/swig_interface.c, util/swig/texinfo.i: add source
marks.
Improve util/swig/perl/ distribution.
2025-07-06 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/structuring_transfo/structuring.c
(node_relations_of_node, node_number_of_node): New functions.
(check_nodes_are_referenced, set_menus_node_directions)
(check_node_tree_menu_structure, set_top_node_next, print_down_menus):
Use them.
2025-07-06 Gavin Smith <gavinsmith0123@gmail.com>
No use of menu_directions in check_nodes_are_referenced
* tta/C/structuring_transfo/structuring.c (check_nodes_are_referenced),
* tta/perl/Texinfo/Structuring.pm (check_nodes_are_referenced):
Keep track of what nodes appeared in menus when finding references
to nodes. Then use this for "node `%s' not in menu" message rather
than checking "up" in menu_directions.
2025-07-06 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking: new ChangeLog after next release.
2025-07-06 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/structuring_transfo/structuring.c (set_menus_node_directions):
Declare as static.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* util/swig/Makefile.am (BUILT_SOURCES, perl/perl_texinfo_wrap.c),
util/swig/perl/Makefile.PL, util/swig/perl/t/01use.t,
util/swig/perl/test_Texinfo.pl: preliminary Perl extension module
based on the SWIG interface.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* util/swig/python/Makefile.am (MAINTAINERCLEANFILES): add Texinfo.py
to MAINTAINERCLEANFILES.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* util/swig/python/Makefile.am, util/swig/Makefile.am (SUBDIRS)
(BUILT_SOURCES, python/python_texinfo_wrap.c), util/swig/configure.ac
(AC_CONFIG_FILES): move python specific files to the new python
subdirectory. swig is still called from util/swig/.
2025-07-06 Patrice Dumas <pertusus@free.fr>
Move SWIG C interface part to libtexinfo-main
* tta/C/Makefile.am (C_libtexinfo_main_sources),
tta/C/convert/swig_interface.c, tta/C/convert/swig_interface.h,
util/swig/Makefile.am (_Texinfo_la_SOURCES), util/swig/texinfo.i:
rename tree_element.c as swig_interface.c, move to tta/C/convert/ and
build as part of libtexinfo-main.
* tta/C/convert/swig_interface.c (get_node_relations)
(get_section_relations, get_heading_relations): cast int to size_t
before doing a comparison.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm: fix POD.
2025-07-06 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs: remove
set_menus_node_directions.
2025-07-06 Gavin Smith <gavinsmith0123@gmail.com>
Make set_menus_node_directions a module-private function
* tta/perl/texi2any.pl,
* tta/perl/t/test_utils.pl,
* tta/C/convert/texinfo.c (txi_complete_document):
Remove call to set_menus_node_directions before
check_node_tree_menu_structure.
* tta/perl/Texinfo/Structuring.pm
(set_menus_node_directions, _set_menus_node_directions):
Rename. Function only for internal use. Update POD documentation.
(check_node_tree_menu_structure): Call _set_menus_node_directions.
* tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure): Call set_menus_node_directions.
2025-07-05 Patrice Dumas <pertusus@free.fr>
* util/swig/texinfo.i (sectioning_root_children, %init),
util/swig/tree_element.c
(section_relation_list_section_relation_by_index)
(section_relation_list_section_relations_number)
(sorted_index_entries_by_index, sorted_index_entries_number)
(get_index_sorted_by_index, float_list_float_by_index)
(float_list_floats_number, get_float_type_floats_information):
add interfaces for listoffloats and indices sorting.
* util/swig/test_Texinfo.py: more interesting tests.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: mention menu warning changes.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure): Reduce source code line lengths
and move a couple of comments. No functional changes.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/t/40moresectioning.t (lone_chapter_between_node):
New test.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure): Correct explanation of array
index numbering.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Limit line length to 79 columns.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Remove unused code.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Replace 'section_childs' by 'section_children' as this was changed before
my last commit.
2025-07-05 Gavin Smith <gavinsmith0123@gmail.com>
New warnings for menus
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure)
[CHECK_NORMAL_MENU_STRUCTURE]: Go through the menus in all the
nodes and check that they match the list of nodes that are
subordinate in the menu structure. This reduces the use of
"menu directions" for errors.
* tta/perl/t/30sectioning.t (two_node_between_chapters): Use explicit
"next" pointer on node line to show the node that comes next in the
parent node's menu.
2025-07-05 Patrice Dumas <pertusus@free.fr>
Substitute section_childs by section_children everywhere
2025-07-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/texi2any.pl: update to call destroy_document.
2025-07-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(get_tree_element_by_identifier),
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(get_tree_element_by_identifier): add get_tree_element_by_identifier.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm: use defined more.
2025-07-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/texinfo.c (txi_destroy_document)
(txi_output_document_error_messages, txi_output_parser_error_messages)
(txi_output_converter_error_messages), tta/C/main/document.c
(destroy_document), tta/C/main/reader.c (retrieve_reader_descriptor)
(txi_new_reader), tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(destroy_document), tta/perl/Texinfo/Document.pm (destroy_document):
rename txi_document_remove as txi_destroy_document,
txi_handle_parser_error_messages as txi_output_parser_error_messages,
txi_handle_document_error_messages as
txi_output_document_error_messages,
txi_handle_converter_error_messages as
txi_output_converter_error_messages, remove_document as
destroy_document, retrieve_reader as retrieve_reader_descriptor and
txi_reader_new as txi_new_reader. Update callers.
* util/swig/texinfo.i: rename to remove txi from names as there is
alrady a module name.
2025-07-02 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure)
[CHECK_MISSING_MENU_ERROR]: Suppress error if node up pointer for child
node is to a different node.
2025-06-28 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: mention -c FORMAT_MENU=menu_no_detailmenu.
* README-hacking: clarify how to find post-release tasts in TODO.
* doc/texinfo.texi (Global Customization Variables) <FORMAT_MENU>:
Edit slightly.
2025-07-01 Patrice Dumas <pertusus@free.fr>
* util/swig: add new element and element text and attributes
modifications interfaces.
2025-07-01 Patrice Dumas <pertusus@free.fr>
* util/swig: add nodes, sections and heading relations
2025-07-01 Patrice Dumas <pertusus@free.fr>
* tta/C/main/utils.c (new_element_from_names): create a new element
based on type name and command name.
* tta/C/main/get_perl_info.c (new_element_from_sv): call
new_element_from_names.
2025-06-30 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure, complete_node_tree_with_menus):
remove unused variables.
* tta/perl/XSTexinfo/MiscXS.xs (xs_default_format_protect_text):
remove first argument name to avoid unused variable warning.
* tta/perl/Texinfo/Convert/HTML.pm (_convert_text): do not use
object-oriented call for local function.
2025-06-29 Patrice Dumas <pertusus@free.fr>
* util/README, util/swig: add a build system and a README in util/swig.
2025-06-29 Patrice Dumas <pertusus@free.fr>
* tta/C/main/reader.c (txi_reader_new, txi_register_new_reader):
handle NULL tree.
2025-06-29 Patrice Dumas <pertusus@free.fr>
* tta/C/main/parser_conf.c (register_conf),
tta/perl/XSTexinfo/parser_document/Parsetexi.xs
(register_parser_conf): revert to returning parser conf instead of
conf descriptor. Reverts 2025-06-26 change.
2025-06-28 Patrice Dumas <pertusus@free.fr>
If there are index markers, get indices in nodes with index markers only
* info/indices.c (info_indices_of_file_buffer): if there was a node
with index markers, only gather indices in nodes with index markers.
2025-06-27 Patrice Dumas <pertusus@free.fr>
Index search with an empty line in Info use the last index, not the first
* info/indices.c (last_index_filename, last_index_nodename)
(info_indices_of_file_buffer, info_index_search): add
last_index_filename and last_index_nodename describing where the last
index was found, set them in info_indices_of_file_buffer. Use
these instead of initial_index_nodename to show the last index in
info_index_search when the user leaves an empty line instead of the
first. Report from Werner Lemberg.
2025-06-27 Patrice Dumas <pertusus@free.fr>
Preliminary SWIG interface
* tta/swig/texinfo.i, tta/swig/tree_element.c: language-independent
SWIG interface for C parser, structuring, tree elements, document and
reader.
2025-06-27 Patrice Dumas <pertusus@free.fr>
* util/htmlxref.d/Texinfo_GNU.cnf, util/htmlxref.d/Texinfo_nonGNU.cnf:
update location in comments.
* README-hacking: use htmlxref.d/Texinfo_*.cnf file names.
2025-06-27 Patrice Dumas <pertusus@free.fr>
Remove unused #define that could clash with function names
* tta/C/main/text.h: remove text_base.
* tta/C/main/tree.h: remove element_contents_number and element_text.
2025-06-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_table_item_content_tree): add added elements to
document->additional_elements.
2025-06-26 Patrice Dumas <pertusus@free.fr>
* tta/C/main/reader.c (pop_reader_context, txi_reader_read): do not
access the stack if top is 0, for instance if a reader is reused after
the end of a tree.
2025-06-26 Patrice Dumas <pertusus@free.fr>
* tta/C/main/parser_conf.c (register_conf),
tta/perl/XSTexinfo/parser_document/Parsetexi.xs
(register_parser_conf): return conf descriptor instead of parser conf.
2025-06-26 Patrice Dumas <pertusus@free.fr>
* tta/C/main/document.c (setup_txi_paths_information): make
setup_txi_paths_information extern.
2025-06-26 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/texinfo.c (txi_handle_parser_error_messages)
(txi_handle_document_error_messages)
(txi_handle_converter_error_messages), tta/C/main/errors.c
(output_error_messages), tta/C/texi2any.c (handle_parser_errors)
(main): put encoding argument before no_warn and use_filename that are
less important.
2025-06-26 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (HTML Xref Configuration): reference new files
on ftp.gnu.org. From Patrice.
2025-06-26 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking: show how to do occasional ftp uploads with gnupload
2025-06-25 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/DocBook.pm (_format_comment_or_end_line),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm
(_format_comment_or_end_line): implement
format_comment_or_return_end_line for each converter using the
function, to format directly the comment instead of going through a
call of convert_tree, for a simpler and more efficient code.
* tta/perl/Texinfo/Convert/Converter.pm: remove
format_comment_or_return_end_line.
2025-06-25 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (get_comment_or_end_line),
tta/perl/Texinfo/Convert/Converter.pm (comment_or_end_line_nonxs),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(tree_element_comment_or_end_line_nonxs): do not go through
arguments_line, the arguments_line element should be given in argument
for @-commands with arguments_line. Rename line_arg as last_arg.
format_comment_or_return_end_line is unchanged, therefore the
format_comment_or_return_end_line argument should also be the
arguments_line. Update callers.
2025-06-25 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking: remove instruction to inform tug.org of Texinfo
releases. From Karl.
2025-06-25 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): inline
and remove _convert_argument_and_end_line.
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_end_line_spaces): pass
directly element with end line spaces in last content. Update
callers.
2025-06-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_utils_tree_element_expand_verbatiminclude)
(_utils_expand_verbatiminclude, _element_gdt),
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_gdt): rename utils_tree_element_expand_verbatiminclude
as _utils_tree_element_expand_verbatiminclude,
utils_expand_verbatiminclude as _utils_expand_verbatiminclude. Rename
element_gdt as _element_gdt in TreeElementConverter.pm and as
tree_element_gdt in TreeElementConverterXS.xs. Update callers.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_find_element_authors_internal): rename
_element_find_element_authors as
_tree_element_find_element_authors_internal. Update caller.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm (_expand_today),
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_expand_today): rename element_expand_today as
_expand_today in TreeElementConverter.pm and as
tree_element_expand_today in TreeElementConverterXS.xs.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm (_expand_today)
(tree_element_expand_today),
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_expand_today): pass build_tree argument last.
* tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_gdt): rename element_gdt as tree_element_gdt.
* tta/perl/Texinfo/Convert/Utils.pm (_find_element_authors_internal):
rename find_element_authors_internal as
_find_element_authors_internal. Update caller.
2025-06-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_table_item_content_tree),
tta/perl/Texinfo/Convert/TreeElementConverter.pm (%XS_overrides):
rename element_table_item_content_tree as
tree_element_table_item_content_tree.
* tta/perl/Texinfo/Example/ReadDocBook.pm (_convert),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(table_item_content_tree, tree_element_table_item_content_tree),
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_table_item_content_tree): add an argument to
tree_element_table_item_content_tree XS interface to determine if the
tree has to be built to Perl. Set the argument only in
ReadDocBook.pm.
2025-06-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Example/ReadDocBook.pm (_convert),
tta/perl/Texinfo/Convert/TreeElementConverter.pm: call
table_item_content_tree. Remove element_table_item_content_tree and
element_block_item_line_command.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm (%XS_overrides):
override tree_element_table_item_content_tree.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_item_line_block_line_argument_command)
(_tree_element_block_item_line_command): rename
tree_element_item_line_block_line_argument_command as
_tree_element_item_line_block_line_argument_command and
tree_element_block_item_line_command as
_tree_element_block_item_line_command.
2025-06-24 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure): 'node_number' is 1-based, so use
index at position (node_number -1) in nodes_list.
2025-06-24 Patrice Dumas <pertusus@free.fr>
* doc/tta_api/Makefile.am (texi2any_internals_dependencies): add
TreeElementNonXS.pm.
Update POD documentation.
2025-06-23 Patrice Dumas <pertusus@free.fr>
Remove gnulib gperf generated special-casing-table.h and composition-table.h
2025-06-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ReaderNonXS.pm: remove unused register_token_tree.
* doc/tta_api/Makefile.am (texi2any_internals_dependencies): add
ReaderNonXS.pm.
* tta/perl/Texinfo/ReaderNonXS.pm,
tta/perl/Texinfo/Convert/TreeElementConverter.pm: update Pod
documentation.
2025-06-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm (_set_top_node_next),
tta/C/structuring_transfo/structuring.c (set_top_node_next): simplify
the code, by following the FIXME advice to avoid looping over the
nodes directions list.
2025-06-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/ParserNonXS.pm
(_rearrange_tree_beginning, _add_preamble_before_content)
(_parse_texi_document): move _rearrange_tree_beginning from Common.pm
to ParserNonXS.pm.
2025-06-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree_types.h (TXI_READER_TOKEN_CAT_LST, enum
reader_token_category), tta/perl/Texinfo/Reader.pm (constant)
(%token_category_name): rename reader token categories as TXI_READER_*
instead of TXI_ELEMENT_*. Update codes using those constants.
2025-06-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (modify_tree),
tta/perl/Texinfo/ManipulateTree.pm (modify_tree): comment out specific
handling of element in source marks, it could be done on each element.
* tta/perl/ext/latex2html.pm: change in comments.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* doc/tta_api/Makefile.am (texi2any_internals_dependencies): add
TreeElementConverter.pm.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm: update Pod
documentation.
2025-06-22 Gavin Smith <gavinsmith0123@gmail.com>
Warn about up pointer for node missing from menu
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure)
[CHECK_MISSING_MENU_ENTRY]: If warning issued about a node being missing
from a menu, also check if the up pointer for the node points to a
different node, in order to give more context to the warning.
This is the case for some nodes in the 'libc' manual where some
subsidiary nodes are put at higher sectioning levels than those of their
superior nodes.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_unicode_accent)
(_tree_element_format_unicode_accents_stack)
(_tree_element_format_eight_bit_accents_stack)
(_tree_element_encoded_accents)
(_tree_element_find_innermost_accent_contents): rename functions to be
more homogenous with tree_element_ prepended and more consistent, with
_ prepended to file internal methods.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Unicode.pm (eight_bit_and_unicode_point):
rename _eight_bit_and_unicode_point as eight_bit_and_unicode_point.
Update callers.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(element_unicode_accent, _element_format_unicode_accents_stack)
(_element_format_eight_bit_accents_stack)
(element_encoded_accents)
(tree_element_find_innermost_accent_contents),
tta/perl/Texinfo/Convert/Unicode.pm: move functions using the
TreeElement interface from Texinfo/Convert/Unicode.pm to
TreeElementConverter.pm.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Example/TreeElementReadDocBook.pm (package),
tta/perl/Texinfo/Example/ReadDocBook.pm (package): fix package names.
* tta/perl/Texinfo/Example/TreeElementReadDocBook.pm (@ISA),
tta/perl/Texinfo/Example/ReadDocBook.pm (@ISA): inherits directly from
Texinfo::Convert::TreeElementConverter only.
Texinfo::Convert::TreeElementConverter already inherits from
Texinfo::Convert::Converter.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm (%XS_overrides)
(utils_tree_element_expand_verbatiminclude)
(_tree_element_expand_verbatiminclude)
(tree_element_expand_verbatiminclude)
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(utils_tree_element_expand_verbatiminclude),
tta/perl/Texinfo/Example/ReadDocBook.pm (_convert): rename
element_expand_verbatiminclude as
utils_tree_element_expand_verbatiminclude,
_element_expand_verbatiminclude as
_tree_element_expand_verbatiminclude and
converter_element_expand_verbatiminclude as
tree_element_expand_verbatiminclude. Add utils_expand_verbatiminclude
for the XS override and expand_verbatiminclude to redefine the
Texinfo::Converter::Convert method to a method that calls an overriden
method. Update callers. Call expand_verbatiminclude in
ReadDocBook.pm.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm (%XS_overrides)
(tree_element_section_level)
(tree_element_section_level_adjusted_command_name)
(tree_element_is_content_empty, tree_element_element_is_inline)
(tree_element_translated_command_tree, tree_element_cdt)
(tree_element_sections_list, tree_element_nodes_list)
(tree_element_headings_list, tree_element_find_element_authors)
(tree_element_expand_today, _tree_element_xml_accent)
(_tree_element_xml_numeric_entities_accent)
tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(tree_element_find_element_authors, tree_element_sections_list)
(tree_element_nodes_list, tree_element_headings_list): more homogenous
names with tree_element_ prepended to the name of the method from
other modules whose interface is implemented. Update callers.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_element_find_element_authors): rename
element_find_element_authors_internal as
_element_find_element_authors,
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.am, tta/perl/Texinfo/Example/ReadDocBook.pm,
tta/perl/Texinfo/Example/TreeElementReadDocBook.pm: move
ReadDocBook.pm and TreeElementReadDocBook.pm to
tta/perl/Texinfo/Example/.
2025-06-22 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert) <unhandled warning>:
Remove exemption for 'index_entry_command' type. In that case,
the function exits earlier since large commit dated 2024-11-23
"remove remaining args from line commands and from Texinfo tree"
2025-06-22 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert):
Rewrite condition for skipped types or commands to
be easier to read.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs
(new_tree_element), tta/C/main/document_types.h (DOCUMENT): add
additional_elements field in DOCUMENT and put there elements created
by a call to new_tree_element call.
* tta/C/main/document.c (remove_document): free additional_elements
and element_handles DOCUMENT fields data.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/C/main/reader.c (destroy_reader): remove free_reader. destroy
the root sequence list and free the stack.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (register_sv_element_handle_in_sv)
(register_element_handle_in_sv): return the handle if the element is
registered by the call.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/reader_element/TreeElementConverterXS.xs,
tta/perl/XSTexinfo/reader_element/TreeElementXS.xs: update #include.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/Makefile.am (nodist_TreeElementXS_la_SOURCES)
(nodist_TreeElementConverterXS_la_SOURCES)
(nodist_ReaderXS_la_SOURCES): move ReaderXS.xs, TreeElementXS.xs and
TreeElementConverterXS.xs to the reader_element subdirectory.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.am (dist_convertmodules_DATA),
tta/perl/Texinfo/Convert/TreeElementConverterXS.pm,
tta/perl/Texinfo/Convert/TreeElementConverter.pm (%XS_overrides),
tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES)
(TreeElementConverterXS_*),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs,
tta/perl/XSTexinfo/parser_document/TreeElementConverterXS.xs:
split TreeElementConverterXS.xs out of TreeElementXS.xs for
Texinfo::Convert::TreeElementConverter overriden functions.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (item_itemize_prepended): rename
item_itemize_prepended_element as item_itemize_prepended. Update
callers.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (item_itemize_prepended_element),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(item_itemize_prepended): add item_itemize_prepended_element to
Common.pm. Use it.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm
(tree_element_item_itemize_prepended): inline
_tree_element_itemize_line_prepended_element in
tree_element_item_itemize_prepended and remove.
2025-06-22 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (itemize_line_prepended_element)
(item_itemize_prepended), tta/perl/Texinfo/Common.pm
(itemize_line_prepended_element),
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(_tree_element_itemize_line_prepended_element),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(tree_element_item_itemize_prepended): rename
itemize_item_prepended_element as itemize_line_prepended_element,
item_itemize_item_prepended_element as item_itemize_prepended,
_tree_element_itemize_item_prepended_element as
_tree_element_itemize_line_prepended_element and
tree_element_itemize_item_prepended_element as
tree_element_item_itemize_prepended. Update callers.
* tta/perl/Texinfo/Common.pm,
tta/perl/Texinfo/Convert/TreeElementConverter.pm
(tree_element_index_content_element): remove
tree_element_index_content_element from Common.pm and add code to
TreeElementConverter.pm tree_element_index_content_element.
* tta/perl/Texinfo/Convert/TreeElementConverter.pm (%XS_overrides)
(index_content_element, find_element_authors, item_itemize_prepended):
add wrappers for XS overriding.
* perl/Texinfo/Convert/ReadDocBook.pm (_begin_def_line, _convert): use
functions that do not use the TreeElement interface when possible.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (element_inline_or_block),
tta/perl/Texinfo/Convert/Converter.pm (get_command_init): rename
_inline_or_block as element_inline_or_block and _command_init as
get_command_init.
* tta/perl/Texinfo/Convert/Converter.pm (txt_image_text): call
associated_processing_encoding instead of
element_associated_processing_encoding.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): call
section_level_adjusted_command_name instead of
element_section_level_adjusted_command_name.
* tta/perl/Makefile.am (dist_convertmodules_DATA),
tta/perl/Texinfo/Convert/TreeElementConverter.pm,
tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/Converter.pm,
tta/perl/Texinfo/Convert/ReadDocBook.pm (@ISA)
(conversion_output_begin, _convert),
tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (@ISA)
(conversion_output_begin, _docbook_section_element, _begin_def_line)
(_convert), tta/perl/Texinfo/Convert/Utils.pm,
tta/perl/Texinfo/Structuring.pm: move element_* and tree_element_*
functions used for the TreeElements and Reader interfaces to a new
module, Texinfo::Convert::TreeElementConverter, that
Texinfo::Convert::ReadDocBook and
Texinfo::Convert::TreeElementReadDocBook inherit from.
* Texinfo::Convert::TreeElementConverter
(tree_element_txt_image_text),
tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (_convert): add to
use the TreeElement interface.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs: remove
index_entry_referred_entry.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/get_perl_info.c (new_element_from_sv): initialize
element.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm
(tree_element_comment_or_end_line_nonxs): call get_attribute only
once.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin):
do not call explictly document global_commands_information, as it is
called by get_global_unique_tree_element or
global_commands_information_command_list as needed.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (element_gdt): remove spurious
argument in gdt call.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm: remove unused
_end_def_line.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (%ignored_types)
(_begin_index_entry, _end_index_entry, _begin_def_line, _convert):
remove arguments_line from %ignored_types. Convert definition lines,
index entries and @cartouche title through the reader, with similar
code as ReadDocBook.pm. Remove _index_entry and _convert_def_line.
* tta/perl/Texinfo/Common.pm: remove now unused
tree_element_index_entry_referred_entry and
element_collect_subentries.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm
($build_tree_for_text_converter, converter_initialize, _convert): add
$build_tree_for_text_converter, set if there is no XS for conversion,
and there is XS for structuring, and build tree to Perl before calling
Converter to Text only if $build_tree_for_text_converter is set.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (get_comment_or_end_line): check
elt_info_number before accessing element elt_info.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin),
tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm
(conversion_output_begin): get first titlefont multiple global
commands command.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm
(_convert_def_line): use definition aliases information to complete
%defcommand_name_type at the modules initialization.
2025-06-21 Patrice Dumas <pertusus@free.fr>
Remove Texinfo::Convert::TreeReadDocBook
* tta/perl/texi2any.pl: remove reference to TreeReadDocBook. Remove
tta/perl/Texinfo/Convert/TreeReadDocBook.pm. It is slow, not used and
requires duplicating code and interfaces.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): call
tree_element_xml_accents.
* tta/C/main/build_perl_info.c (document_tree),
tta/perl/Texinfo/Document.pm (tree),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (document_tree)
tta/perl/Texinfo/Convert/Converter.pm (output_tree): remove the third
argument of tree/document_tree and fourth argument of output_tree.
Update callers.
* tta/C/main/build_perl_info.c,
tta/perl/XSTexinfo/parser_document/ReaderXS.xs: remove
register_tree_handle_in_sv and register_token_tree.
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/Converter.pm,
tta/perl/Texinfo/Convert/Utils.pm:
remove element_informative_command_value,
element_set_informative_command_value, element_index_content_element,
element_format_comment_or_end_line, element_convert_accents,
element_xml_accents and element_find_innermost_accent_contents.
* tta/perl/Makefile.am (dist_convertmodules_DATA): add
TreeElementReadDocBook.pm.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin): get
first titlefont multiple global commands command. Report from Gavin.
* tta/perl/Makefile.tres, tta/perl/t/docbook_tests.t (@test_doc)
(titlefont_for_docbook): add tests that test docbook_doc. Add
titlefont_for_docbook test with a @titlefont.
2025-06-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/get_perl_info.c (new_element_from_sv),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(new_tree_element): pass document to new_element_from_sv, in case
there is no C converter (with TEXINFO_XS_CONVERT=0).
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm
(%docbook_no_warn_empty_types): add types.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (_convert): fix
reading and registering the next element to work in all the cases of
XS overrides.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (_index_entry):
call functions with XS overrides for tree_element_index_content_element
tree_element_itemize_item_prepended_element and
element_find_element_authors.
* tta/perl/Texinfo/Convert/Converter.pm
(tree_element_comment_or_end_line_nonxs)
(tree_element_comment_or_end_line)
(tree_element_argument_comment_end_line),
tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm
(_convert_argument_and_end_line, _convert): modify to be in line with
the similar functions used in ReadDocBook. Use in
TreeElementReadDocBook.pm similarly as in ReadDocBook.pm.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides):
add XS overrides for the tree elements interfaces,
tree_element_comment_or_end_line,
tree_element_argument_comment_end_line and table_item_content_tree
using the functions already used for Texinfo::Convert::ReadDocBook.
Add table_item_content_tree_noxs and update callers to call this
function directly when needed.
* tta/perl/Texinfo/Convert/Converter.pm (_tree_element_in_preamble)
(global_commands_information_command_list)
(tree_element_get_global_document_command)
(tree_element_set_global_document_commands),
tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm
(conversion_output_begin): add functions similar to
set_global_document_commands and to functions called by
set_global_document_commands using the TreeElements interface. Use in
TreeElementReadDocBook.pm.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(global_commands_information_command_list): add XS interface for
global_commands_information_command_list/
* tta/perl/Texinfo/Convert/ReadDocBook.pm ($XS_convert_enabled)
(converter_initialize, _convert): add XS_convert_enabled call. call
Texinfo::Document::build_tree if XS is not enabled for converters
before calling Texinfo::Convert::Text::convert_to_text.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert),
tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (_convert): remove
unused code.
2025-06-20 Gavin Smith <gavinsmith0123@gmail.com>
Disable prototypes for frequently-called functions
* tta/perl/Texinfo/Convert/Plaintext.pm
(new_formatter, _add_lines_count, _stream_output)
(_stream_result, _stream_encode, _stream_byte_count)
(_convert): Disable prototypes for these frequently-used
subroutines, as the protoype checking appears to have a
minor performance penalty.
2025-06-20 Gavin Smith <gavinsmith0123@gmail.com>
Use exists check rather than true for commands
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert):
Replace some hash checks for command properties with 'exists'.
In theory this should be slightly faster as all that needs to
be done is to check if the key is defined in the hash, and the
value does not need to be checked.
2025-06-20 Gavin Smith <gavinsmith0123@gmail.com>
More checks if defined rather than true
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert):
Change some conditions to check whether value is defined,
rather than true. In theory this is simpler and faster as
it doesn't need to check whether a string is "0" which would
be false.
2025-06-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (convert)
(conversion_output_begin): call
register_document_relations_lists_elements.
* tta/perl/Texinfo/Convert/Converter.pm (element_gdt, element_cdt)
(element_translated_command_tree, element_expand_today)
(converter_element_expand_today),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(element_expand_today, element_gdt): add an argument to element_gdt
and element_expand_today and callers to determine if tree should be
built to Perl. Update ReadDocBook.pm calls.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (_convert)
(convert_tree): call element_translated_command_tree,
converter_element_expand_today and element_cdt. Do not call the
Texinfo::Convert::DocBook converter anymore.
* tta/perl/XSTexinfo/parser_document/ReaderXS.xs
(register_token_element_child): do not return anything.
2025-06-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (element_gdt): add missing
arguments array.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin):
use get_global_unique_tree_element.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): more calls to
register_token_element_child.
* tta/C/main/convert_utils.c, tta/C/main/translations.c
(switch_lang_translations): move switch_lang_translations to
translations.c.
* tta/C/main/get_perl_info.c (get_lang_translations_sv),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (element_gdt):
add get_lang_translations_sv based on element_gdt code.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(element_expand_today, converter_element_expand_today),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(element_expand_today): add an XS interface for expand_today, use it
in ReadDocBook.pm.
2025-06-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/parser_document/ReaderXS.xs
(register_token_element_child): skip through arguments_line.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (element_gdt):
allow undef lang_translations_sv.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(tree_elements_sections_list, tree_elements_nodes_list)
(tree_elements_headings_list): get document with
get_converter_sv_document.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(element_expand_verbatiminclude)
(converter_element_expand_verbatiminclude),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(element_expand_verbatiminclude): rename
element_expand_verbatiminclude as
converter_element_expand_verbatiminclude. Update callers. Readd
element_expand_verbatiminclude as a direct wrapper around
Texinfo::Convert::Utils::element_expand_verbatiminclude called by
converter_element_expand_verbatiminclude. Add an XS override for
element_expand_verbatiminclude.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): update for
verbatiminclude. Add more calls to register_token_*.
2025-06-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (find_element_authors_internal)
(find_element_authors): implement in C.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(element_find_element_authors),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(element_find_element_authors): add an XS override for
element_find_element_authors, use it in ReadDocBook.pm.
2025-06-18 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\xrdef): End definition with \ignorespaces
to avoid spurious spaces being read when the aux file is read.
Report from Vincent Lefevre <vincent@vinc17.net> for @copying
text.
2025-06-17 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/get_converter_perl_info.c (get_converter_sv_document):
add.
* tta/C/convert/converter.c, tta/C/main/document.c
(setup_texinfo_main): call setup_convert_utils in setup_texinfo_main
such that the function is called even if converter XS is not loaded.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(new_tree_element, get_global_unique_tree_element): call
get_converter_sv_document to find the document even if converter XS is
not loaded.
* tta/C/main/get_perl_info.c (new_element_from_sv): allow converter to
be NULL, as it may now happen with new_tree_element call.
* tta/perl/Texinfo/Convert/Converter.pm
(element_translated_command_tree),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): add, calling
element_cdt instead of cdt. Use in ReadDocBook.pm.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): call element_cdt
instead of cdt.
2025-06-17 Patrice Dumas <pertusus@free.fr>
* tta/C/main/get_perl_info.c (get_replaced_substrings): add.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(element_gdt, element_cdt),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (element_gdt): add
element_cdt with the cdt interface, that calls element_gdt, and an
XS override for element_gdt, to translate the string in C, build and
register the tree.
2025-06-17 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (@lisp):
Avoid saying that "@lisp" and "@example lisp" are "synonymous"
as the output is different in HTML. Report from Raymond Toy.
2025-06-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_initialization)
(convert, conversion_output_begin): call
register_document_relations_lists_elements after building the tree.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): call
register_token_element_child for xref arguments.
2025-06-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Transformations.pm
(insert_nodes_for_sectioning_commands): call labels_list() at the
beginning of the function, to make sure that the C code considers that
the C data is up to date and do not attempts to rebuild from C
afterwards and instead returns the Perl data. This is important
because the Perl labels_list is modified in _new_node, not the C data,
such that the C data is not up to date and should not be accessed
again. Report from Gavin.
2025-06-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): process seeentry
and seealso as commands with the reader, keeping their output in the
document state to output it when the index entry closes and not where
the command appears.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(index_entry_referred_entry),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(index_entry_referred_entry): XS interface for
index_entry_referred_entry. Currently unused.
* tta/perl/Texinfo/Convert/TreeReadDocBook.pm (_index_entry): call
index_entry_referred_entry.
* tta/perl/Texinfo/Common.pm
(tree_element_index_entry_referred_entry),
tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (_index_entry):
rename element_index_entry_referred_entry as
tree_element_index_entry_referred_entry.
2025-06-16 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c
(register_document_sections_list_elements)
(register_document_nodes_list_elements)
(register_document_headings_list_elements)
(build_tree_elements_relations_lists): split
register_document_*_list_elements out of
build_tree_elements_relations_lists.
* tta/C/main/build_perl_info.c
(register_document_relations_lists_elements),
tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_initialization),
tta/perl/Texinfo/Document.pm (%XS_structure_overrides)
(register_document_relations_lists_elements),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(register_document_relations_lists_elements): add
register_document_relations_lists_elements to register the C data
handle in Perl elements even if the Perl data do not need to be
rebuilt. Call in ReadDocBook.pm conversion_initialization.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_docbook_section_element)
(_convert): call tree_elements_sections_list.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin):
fix legalnotice conditional and use get_children.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): use correctly
get_children. Call tree_elements_nodes_list instead of document
nodes_list. Do not check that there is document as it is not checked
afterwards.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): convert
cartouche title using the reader, accumulating content in a separate
text to be able to put in elements only if not empty.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (setup_converter_generic),
tta/C/main/convert_utils.c (default_asis_command)
(setup_convert_utils, new_tree_added_elements, new_element_added)
(new_command_element_added, new_text_element_added)
(item_line_block_line_argument_command, block_item_line_command)
(table_item_content_tree): move functions to convert_utils.c.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(element_table_item_content_tree): XS interface for
table_item_content_tree.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin)
(_convert): call children method to register elements in contents.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (get_comment_or_end_line): fix
conditional.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(tree_element_index_content_element),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_begin_def_line)
(_convert), tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(tree_element_index_content_element): add an XS interface for
index_content_element and use it.
* tta/perl/Texinfo/ReaderNonXS.pm (register_token_element_child),
tta/perl/XSTexinfo/parser_document/ReaderXS.xs
(register_token_element_child), tta/perl/Texinfo/ReaderNonXS.pm
(register_token_element_child),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): add XS interface
to register a child element of the current reader element, and use it.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): call
register_token_element, call tree_element_xml_accents instead of
xml_accents, call get_global_unique_tree_element for insertcopying.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (item_itemize_item_prepended_element),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert),
tta/perl/Texinfo/Convert/Converter.pm
(tree_element_itemize_item_prepended_element),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(tree_element_itemize_item_prepended_element): add
item_itemize_item_prepended_element that takes an item element and
returns the prepended element. Use it in ReadDocBook.pm and for the
tree_element_itemize_item_prepended_element XS interface.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (setup_converter_generic),
tta/C/main/convert_utils.c (default_bullet_command)
(setup_convert_utils, itemize_item_prepended_element): move
itemize_item_prepended_element and default_bullet_command to
convert_utils.c. Add setup_convert_utils to setup
default_bullet_command and call from setup_converter_generic.
* tta/C/main/convert_utils.c (get_comment_or_end_line)
(comment_or_end_line, argument_comment_end_line), tta/C/main/utils.c:
move get_comment_or_end_line, comment_or_end_line and
argument_comment_end_line to convert_utils.c.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(tree_element_itemize_item_prepended_element),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(tree_element_itemize_item_prepended_element): add XS interface for
tree_element_itemize_item_prepended_element and use it in
ReadDocBook.pm.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin)
(_convert): call get_global_unique_tree_element,
tree_elements_sections_list and get_tree_element_index_entry to have
elements registered with XS.
* tta/perl/Texinfo/Convert/ReadDocBook.pm
(_convert_argument_and_end_line),
tta/perl/Texinfo/Convert/Converter.pm (argument_comment_end_line): add
argument_comment_end_line and use it in
_convert_argument_and_end_line.
* tta/C/main/tree_types.h (COMMENT_OR_END_LINE)
(ARGUMENT_COMMENT_END_LINE), tta/C/main/utils.c
(get_comment_or_end_line, comment_or_end_line)
(argument_comment_end_line): implement in C.
* tta/perl/Texinfo/Convert/Converter.pm (comment_or_end_line): minor
code reorganization.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(comment_or_end_line, comment_or_end_line_nonxs)
(argument_comment_end_line),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(comment_or_end_line, argument_comment_end_line): XS interface for
comment_or_end_line and argument_comment_end_line.
* tta/C/convert/build_html_perl_state.c
(switch_perl_lang_translations): rename switch_lang_translations from
this file as switch_perl_lang_translations.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (comment_or_end_line)
(format_comment_or_return_end_line): split comment_or_end_line out of
format_comment_or_return_end_line.
* tta/perl/Texinfo/Convert/ReadDocBook.pm
(_convert_argument_and_end_line, _convert): use comment_or_end_line.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm
(%docbook_no_warn_empty_types): add line_arg.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): inline and
remove _end_def_line.
2025-06-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/DocBook.pm (%defcommand_name_type)
(_convert_def_line), tta/perl/Texinfo/Convert/ReadDocBook.pm
(%defcommand_name_type, _convert_def_line): setup def line aliases in
%defcommand_name_type before starting the conversion.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_begin_def_line)
(_end_def_line, _convert): split _convert_def_line in _begin_def_line
and _end_def_line. Convert def line and def types through the reader.
Remove _convert_def_line.
2025-06-15 Gavin Smith <gavinsmith0123@gmail.com>
Section directions rather than node directions for CHECK_MISSING_MENU_ENTRY
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure)
<CHECK_MISSING_MENU_ENTRY>,
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
<CHECK_MISSING_MENU_ENTRY>:
Reword warning message not to refer to "Up" target as this may also
be given explicitly and differ from the section parent.
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
Remove unneeded casts away from const.
2025-06-15 Gavin Smith <gavinsmith0123@gmail.com>
Section directions rather than node directions for CHECK_MISSING_MENU_ENTRY
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure)
<CHECK_MISSING_MENU_ENTRY>,
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
<CHECK_MISSING_MENU_ENTRY>:
Use section directions rather than node directions to get superior node.
Section directions is more direct, as node directions is set from
section directions plus explicit pointers. It also fits better with
surrounding structural checks using section directions.
2025-06-15 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/t/test_utils.pl (convert_to_docbook): Switch off
ReadDocBook as it is broken for tests, at least with XS.
2025-06-14 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/end_line.c (end_line_def_line),
tta/C/parsetexi/indices.c (remove_def_types, complete_indices),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_def_line),
tta/perl/Texinfo/Translations.pm (complete_indices): remove def_* type
and substitute bracketed_arg to brace_arg in def_index_element and
def_index_ref_element, to avoid specific def types for the
conversion of the index entry. Use brace_arg instead of bracketed_arg
to have a type that have the same memory layout as bracketed_arg for
C.
2025-06-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm
(get_tree_element_index_entry): return index_entry only if there are
indices_information.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_begin_index_entry)
(_end_index_entry, _convert_def_line, _convert): split
_begin_index_entry and _end_index_entry out of _index_entry. Convert
@subentry and index entry commands through the reader. Add
information in document_context for subentry such as to avoid nesting
their output and output them at the end of the index command
formatting. Remove _index_entry.
2025-06-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (index_entry_referred_entry)
(element_index_entry_referred_entry): return the brace command
argument. Update callers.
2025-06-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (tree_element_multitable_columnfractions)
(associated_processing_encoding)
(tree_element_informative_command_value)
(tree_element_set_informative_command_value),
tta/perl/Texinfo/Convert/Converter.pm (tree_element_xml_accents),
tta/perl/Texinfo/Convert/Utils.pm
(tree_element_find_innermost_accent_contents): add
tree_* for tree element interface, modify functions for tree only
interface and add associated_processing_encoding for pure Perl.
Update callers.
* tta/perl/Texinfo/Convert/Converter.pm
(element_table_item_content_tree),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(add_to_element_contents): do not push on contents in Perl, but in XS.
* tta/perl/Texinfo/Convert/TreeReadDocBook.pm (package)
(_convert): fix package. Call multitable_columnfractions instead of
element_multitable_columnfractions.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (package)
(_convert): fix package. Call tree_element_* functions.
* tta/perl/Texinfo/Convert/ReadDocBook.pm: Reader based converter
not using the tree element interface at all. Only for pure Perl for
now, does not work in XS.
* tta/perl/Texinfo/ReaderNonXS.pm (read): do not use the TreeElements
interface, as the tree should alwais be built to Perl if XS is not
used.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm (_convert),
tta/perl/Texinfo/ReaderNonXS.pm (register_token_element)
(register_token_tree), tta/perl/XSTexinfo/parser_document/ReaderXS.xs
(read, register_token_element, register_token_tree)
* tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin)
(_convert_argument_and_end_line, _convert_def_line, _convert): minor
changes and improvements of code.
* texi2any.pl: update for new/fixed DocBook converters.
2025-06-13 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (register_sv_element_handle_in_sv)
(register_element_handle_in_sv): split
register_sv_element_handle_in_sv out of register_element_handle_in_sv
for the code used to register the C element and the specific keys in
the Perl data.
* tta/C/main/build_perl_info.c (register_tree_handle_in_sv): add
a function to build the 'skeleton' of the tree only, with contents and
elements oot.
* tta/C/main/build_perl_info.c (document_tree),
tta/perl/Texinfo/Convert/Converter.pm (output_tree),
tta/perl/Texinfo/Document.pm (tree),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (document_tree): add
an argument to tree and document_tree to be able to call
register_tree_handle_in_sv instead of register_element_handle_in_sv.
Update callers.
* tta/perl/Texinfo/Convert/Converter.pm (new_tree_element),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(new_tree_element): add an argument to be able to use the hash
argument to associate directly to the C element.
* tta/perl/Texinfo/Common.pm (element_block_item_line_command): move
element_table_item_content_tree to Common.pm.
* tta/perl/Texinfo/Convert/TreeElementReadDocBook.pm,
tta/perl/Texinfo/Convert/ReadDocBook.pm, tta/perl/Texinfo/Common.pm
(tree_element_block_line_argument_command)
(tree_element_itemize_item_prepended_element)
(tree_element_item_line_block_line_argument_command)
(tree_element_block_item_line_command)
(tree_element_index_content_element),
tta/perl/Texinfo/Convert/Converter.pm
(tree_element_format_comment_or_end_line)
(tree_element_table_item_content_tree): rename ReadDocBook.pm as
TreeElementReadDocBook.pm and modify ReadDocBook.pm to use directly
the contents hash key instead of accessors. Similar changes for
functions, with element_* functions renamed as tree_element_* and
element_* functions using directly the contents hash key. Also call
tree and new_tree_element with the new arguments.
* tta/perl/XSTexinfo/parser_document/ReaderXS.xs (new)
(read): update to be in line with 'skeleton' tree, do not register
elements. Note that it means that TreeElementReadDocBook.pm cannot
really work with XS.
* tta/C/main/build_perl_info.c (build_perl_container): use
HSH_contents.
2025-06-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/TreeElementNonXS.pm (text, type, cmdname),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (text, type)
(cmdname): readd accessors even if they are not used such that they
can be used by code that wants the runtime check that comes with
accessors and also to demonstrate what needs to be in the API.
2025-06-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/reader.c (allocate_reader, initialize_reader)
(push_reader_context, end_element, txi_reader_read, free_reader),
tta/C/main/tree_types.h (READER_CONTEXT),
tta/perl/Texinfo/ReaderNonXS.pm (read): reuse the contents for the
elements array in the reader context, do not go through the space
elements in info in the reader.
2025-06-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/reader.c (allocate_reader, initialize_reader)
(txi_reader_new, txi_register_new_reader),
tta/perl/XSTexinfo/parser_document/ReaderXS.xs (new): split
allocate_reader and initialize_reader out of txi_reader_new. Replace
register_reader by txi_register_new_reader and reuse reusable reader
in the function.
2025-06-11 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/ReadDocBook.pm,
tta/perl/Texinfo/Convert/Utils.pm,
tta/perl/Texinfo/TreeElementNonXS.pm: call get_children more instead
of iterating explicitly. Other minor changes.
2025-06-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/get_perl_info.c (get_sv_reader_reader),
tta/C/main/reader.c (txi_reader_new), tta/C/main/tree_types.h
(READER), tta/perl/XSTexinfo/parser_document/ReaderXS.xs (new, read):
add a document field in READER and set it in txi_reader_new, such that
there is no need for document_descriptor in Perl reference anymore.
Update callers. Make reader in Perl a reference on the reader
descriptor.
2025-06-11 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/Converter.pm,
tta/perl/Texinfo/Convert/ReadDocBook.pm,
tta/perl/Texinfo/Convert/Unicode.pm,
tta/perl/Texinfo/Convert/Utils.pm, tta/perl/Texinfo/ReaderNonXS.pm,
tta/perl/Texinfo/Structuring.pm: access cmdname through hash key
rather than through function. Update some codes.
* tta/perl/Texinfo/TreeElementNonXS.pm,
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs: remove type(),
text() and cmdname(). Gavin advice to access directly hash.
2025-06-11 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/Converter.pm,
tta/perl/Texinfo/Convert/ReadDocBook.pm,
tta/perl/Texinfo/Convert/Utils.pm, tta/perl/Texinfo/ReaderNonXS.pm:
access text through hash key rather than through function.
2025-06-11 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (%XS_overrides),
(merge_converter_error_messages_lists_noxs)
(merge_converter_error_messages_lists),
tta/perl/Texinfo/Convert/Text.pm (convert_to_text),
tta/perl/XSTexinfo/convert/ConvertXS.xs
(merge_converter_error_messages_lists): add an XS override
for merge_converter_error_messages_lists. Add a non XS version of
merge_converter_error_messages_lists. Use the non XS version in
Text.pm.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (convert_tree): call
Texinfo::DocBook converter with customization variables set, pass
formatting state an get back error messages.
* tta/C/main/build_perl_info.c (build_base_element)
(element_to_perl_hash, register_element_handle_in_sv): split
build_base_element out of element_to_perl_hash. Call
build_base_element in register_element_handle_in_sv.
* tta/perl/Texinfo/Common.pm: remove _element_inline_or_block, update
_inline_or_block.
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/Converter.pm,
tta/perl/Texinfo/Convert/ReadDocBook.pm,
tta/perl/Texinfo/Convert/Utils.pm, tta/perl/Texinfo/ReaderNonXS.pm:
access type through hash key rather than through function.
* tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): minor code change
for email.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): update abbr and
acronym conversion code.
* tta/perl/t/test_utils.pl, tta/perl/texi2any.pl: use ReadDocBook in
the default case to test it well. This could be temporary.
2025-06-10 Patrice Dumas <pertusus@free.fr>
Texinfo tree reader in C and XS interface
* tta/C/main/element_types.txt, tta/C/main/types_data.h
(TF_ignorable_text): add ignorable_text type flag.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert),
tta/perl/Texinfo/Convert/TestReader.pm (_convert),
tta/perl/Texinfo/Reade.pm (_end_element, read, skip_children)
(reader_collect_commands_list): remove the Texinfo::ReaderToken
class, instead use hash keys.
* tta/C/main/tree.c (reallocate_const_element_list_for)
(insert_list_slice_into_const_list): add.
* tta/C/Makefile.am (C_libtexinfo_sources),
tta/C/main/reader.c (txi_reader_new, push_reader_context)
(pop_reader_context, top_reader_context, end_element)
(txi_reader_read, txi_reader_skip_children, free_reader)
(destroy_reader, txi_reader_collect_commands_list),
tta/C/main/tree_types.h (TXI_READER_TOKEN_CAT_LST, READER)
(enum reader_token_category, READER_CONTEXT, READER_TOKEN): implement
the Texinfo tree reader in C.
* tta/C/main/reader.c (reader_list, retrieve_reader)
(register_reader), tta/perl/XSTexinfo/parser_document/ReaderXS.xs
(new, read, skip_children, reader_collect_commands_list),
tta/C/main/get_perl_info.c (get_sv_reader_reader),
tta/perl/Makefile.am (dist_modules_DATA),
tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES, ReaderXS_la_*),
tta/perl/Texinfo/ReaderNonXS.pm, tta/perl/Texinfo/Reader.pm (BEGIN)
(TXI_ELEMENT_*, %token_category_name): add XS interface for the C
Texinfo tree reader. Rename Texinfo/Reader.pm as
Texinfo/ReaderNonXS.pm and put constants and XS loading in
Texinfo/Reader.pm.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (convert_tree): if the tree
is built to Perl, use a Texinfo::Convert::DocBook converter to convert
the tree.
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs (build_tree): build
an element tree having a handle for TreeElements and Reader.
* tta/perl/Texinfo/Translations.pm (_substitute_element_array):
build the tree to Perl if there is an element_document_descriptor.
2025-06-09 Patrice Dumas <pertusus@free.fr>
Do not use the Docbook converter based on reader, it is slow
* tta/perl/t/test_utils.pl (convert_to_docbook), tta/perl/texi2any.pl
(%formats_table): do not use ReadDocBook in the default case as it is
slow.
2025-06-09 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_single_index_info),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(get_tree_element_index_entry): add build_single_index_info that
builds only information about an index, not the entries and use it in
get_tree_element_index_entry.
* tta/perl/Texinfo/Reader.pm (read): use get_children instead of
iterating.
2025-06-09 Patrice Dumas <pertusus@free.fr>
Complete the XS interface for TreeElement for ReadDocbook
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): use
element_xml_accents.
* tta/perl/Texinfo/Convert/Text.pm (convert_to_text, convert)
(output), tta/perl/XSTexinfo/convert/ConvertXS.xs (text_convert_tree):
use XS if either tree_document_descriptor or
element_document_descriptor is present.
* tta/C/main/get_perl_info.c (new_element_from_sv): fix
definfoenclose'd command creation. Add source_info.
* tta/C/main/utils.c (lookup_index_entry): move lookup_index_entry
from structuring_transfo/transformations.c to utils.c.
* tta/perl/Texinfo/TreeElementNonXS.pm (add_to_element_contents),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(add_to_element_contents): add.
* tta/perl/Texinfo/Common.pm (element_multitable_columnfractions)
(element_item_line_block_line_argument_command)
(element_block_item_line_command, element_table_item_content_tree),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): add duplicate of
functions that use the TreeElement interface. Use
element_multitable_columnfractions and element_table_item_content_tree
in ReadDocBook.pm.
* tta/C/main/build_perl_info.c (build_tree_elements_relations_lists)
(build_tree_elements_sections_list, build_tree_elements_nodes_list)
(build_tree_elements_headings_list),
tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(tree_elements_sections_list, tree_elements_nodes_list)
(tree_elements_headings_list), tta/perl/Texinfo/Convert/ReadDocBook.pm
(_docbook_section_element, _convert),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(tree_elements_sections_list, tree_elements_nodes_list)
(tree_elements_headings_list): add an interface for sections, nodes
and headings relations lists that do not require rebuilding the tree.
Register all the elements that could be accessed in Perl through the
relations.
* tta/C/main/build_perl_info.c (build_index_entry)
(build_single_index_data): split build_index_entry out of
build_single_index_data.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(get_tree_element_index_entry),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_index_entry),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(get_tree_element_index_entry): add an interface to access a tree
element index entry directly.
2025-06-08 Patrice Dumas <pertusus@free.fr>
Turn on and enhance the XS interface for TreeElement for ReadDocbook
* tta/C/main/get_perl_info.c (get_sv_element_document): add a warn
string argument to be able to set it to 0.
* tta/C/main/get_perl_info.c (new_element_from_sv): add converter
argument and add command name and contents.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(new_tree_element, new, parent, type, cmdname, text, source_info)
(children_number, get_child, get_attribute): add Perl C code that
duplicates the pure Perl code such that the XS code can be used both
when there are handlers and when the tree has been built to Perl.
For a converter using only the TreeElement interface, this is not
useful, or even hides when the built tree is used instead of
the TreeElement interface, but for converters using the TreeElement
interface with a built tree, this is practical and allows to always
override all the functions.
* tta/perl/Texinfo/TreeElement.pm (BEGIN): load the XS module.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(get_global_unique_tree_element),
tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin)
(_convert), tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(get_global_unique_tree_element): add a TreeElement interface for
global unique commands.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (conversion_output_begin)
(_convert), tta/perl/Texinfo/TreeElementNonXS.pm (get_children),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (get_children):
add get_children TreeElement interface to get the contents list.
* tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): use
new_tree_element interface instead of Texinfo::TreeElement::new
to be able to find the document C data where the elements are stored.
* tta/perl/Texinfo/Convert/Converter.pm (element_convert_accents)
(element_xml_accent, _element_xml_numeric_entities_accent)
(element_xml_accents), tta/perl/Texinfo/Convert/Unicode.pm
(element_unicode_accent, _element_format_unicode_accents_stack)
(_element_format_eight_bit_accents_stack)
(element_encoded_accents), tta/perl/Texinfo/Convert/Utils.pm
(element_find_innermost_accent_contents),
tta/perl/Texinfo/Convert/ReadDocBook.pm (_convert): duplicate
implementations of accent formatting functions using the TreeElement
interface.
* tta/C/main/build_perl_info.c (document_tree),
tta/perl/Texinfo/Convert/Converter.pm (output_tree),
tta/perl/Texinfo/Convert/ReadDocBook.pm (convert, output): setup handles
usable for the TreeElement interface if handler_only is set. Pass
handle_only argument to output_tree. Set the argument in convert
and output calls.
* tta/C/main/build_perl_info.c (build_minimal_document): bless
tree element.
* tta/C/main/get_perl_info.c (find_element_from_sv): find global
unique commands C associated data.
2025-06-08 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_extra_misc_args)
(build_extra_index_entry): split out of build_key_pair_info.
* tta/C/main/document.c (setup_texinfo_main), tta/C/main/tree.c
(ASSOCIATED_INFO_KEY_INDEX, compare_associated_info_key_index)
(ai_key_name_index, find_associated_info_key)
(setup_ai_key_name_index): setup ai_key_name_index sorted by name and
associating enum ai_key_name to be able to retrieve with bsearch
the key associated to an attribute name.
* tta/C/main/build_perl_info.c (build_element_attribute),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (get_attribute):
implement build_element_attribute.
2025-06-08 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_associated_info)
(build_key_pair_info, build_element_attribute): rename
build_additional_info as build_associated_info. Split
build_key_pair_info out of build_associated_info.
Add build_element_attribute, though it does nothing for now.
* tta/C/main/tree.c (associated_info_table), tta/C/main/tree_types.h
(AI_KEYS_LIST, enum extra_type, ASSOCIATED_INFO_DATA): add associated
information not in ASSOCIATED_INFO to extra_type and AI_KEYS_LIST for
flags, elt_info and string_info. Add a data information to
AI_KEYS_LIST for flags, elt_info and string_info. Add
associated_info_table ASSOCIATED_INFO_DATA array with the enum
ai_key_name type, name and data. Remove ai_key_names and
ai_key_types. Update users.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (new): call
debug_print_element_sv.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (get_attribute):
call build_element_attribute.
2025-06-07 Gavin Smith <gavinsmith0123@gmail.com>
Change warning message and reported line number
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
Amend warning message about nodes being in the wrong menu and change
reported line number to that of the menu entry rather than the
@node line defining the referenced node.
2025-06-07 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_source_info_hash)
(element_to_perl_hash, convert_error): avoid redundancy between
build_source_info_hash and element_to_perl_hash.
* tta/perl/Makefile.am (dist_modules_DATA),
tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs,
tta/perl/Texinfo/TreeElementNonXS.pm, tta/perl/Texinfo/TreeElement.pm
(BEGIN): rename Texinfo/TreeElement.pm as Texinfo/TreeElementNonXS.pm.
Readd Texinfo/TreeElement.pm to load XS or Perl code through
Texinfo::XSLoader::init call.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs (type)
(cmdname, text, source_info, children_number, get_child)
(get_attribute): implement more of the TreeElement interface in XS.
get_attribute is still non functional.
2025-06-07 Patrice Dumas <pertusus@free.fr>
Preliminary XS interface for Texinfo::TreeElement
* tta/C/main/build_perl_info.c (register_element_handle_in_sv)
(document_tree), tta/C/main/document_types.h (DOCUMENT),
tta/C/main/get_perl_info.c (get_sv_element_document)
(get_sv_element_element): add element_handles field in DOCUMENT and
functions that register or get the C element associated to a Perl
element element using the "element_document_descriptor" key for the
document descriptor and "_handle" for the number in element_handles.
* tta/C/main/get_perl_info.c (new_element_from_sv): preliminary
function that creates a C element based on a Perl element hash.
* tta/perl/XSTexinfo/Makefile.am (xs_LTLIBRARIES, TreeElementXS_*),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs: preliminary XS
interface for Texinfo::TreeElement.
* tta/perl/Texinfo/Convert/Converter.pm (%XS_tree_element_overrides)
(import, new_tree_element),
tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(new_tree_element): XS override warpper around
Texinfo::TreeElement::new such that the document can be found in XS to
find the C element, which is stored in the document.
* tta/perl/XSTexinfo/parser_document/TreeElementXS.xs
(new_tree_element),
2025-06-07 Gavin Smith <gavinsmith0123@gmail.com>
Only check for next and prev in menu_directions
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
In CHECK_NORMAL_MENU_STRUCTURE check of whether menu directions match
section directions, only check 'next' and 'prev' directions, not 'up'.
2025-06-07 Gavin Smith <gavinsmith0123@gmail.com>
Check for nodes in wrong menus first
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
If CHECK_NORMAL_MENU_STRUCTURE, first of all check all menus in the
document to see if nodes listed therein are in the correct menu,
using logic similar to that in set_menus_node_directions. Suppress
later error messages about a node if it is listed in the wrong menu.
2025-06-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Reader.pm (read): use the TreeElement interface.
2025-06-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (element_associated_processing_encoding),
tta/perl/Texinfo/Convert/Converter.pm (txt_image_text): use the
TreeElement interface.
* tta/perl/Texinfo/Common.pm (element_block_line_argument_command)
(element_itemize_item_prepended_element, element_collect_subentries)
(element_index_entry_referred_entry)
(element_informative_command_value)
(element_set_informative_command_value, element_section_level)
(element_is_content_empty, _element_inline_or_block)
(tree_element_is_inline, element_index_content_element),
tta/perl/Texinfo/Convert/Converter.pm
(element_expand_verbatiminclude), tta/perl/Texinfo/Convert/Utils.pm
(element_expand_verbatiminclude)
(element_find_element_authors_internal, element_find_element_authors),
tta/perl/Texinfo/Structuring.pm
(element_section_level_adjusted_command_name): add another
implementation of the function with the same name but element or tree
prepended, using the TreeElement interface in the new implementation.
* tta/perl/Texinfo/TreeElement.pm (source_info): add.
* tta/perl/Texinfo/Convert/ReadDocBook.pm: update to use function
using the TreeElement interface.
* tta/perl/Texinfo/Convert/Utils.pm (find_innermost_accent_contents):
minor changes, rearrange code, use more variables.
2025-06-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
avoid using $menu_target->{'extra'}->{'node_number'} in hash if not
defined for menu_target. For some reason, this only happened with
TEXINFO_XS_STRUCTURE=0.
2025-06-07 Patrice Dumas <pertusus@free.fr>
Comments related to SV or HV comparison and reuse
2025-06-07 Patrice Dumas <pertusus@free.fr>
Copy references in C/XS code to avoid modifying other references
* tta/C/convert/build_html_perl_info.c (build_*),
tta/C/main/build_perl_info.c (build_perl_*, build_additional_info)
(store_source_mark_list, element_to_perl_hash, build_elements_list)
(build_*_relations*, build_target_elements_list)
(build_identifiers_target, build_internal_xref_list)
(build_listoffloats_list, build_single_index_data)
(build_global_commands, output_unit_to_perl_hash),
tta/perl/XSTexinfo/convert/ConvertXS.xs,
tta/perl/XSTexinfo/convert/get_html_perl_info.c
(html_get_shared_conversion_state),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs: use
newSVsv instead of SvREFHVCNT_inc to copy references instead of
reusing them. Otherwise, assigning to one, in Perl, also modifies the
other. See also
https://lists.gnu.org/archive/html/bug-texinfo/2025-06/msg00018.html.
Based on Gavin analysis.
The contents and tree root references are the only one reused.
2025-06-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Reader.pm (read): do not return comment_at_end.
* tta/perl/Texinfo/Convert/ReadDocBook.pm: no more need for
'ignore_comments'.
2025-06-06 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/tex4ht.pm (tex4ht_prepare): call
Texinfo::TreeElement::new on new element.
2025-06-06 Patrice Dumas <pertusus@free.fr>
DocBook converter based on Texinfo::Reader
* tta/perl/Texinfo/Convert/ReadDocBook.pm: finalize conversion based
on Texinfo::Reader based on the reader tokens categories.
* tta/perl/t/test_utils.pl (convert_to_docbook), tta/perl/texi2any.pl
(%converter_format_expanded_region_name, %formats_table): default to
using the Texinfo::Convert::ReadDocBook converter.
* tta/perl/Texinfo/Convert/TestReader.pm (_convert): update
print_element_base call.
2025-06-06 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm (_set_top_node_next): avoid
autovivification.
2025-06-05 Patrice Dumas <pertusus@free.fr>
tta/C/main/call_perl_function.c (call_setup_collator): remove const.
2025-06-05 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree.c (destroy_element): also release the references on
HV.
2025-06-05 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (SvREFHVCNT_inc): add to increase both
SV and the HV SV refers too. Similar to newRV_inc, but for the SV,
not the HV.
* tta/C/convert/build_html_perl_info.c (build_html_files_source_info)
(build_replaced_substrings, build_pending_footnotes)
(build_simpletitle, pass_sv_converter_info),
tta/C/convert/build_html_perl_state.c (build_html_translated_names)
(build_html_formatting_state),
tta/C/convert/call_html_perl_function.c, tta/C/main/build_perl_info.c:
use SvREFHVCNT_inc instead of SvREFCNT_inc.
Also an unsuccesful attempt to fix test failing with XS structure
unset after the change to use SV instead of HV for elements.
2025-06-05 Patrice Dumas <pertusus@free.fr>
* tta/C/main/api_to_perl.c (unregister_perl_data, register_perl_data):
add casts.
* tta/C/main/manipulate_indices.c (INDEX_COLLATOR, destroy_collator):
call unregister_perl_data on collator SV to release the Perl object
reference when destroying the collator data.
* tta/perl/Texinfo/ManipulateTree.pm: add comments, and a ;
2025-06-05 Gavin Smith <gavinsmith0123@gmail.com>
Suppress further menu structure warnings if CHECK_MISSING_MENU_ENTRY warning
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
In block of code checking for menus missing entries for child
nodes (controlled by CHECK_MISSING_MENU_ENTRY), record any nodes
that have warnings issued. Then, when checking if sectioning
directions match menu directions (CHECK_NORMAL_MENU_STRUCTURE),
suppress any warning where such a node occurs as any of: source
node, menu target node, or sectioning target node.
2025-06-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Shorten code by using variables to store references to target nodes. No
functional changes intended.
2025-06-05 Gavin Smith <gavinsmith0123@gmail.com>
Check for missing menu entries before structure check
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure),
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure):
Move check for missing menu entries (controlled by CHECK_MISSING_MENU_ENTRY)
before structure check (controlled by CHECK_NORMAL_MENU_STRUCTURE).
2025-06-04 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (_print_text_element)
(print_element_base, print_element_details): call _print_source_marks
in print_element_details only, remove $current_nr input and output
from _print_text_element and print_element_base.
2025-06-04 Patrice Dumas <pertusus@free.fr>
Very preliminary DocBook converter based on Texinfo::Reader
* tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin)
(_convert): call Texinfo::TreeElement::new on new elements.
* tta/perl/Texinfo/Convert/Converter.pm
(element_format_comment_or_end_line), tta/perl/Texinfo/Reader.pm
(_end_element, skip_children, reader_collect_commands_list),
tta/perl/Texinfo/TreeElement.pm (cmdname, text): add.
* tta/perl/Texinfo/TreeElement.pm (get_child): rename get_children as
get_child.
* tta/perl/Texinfo/TreeElement.pm (get_attribute): also get info
additional information.
* tta/perl/Makefile.am (dist_convertmodules_DATA),
tta/perl/Texinfo/Convert/ReadDocBook.pm, tta/perl/texi2any.pl: new
DocBook converter based on Texinfo::Reader work in progress.
2025-06-04 Gavin Smith <gavinsmith0123@gmail.com>
Reword error message about node directions
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
Reword error message about node directions for consistency with
similar messages, not using the word "pointer" when this was not
given explicitly as an argument to @node.
2025-06-04 Gavin Smith <gavinsmith0123@gmail.com>
Separate explicit node pointer checking
* tta/perl/Texinfo/Structuring.pm (check_node_tree_menu_structure),
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
Check for mismatch between sectioning and menu directions
where both are defined in the same block of code handling menu
directions defined but no sectioning directions. Do not refer to
'node_directions' that was set in 'construct_nodes_tree' based
both on explicit menu directions and sectioning. Only look at
'node_directions' if pointers were not automatically determined
for a node.
This will allow for reworking of these error messages without
affecting errors about explicit node pointers.
2025-06-04 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (print_element_base): split
print_element_base out of print_element_details to print element
information except for extra and info additional information.
* tta/perl/Texinfo/Convert/TestReader.pm (_convert): use
print_element_base for END.
* tta/perl/Texinfo/Reader.pm (read): go through
spaces_after_cmd_before_arg, spaces_before_argument,
spaces_after_argument and comment_at_end in addition to contents.
2025-06-03 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (element_to_perl_hash),
tta/C/main/manipulate_tree.c (print_text_element),
tta/perl/Texinfo/Convert/Converter.pm (_comma_index_subentries_tree)
(comma_index_subentries_tree): set other_text type in Perl as in C.
2025-06-03 Patrice Dumas <pertusus@free.fr>
* tta/C/main/element_types.txt, tta/C/parsetexi/macro.c
(expand_macro_arguments, expand_linemacro_arguments),
tta/perl/Texinfo/ParserNonXS.pm (_expand_macro_arguments)
(_expand_linemacro_arguments): add macro_call_arg_text for macro
call argument text and for linemacro call argument text, if not
bracketed.
Update Texinfo tree Pod documentation of text elements.
2025-06-03 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ParserNonXS.pm (_isolate_trailing_spaces_element):
add a type argument.
* tta/C/main/element_types.txt, tta/C/parsetexi/handle_commands.c
(handle_line_command), tta/C/parsetexi/parser.c (isolate_last_space),
tta/C/structuring_transfo/structuring.c (new_block_command),
tta/C/structuring_transfo/transformations.c
(fill_gaps_in_sectioning_in_document, new_node),
tta/perl/Texinfo/ParserNonXS.pm (_isolate_trailing_spaces_element)
(trailing_space_types, _handle_line_command),
tta/perl/Texinfo/Structuring.pm (new_block_command),
tta/perl/Texinfo/Transformations.pm
(fill_gaps_in_sectioning_in_document, _new_node): add
spaces_after_argument type. Set the spaces_after_argument info element
type to spaces_after_argument.
2025-06-03 Patrice Dumas <pertusus@free.fr>
* tta/C/main/element_types.txt, tta/C/parsetexi/handle_commands.c
(handle_line_command), tta/C/parsetexi/macro.c
(expand_macro_arguments, expand_linemacro_arguments, handle_macro),
tta/C/parsetexi/parser.c (move_last_space_to_element),
tta/C/structuring_transfo/structuring.c (new_block_command),
tta/C/structuring_transfo/transformations.c
(fill_gaps_in_sectioning_in_document, new_node),
tta/perl/Texinfo/ParserNonXS.pm (_expand_macro_arguments)
(_expand_linemacro_arguments, _move_last_space_to_element)
(_handle_macro, _handle_line_command), tta/perl/Texinfo/Structuring.pm
(new_block_command), tta/perl/Texinfo/Transformations.pm
(fill_gaps_in_sectioning_in_document, _new_node): add
spaces_before_argument type. Set the spaces_before_argument info
element type to spaces_before_argument.
2025-06-03 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/macro.c (handle_macro), tta/C/parsetexi/parser.c
(process_remaining_on_line), tta/C/parsetexi/source_marks.c
(place_source_mark), tta/perl/Texinfo/ParserNonXS.pm
(_place_source_mark, _handle_macro, _process_remaining_on_line): set
the spaces_after_cmd_before_arg info element type to
spaces_after_cmd_before_arg.
2025-06-02 Patrice Dumas <pertusus@free.fr>
Preliminary Texinfo Tree Reader API for Perl
* tta/perl/Makefile.am (dist_modules_DATA),
tta/perl/Texinfo/Reader.pm: preliminary Texinfo tree Reader API
similar to Pod::Simple::PullParser or XML::LibXML::Reader.
* tta/perl/Makefile.am (dist_convertmodules_DATA),
tta/perl/perl/Texinfo/Convert/TestReader.pm, tta/perl/texi2any.pl
(%formats_table): add a converter that can only test Texinfo::Reader.
2025-06-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (debug_print_element),
tta/perl/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo): add
messages if an element is not blessed into Texinfo::TreeElement
now that both Perl and C generated tree element should be.
2025-06-02 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (new_element_perl_data): add a function
to setup an empty Perl sv in a C element.
* tta/C/main/build_perl_info.c (build_perl_array)
(build_perl_const_element_array, build_perl_container)
(build_perl_directions, build_additional_info, element_to_perl_hash):
use new_element_perl_data.
2025-06-02 Patrice Dumas <pertusus@free.fr>
Store Texinfo tree element SV in C
* tta/C/main/api_to_perl.c (get_sv_hv): add. Useful when a SV is
stored in C and the HV should be compared to an HV as comparison
of SV is not reliable.
* tta/C/main/build_perl_info.c (build_perl_array)
(build_perl_const_element_array, build_perl_container)
(build_perl_directions, build_additional_info, element_to_perl_hash),
tta/C/main/tree_types.h (ELEMENT): store SV element in C and not HV.
Update all the codes using Perl element data.
2025-06-02 Gavin Smith <gavinsmith0123@gmail.com>
Simplify "top node next" setting
* tta/perl/Texinfo/Structuring.pm (_set_top_node_next),
* tta/C/structuring_transfo/structuring.c (set_top_node_next):
Handle setting top node next from sectioning as well as menu.
* tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus),
* tta/C/structuring_transfo/structuring.c (complete_node_tree_with_menus):
Do not call _set_top_node_next/set_top_node_next, as this function is not
always called, depending on the setting of FORMAT_MENU.
* tta/perl/Texinfo/Structuring.pm (construct_nodes_tree),
* tta/C/structuring_transfo/structuring.c (construct_nodes_tree):
Call _set_top_node_next/set_top_node_next. Do not set top node next
from sectioning in this function, except via _set_top_node_next.
* tta/perl/t/30sectioning.t (chapter_between_nodes_with_appendix_nomenu):
Comment updated to clarify that FORMAT_MENU now makes no
difference for this test.
2025-06-02 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (_set_top_node_next):
Add check for undef variable.
2025-06-02 Gavin Smith <gavinsmith0123@gmail.com>
Use identifier_target argument to get Top node
* tta/perl/Texinfo/Structuring.pm (_set_top_node_next):
Retrieve "Top" node from $identifier_target argument, rather
than checking normalized node name.
* tta/C/structuring_transfo/structuring.c
(set_top_node_next, construct_nodes_tree): Use find_identifier_target
instead of strcmp on normalized node name to find Top node, matching
the pure Perl code.
2025-06-02 Patrice Dumas <pertusus@free.fr>
Calling initialization of interface for Tree elements in Perl
* tta/perl/Makefile.am (dist_modules_DATA),
tta/perl/Texinfo/TreeElement.pm (new, *): preliminary programming
interface for Texinfo tree elements.
* tta/perl/Texinfo/Common.pm, tta/perl/Texinfo/Convert/*.pm,
tta/perl/Texinfo/Document.pm, tta/perl/Texinfo/Indices.pm,
tta/perl/Texinfo/ManipulateTree.pm (_copy_tree,
element_number_or_error, _print_element_associated_info) (modify_tree,
protect_first_parenthesis), tta/perl/Texinfo/OutputUnits.pm,
tta/perl/Texinfo/ParserNonXS.pm, tta/perl/Texinfo/Structuring.pm,
tta/perl/Texinfo/Transformations.pm, tta/perl/Texinfo/Translations.pm,
tta/perl/init/documentation_examples.pm,
tta/perl/t/init/index_direction_from_index_name.pm,
tta/perl/t/z_misc/01use.t, tta/perl/t/z_misc/test_tree_copy.t: call
Texinfo::TreeElement::new for each tree element initialization.
* tta/perl/Texinfo/ManipulateTree.pm (_print_element_associated_info):
change order of conditional.
2025-06-01 Patrice Dumas <pertusus@free.fr>
* tta/C/main/output_unit.c (print_output_units_details),
tta/C/texi2any.c (main): replace print_element_details by
print_tree_details and print_tree_details by tree_print_details).
2025-06-01 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: mention accesskey changes for HTML output.
2025-05-31 Gavin Smith <gavinsmith0123@gmail.com>
Reword a warning
* tta/perl/Texinfo/Structuring.pm, tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure):
Reword a warning to be consistent with a very similar warning in the
same function.
2025-05-31 Gavin Smith <gavinsmith0123@gmail.com>
Remove cast away from const.
* tta/C/structuring_transfo/structuring.c
(complete_node_tree_with_menus, set_top_node_next):
Declare a variable as const and do not cast its assignment.
2025-05-31 Gavin Smith <gavinsmith0123@gmail.com>
Split out function to set Top node next
* tta/perl/Texinfo/Structuring.pm, tta/C/structuring_transfo/structuring.c
(complete_node_tree_with_menus, _set_top_node_next, set_top_node_next):
Split out _set_top_node_next from complete_node_tree_with_menus.
2025-05-31 Gavin Smith <gavinsmith0123@gmail.com>
Simplify node directions check
* tta/perl/Texinfo/Structuring.pm,
* tta/C/structuring_transfo/structuring.c (check_node_tree_menu_structure):
Do not use 'node directions' object to check for nodes that have
no directions information.
Instead, re-use a check for whether sectioning directions could
be followed, placing code in an "else" clause.
This is possible because the 'node directions' were set in
construct_nodes_tree using very similar logic to that used to follow
the sectioning directions.
This affects the outcome of a small number of tests where the "previous"
node direction was set to the Top node, which isn't included in the
original sectioning directions themselves.
2025-05-30 Gavin Smith <gavinsmith0123@gmail.com>
Split out function
* tta/perl/Texinfo/Structuring.pm,
* tta/C/structuring_transfo/structuring.c (complete_node_tree_with_menus):
Do not call check_node_tree_menu_structure. All callers updated.
2025-05-29 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm, tta/C/structuring_transfo/structuring.c
(check_node_tree_menu_structure):
In the loop over the nodes, if node is Top, do a "next" or "continue" to skip
the body of the loop. This allows exdenting a conditional block.
2025-05-29 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus):
Remove useless line of code.
2025-05-29 Gavin Smith <gavinsmith0123@gmail.com>
Separate structure checking and structure fixing code
* tta/perl/Texinfo/Structuring.pm
(complete_node_tree_with_menus, check_node_tree_menu_structure),
* tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs,
tta/C/structuring_transfo/structuring.c
(complete_node_tree_with_menus, check_node_tree_menu_structure):
Split out check_node_tree_menu_structure as a separate function.
2025-05-29 Gavin Smith <gavinsmith0123@gmail.com>
Simplify a conditional
* tta/C/structuring_transfo/structuring.c (complete_node_tree_with_menus),
* tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus):
Hoist code setting and checking variables outside of loop over
node directions.
2025-05-29 Gavin Smith <gavinsmith0123@gmail.com>
Separate structure checking and structure fixing code
* tta/C/structuring_transfo/structuring.c (complete_node_tree_with_menus)
* tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus):
Separate structure checking code from code completing structural
information using the menus. No functional changes intended.
2025-05-29 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_tree_details)
(tree_print_details), tta/perl/Texinfo/ManipulateTree.pm
(print_tree_details, tree_print_details, print_element_details),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(tree_print_details): rename print_element_details as
print_tree_details and print_tree_details as tree_print_details.
Keep print_element_details in Perl with the code corresponding
to one element details printing.
2025-05-29 Patrice Dumas <pertusus@free.fr>
Pod and tta/TODO information on on-demand Document interface issues
2025-05-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test), tta/perl/texi2any.pl: if
XS_structuring is not set (with TEXINFO_XS_STRUCTURE=0), rebuild every
information associated to the document before calling structuring
code, such that no flags of modified structure in C are set and XS
code called to get document structures directly returns the Perl data.
Report from Gavin.
2025-05-28 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (%XS_structure_overrides, import):
override print_document_listoffloats only if XS structuring is
enabled. Report from Gavin.
* tta/C/main/build_perl_info.c (build_listoffloats_list): push
float section HV. Report from Gavin.
* tta/C/structuring_transfo/structuring.c (number_floats): use %d for
int, not %zu.
2025-05-28 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_to_text.c (convert_to_text_internal): fix typo in
type name.
2025-05-28 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_to_text.c (convert_to_text_internal),
tta/C/main/node_name_normalization.c (convert_to_normalized_internal),
tta/perl/Texinfo/Convert/NodeNameNormalization.pm (%ignored_types),
tta/perl/Texinfo/Convert/Text.pm (%ignored_types)
(%ignored_text_types), tta/perl/Texinfo/Convert/TextContent.pm:
add spaces_at_end_menu_node and preamble_before_setfilename as ignored
for some output formats.
* tta/perl/Texinfo/Convert/HTML.pm,
tta/perl/Texinfo/Convert/LaTeX.pm,
tta/perl/Texinfo/Convert/Plaintext.pm,
tta/perl/Texinfo/Convert/TextContent.pm: reformat ignorable text types
and types setting for a more easily comparable code across converters.
2025-05-26 Patrice Dumas <pertusus@free.fr>
use relations instead of structure for node section headings
* tta/C/main/tree_types.h (NODE_RELATIONS, NODE_RELATIONS_LIST)
(CONST_NODE_RELATIONS_LIST, HEADING_RELATIONS, HEADING_RELATIONS_LIST)
(SECTION_RELATIONS, SECTION_RELATIONS_LIST): rename *_STRUCTURE* as
*_RELATIONS.
Rename variables with structure in their names to varibles with
relations intheir name. Update Pod.
2025-05-26 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (split_by_section): remove redundant
$sections_list.
* tta/C/convert/html_prepare_converter.c
(html_prepare_units_directions_files), tta/C/main/output_unit.c
(units_directions, do_units_directions_pages),
tta/perl/Texinfo/Convert/HTML.pm (_prepare_units_directions_files),
tta/perl/Texinfo/OutputUnits.pm (units_directions)
(do_units_directions_pages): remove unused sections_list argument of
units_directions. Update callers.
Changes in comments, Pod, TODO.
2025-05-25 Karl Berry <karl@freefriends.org>
* util/htmlxref.d/Texinfo_GNU.cnf: add automake-history.
2025-05-25 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/Makefile.am: reorder slightly
2025-05-25 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking: Suggest using DISTCHECK_CONFIGURE_FLAGS
to make distcheck faster.
2025-05-25 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/Makefile.am: Use variables and $@ to avoid repeating
some lists of filenames.
2025-05-25 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/Makefile.am: Use variable to list products
of ../maintain/generate_code_commands_values.pl. Add
convert/cmd_converter.c to MAINTAINERCLEANFILES but remove
main/cmd_symbol.c which seems not to exist.
2025-05-25 Gavin Smith <gavinsmith0123@gmail.com>
* tta/C/Makefile.am: Use variables to list outputs
of helper programs to avoid listing the files twice.
2025-05-24 Gavin Smith <gavinsmith0123@gmail.com>
Attempt at fixing "Multiple Outputs" build problem
* tta/C/Makefile.am: Use stamp files as intermediate
dependencies for files produced by the following scripts:
main/element_types.awk
main/command_data.awk
../maintain/generate_code_commands_values.pl
../maintain/regenerate_C_options_info.pl
../maintain/generate_code_convert_data.pl
This should avoid rules running more than one in the case
of parallel builds. See "Multiple Outputs" in the Automake
manual.
2025-05-24 Gavin Smith <gavinsmith0123@gmail.com>
info tests: avoid any default config files.
* info/t/Init-test.inc: Locate config files by setting
XDG_CONFIG_HOME.
* info/t/Infokey-config, info/t/config/texinfo/infokey: File moved.
I had test failures due to hook files.
2025-05-24 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (@table): Add blank line to sample output
to match example. Report from Vincent Lefevre.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/output_unit.c (print_output_units_details),
tta/perl/Texinfo/OutputUnits.pm (print_output_units_details): when
showing the unit command associated to the output unit, determine the
kind of command by comparing with unit node or unit section. Also
show the texinfo code of the structure information not associated to
unit_command.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/output_unit.c (print_output_units_tree_details),
tta/perl/Texinfo/OutputUnits.pm (print_output_units_tree_details):
comment out call of set_element_tree_numbers and
remove_element_tree_numbers as these are no-ops and there are no
element numbers generated anymore.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/structure_list.c (SECTION_STRUCT_PRINT_KEY)
(print_section_structure_info_internal, print_sections_list)
(print_node_structure_info_internal, print_nodes_list)
(print_headings_list, print_heading_structure_info_internal): split
out functions that print one section, node or heading structure
information, to be able to use for debug, for example.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_node_structure_list): keep a
reference to the node structure Perl HV in the C code.
2025-05-23 Patrice Dumas <pertusus@free.fr>
If undef, set USE_ACCESSKEY to 1 only if split at node
* tta/C/convert/html_prepare_converter.c
(html_initialize_output_state), tta/perl/Texinfo/Convert/HTML.pm
(conversion_initialization): set USE_ACCESSKEY automatically if undef
only if split at node, as with other split options, there could
be accesskey attributes with different targets.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_convert_heading_command),
tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command),
tta/perl/init/book.pm (book_convert_heading_command): reorganize code
by determining early section_structure or node_structure to avoid
redundant code. No functional change intended.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/structure_list.c (new_const_node_structure_list)
(reallocate_const_node_structure_list)
(add_to_const_node_structure_list), tta/C/main/tree_types.h
(CONST_NODE_STRUCTURE_LIST): new type for a list of const node
structure and associated functions.
* tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning),
tta/perl/Texinfo/Structuring.pm
(get_node_node_childs_from_sectioning): use CONST_NODE_STRUCTURE_LIST.
Store node structure information instead of node tree elements.
Update callers.
* tta/C/structuring_transfo/structuring.c (new_node_menu_entry)
(new_complete_node_menu), tta/C/structuring_transfo/transformations.c
(complete_node_menu, complete_tree_nodes_menus_in_document),
tta/perl/Texinfo/Structuring.pm (new_node_menu_entry)
(new_complete_node_menu), tta/perl/Texinfo/Transformations.pm
(_complete_node_menu, complete_tree_nodes_menus_in_document)
(complete_tree_nodes_missing_menu): pass a node structure in argument
of new_node_menu_entry, remove nodes_list argument. Update callers.
Remove nodes_list complete_node_menu, new_complete_node_menu and
complete_tree_nodes_menus_in_document arguments. Update callers.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_convert_heading_command),
tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning)
(section_direction_associated_node, complete_node_tree_with_menus)
(construct_nodes_tree, new_complete_node_menu, print_down_menus)
(new_detailmenu, new_complete_menu_master_menu),
tta/C/structuring_transfo/transformations.c (complete_node_menu)
(complete_tree_nodes_menus_in_document)
(complete_tree_nodes_missing_menu, regenerate_master_menu),
tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Structuring.pm (get_node_node_childs_from_sectioning)
(check_nodes_are_referenced, _section_direction_associated_node)
(complete_node_tree_with_menus, construct_nodes_tree, number_floats)
(new_complete_node_menu, new_detailmenu)
(new_complete_menu_master_menu, _print_down_menus),
tta/perl/Texinfo/Transformations.pm (_complete_node_menu)
(complete_tree_nodes_menus_in_document)
(complete_tree_nodes_missing_menu, regenerate_master_menu),
tta/perl/t/z_misc/do_master_menu.t: remove sections_list arguments
when they are not useful.
* tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command): use
directly associated_node node structure.
2025-05-23 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Shared Conversion State in Default
Formatting), tta/perl/Texinfo/Convert/HTML.pm (command_description)
(_formatted_nodedescription_nr, _convert_menu_entry_type),
tta/perl/XSTexinfo/convert/get_html_perl_info.c
(find_node_target_info_nodedescription_sv): use the node element and
not the nodedescription element to select the node description for the
nodedescription shared conversion state, since it is easier to find
the C tree node from XS based on the node Perl tree element than based
on the nodedescription Perl tree element.
* tta/C/main/build_perl_info.c (store_document_texinfo_tree)
(store_document_tree_output_units): move building section, nodes and
heading lists to store_document_texinfo_tree to make sure that they
are rebuilt if needed in more cases.
* tta/C/main/build_perl_info.c (output_unit_to_perl_hash),
tta/C/main/document_types.h (OUTPUT_UNIT), tta/C/main/output_unit.c
(split_by_node, split_by_section), tta/perl/Texinfo/Common.pm
(debug_print_output_unit), tta/perl/Texinfo/OutputUnits.pm
(split_by_node, split_by_section): add unit_node and unit_section
information to output unit, to hae a direct access to associated node
and section information.
* tta/C/convert/format_html.c (from_element_direction)
(html_default_format_begin_file, html_convert_heading_command),
tta/C/convert/html_prepare_converter.c (html_set_pages_files),
tta/C/main/output_unit.c (split_pages, units_directions),
tta/perl/Texinfo/Convert/Converter.pm (set_output_units_files)
(sort_element_counts), tta/perl/Texinfo/Convert/HTML.pm
(from_element_direction, _convert_heading_command)
(_html_set_pages_files, _default_format_begin_file),
tta/perl/Texinfo/Convert/IXIN.pm, tta/perl/Texinfo/OutputUnits.pm
(split_pages, units_directions), tta/perl/init/book.pm
(book_format_navigation_header, book_convert_heading_command)
(book_unit_file_name): use output unit unit_node and unit_section
instead of unit_command when relevant. Remove _output_unit_node and
_output_unit_section functions.
* tta/perl/Texinfo/Convert/Plaintext.pm (process_footnotes): rename
$element as $output_unit.
2025-05-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.tres, tta/perl/t/html_tests.t
(simple_only_special_spaces_node_test_split_section): test split
at sections with nodes consisting of spaces only.
2025-05-22 Patrice Dumas <pertusus@free.fr>
* tta/C/main/output_unit.c (split_by_section),
tta/perl/Texinfo/OutputUnits.pm (split_by_section): check that a node
has a node number before looking for the associated section.
2025-05-22 Patrice Dumas <pertusus@free.fr>
no empty nodes associated to output units
* tta/C/main/output_unit.c (split_by_node),
tta/perl/Texinfo/OutputUnits.pm (split_by_node): do not 'split' at
node that do not have a 'normalized' extra information, ie a node that
ends up being all spaces.
2025-05-21 Patrice Dumas <pertusus@free.fr>
associated_anchor_command points to node information
* tta/C/main/build_perl_info.c (build_section_structure)
(build_heading_structure_list), tta/C/main/structure_list.c
(SECTION_STRUCT_PRINT_KEY, print_sections_list, print_nodes_list),
tta/C/main/tree_types.h (HEADING_STRUCTURE, SECTION_STRUCTURE),
tta/C/parsetexi/end_line.c (associate_title_command_anchor),
tta/perl/Texinfo/ParserNonXS.pm (_associate_title_command_anchor),
tta/perl/Texinfo/Structuring.pm (print_sections_list)
(print_headings_list): have associated_anchor_command point
to node structure information instead of pointing to tree elements.
Remove SECTION_STRUCT_PRINT_KEY which is not used anymore and rename
SECTION_STRUCT_PRINT_KEY_OR_NULL as SECTION_STRUCT_PRINT_KEY.
* tta/C/convert/format_html.c (html_internal_command_href),
tta/perl/Texinfo/Convert/HTML.pm (_internal_command_href):
update for associated_anchor_command change.
2025-05-21 Patrice Dumas <pertusus@free.fr>
part_following_node points to node information
* tta/C/main/build_perl_info.c (build_section_structure),
tta/C/main/structure_list.c (print_sections_list),
tta/C/main/tree_types.h (SECTION_STRUCTURE),
tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line),
tta/perl/Texinfo/Structuring.pm (print_sections_list): have
part_following_node point to node structure information instead of
pointing to tree elements.
* tta/C/convert/format_html.c (html_open_node_part_command),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_open_node_part_command),
tta/perl/Texinfo/Convert/LaTeX.pm (output, _convert): update for
change in part_following_node.
2025-05-21 Patrice Dumas <pertusus@free.fr>
associated_part and part_associated_section point to section information
* tta/perl/Texinfo/Structuring.pm (_print_key_section_with_number)
(print_nodes_list): add _print_key_section_with_number based on
print_nodes_list code.
* tta/C/main/build_perl_info.c (build_section_structure),
tta/C/main/structure_list.c (print_sections_list),
tta/C/main/tree_types.h (SECTION_STRUCTURE),
tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line),
tta/perl/Texinfo/Structuring.pm (print_sections_list): have
associated_part and part_associated_section point to section structure
information instead of pointing to tree elements.
* tta/C/main/output_unit.c (split_by_section),
tta/C/structuring_transfo/structuring.c
(complete_node_tree_with_menus, construct_nodes_tree)
(new_complete_node_menu), tta/perl/Texinfo/Convert/DocBook.pm
(_convert), tta/perl/Texinfo/OutputUnits.pm (split_by_section),
tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus)
(construct_nodes_tree, new_complete_node_menu): update for changes in
associated_part and part_associated_sectionpart_associated_section and
also try to fix code and have more legible code.
2025-05-21 Patrice Dumas <pertusus@free.fr>
associated_node points to node information
* tta/C/main/build_perl_info.c (STORE_STRUCT_INFO_NODE_STRUCTURE)
(build_section_structure), tta/C/main/structure_list.c
(print_sections_list), tta/C/main/tree_types.h (SECTION_STRUCTURE),
tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/C/structuring_transfo/transformations.c
(insert_nodes_for_sectioning_commands),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line),
tta/perl/Texinfo/Structuring.pm (print_sections_list),
tta/perl/Texinfo/Transformations.pm
(insert_nodes_for_sectioning_commands): let associated_node be a node
structure information instead of a node element in the tree.
* tta/C/convert/format_html.c (html_command_node)
(html_internal_command_href, html_command_description)
(from_element_direction, html_default_format_contents)
(html_default_format_begin_file, html_convert_heading_command)
(html_convert_heading_command, get_element_root_command_element),
tta/C/main/output_unit.c (output_unit_node),
tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning)
(section_direction_associated_node, complete_node_tree_with_menus)
(construct_nodes_tree), tta/perl/Texinfo/Convert/DocBook.pm
(_docbook_section_element, _convert), tta/perl/Texinfo/Convert/HTML.pm
(command_node, _internal_command_href, command_description)
(get_element_root_command_element, from_element_direction)
(_convert_heading_command, _default_format_contents)
(_default_format_begin_file), tta/perl/Texinfo/Convert/LaTeX.pm
(_convert), tta/perl/Texinfo/OutputUnits.pm (_output_unit_node)
(units_directions), tta/perl/Texinfo/Structuring.pm
(get_node_node_childs_from_sectioning, complete_node_tree_with_menus)
(construct_nodes_tree), tta/perl/init/book.pm
(book_convert_heading_command),
tta/perl/init/documentation_examples.pm,
tta/perl/t/init/index_direction_from_index_name.pm: update for change
of associated_node.
* doc/texi2any_api.texi (Setting Global Directions From Document
Information): update example.
2025-05-21 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/transformations.c
(complete_tree_nodes_missing_menu): free the non_automatic_nodes list
only, not the nodes structures inside.
* tta/C/main/build_perl_info.c (store_document_tree_output_units):
rebuild nodes and headings structure information list in that
function, to be sure to rebuild everytime the tree is used and the
lists are changed.
* tta/C/main/build_perl_info.c (build_section_structure)
(build_section_structure_list): do not have build_section_structure
return anything, use the hv in the structure.
* tta/C/main/build_perl_info.c (build_node_structure)
(build_node_structure_list): add build_node_structure from
build_node_structure_list code.
* tta/C/main/build_perl_info.c (build_node_structure)
(build_node_structure_list, build_heading_structure_list),
tta/C/main/structure_list.c (free_node_structure_list)
(free_heading_structure_list), tta/C/main/tree_types.h
(NODE_STRUCTURE, HEADING_STRUCTURE): add a reference to Perl objects
built from node and heading structure information.
* tta/C/structuring_transfo/transformations.c (complete_node_menu)
(complete_tree_nodes_missing_menu): change in const/casts to remove
const.
2025-05-21 Patrice Dumas <pertusus@free.fr>
Set default for USE_ACCESSKEY to undef and set to 1 if split
* tta/C/convert/html_prepare_converter.c
(html_initialize_output_state), tta/data/converters_defaults.txt
(USE_ACCESSKEY), tta/perl/Texinfo/Convert/HTML.pm
(conversion_initialization), doc/texinfo.texi (File Names and Links
Customization for HTML, HTML Customization Variables List): set the
default to undef for USE_ACCESSKEY for HTML. If USE_ACCESSKEY is
undef, set if the output document is split in conversion
initialization. Report from Vincent Lefevre.
2025-05-21 Patrice Dumas <pertusus@free.fr>
associated_section, node_preceding_part point to section information
* tta/C/main/build_perl_info.c (store_document_tree_output_units):
rebuild section structure information to Perl when the tree is
rebuilt.
* tta/C/main/structure_list.c (print_sections_list)
(print_sectioning_root): free section texinfo code variable.
* tta/C/main/build_perl_info.c (STORE_STRUCT_INFO_ELEMENT)
(build_node_structure_list, build_section_structure)
(build_heading_structure_list), tta/C/main/structure_list.c
(print_root_command), tta/C/main/tree_types.h
b/tta/C/main/tree_types.h (NODE_STRUCTURE), tta/C/parsetexi/end_line.c
(end_line_misc_line), tta/C/structuring_transfo/transformations.c
(insert_nodes_for_sectioning_commands),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line),
tta/perl/Texinfo/Structuring.pm (print_nodes_list),
tta/perl/Texinfo/Transformations.pm
(insert_nodes_for_sectioning_commands): have associated_section and
node_preceding_part point to sectionstructure information rather than
to element trees.
* tta/C/convert/format_html.c (html_internal_command_href)
(from_element_direction, html_convert_heading_command)
(html_convert_xref_command, get_element_root_command_element),
tta/C/convert/html_prepare_converter.c
(html_prepare_output_units_global_targets), tta/C/main/output_unit.c
(split_by_section, output_unit_section, units_directions),
tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning, check_nodes_are_referenced)
(complete_node_tree_with_menus, construct_nodes_tree)
(new_complete_node_menu, print_down_menus)
(new_complete_menu_master_menu),
tta/C/structuring_transfo/transformations.c (complete_node_menu)
(complete_tree_nodes_missing_menu),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_internal_command_href)
(get_element_root_command_element, from_element_direction)
(_convert_heading_command, _convert_xref_commands)
(_prepare_output_units_global_targets),
tta/perl/Texinfo/Convert/LaTeX.pm (_associate_other_nodes_to_sections)
(_convert), tta/perl/Texinfo/OutputUnits.pm (split_by_section)
(_output_unit_section, units_directions),
tta/perl/Texinfo/Structuring.pm (get_node_node_childs_from_sectioning)
(complete_node_tree_with_menus, construct_nodes_tree)
(new_complete_node_menu, new_complete_menu_master_menu)
(_print_down_menus), tta/perl/Texinfo/Transformations.pm
(complete_node_menu, complete_tree_nodes_missing_menu),
tta/perl/init/book.pm (book_in_contents_button)
(book_convert_heading_command, book_unit_file_name): adapt for
associated_section and node_preceding_part changes.
2025-05-20 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree_types.h (NODE_STRUCTURE, HEADING_STRUCTURE)
(SECTION_STRUCTURE), tta/C/parsetexi/end_line.c,
tta/C/structuring_transfo/transformations.c: add const in structures.
Add/remove cast to remove const.
2025-05-20 Patrice Dumas <pertusus@free.fr>
section structure information as section direction and child targets
* tta/C/main/structure_list.c (new_section_structure_list)
(new_section_directions, add_to_section_structure_list)
(add_section_to_section_structure_list): add
new_section_structure_list, new_section_directions and
add_to_section_structure_list.
* tta/C/main/build_perl_info.c (build_perl_section_directions)
(build_perl_section_structure_array, build_section_structure)
(build_listoffloats_list), tta/C/main/tree_types.h
(SECTION_STRUCTURE), tta/C/main/structure_list.c
(free_section_structure_list): add an hv field in SECTION_STRUCTURE
for perl object caching. Build structure information direction and
section_childs to Perl.
* tta/C/main/structure_list.c (print_sections_directions)
(print_sectioning_root), tta/C/main/tree_types.h (SECTION_STRUCTURE)
(SECTIONING_ROOT), tta/C/structuring_transfo/structuring.c
(sectioning_structure), tta/perl/Texinfo/Structuring.pm
(sectioning_structure, free_section_structure_list)
(print_sections_list, print_sectioning_root),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(document_floats_information): change section directions to point to
section structure information. Change section_childs to be a list of
section structure information. Build sections list to Perl before
building float information, as section structure information is
needed.
* tta/C/convert/format_html.c (html_default_format_contents)
(mini_toc_internal), tta/C/convert/html_prepare_converter.c
(html_prepare_output_units_global_targets),
tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning)
(section_direction_associated_node, complete_node_tree_with_menus)
(construct_nodes_tree, number_floats),
tta/C/main/output_unit.c (units_directions),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm
(_prepare_output_units_global_targets, _mini_toc)
(_default_format_contents), tta/perl/Texinfo/Convert/IXIN.pm,
tta/perl/Texinfo/Convert/Plaintext.pm (format_contents),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/Texinfo/OutputUnits.pm (units_directions),
tta/perl/Texinfo/Structuring.pm (_print_sectioning_tree)
(get_node_node_childs_from_sectioning)
(_section_direction_associated_node, construct_nodes_tree)
(number_floats), tta/perl/ext/epub3.pm, tta/perl/init/book.pm
(book_print_up_toc, book_print_sub_toc)
(book_convert_heading_command), tta/perl/init/chm.pm: update for
change in section directions and children list.
2025-05-20 Collin Funk <collin.funk1@gmail.com> (tiny change)
Fix an uninitialized variable.
* tta/C/main/get_perl_info.c (html_get_button_specification_list):
Initialize to text_type_p and then check it before accessing.
2025-05-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_section_structure)
(build_section_structure_list): split build_section_structure out of
build_section_structure_list.
* tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/C/parsetexi/parser.c (current_section): use section structure
information as current_csection.
* tta/C/main/build_perl_info.c (build_listoffloats_list),
tta/C/main/floats.c (add_to_float_record_list)
(add_to_float_information_list), tta/C/main/tree_types.h
(FLOAT_INFORMATION, FLOAT_RECORD),
tta/C/structuring_transfo/structuring.c (number_floats),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line)
(_end_line_starting_block), tta/perl/Texinfo/Structuring.pm
(number_floats): update section information associated to float to be
the section structure information.
* tta/perl/ext/epub3.pm, tta/perl/init/book.pm, tta/perl/init/chm.pm:
change in spacing.
2025-05-19 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning),
tta/perl/Texinfo/Structuring.pm
(get_node_node_childs_from_sectioning): remove checks for impossible
cases.
2025-05-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (set_element_tree_numbers):
fix syntax error.
2025-05-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (set_element_tree_numbers)
(print_tree_details), tta/perl/Texinfo/ManipulateTree.pm
(set_element_tree_numbers, print_tree_details): do not call
set_element_tree_numbers nor remove_element_tree_numbers in
print_tree_details since there are no reference to other elements in
extra information anymore.
Do not match any command in set_element_tree_numbers as there are no
command anymore that are target of extra keys.
Add comments to explain why the different functions or pieces of code
are not called.
2025-05-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_element_info): set numbers on
info elements, not on the element itself.
Minor changes.
2025-05-18 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command):
handle $associated_command_id being undefined.
* tta/C/main/manipulate_tree.c (print_root_command)
(root_command_element_string), tta/C/main/structure_list.c
(print_line_command, print_nodes_list),
tta/perl/Texinfo/ManipulateTree.pm (_print_root_command,
root_command_element_string), tta/perl/Texinfo/Structuring.pm
(_print_line_command, print_nodes_list): move print_section_command to
manipulate_tree.c and rename as root_command_element_string. Also
duplicate print_root_command in manipulate_tree.c.
* tta/C/main/output_unit.c (print_output_units_details),
tta/perl/Texinfo/OutputUnits.pm (print_output_units_details): use
root_command_element_string for output units unit_command textual
output.
2025-05-18 Patrice Dumas <pertusus@free.fr>
set extra element_node to node identifier instead of node element
* tta/C/convert/format_html.c (html_convert_printindex_command),
tta/C/main/tree_types.h (AI_KEYS_LIST), tta/C/parsetexi/indices.c
(enter_index_entry), tta/C/structuring_transfo/transformations.c
(reassociate_to_node), tta/perl/Texinfo/Convert/HTML.pm
(_convert_printindex_command), tta/perl/Texinfo/Convert/IXIN.pm,
tta/perl/Texinfo/Convert/Plaintext.pm (process_printindex),
tta/perl/Texinfo/ParserNonXS.pm (_enter_index_entry),
tta/perl/Texinfo/Transformations.pm (_reassociate_to_node): set
extra information element_node to be the node identifier string
instead of the node element.
2025-05-18 Patrice Dumas <pertusus@free.fr>
move sectioning_root to document and sections_list to structure
* tta/C/main/build_perl_info.c (build_section_structure_list)
(build_sectioning_root, fill_document_hv, document_sectioning_root),
tta/C/main/document.c (destroy_document_information_except_tree),
tta/C/main/document_types.h (F_DOCM_sectioning_root, DOCUMENT),
tta/C/main/structure_list.c (free_section_structure_list)
(print_sections_list, print_sectioning_root), tta/C/main/tree_types.h
(AI_KEYS_LIST, SECTION_STRUCTURE, SECTIONING_ROOT),
tta/C/structuring_transfo/structuring.c (sectioning_structure),
tta/perl/Texinfo/Document.pm (sectioning_root),
tta/perl/Texinfo/ManipulateTree.pm (@extra_out_of_tree),
tta/perl/Texinfo/Structuring.pm (sectioning_structure)
(print_sections_list, print_sectioning_root),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(document_sectioning_root),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(print_sectioning_root): move sections_list information to section
structure information out of extra information in tree. Do not
associate sectioning_root to a section, but directly to the document.
Add the corresponding struct SECTIONING_ROOT, add the sectioning_root
method to Document.pm to retrieve it, with an override. Let
sectioning_root be a specific structure with information on top level
sections and an information on the level above the top level section.
* tta/perl/t/test_utils.pl ($nr_comparisons, test): add textual output
of sectioning_root information.
* tta/C/convert/format_html.c (html_default_format_contents)
(mini_toc_internal, html_convert_heading_command),
tta/C/main/output_unit.c (units_directions),
tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning, construct_nodes_tree),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command)
(_mini_toc, _default_format_contents),
tta/perl/Texinfo/Convert/IXIN.pm,
tta/perl/Texinfo/Convert/Plaintext.pm (format_contents, _convert),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/Texinfo/OutputUnits.pm (units_directions),
tta/perl/Texinfo/Structuring.pm (_print_sectioning_tree)
(get_node_node_childs_from_sectioning, construct_nodes_tree),
tta/perl/ext/epub3.pm, tta/perl/init/book.pm (book_print_sub_toc)
(book_convert_heading_command), tta/perl/init/chm.pm (chm_init):
update for changes in sectioning_root and sections_list.
2025-05-18 Patrice Dumas <pertusus@free.fr>
section_directions and toplevel_directions in structure info not tree
* tta/C/main/structure_list.c (free_node_structure_list): avoid
useless if.
* tta/C/main/structure_list.c (print_nodes_directions): rename
print_directions as print_nodes_directions.
* tta/C/main/build_perl_info.c (build_section_structure_list),
tta/C/main/structure_list.c (free_section_structure_list)
(print_sections_directions, print_sections_list),
tta/C/main/tree_types.h (AI_KEYS_LIST, SECTION_STRUCTURE),
tta/C/structuring_transfo/structuring.c (sectioning_structure),
tta/perl/Texinfo/Structuring.pm (sectioning_structure)
(print_sections_list): move section_directions and toplevel_directions
information to section structure information out of extra information
in tree.
* tta/C/convert/format_html.c (html_default_format_contents),
tta/C/convert/html_prepare_converter.c
(html_prepare_output_units_global_targets), tta/C/main/output_unit.c
(units_directions), tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning)
(section_direction_associated_node, number_floats),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm
(_prepare_output_units_global_targets, _default_format_contents),
tta/perl/Texinfo/Convert/IXIN.pm,
tta/perl/Texinfo/Convert/Plaintext.pm (format_contents),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/Texinfo/OutputUnits.pm (units_directions),
tta/perl/Texinfo/Structuring.pm (get_node_node_childs_from_sectioning)
(_section_direction_associated_node, complete_node_tree_with_menus)
(construct_nodes_tree, number_floats), tta/perl/init/book.pm
(book_print_up_toc, book_print_sub_toc): update for change in sections
directions information location.
2025-05-17 Patrice Dumas <pertusus@free.fr>
node_directions in node structure information instead of tree
* tta/C/main/build_perl_info.c (build_node_structure_list),
main/structure_list.c (free_node_structure_list, print_nodes_list),
tta/C/main/tree_types.h (AI_KEYS_LIST, NODE_STRUCTURE),
tta/C/structuring_transfo/structuring.c
(complete_node_tree_with_menus, construct_nodes_tree),
tta/perl/Texinfo/Structuring.pm (complete_node_tree_with_menus)
(construct_nodes_tree, print_nodes_list): move node_directions
information to node structure information out of extra information in
tree.
* tta/C/main/output_unit.c (units_directions),
tta/C/structuring_transfo/structuring.c (check_nodes_are_referenced),
tta/perl/Texinfo/Convert/IXIN.pm, tta/perl/Texinfo/Convert/Info.pm
(format_node), tta/perl/Texinfo/Convert/Plaintext.pm
(process_footnotes, format_node),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/Texinfo/OutputUnits.pm (units_directions),
tta/perl/Texinfo/Structuring.pm (check_nodes_are_referenced): update
for change in node_directions information location.
2025-05-17 Patrice Dumas <pertusus@free.fr>
menu_directions in node structure information instead of tree
* tta/C/structuring_transfo/structuring.c (print_down_menus),
tta/perl/Texinfo/Structuring.pm (_print_down_menus): check that the
node element is indeed a @node, it not return NULL in C, an empty
array in Perl. Check if node list is not NULL after calling
recursively print_down_menus.
* tta/C/structuring_transfo/transformations.c
(complete_tree_nodes_menus_in_document): free the list, not the list
elements.
* tta/C/main/build_perl_info.c (build_node_structure_list),
tta/C/main/structure_list.c (free_node_structure_list)
(print_menu_node, print_directions, print_nodes_list),
tta/C/main/tree_types.h (AI_KEYS_LIST, NODE_STRUCTURE),
tta/C/structuring_transfo/structuring.c (set_menus_node_directions),
tta/perl/Texinfo/Structuring.pm (set_menus_node_directions)
(_print_menu_node, print_nodes_list): move menu_directions information
to node structure information out of extra information in tree.
* tta/C/structuring_transfo/structuring.c
(check_nodes_are_referenced, complete_node_tree_with_menus),
tta/perl/Texinfo/Structuring.pm (check_nodes_are_referenced)
(complete_node_tree_with_menus): update for change in menu_directions
information location.
2025-05-17 Patrice Dumas <pertusus@free.fr>
menus in node structure information instead of tree
* tta/C/convert/format_html.c (html_command_description)
(html_convert_menu_entry_type): fix node descriptons conditions.
* tta/C/main/structure_list.c (add_node_to_node_structure_list)
(add_section_to_section_structure_list)
(add_heading_to_heading_structure_list)
(insert_node_into_node_structure_list)
(insert_section_into_section_structure_list): rename
add_to_node_structure_list as add_node_to_node_structure_list,
add_to_section_structure_list as
add_section_to_section_structure_list, add_to_heading_structure_list
as add_heading_to_heading_structure_list,
insert_into_node_structure_list as
insert_node_into_node_structure_list and
insert_into_section_structure_list as
insert_section_into_section_structure_list. Update callers.
* tta/perl/Texinfo/Transformations.pm: remove
set_menus_to_simple_menu.
* tta/C/main/build_perl_info.c (build_node_structure_list),
tta/C/main/structure_list.c (new_node_structure_list)
(add_to_node_structure_list, free_node_structure_list)
(destroy_node_structure_list, print_nodes_list),
tta/C/main/tree_types.h (AI_KEYS_LIST, NODE_STRUCTURE),
tta/C/parsetexi/handle_commands.c (handle_block_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_block_command),
tta/perl/Texinfo/Structuring.pm (print_nodes_list): put menus as
node structure information instead of extra information in tree.
* Pod-Simple-Texinfo/pod2texi.pl (_fix_texinfo_tree)
(_do_top_node_menu), tta/C/convert/format_html.c
(html_command_description, html_convert_heading_command),
tta/C/main/manipulate_tree.c (first_menu_node),
tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning, check_nodes_are_referenced)
(set_menus_node_directions, complete_node_tree_with_menus)
(new_complete_node_menu, print_down_menus)
(new_complete_menu_master_menu),
tta/C/structuring_transfo/transformations.c (reassociate_to_node)
(prepend_new_menu_in_node_section, complete_node_menu)
(get_non_automatic_nodes_with_sections)
(complete_tree_nodes_menus_in_document)
(complete_tree_nodes_missing_menu, regenerate_master_menu),
tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/ManipulateTree.pm (first_menu_node),
tta/perl/Texinfo/OutputUnits.pm (units_directions),
tta/perl/Texinfo/Structuring.pm (_register_menu_node_targets)
(get_node_node_childs_from_sectioning, check_nodes_are_referenced)
(set_menus_node_directions, complete_node_tree_with_menus)
(new_complete_node_menu, new_complete_menu_master_menu)
(_print_down_menus), tta/perl/Texinfo/Transformations.pm
(_reassociate_to_node, _prepend_new_menu_in_node_section)
(complete_node_menu, _get_non_automatic_nodes_with_sections)
(complete_tree_nodes_menus_in_document)
(complete_tree_nodes_missing_menu, regenerate_master_menu),
tta/perl/t/z_misc/automatic_nodes.t,
tta/perl/t/z_misc/do_master_menu.t: update for change in menus
information location.
2025-05-14 Patrice Dumas <pertusus@free.fr>
float_section in list of floats instead of tree
* tta/C/main/build_perl_info.c (build_listoffloats_list),
tta/C/main/floats.c (add_to_float_record_list)
(add_to_float_information_list, float_list_to_listoffloats_list)
(print_listoffloats_types), tta/C/main/tree_types.h (AI_KEYS_LIST)
(FLOAT_INFORMATION, FLOAT_INFORMATION_LIST, LISTOFFLOATS_TYPE)
(FLOAT_RECORD), tta/C/parsetexi/end_line.c (end_line_starting_block),
tta/C/structuring_transfo/structuring.c (number_floats),
tta/perl/Texinfo/ManipulateTree.pm (print_listoffloats_types),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_starting_block),
tta/perl/Texinfo/Structuring.pm (number_floats): put float section in
a two item array reference in list of floats information in Perl, and
in float record and in new structures FLOAT_INFORMATION and
FLOAT_INFORMATION_LIST in C. Do not put in extra information. Update
number_floats, print_listoffloats_types and build_listoffloats_list.
* tta/C/convert/format_html.c (html_convert_listoffloats_command),
tta/perl/Texinfo/Convert/HTML.pm (_convert_listoffloats_command),
tta/perl/Texinfo/Convert/IXIN.pm, tta/perl/Texinfo/Convert/LaTeX.pm
(_prepare_floats, _latex_header),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert): update conversion
based on list of floats to use new information.
* tta/C/structuring_transfo/transformations.c
(fill_gaps_in_sectioning_in_document): remove a const.
2025-05-14 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/transformations.c (reassociate_to_node),
tta/perl/Texinfo/Transformations.pm (_reassociate_to_node):
de-associate node_*description from previous node independently of
association to new node.
* tta/perl/t/transformations.t
(test_insert_nodes_reallocated_nodedescriptionblock),
tta/perl/Makefile.tres: add test of node description association
removed from previous node after node insertion associated with
sectioning command.
2025-05-14 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/transformations.c (reassociate_to_node),
tta/perl/Texinfo/Transformations.pm (_reassociate_to_node): associate
nodedescription or nodedescriptionblock commands found in contents of
new node to the new node structure information, and remove association
to previous node if it existed.
2025-05-14 Patrice Dumas <pertusus@free.fr>
* tta/C/main/structure_list.c (print_nodes_list),
tta/C/parsetexi/handle_commands.c (handle_line_command)
(handle_block_command), tta/perl/Texinfo/ParserNonXS.pm
(_handle_line_command, _handle_block_command),
tta/perl/Texinfo/Structuring.pm (print_nodes_list): associate
nodedescription to node_description and nodedescriptionblock to
node_long_description in parser.
* tta/C/convert/format_html.c (html_command_description)
(html_convert_menu_entry_type), tta/perl/Texinfo/Convert/HTML.pm
(command_description, _convert_menu_entry_type),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert): determine
which of node_description or node_long_description is to be used in
converters.
2025-05-14 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/handle_commands.c (handle_line_command)
(handle_block_command), tta/perl/Texinfo/ParserNonXS.pm
(_handle_line_command, _handle_block_command): remove element_node
extra information associated to nodedescription and
nodedescriptionblock.
2025-05-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm (new_node_menu_entry): handle the
case of source_info not set.
* tta/perl/t/transformations.t (@tests_files)
(test_insert_nodes_nodedescription): add
test_insert_nodes_nodedescription test. Separate tests on files
creating files in @tests_files and other converted tests in
@tests_converted.
2025-05-14 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/labels.c (set_labels_identifiers_target),
tta/C/parsetexi/parser.c (parse_texi): get the sections number in
argument and use it to set the number of buckets, to preemptively add
buckets in case there are no nodes associated to sections and they are
associated afterwards. Also always initialize the hash map.
* tta/C/main/build_perl_info.c (fill_document_hv),
tta/perl/Texinfo/Document.pm (new_document): always initialize nodes,
sections and headings lists, such that the array references associated
to document are modified (in pure Perl).
* tta/C/structuring_transfo/transformations.c
(fill_gaps_in_sectioning_in_document): do not set
new_section_structure as it is not used.
* tta/C/structuring_transfo/transformations.c
(fill_gaps_in_sectioning_in_document)
(insert_nodes_for_sectioning_commands): add F_DOCM_nodes_list or
F_DOCM_sections_list when needed.
* tta/perl/Makefile.tres, tta/perl/t/transformations.t
(test_fill_gaps_in_sectioning)
(test_fill_gaps_in_sectioning_insert_nodes)
(test_insert_nodes_with_empty_headings): add tests for the situations
occuring in Pod-Simple-Texinfo tests.
2025-05-14 Patrice Dumas <pertusus@free.fr>
* perl/Texinfo/Convert/HTML.pm (_html_set_pages_files): avoid spurious
autovivification.
* tta/C/main/structure_list.c (reallocate_node_structure_for)
(insert_into_section_structure_list): add.
* tta/C/structuring_transfo/transformations.c
(fill_gaps_in_sectioning_in_document),
tta/perl/Texinfo/Transformations.pm
(fill_gaps_in_sectioning_in_document): update sections_list and
section_number extra.
* tta/C/structuring_transfo/transformations.c (reassociate_to_node)
(insert_nodes_for_sectioning_commands),
tta/perl/Texinfo/Transformations.pm (_reassociate_to_node)
(insert_nodes_for_sectioning_commands): reset node index taking into
account the added nodes. Use node structure in reassociate_to_node.
2025-05-13 Patrice Dumas <pertusus@free.fr>
node_description and node_long_description in structure out of tree
* tta/C/main/structure_list.c (print_line_command),
tta/perl/Texinfo/Structuring.pm (_print_line_command): rename
print_title_command_command as print_line_command.
* tta/C/main/build_perl_info.c (build_node_structure_list)
(print_line_command_key_element, print_nodes_list),
tta/C/main/tree_types.h (AI_KEYS_LIST, NODE_STRUCTURE),
tta/C/parsetexi/handle_commands.c (handle_line_command)
(handle_block_command), tta/perl/Texinfo/ParserNonXS.pm
(_handle_line_command, _handle_block_command),
tta/perl/Texinfo/Structuring.pm (_print_line_command_key_element)
(print_nodes_list): move node_description and node_long_description
to node structure information, out of tree.
* tta/C/convert/format_html.c (html_command_description)
(html_convert_menu_entry_type), tta/perl/Texinfo/Convert/HTML.pm
(command_description, _convert_menu_entry_type),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert): update for change
in information localtion.
2025-05-13 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/end_line.c (associate_title_command_anchor),
tta/perl/Texinfo/ParserNonXS.pm (_associate_title_command_anchor): use
node structure element instead of passing current node element. Check
in caller that current_node is set.
* tta/C/main/tree_types.h (NODE_STRUCTURE), tta/C/parsetexi/end_line.c
(end_line_misc_line), tta/C/parsetexi/handle_commands.c
(handle_line_command, handle_block_command), tta/C/parsetexi/indices.c
(enter_index_entry), tta/C/parsetexi/parser.c (current_node),
tta/perl/Texinfo/ParserNonXS.pm (_enter_index_entry)
(_end_line_misc_line, _handle_line_command, _handle_block_command):
set current_node to the node structure information. Remove
get_current_node_structure.
2025-05-13 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): set current
node only to a non-empty node.
2025-05-13 Patrice Dumas <pertusus@free.fr>
move part related information in structure information out of tree
* tta/C/convert/format_html.c (html_internal_command_href),
tta/perl/Texinfo/Convert/HTML.pm (_internal_command_href): handle
associated_anchor_command in heading in C and make Perl code more
similar.
* tta/C/main/build_perl_info.c (STORE_STRUCT_INFO)
(build_node_structure_list, build_section_structure_list)
(build_heading_structure_list), tta/C/main/structure_list.c
(SECTION_STRUCT_PRINT_KEY, SECTION_STRUCT_PRINT_KEY_OR_NULL)
(print_sections_list, print_nodes_list, print_headings_list): use
macros to avoid code duplication.
* tta/C/main/build_perl_info.c (build_node_structure_list)
(build_section_structure_list), tta/C/main/structure_list.c
(print_sections_list, print_nodes_list), tta/C/main/tree_types.h
(AI_KEYS_LIST, NODE_STRUCTURE, SECTION_STRUCTURE),
tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/C/parsetexi/parser.c (current_part),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line),
tta/perl/Texinfo/Structuring.pm (print_sections_list)
(print_nodes_list): move
associated_part, node_preceding_part, part_associated_section and
part_following_node to structure information. Make current_part the
part structure information structure information.
* tta/C/convert/format_html.c (html_internal_command_href)
(html_open_node_part_command), tta/C/main/output_unit.c
(split_by_section), tta/C/structuring_transfo/structuring.c
(sectioning_structure, complete_node_tree_with_menus)
(construct_nodes_tree, new_complete_node_menu),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_open_node_part_command),
tta/perl/Texinfo/Convert/LaTeX.pm (output, _convert),
tta/perl/Texinfo/OutputUnits.pm (split_by_section),
tta/perl/Texinfo/Structuring.pm (sectioning_structure)
(complete_node_tree_with_menus, new_complete_node_menu): update for
change in tree and structure information.
2025-05-13 Patrice Dumas <pertusus@free.fr>
associated_anchor_command and associated_title_command in structure out of tree
* tta/C/main/build_perl_info.c (build_node_structure_list)
(build_section_structure_list, build_heading_structure_list)
(fill_document_hv), tta/C/main/document.c (new_document),
tta/C/main/structure_list.c (print_sections_list)
(print_title_command_command, print_nodes_list),
tta/C/main/tree_types.h (AI_KEYS_LIST, NODE_STRUCTURE)
(HEADING_STRUCTURE, SECTION_STRUCTURE), tta/C/parsetexi/end_line.c
(associate_title_command_anchor, get_current_node_structure)
(end_line_misc_line), tta/perl/Texinfo/Document.pm (headings_list),
tta/perl/Texinfo/ParserNonXS.pm (_associate_title_command_anchor)
(_get_current_node_structure, _end_line_misc_line),
tta/perl/Texinfo/Structuring.pm (print_sections_list)
(_print_title_command_command, print_nodes_list): put
associated_anchor_command and associated_title_command in structure
info instead of in tree. Pass headings_list from document.
* tta/C/convert/format_html.c (html_internal_command_href)
(file_header_information, html_convert_heading_command)
(html_convert_xref_command, html_convert_menu_entry_type),
tta/C/structuring_transfo/structuring.c (new_node_menu_entry),
tta/perl/Texinfo/Convert/HTML.pm (_internal_command_href)
(_convert_heading_command, _convert_xref_commands)
(_convert_menu_entry_type, _file_header_information),
tta/perl/Texinfo/Convert/LaTeX.pm (_convert),
tta/perl/Texinfo/Structuring.pm (new_node_menu_entry),
tta/perl/init/book.pm (book_convert_heading_command):
update for associated_anchor_command and associated_title_command in
structure info instead of in tree.
* tta/C/main/structure_list.c (print_headings_list),
tta/perl/Texinfo/Structuring.pm (print_headings_list),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(print_headings_list), tta/perl/t/test_utils.pl (test): output a
textual representation of headings list in tests.
2025-05-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command),
tta/perl/Texinfo/Convert/LaTeX.pm (_convert),
tta/perl/Texinfo/OutputUnits.pm (_output_unit_section),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): check
node_number instead of normalized to determine if a node structure
information can be found for a node tree element.
2025-05-12 Patrice Dumas <pertusus@free.fr>
Properly free sections, nodes and headings lists in document
* tta/C/main/document.c (destroy_document_information_except_tree),
tta/C/main/structure_list.c (free_node_structure_list)
(free_section_structure_list, free_heading_structure_list): free
the elements of the sections, nodes and headings structure lists.
2025-05-12 Patrice Dumas <pertusus@free.fr>
associated_node and associated_section in structure info out of tree
* tta/C/main/build_perl_info.c (build_node_structure_list)
(build_section_structure_list), tta/C/main/structure_list.c
(add_to_node_structure_list, add_to_section_structure_list)
(add_to_heading_structure_list, insert_into_node_structure_list),
tta/C/main/tree_types.h (AI_KEYS_LIST, NODE_STRUCTURE)
(SECTION_STRUCTURE), tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/C/structuring_transfo/transformations.c
(insert_nodes_for_sectioning_commands),
tta/perl/Texinfo/ParserNonXS.pm (_add_to_structure_list)
(_end_line_misc_line), tta/perl/Texinfo/Transformations.pm
(insert_nodes_for_sectioning_commands): put associated_node and
associated_section in structure info instead of in tree. Return
structure added from add_to_*_structure_list and
_add_to_structure_list.
* tta/C/convert/format_html.c (html_command_node)
(html_internal_command_href, html_command_description)
(from_element_direction, html_default_format_contents)
(html_default_format_begin_file, html_convert_heading_command)
(html_convert_xref_command, get_element_root_command_element),
tta/C/convert/html_prepare_converter.c
(html_prepare_output_units_global_targets)
(html_prepare_units_directions_files), tta/C/main/output_unit.c
(split_by_section, output_unit_section, output_unit_node, split_pages)
(units_directions, do_units_directions_pages),
tta/C/structuring_transfo/structuring.c
(get_node_node_childs_from_sectioning, check_nodes_are_referenced)
(section_direction_associated_node, complete_node_tree_with_menus)
(construct_nodes_tree, new_complete_node_menu, print_down_menus)
(new_detailmenu, new_complete_menu_master_menu),
tta/C/structuring_transfo/transformations.c (complete_node_menu)
(get_non_automatic_nodes_with_sections)
(complete_tree_nodes_menus_in_document)
(complete_tree_nodes_missing_menu, regenerate_master_menu),
tta/perl/Texinfo/Convert/DocBook.pm (_docbook_section_element)
(_convert), tta/perl/Texinfo/Convert/HTML.pm (command_node)
(_internal_command_href, command_description)
(get_element_root_command_element, from_element_direction)
(_convert_heading_command, _convert_xref_commands)
(_prepare_units_directions_files, _default_format_contents)
(_prepare_output_units_global_targets),
tta/perl/Texinfo/Convert/LaTeX.pm (_prepare_conversion)
(_associate_other_nodes_to_sections, _convert),
tta/perl/Texinfo/Convert/Plaintext.pm (output, _convert),
tta/perl/Texinfo/OutputUnits.pm (split_by_section, split_pages)
(_output_unit_section, _output_unit_node, units_directions)
(units_directions, do_units_directions_pages),
tta/perl/Texinfo/Structuring.pm (get_node_node_childs_from_sectioning)
(check_nodes_are_referenced, _section_direction_associated_node)
(complete_node_tree_with_menus, construct_nodes_tree)
(new_complete_node_menu, new_detailmenu)
(new_complete_menu_master_menu, _print_down_menus),
tta/perl/Texinfo/Transformations.pm
(complete_node_menu, complete_tree_nodes_menus_in_document)
(complete_tree_nodes_missing_menu, regenerate_master_menu),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(split_pages), tta/perl/init/book.pm (book_in_contents_button)
(book_convert_heading_command),
tta/perl/init/documentation_examples.pm,
tta/perl/t/init/index_direction_from_index_name.pm,
tta/perl/t/z_misc/do_master_menu.t: update for associated_node and
associated_section in structure info instead of in tree.
* tta/C/main/structure_list.c (print_root_command)
(print_sections_list, print_section_command, print_nodes_list),
tta/perl/Texinfo/Structuring.pm (_print_root_command)
(print_sections_list, _print_section_command, print_nodes_list),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(print_sections_list, print_nodes_list), tta/perl/t/test_utils.pl
(test): text representation of nodes and sections structure lists
used in t/*.t tests.
2025-05-11 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (@code{@@anchor}): fix a typo.
2025-05-11 Patrice Dumas <pertusus@free.fr>
Structure node, section and heading list different from elements
* tta/C/main/tree_types.h (AI_KEYS_LIST): rename section_number
extra key to section_heading_number. Update users.
* tta/C/Makefile.am (C_libtexinfo_sources),
tta/C/main/structure_list.c (new_node_structure)
(new_section_structure, new_heading_structure)
(setup_reallocate_structure_list, add_to_node_structure_list)
(add_to_section_structure_list, add_to_heading_structure_list)
(insert_into_node_structure_list), tta/C/main/build_perl_info.c
(build_node_structure_list, build_section_structure_list)
(fill_document_hv), tta/C/main/document.c (new_document)
(destroy_document_information_except_tree),
tta/C/main/document_types.h (DOCUMENT), tta/C/main/tree_types.h
(AI_KEYS_LIST, NODE_STRUCTURE, NODE_STRUCTURE_LIST)
(HEADING_STRUCTURE, HEADING_STRUCTURE_LIST, SECTION_STRUCTURE)
(SECTION_STRUCTURE_LIST), tta/C/parsetexi/end_line.c
(end_line_misc_line), tta/C/structuring_transfo/structuring.c
(sectioning_structure, construct_nodes_tree),
tta/perl/Texinfo/ParserNonXS.pm (_add_to_structure_list)
(_end_line_misc_line), tta/perl/Texinfo/Structuring.pm
(sectioning_structure, construct_nodes_tree): do not use tree
element in nodes_list and sections_list, but refer to the tree
element. Populate nodes_list and sections_list during parsing, and
also populate headings_list. Add NODE_STRUCTURE,
HEADING_STRUCTURE, SECTION_STRUCTURE structs in C and associated
lists. Add code to manage those lists for nodes_list and sections_list
in the new file main/structure_list.c. Add node_number,
section_number and heading_number extra information in elements to be
able to retrieve the list structure information.
* tta/C/convert/format_html.c (html_default_format_contents)
(contents_shortcontents_in_title, html_convert_heading_command)
(html_convert_contents_command, html_output_internal_links),
tta/C/convert/html_prepare_converter.c (prepare_special_units)
(set_root_commands_targets_node_files, ids_hashmap_predicted_values),
tta/C/structuring_transfo/structuring.c (check_nodes_are_referenced)
(set_menus_node_directions, complete_node_tree_with_menus),
tta/C/structuring_transfo/transformations.c
(insert_nodes_for_sectioning_commands),
tta/perl/Texinfo/Convert/HTML.pm
(_set_root_commands_targets_node_files, _default_format_contents)
(output_internal_links), tta/perl/Texinfo/Convert/IXIN.pm,
tta/perl/Texinfo/Convert/LaTeX.pm (_begin_document, _convert),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Structuring.pm (check_nodes_are_referenced)
(set_menus_node_directions, complete_node_tree_with_menus),
tta/perl/Texinfo/Transformations.pm
(insert_nodes_for_sectioning_commands), tta/perl/ext/epub3.pm,
tta/perl/init/book.pm (book_unit_file_name), tta/perl/init/chm.pm,
tta/perl/init/documentation_examples.pm: update converters,
structuring and transformations for the new structures.
2025-05-04 Gavin Smith <gavinsmith0123@gmail.com>
* install-info/tests/defs.in: Update test for path separator from
util/texi2dvi. This removes support for DJGPP and adds support
for MSYS2.
2025-05-04 Gavin Smith <gavinsmith0123@gmail.com>
* util/texi2dvi, util/texi2pdf:
Do not switch to ksh under Ultrix, which presumably is not a
relevant system any more. (Code added 2005-01-28.)
2025-04-18 Gavin Smith <gavinsmith0123@gmail.com>
* util/texi2dvi: If OSTYPE is equal to "cygwin" then use colon
path separator. This is for MSYS2 where "cygwin" is not present
in the output of "uname". Report from Vincent Belaïche.
2025-04-06 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/parser.c (rearrange_tree_beginning)
(parse_texi_document, parse_texi): use DOCUMENT as
rearrange_tree_beginning argument. Use parsed_document to get the
current document in parse_texi_document. Do not have parse_texi
return the document descriptor.
2025-04-06 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c: add some const.
2025-04-06 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_to_text.h (TEXT_OPTIONS),
tta/perl/XSTexinfo/convert/ConvertXS.xs (text_convert_tree),
tta/C/main/convert_to_text.c (convert_to_text_internal): replace the
document_descriptor TEXT_OPTIONS field by a document field.
2025-04-06 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/labels.c, tta/C/parsetexi/menus.c
(enter_menu_entry_node), tta/C/parsetexi/separator.c
(handle_close_brace): inline remember_internal_xref in callers.
Remove remember_internal_xref.
2025-04-06 Patrice Dumas <pertusus@free.fr>
* tta/C/main/targets.c: move find_identifier_target code up.
* tta/C/main/targets.c (add_element_to_identifiers_target): inline
add_target_in_identifiers_target, minor changes in code. Remove
add_target_in_identifiers_target.
* tta/C/main/targets.c (register_label_element): use DOCUMENT in
argument. Update caller.
* tta/C/main/targets.c (register_label_element)
(add_element_to_identifiers_target): set F_DOCM_labels_list in
modified information in register_label_element where the labels list
is actually modified.
* tta/C/main/targets.c (register_label_in_list),
tta/C/parsetexi/labels.c (check_register_target_element_label): merge
code from register_label in label.c to register_label_in_list in
targets.c and use register_label_in_list in
check_register_target_element_label. Remove register_label.
* tta/C/parsetexi/labels.c (set_labels_identifiers_target): separate a
first loop to determine if there is any non NULL identifier and
initialize hashmap.
2025-04-06 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_identifiers_target): move
variables definition up.
Changes in comments.
2025-04-05 Patrice Dumas <pertusus@free.fr>
Fix memory leaks found with valgrind
* tta/C/parsetexi/handle_commands.c (parse_rawline_command): free
clickstyle argument command name.
* tta/C/main/translations.c (free_lang_translation_tree_list): free
LANG_TRANSLATION_TREE_LIST hash and list.
* tta/C/main/translations.c (free_lang_translation): free the
LANG_TRANSLATION_TREE_LIST translations field pointer in
lang_translation.
2025-04-05 Patrice Dumas <pertusus@free.fr>
* tta/C/main/hashmap.c (c_hashmap_iterator_next_value): rename
next_c_hashmap_iterator_value to c_hashmap_iterator_next_value.
Update caller.
2025-04-05 Patrice Dumas <pertusus@free.fr>
Remove identifiers target implementation as sorted lists in C
* tta/C/main/build_perl_info.c (build_identifiers_target),
tta/C/main/document.c (destroy_document_information_except_tree),
tta/C/main/document_types.h (DOCUMENT), tta/C/main/targets.c
(identifiers_target_number, find_identifier_target)
(add_target_in_identifiers_target), tta/C/parsetexi/labels.c
(set_labels_identifiers_target): replace IDENTIFIER_TARGET by
C_HASHMAP. Rename build_identifiers_target_h to
build_identifiers_target, identifiers_target_number_h to
identifiers_target_number, find_identifier_target_h to
find_identifier_target, add_target_in_identifiers_target_h to
add_target_in_identifiers_target and set_labels_identifiers_target_h
to set_labels_identifiers_target. Remove USE_TARGET_IDENTIFIER_LIST
define, remove build_identifiers_target_l,
identifiers_target_number_l, find_identifier_target_l,
add_target_in_identifiers_target_l and
set_labels_identifiers_target_l. Remove now unused compare_targets and
sort_labels_identifiers_target.
2025-04-05 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree_types.h, tta/perl/Texinfo/Document.pm
(set_labels_identifiers_target): use hashmap for C for
identifiers_target. This changes the order of messages for nodes
having the same node to document order. Note that there is no visible
difference in speed with hashmap instead of sorted lists, but it
should be faster in theory and the code is somewhat simpler.
2025-04-05 Patrice Dumas <pertusus@free.fr>
Hash map for identifiers in C
* tta/C/convert/html_prepare_converter.c
(set_root_commands_targets_node_files, ids_hashmap_predicted_values)
(html_set_pages_files), tta/C/main/get_perl_info.c
(find_element_from_sv), tta/C/main/targets.c
(identifiers_target_number),
tta/C/structuring_transfo/transformations.c (new_node): use a function
to return the number of identifiers_target elements.
* tta/C/main/hashmap.c, tta/C/main/tree_types.h (C_HASHMAP): move
C_HASHMAP type definition to tree_types.h to be able to put it
directly in structures.
* tta/C/main/hashmap.c (init_c_hashmap, new_c_hashmap): rename
init_c_hashmap as new_c_hashmap and readd init_c_hashmap with the code
that does the initialization only, not the allocation.
* tta/C/main/hashmap.c (c_hashmap_value): check hashmap count before
searching for the values, if there is nothing in the hash, there will
be a division by 0.
* tta/C/main/hashmap.c (BUCKET_ARENA_ITERATOR, c_hashmap_count)
(new_c_hashmap_iterator, next_c_hashmap_iterator_value): add.
* tta/C/main/targets.c (identifiers_target_number_h)
(identifiers_target_number_l)
(find_identifier_target_l, add_target_in_identifiers_target_h)
(add_target_in_identifiers_target_l)
(add_element_to_identifiers_target, find_identifier_target_h),
tta/C/parsetexi/labels.c (set_labels_identifiers_target_l)
(set_labels_identifiers_target_h), tta/C/main/build_perl_info.c
(build_identifiers_target_h, build_identifiers_target_l): add
implementations of functions setting and retrieving identifier_target
elements using hashmaps. Postpend a _l to name of existing functions
implemented with sorted lists.
* tta/C/main/document.c (destroy_document_information_except_tree),
tta/C/main/document_types.h (DOCUMENT), tta/C/main/build_perl_info.c,
tta/C/main/targets.c, tta/C/main/targets.h, tta/C/parsetexi/labels.h,
tta/C/main/tree_types.h (USE_TARGET_IDENTIFIER_LIST)
(IDENTIFIER_TARGET): add the USE_TARGET_IDENTIFIER_LIST to switch
between hashmap and list implementations for identifier_target. Also
add the IDENTIFIER_TARGET define to change the type of
identifier_target in DOCUMENT and functions prototypes depending on
the implementation used.
2025-04-03 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (html_cache_translate_string):
remove impossible case code. Minor change in code to shorten and
improve the code.
* tta/C/convert/convert_html.c (html_cache_translate_string),
tta/perl/Texinfo/Translations.pm: change a variable name, change in
spacing and comments.
2025-04-02 Patrice Dumas <pertusus@free.fr>
* tta/C/main/translations.c (substitute_substrings_in_tree),
tta/perl/Texinfo/Translations.pm (_substitute_substrings_in_tree):
rename substitute function as substitute_substrings_in_tree.
2025-04-02 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_gdt_tree, html_cdt_string):
pass a LANG_TRANSLATION to html_gdt_tree, use converter
current_lang_translations in html_cdt_string such that switching
translations cache language is controlled by the converter.
2025-04-02 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/get_converter_perl_info.c
(copy_sv_options_for_convert_text): call text_set_language to switch
translated cache language.
* tta/C/main/convert_to_text.c (text_heading),
tta/C/main/convert_utils.c (add_heading_number),
tta/C/main/translations.c (gdt_string): pass a LANG_TRANSLATION to
gdt_string such as to avoid switching language for each call.
Update callers.
2025-04-02 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_utils.c (switch_lang_translations),
tta/C/main/translations.c (get_lang_translation),
tta/C/main/translations.h (TXI_DOCUMENT_TRANSLATED_STRINGS_NR)
(TXI_PARSER_STRINGS_NR, TXI_CONVERT_STRINGS_NR): pass cache hash size
to switch_lang_translations and get_lang_translation. Update callers.
Rename TEXINFO_TRANSLATED_STRINGS_NR as
TXI_DOCUMENT_TRANSLATED_STRINGS_NR and add TXI_PARSER_STRINGS_NR and
TXI_CONVERT_STRINGS_NR that are used for the cache size.
2025-04-02 Patrice Dumas <pertusus@free.fr>
Switch translation cache lang outside of gdt in C
* tta/C/main/translations.c (cache_translate_string): handle a NULL
lang_translation.
* html_cache_translate_string (html_cache_translate_string),
tta/C/main/translations.c (get_lang_translation): have
get_lang_translation return a LANG_TRANSLATION. Update callers.
* tta/C/convert/html_converter_finish.c (html_reset_converter),
tta/C/main/converter_types.h (CONVERTER), tta/C/main/translations.c
(translation_cache, get_lang_translation):
modify translations caches lang lists be a list of pointer to avoid having
pointers invalidated by realloc.
* tta/C/convert/convert_html.c (html_translate_names),
tta/C/convert/converter.c (set_converter_init_information)
(converter_expand_today, converter_translated_command_tree),
tta/C/convert/format_html.c (html_convert_heading_command)
(html_convert_def_line_type), tta/C/main/convert_to_text.c
(copy_options_for_convert_text, text_set_language)
(convert_def_line, convert_to_text_internal),
tta/C/main/convert_to_text.h (TEXT_OPTIONS),
tta/C/main/convert_utils.c (switch_lang_translations, expand_today)
(definition_category_tree, cdt_tree, translated_command_tree),
tta/C/main/converter_types.h (CONVERTER), tta/C/main/translations.c
(gdt_tree, pgdt_tree), tta/C/structuring_transfo/structuring.c
(new_complete_node_menu, new_detailmenu),
tta/C/structuring_transfo/transformations.c
(complete_tree_nodes_missing_menu, regenerate_master_menu): add
current_lang_translations field in converters and
switch_lang_translations function. Switch lang translation cache when
getting information on document language. Pass a LANG_TRANSLATION to
gdt_tree and similar instead of the language, update callers. Pass
directly the debug level in argument to new_complete_node_menu instead
of options.
* tta/C/parsetexi/indices.c (lang_translations, complete_indices): use
a separate translations cache.
2025-04-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Translations.pm (complete_indices): cache when lang
is not defined too, to cache the tree.
* tta/perl/t/z_misc/do_master_menu.t: fix ModulePath updir.
2025-04-02 Patrice Dumas <pertusus@free.fr>
Caching of translated strings in C
* tta/C/main/translations.c (gdt_tree), tta/C/convert/convert_html.c
(html_gdt_tree): merge *gdt in *gdt_tree.
* tta/C/convert/convert_html.c (html_custom_translate_string)
(html_translate_string, html_gdt_tree, html_cache_translate_string)
(html_cdt_string), tta/C/convert/html_converter_finish.c
(html_reset_converter), tta/C/main/converter_types.h
(LANG_TRANSLATION), tta/C/main/translations.c (new_lang_translation)
(free_lang_translation_tree_list, free_lang_translation)
(TEXINFO_TRANSLATED_STRINGS_NR, translation_cache)
(get_lang_translation, new_translation_tree, add_translation_tree)
(cache_translate_string, replace_convert_substrings) (gdt_tree,
gdt_string), tta/C/main/tree_types.h (TRANSLATION_TREE)
(LANG_TRANSLATION_TREE_LIST, LANG_TRANSLATION): add types used for
caching of translations and translation tree, TRANSLATION_TREE,
LANG_TRANSLATION_TREE_LIST (for the list and hash of translations) and
LANG_TRANSLATION (for the translations for a language). Add a general
translation_cache and a translation_cache in HTML converter. Split
html_custom_translate_string out of html_translate_string. Add
cache_translate_string and html_cache_translate_string to handle
caching of translated strings and tree. Move call of substitute to
gdt_tree. Add functions to manage translations caching. Call in
gdt_tree, html_gdt_tree, gdt_string and html_cdt_string.
* tta/perl/Texinfo/Convert/HTML.pm (html_cache_translate_string):
rename html_translate_string as html_cache_translate_string.
2025-04-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Translations.pm (cache_translate_string): fix
variable name typo. Remove unused %cached_translation_trees.
2025-04-01 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (C_libtexinfo_sources), tta/C/main/hashmap.c,
tta/C/main/hashmap.h: move hashmap.c to main out of convert.
2025-04-01 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/hashmap.c (init_c_hashmap, is_c_hashmap_registered)
(c_hashmap_register, clear_c_hashmap),
tta/C/convert/html_converter_finish.c (html_reset_converter)
(html_free_converter): remove the converter argument of
init_registered_ids_c_hashmap, instead return an hashmap pointer and
rename the function as init_c_hashmap. Pass an hashmap argument to
is_c_hashmap_registered_id, c_hashmap_register_id and
clear_registered_ids_c_hashmap, renaming the functions as
is_c_hashmap_registered, c_hashmap_register and clear_c_hashmap.
Inline free_registered_ids_c_hashmap in html_free_converter and
remove. Update callers.
* tta/C/convert/hashmap.c (BUCKET, c_hashmap_register)
(c_hashmap_value): add a void *value field in the hash, add a
corresponding argument to c_hashmap_register and add c_hashmap_value
function.
2025-04-01 Patrice Dumas <pertusus@free.fr>
change functions to have language in argument when possible
* doc/texi2any_api.texi (Translated Strings Customization),
tta/C/convert/call_html_perl_function.c
(call_formatting_function_format_translate_message),
tta/perl/Texinfo/Convert/HTML.pm (html_translate_string),
tta/perl/init/documentation_examples.pm,
tta/perl/t/init/css_in_node_redirection_page.pm,
tta/perl/t/init/special_element_customization.pm,
tta/perl/t/init/translated_strings_customization.pm,
tta/perl/t/init/translation_in_parser_in_translation.pm: change
format_translate_message call back to having language directly in
argument.
* tta/C/main/call_perl_function.c
(call_translations_translate_string), tta/perl/Texinfo/Translations.pm
(translate_string, cache_translate_string): rename translate_string as
cache_translate_string and readd translate_string to do only the
translation, and not the caching of the translation. Update
call_translations_translate_string call to call the new
translate_string (corresponding to the previous way of calling
translate_string before merging the tree and translation string
caches).
2025-03-31 Patrice Dumas <pertusus@free.fr>
* tta/C/main/call_perl_function.c
(call_translations_translate_string): update for changes in input and
output arguments of Texinfo::Translations::translate_string.
2025-03-31 Patrice Dumas <pertusus@free.fr>
* tta/tests/many_input_files/for_nbspaces_different_encodings.sh: use
DIFF_OPTIONS.
More consistent commented out code.
2025-03-31 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl ((%outfile_preamble): remove the xml:lang
texinfo attribute.
2025-03-31 Patrice Dumas <pertusus@free.fr>
no DocBook book lang attribute without @documentlanguage
* tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin): do
not set the book lang attribute if documentlanguage is not set.
* tta/perl/t/test_utils.pl (%outfile_preamble): remove the book lang
attribute from the DocBook preamble.
2025-03-31 Patrice Dumas <pertusus@free.fr>
empty string for body lang in HTML without @documentlanguage
* tta/C/convert/html_prepare_converter.c (html_setup_output),
tta/perl/Texinfo/Convert/HTML.pm (_setup_output): set the body lang
attribute argument in BODY_ELEMENT_ATTRIBUTES to an empty string if
@documentlanguage is not set.
2025-03-31 Patrice Dumas <pertusus@free.fr>
en_US is not the default document language, but the language for
defaults
* doc/texinfo.texi (@code{@@documentlanguage}), NEWS: do not consider
en_US to be the default document language, the language is unspecified
if there is no @documentlanguage. This already corresponds to the
actual situation for most output formats. Document that default
strings are in english, however.
2025-03-31 Patrice Dumas <pertusus@free.fr>
Cache translated string and associated tree together
* tta/perl/Texinfo/Translations.pm (translate_string, gdt, gdt_string),
tta/C/convert/build_html_perl_state.c (switch_lang_translations),
tta/perl/Texinfo/Convert/Utils.pm (switch_lang_translations): if lang
is undef, set it to the empty string and use the empty string like an
language name for caching. If the lang is ends up an empty string,
cache using undef as translated string. Put the translated string (or
undef if lang is undef or the empty string) into an array reference,
and put the expanded Texinfo tree in the same array reference instead
of using a separate hash to cache the tree. Move handling of tree
caching and call of _substitute to gdt instead of
_replace_convert_substrings. Remove %cached_translation_trees.
* tta/C/convert/build_html_perl_info.c
(html_pass_conversion_initialization),
tta/C/convert/call_html_perl_function.c
(call_formatting_function_format_translate_message),
tta/perl/Texinfo/Convert/HTML.pm (html_translate_string)
(conversion_initialization): use a different cache for user-defined
strings, corresponding to the translation_cache converter key. Reset
the cache for each output, such that stale translation cannot happen.
2025-03-30 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Structuring.pm (new_complete_node_menu): pass
directly debug level as argument instead of
customization_information. Update callers.
2025-03-30 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Translations.pm (translate_string, gdt)
(gdt_string, pgdt), tta/C/convert/call_html_perl_function.c
(call_formatting_function_format_translate_message),
tta/perl/Texinfo/Convert/Converter.pm (cdt, cdt_string),
tta/perl/Texinfo/Convert/HTML.pm (html_translate_string, cdt)
(cdt_string), tta/perl/Texinfo/Convert/Text.pm (_text_heading)
(_convert), tta/perl/Texinfo/Convert/Utils.pm
(definition_category_tree, expand_today, translated_command_tree)
(add_heading_number), tta/perl/Texinfo/Structuring.pm
(new_complete_node_menu, new_detailmenu),
tta/perl/Texinfo/Transformations.pm (complete_tree_nodes_missing_menu)
(regenerate_master_menu), tta/perl/init/documentation_examples.pm,
tta/perl/t/init/css_in_node_redirection_page.pm,
tta/perl/t/init/special_element_customization.pm,
tta/perl/t/init/translated_strings_customization.pm,
tta/perl/t/init/translation_in_parser_in_translation.pm,
doc/texi2any_api.texi (Translated Strings Customization): replace the
lang argument of translate_string, gdt, gdt_string and pgdt by an
array reference with language as first element, and as second element
an hash reference holding translations already done for that language
that can be used instead of the default translations cache. Pass to
functions calling gdt or gdt_string, such as cdt,
definition_category_tree and similar. Update callers.
* tta/perl/Texinfo/Translations.pm ($lang_translations)
($undef_lang_translation, complete_indices): use a separate translated
string cache for complete_indices, given that the translated strings
are only used in this function.
* tta/perl/Texinfo/Convert/Utils.pm (switch_lang_translations),
tta/C/convert/build_html_perl_state.c (switch_lang_translations)
(build_html_translated_names), tta/perl/Texinfo/Convert/Converter.pm
(_generic_converter_init), tta/perl/Texinfo/Convert/DocBook.pm
(conversion_output_begin, _convert), tta/perl/Texinfo/Convert/HTML.pm
(_translate_names), tta/perl/Texinfo/Convert/Info.pm (_info_header),
tta/perl/Texinfo/Convert/LaTeX.pm (_informative_command_output),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text)
(set_language): add switch_lang_translations to setup the
current_lang_translations key in converter that holds the language and
the hash reference holding translations already done for that
language, set the translations key to the hash reference holding the
translations. The hash reference holding the translations is set to
the main trnaslation cache used in the default case,
Texinfo::Translations::translation_cache. Therefore, the cache is the
same as the default one, but the converters set the language hash
instead of getting it from the language in translate_string. Call
switch_lang_translations in converters when the documentlanguage is
set or modified.
* tta/C/convert/get_converter_perl_info.c
(copy_sv_options_for_convert_text): handle undef
INPUT_FILE_NAME_ENCODING and LOCALE_ENCODING.
2025-03-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Translations.pm ($translation_cache)
(translate_string): use only one cache for both translations with and
wthout context. Use lang as first level of hash. Setup cache hash
when looking for already translated string.
2025-03-29 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree_types.h (AI_KEYS_LIST),
tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): determine if
subentry level is <= 2 by looking at parents. Remove subentry_level
extra information.
2025-03-29 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (default_bullet_command)
(setup_converter_generic, itemize_item_prepended_element),
tta/C/convert/format_html.c (html_convert_itemize_command),
tta/C/main/manipulate_tree.c, tta/perl/Texinfo/Common.pm
($default_bullet_command, itemize_item_prepended_element): move
itemize_item_prepended_element to converter.c. Setup a default bullet
element to be reused by itemize_item_prepended_element. Change
itemize_item_prepended_element to return an already existing const
element. Update caller.
2025-03-29 Patrice Dumas <pertusus@free.fr>
Deprecate @clickstyle
* NEWS, TODO, doc/texinfo.texi (Click Sequences) (Customization
Variables for @@-Commands, Command List), tta/C/main/tree_types.h
(AI_KEYS_LIST), tta/C/parsetexi/api.c (initialize_parsing),
tta/C/parsetexi/handle_commands.c (parse_rawline_command,
handle_brace_command), tta/C/parsetexi/parser.c (global_clickstyle),
tta/data/command_data.txt (clickstyle), tta/data/commands_values.txt
(click), tta/data/options_data.txt, tta/perl/Texinfo/Convert/LaTeX.pm
(%LaTeX_no_arg_brace_commands),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm
(%no_arg_commands_formatting), tta/perl/Texinfo/ParserNonXS.pm
(%parser_document_state_initialization, _parse_rawline_command)
(_handle_brace_command), tta/perl/init/html32.pm, util/texinfo.dtd:
handle clickstyle as an alias command call. Do not set extra
clickstyle of click command. Add information to convert @click
command when missing. Remove clickstyle as a customization option.
* tta/C/convert/format_html.c (html_convert_no_arg_command)
(html_css_string_convert_no_arg_command), tta/C/main/convert_to_text.c
(text_brace_no_arg_command), tta/C/main/manipulate_tree.c
(itemize_item_prepended_element), tta/C/main/node_name_normalization.c
(setup_node_name_normalization, convert_to_normalized_internal),
tta/perl/Texinfo/Common.pm (itemize_item_prepended_element),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_convert_no_arg_command)
(_css_string_convert_no_arg_command),
tta/perl/Texinfo/Convert/IXIN.pm, tta/perl/Texinfo/Convert/LaTeX.pm
(_convert), tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/Texinfo/Convert/Text.pm (brace_no_arg_command): remove code
checking extra clickstyle information for click formatting.
2025-03-29 Patrice Dumas <pertusus@free.fr>
* util/txixml2texi.pl (BEGIN): update paths.
2025-03-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/html_tests.t (css_in_node_redirection_page): add
@documentlanguage en.
* tta/perl/t/init/css_in_node_redirection_page.pm
(_texi2any_tests_css_in_node_redirection_page_format_translate_message):
return input string if lang is undef.
2025-03-29 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (item_line_block_line_argument_command):
check that Texinfo::Commands::brace_commands is defined.
* tta/perl/init/documentation_examples.pm
(my_format_translate_message),
tta/perl/t/init/special_element_customization.pm
(_texi2any_tests_special_unit_translate_message),
tta/perl/t/init/translated_strings_customization.pm
(_texi2any_tests_format_translate_message),
tta/perl/t/init/translation_in_parser_in_translation.pm
(_texi2any_test_translation_in_parser_format_translate_message),
doc/texi2any_api.texi (Translated Strings Customization):
return input string if lang is undef.
2025-03-29 Patrice Dumas <pertusus@free.fr>
Do not translate output document string if language is empty or undef
* tta/C/main/translations.c (translate_string),
tta/perl/Texinfo/Translations.pm (translate_string): return the input
string if lang argument is undef or an empty string.
2025-03-29 Patrice Dumas <pertusus@free.fr>
* tta/data/converters_defaults.txt,
tta/perl/Texinfo/Convert/DocBook.pm (%defaults),
tta/perl/Texinfo/Convert/IXINSXML.pm (%defaults),
tta/perl/Texinfo/Convert/LaTeX.pm (%defaults),
tta/perl/Texinfo/Convert/Plaintext.pm (%defaults),
tta/perl/Texinfo/Convert/TexinfoSXML.pm (%defaults),
tta/perl/Texinfo/Convert/TexinfoXML.pm (%defaults): remove default
documentlanguage setting to undef, as it is the default everywhere.
2025-03-29 Patrice Dumas <pertusus@free.fr>
Do not set en as default documentlanguage, use DEFAULT_STRINGS_LANG if
needed (set to en)
* tta/C/main/base_utils.h (TXI_DEFAULT_STRINGS_LANG),
tta/perl/Texinfo/Common.pm (DEFAULT_STRINGS_LANG): define constants,
set to en.
* tta/C/convert/html_prepare_converter.c (html_setup_output),
tta/perl/Texinfo/Convert/HTML.pm (_setup_output),
tta/perl/Texinfo/Translations.pm (translate_string),
tta/C/main/translations.c (translate_string): if documentlanguage is
an empty string, use it for the body lang and for translations.
* tta/C/convert/html_prepare_converter.c (html_setup_output),
tta/perl/Texinfo/Convert/DocBook.pm (conversion_output_begin),
tta/perl/Texinfo/Convert/HTML.pm (_setup_output),
tta/perl/Texinfo/Translations.pm (translate_string),
tta/perl/t/init/css_in_node_redirection_page.pm: use
DEFAULT_STRINGS_LANG/TXI_DEFAULT_STRINGS_LANG.
* tta/perl/init/chm.pm (chm_init): set language to
DEFAULT_STRINGS_LANG if documentlanguage is not defined, otherwise set
it to an empty string.
* tta/perl/Texinfo/Convert/IXIN.pm: set lang only if documentlanguage
is defined.
* tta/data/converters_defaults.txt,
tta/perl/Texinfo/Convert/TexinfoSXML.pm (%defaults),
tta/perl/Texinfo/Convert/TexinfoXML.pm (%defaults): set default
documentlanguage to undef, not to en.
* tta/perl/Texinfo/Common.pm (MESSAGES_TEXTDOMAIN): use a constant.
2025-03-28 Patrice Dumas <pertusus@free.fr>
* util/texinfo.dtd (subentry, xrefname, anchoridentifier): update
subentry to match changes in tree. Add xrefname. Add
anchoridentifier identifier attribute. Remove formattingcommand
automatic and itemize automaticcommandarg.
* configure.ac (TEXINFO_DTD_VERSION): bump.
* tta/maintain/check_back_xml_forth_texi_t.sh: update paths.
2025-03-28 Patrice Dumas <pertusus@free.fr>
* tta/TODO: update.
Add/change comments related to commands_init_conf.
2025-03-28 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/init_files_tests.t (documentation_examples): set
CASE_INSENSITIVE_FILENAMES, otherwise two files with only differences
in case are created, and the test fails on case insensitive
filesystems.
2025-03-27 Patrice Dumas <pertusus@free.fr>
Do not add default asis for @*table in tree, generate dynamically
* tta/C/convert/converter.c (default_asis_command)
(setup_converter_generic, item_line_block_line_argument_command)
(block_item_line_command), tta/perl/Texinfo/Common.pm
(item_line_block_line_argument_command, block_item_line_command):
check in item_line_block_line_argument_command that the command is not
a noarg command. Do not return the default asis commmand. Add
block_item_line_command that returns the asis command. Remove
inserted info information from default asis.
* tta/C/convert/converter.c (table_item_content_tree),
tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree): call
block_item_line_command.
* tta/C/parsetexi/end_line.c (end_line_starting_block),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_starting_block): do not add
asis command in the tree if @table does not have an argument or have
an incorrect argument.
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): call
block_item_line_command for the prepended element.
* util/texinfo.dtd, tta/perl/Texinfo/Convert/TexinfoMarkup.pm
(_convert): no more automaticcommandarg.
2025-03-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): fix variable
used to check empty contents.
2025-03-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): remove
impossible case, change where an empty command is checked, add
comments.
2025-03-27 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): use $cmdname
for $element->{'cmdname'}.
2025-03-27 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (itemize_item_prepended_element),
tta/perl/Texinfo/Common.pm (itemize_item_prepended_element: rename
itemize_block_line_argument_command as itemize_item_prepended_element.
Rename associated variables. Update callers.
* tta/perl/Texinfo/Convert/LaTeX.pm (_set_environment_options):
simplify code now that bullet cannot be inserted.
Remove commented out code.
2025-03-27 Patrice Dumas <pertusus@free.fr>
Do not add default bullet for @itemize in tree, generate dynamically
* tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree),
tta/C/convert/converter.c (table_item_content_tree): handle the case
of an item or itemx not in table.
* tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree):
avoid spurious autovivification of extra.
* tta/C/main/manipulate_tree.c (itemize_block_line_argument_command),
tta/C/main/utils.c: move itemize_block_line_argument_command to
manipulate_tree.c.
* tta/C/main/manipulate_tree.c (itemize_block_line_argument_command),
tta/perl/Texinfo/Common.pm (itemize_block_line_argument_command):
return the element that can be converted to be prepended to an @item,
including a @bullet for the case of @itemize without argument.
* tta/C/convert/format_html.c (html_convert_itemize_command),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_convert_itemize_command),
tta/perl/Texinfo/Convert/LaTeX.pm (_set_environment_options),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/init/html32.pm (html32_convert_item_command): update
for change in itemize_block_line_argument_command. convert element
returned by itemize_block_line_argument_command when needing a
bullet added if there is no @itemize argument.
* tta/C/parsetexi/end_line.c (end_line_starting_block),
tta/C/parsetexi/end_line.c (end_line_starting_block): do not add
bullet to the @itemize line when there is no argument, the
itemize_block_line_argument_command result should be used instead in
converters.
2025-03-27 Patrice Dumas <pertusus@free.fr>
* contrib/mass_test/get_manuals.sh: change in comment.
2025-03-26 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (set_element_tree_numbers),
tta/perl/Texinfo/ManipulateTree.pm (set_element_tree_numbers): remove
caption and shortcaption from numbered elements.
2025-03-26 Patrice Dumas <pertusus@free.fr>
Remove float, caption and shortcaption extra information
* tta/C/main/floats.c (print_caption_shortcaption),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/ManipulateTree.pm (_print_caption_shortcaption):
determine float, caption and shortcaption based on the tree
information, not on extra information.
* tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): check if there
are multiple caption/shortcaptions in end_line_misc_line when reaching
end float.
* tta/C/main/tree_types.h (AI_KEYS_LIST), tta/C/parsetexi/separator.c
(handle_open_brace), tta/perl/Texinfo/ParserNonXS.pm
(_handle_open_brace): do not set float, caption and shortcaption extra
information.
* tta/perl/Makefile.tres, tta/perl/t/27float.t (multiple_captions):
add a test with multiple caption and shortcaption.
2025-03-26 Patrice Dumas <pertusus@free.fr>
Use tree to find float and caption information
* tta/C/main/utils.c (find_float_caption_shortcaption),
tta/perl/Texinfo/Common.pm (find_float_caption_shortcaption): add to
find caption and shortcaption of float based on tree information.
* tta/C/convert/format_html.c (html_convert_listoffloats_command),
tta/perl/Texinfo/Convert/Converter.pm (float_name_caption),
tta/C/convert/converter.c (float_name_caption), tta/C/main/floats.c
(print_listoffloats_types), tta/perl/Texinfo/Convert/HTML.pm
(_convert_listoffloats_command), tta/perl/Texinfo/Convert/IXIN.pm,
tta/perl/Texinfo/Convert/LaTeX.pm (_convert),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/ManipulateTree.pm (print_listoffloats_types): use
find_float_caption_shortcaption to find caoption and shortcaption
instead of extra information.
2025-03-26 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/separator.c (handle_open_brace),
perl/Texinfo/ParserNonXS.pm (_handle_open_brace): associate *caption
to float only if right below float.
2025-03-26 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (set_element_tree_numbers),
tta/perl/Texinfo/ManipulateTree.pm (set_element_tree_numbers):
keep only brace and block commands that can be in extra information.
2025-03-26 Patrice Dumas <pertusus@free.fr>
Remove command_as_argument extra information
* tta/C/parsetexi/parser.c (kbd_formatted_as_code),
tta/perl/Texinfo/ParserNonXS.pm (_kbd_formatted_as_code): remove
unused element argument.
* tta/C/main/tree_types.h (AI_KEYS_LIST), tta/C/parsetexi/end_line.c
(end_line_starting_block), tta/C/parsetexi/parser.c
(register_command_as_argument), tta/perl/Texinfo/ParserNonXS.pm
(_end_line_starting_block, _register_command_as_argument): do not set
command_as_argument as extra information. Use
block_line_argument_command to prepare some of the error messages for
itemize and table, use a specific check for accent command for
itemize.
2025-03-25 Patrice Dumas <pertusus@free.fr>
Get command as argument from the tree, not from extra information
* tta/C/main/utils.c (block_line_argument_command)
(itemize_block_line_argument_command), tta/perl/Texinfo/Common.pm
(block_line_argument_command, itemize_block_line_argument_command)
(item_line_block_line_argument_command): add functions that find
command as argument for @itemize, @table, @vtable... by looking at the
tree.
* tta/C/convert/converter.c (table_item_content_tree),
tta/C/convert/format_html.c (html_convert_itemize_command),
tta/perl/Texinfo/Convert/Converter.pm (table_item_content_tree),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_convert_itemize_command),
tta/perl/Texinfo/Convert/LaTeX.pm (_set_environment_options)
(_xtable_description_command_format, _convert),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tta/perl/init/html32.pm (html32_convert_item_command): find
command as argument with the tree, not with extra information.
2025-03-25 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (set_element_tree_numbers),
tta/perl/Texinfo/ManipulateTree.pm (set_element_tree_numbers): do not
set numbers for elements that are not in extra information anymore.
2025-03-25 Patrice Dumas <pertusus@free.fr>
Remove subentry subentry_parent extra information
* tta/C/main/get_perl_info.c (find_index_entry_subentry)
(find_subentry_index_command_sv): use tree instead of extra
information to find subentries or index command of subentry. Remove
subentry_hv_parent.
* tta/C/main/manipulate_indices.c (setup_index_entries_sort_strings):
use collect_subentries to get subentries.
* tta/C/main/tree_types.h (AI_KEYS_LIST),
tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): do not set
extra subentry and subentry_parent information. Update Pod.
* tta/C/convert/format_html.c (html_convert_printindex_command):
remove check for an impossible case.
2025-03-25 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (comma_index_subentries_tree_internal)
(comma_index_subentries_tree, free_comma_index_subentries_tree),
tta/perl/Texinfo/Convert/Converter.pm (_comma_index_subentries_tree)
(comma_index_subentries_tree): update comma_index_subentries_tree to
use the tree instead of extra information.
* tta/C/main/utils.c (index_entry_referred_entry),
tta/perl/Texinfo/Common.pm (index_entry_referred_entry): use the tree
to go through subentries.
* tta/C/main/utils.c (collect_subentries), tta/perl/Texinfo/Common.pm
(collect_subentries): add, to simplify getting the list of subentries
from the tree.
* tta/C/convert/format_html.c (html_convert_printindex_command),
tta/perl/Texinfo/Convert/DocBook.pm (_index_entry),
tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command),
tta/perl/Texinfo/Convert/LaTeX.pm (_index_entry),
tta/perl/Texinfo/Indices.pm (setup_index_entries_sort_strings): use
the tree information through collect_subentries to get the subentries
list.
2025-03-24 Patrice Dumas <pertusus@free.fr>
Let subentry be a child of index entry and other subentries
* tta/C/main/element_types.txt, tta/C/main/node_name_normalization.c
(convert_to_normalized_internal), tta/perl/Texinfo/Convert/*.pm
(%ignored_*types) : add ignorable_spaces_before_command type of text
for spaces to be ignored before a command. For spaces before
@subentry.
* tta/C/parsetexi/parser.c (isolate_last_space),
tta/C/main/types_data.h (TF_trailing_space),
tta/perl/Texinfo/ParserNonXS.pm (%trailing_space_types): add
trailing_space type. For such a type, do not replace its type when
calling isolate_last_space as it is a trailing space that should be
kept as is. Set trailing_space for ignorable_spaces_before_command.
* tta/C/parsetexi/parser.c (process_remaining_on_line),
tta/perl/Texinfo/ParserNonXS.pm (_process_remaining_on_line): call
isolate_trailing_space with ignorable_spaces_before_command for
subentry.
* tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/C/parsetexi/indices.c
(set_non_ignored_space_in_index_before_command),
tta/perl/Texinfo/ParserNonXS.pm
(_set_non_ignored_space_in_index_before_command)
(_handle_line_command): do not call end_line for subentry, such as to
keep it a child of index entry or of another subentry. Add subentry
to commands that do not turn a internal_spaces_before_brace_in_index
to a regular space. Have
set_non_ignored_space_in_index_before_command recurse in subentry.
2025-03-23 Patrice Dumas <pertusus@free.fr>
Remove seeentry and seealso extra information
* tta/C/parsetexi/separator.c (handle_close_brace),
tta/perl/Texinfo/ParserNonXS.pm (_handle_close_brace): do not set
seealso and seeentry extra information for index entry nor subentry.
* tta/C/main/tree_types.h (AI_KEYS_LIST): remove seealso and seeentry.
2025-03-23 Patrice Dumas <pertusus@free.fr>
Get seeentry and seealso from the tree and not from extra information
* tta/C/main/utils.c (index_entry_referred_entry),
tta/perl/Texinfo/Common.pm (index_entry_referred_entry): add to find
seeentry or seealso associated to an index element.
* tta/C/convert/format_html.c (html_convert_printindex_command)
(html_output_internal_links), tta/C/convert/html_prepare_converter.c
(prepare_index_entries_targets), tta/perl/Texinfo/Convert/DocBook.pm
(_index_entry), tta/perl/Texinfo/Convert/HTML.pm
(_convert_printindex_command, _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/init/chm.pm (chm_init): use
index_entry_referred_entry to find seeentry and seealso instead of
extra information. Update code to be more similar in C and Perl and
in different functions.
2025-03-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Translations.pm (translate_string): use
translation_cache_context hash.
* tta/perl/Texinfo/Convert/LaTeX.pm (_convert),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_starting_block): avoid
spurious autovivification.
* tta/perl/Texinfo/Common.pm (multitable_columnfractions): remove
useless condition.
2025-03-23 Patrice Dumas <pertusus@free.fr>
Get columnfractions from the tree, remove from extra information
* tta/C/parsetexi/end_line.c (end_line_starting_block),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_starting_block): determine
if there is a columnfractions element by looking at the first element
only in the block line argument element contents.
* tta/C/main/utils.c (multitable_columnfractions),
tta/perl/Texinfo/Common.pm (multitable_columnfractions): add function
to get columnfraction element associated to multitable element.
* tta/C/convert/format_html.c (html_convert_tab_command),
tta/perl/Texinfo/Convert/DocBook.pm (_convert),
tta/perl/Texinfo/Convert/HTML.pm (_convert_tab_command),
tta/perl/Texinfo/Convert/LaTeX.pm (_convert),
tta/perl/Texinfo/Convert/Plaintext.pm (_convert),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert): use
multitable_columnfractions to find multitable columnfractions instead
of extra information.
* tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): do not set
extra multitable columnfraction information. Update Pod tree
documentation.
* tta/C/main/tree_types.h (AI_KEYS_LIST): remove columnfractions.
2025-03-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree_types.h (AI_KEYS_LIST): remove quotation, titlepage
and authors.
Update Pod documentation.
2025-03-23 Patrice Dumas <pertusus@free.fr>
Remove extra titlepage, quotation and authors information
* tta/C/parsetexi/handle_commands.c (handle_line_command),
tta/perl/Texinfo/ParserNonXS.pm (_handle_line_command): do not set
extra titlepage, quotation and authors anymore.
2025-03-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/epub3.pm (epub_finish): use $document argument,
not document associated to converter.
* tta/perl/ext/epub3.pm (epub_finish): find authors in titlepage by
calling Texinfo::Convert::Utils::find_element_authors on the titlepage
element.
* tta/perl/ext/epub3.pm (epub_finish): find documentlanguage elements
by using global_commands_information.
2025-03-23 Patrice Dumas <pertusus@free.fr>
Find author commands in quotation and titlepage in conversion
* tta/C/main/command_stack.c (new_element_reference_stack)
(destroy_element_reference_stack): add.
* tta/C/convert/format_html.c (open_quotation_titlepage_stack)
(html_default_format_titlepage, html_convert_quotation_command)
(html_convert_author_command, html_open_quotation_command),
tta/C/convert/html_converter_finish.c (html_reset_converter)
(html_free_converter), tta/C/main/converter_types.h
(ELEMENT_REFERENCE_STACK_STACK, HTML_SHARED_CONVERSION_STATE),
tta/perl/Texinfo/Convert/HTML.pm (%default_shared_conversion_states)
(_convert_author_command, _convert_quotation_command)
(_open_quotation_titlepage_stack, _open_quotation_command)
(_default_format_titlepage),
tta/perl/XSTexinfo/convert/get_html_perl_info.c (get_authors_list)
(html_set_shared_conversion_state, html_get_shared_conversion_state):
add shared conversion states to gather authors in quotations or
determine that @author is in title page, with a
ELEMENT_REFERENCE_STACK_STACK in C and a quotation or titlepage stack
index, authors list number and author element in Perl. Use them in
quotation, titlepage and author formatting. Update XS interface for
shared_conversion_state.
* tta/perl/Texinfo/Convert/Utils.pm (find_element_authors_internal)
(find_element_authors): add function to find authors in element body.
* tta/perl/Texinfo/Convert/DocBook.pm (_convert): get
quotation_authors by calling
Texinfo::Convert::Utils::find_element_authors.
* tta/perl/Texinfo/Convert/LaTeX.pm (_push_new_context, _convert):
replace in_quotation in formatting_context by an array reference,
quotations_authors, for quotations, and put an array for authors
in quotations_authors to gather quotation authors.
* tta/perl/Texinfo/Convert/Plaintext.pm (%formatted_line_commands)
(push_top_formatter, _convert) : add quotations_authors array
reference to document_context to put an arary of author command
elements appearing in quotation.
2025-03-23 Patrice Dumas <pertusus@free.fr>
* tta/C/main/extra.c (lookup_extra_container): remove unused variable.
2025-03-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/DocBook.pm
(%docbook_ignored_nobrace_commands): rename %docbook_nobrace_commands
as %docbook_ignored_nobrace_commands.
* tta/perl/Texinfo/Convert/DocBook.pm (_convert): use $e_type variable
for the element type.
* tta/perl/Texinfo/Convert/DocBook.pm (%ignored_text_types)
(%ignored_types, _convert): separate ignored text types and ignored
other types. Handle text before other types of elements.
* tta/perl/Texinfo/ParserNonXS.pm (_end_line): reorganize the code for
readability.
* tta/C/main/tree_types.h (ELEMENT): reorder fields.
2025-03-22 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\nolig): Fix \ifluatex conditional which
was the wrong way around. Report from Werner.
2025-03-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/extra.c (lookup_extra_*): always use lookup_extra.
* tta/C/main/manipulate_tree.c: change in spacing, reindent.
2025-03-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/extra.c (check_key_type_or_abort, add_extra_*)
(lookup_extra_*): add check_key_type_or_abort for the check of
matching of type and key.
2025-03-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/extra.c: remove lookup_extra_by_index and
lookup_associated_info_by_index, which have been unused for a long
time.
2025-03-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/extra.c (lookup_extra_integer): inline
lookup_key_pair_integer in lookup_extra_integer and remove.
* tta/C/main/tree_types.h (KEY_PAIR), tta/C/main/build_perl_info.c
(build_additional_info), tta/C/main/debug.c
(print_associate_info_debug), tta/C/main/extra.c
(get_associated_info_key), tta/C/main/manipulate_tree.c
(copy_associated_info, remove_associated_copy_info)
(print_element_extra), tta/C/main/tree.c (destroy_associated_info),
tta/C/parsetexi/end_line.c (end_line_starting_block),
tta/C/structuring_transfo/transformations.c (reassociate_to_node):
use ai_key_types to obtain the key types, remove type from KEY_PAIR
and from get_associated_info_key call. Update get_associated_info_key
callers.
* tta/C/main/extra.c (add_extra_*, lookup_extra_*): check extra type
for add_extra_* functions too. Check extra type before setting or
getting the key.
* tta/C/convert/format_html.c (html_command_description): call
lookup_extra_container for manual_content.
* tta/C/main/manipulate_tree.c: some change in spacing.
2025-03-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree_types.h (AI_KEYS_LIST): incorporate none directly in
AI_KEYS_LIST. Update users.
2025-03-21 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree.c (ai_key_types), tta/C/main/tree_types.h
(AI_KEYS_LIST): add the type of each associated info key in
AI_KEYS_LIST and setup an array associating key an type.
* tta/C/main/extra.c (get_associated_info_key): add a check, commented
out, that the type match the associated info key.
* tta/C/main/tree_types.h (enum extra_type): rename extra_deleted as
extra_none and put it first. update users.
* tta/C/main/tree_types.h (KEY_PAIR): remove list member in union k as
it is not used.
2025-03-20 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_gdt),
tta/C/convert/html_prepare_converter.c
(html_prepare_output_units_global_targets),
tta/C/main/build_perl_info.c
(pass_document_parser_errors_to_registrar, build_minimal_document)
(fill_document_hv, build_document), tta/C/main/document.c
(remove_document, unregister_document_merge_with_document),
(wipe_document_errors, wipe_document_parser_errors),
tta/C/main/translations.c (replace_convert_substrings, gdt),
tta/C/parsetexi/api.c (initialize_parsing, parse_file, parse_text)
(parse_string, parse_piece),
tta/perl/XSTexinfo/parser_document/Parsetexi.xs: use DOCUMENT in input
and output for C functions instead of document descriptor when
possible to simplify code and hide the document descriptor when
possible. Rename remove_document_descriptor as remove_document.
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs: remove
remove_document_descriptor with XS override since long.
2025-03-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (set_element_tree_numbers): free
debug_str.
Update TODO and comments.
2025-03-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(copy_tree): add added_root_elements argument, and pass
added_root_elements elements references from C to the Perl array.
2025-03-19 Patrice Dumas <pertusus@free.fr>
Do not copy extra elements except for full document trees
* tta/C/main/manipulate_tree.c (copy_associated_info)
(copy_tree_internal, remove_associated_copy_info)
(remove_element_copy_info, copy_tree, copy_contents),
tta/perl/Texinfo/ManipulateTree.pm (_copy_tree)
(_remove_element_copy_info, copy_tree, copy_treeNonXS),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(copy_tree), tta/perl/t/z_misc/test_tree_copy.t: add other_trees
argument to copy_associated_info and copy_tree_internal and
_copy_tree. If not set, do not follow extra elements except for
node_content and node_manual. Add added_root_elements argument to
copy_tree, copy_contents and remove_associated_copy_info. If set, set
other_trees and also gather the copied tree elements that are root
elements (without parent) and are not the the copied element. Update
callers such that added_root_elements is not set, except in the XS
interface and in test_tree_copy.t.
* tta/C/main/manipulate_tree.c (set_element_tree_numbers): add a
warning when EF_copy or EF_numbered is already set and an element
should be numbered. Comment out the warning about EF_numbered as it
already happens.
2025-03-19 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/api.c (initialize_parsing): reset
parser_float_records.
2025-03-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/document.c (destroy_document_information_except_tree),
tta/C/main/document_types.h (DOCUMENT), tta/C/parsetexi/parser.c
(parser_float_records, parse_texi), tta/C/parsetexi/end_line.c
(end_line_starting_block): remove floats field from DOCUMENT, add
parser_float_records as a global variable in parser instead.
2025-03-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c: remove build_float_types_list, it is
not used anymore.
2025-03-19 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_listoffloats_list)
(fill_document_hv, document_floats_information): add
build_listoffloats_list that builds a list of floats that appeared in
the file. Use it instead of build_float_types_list.
2025-03-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/ext/highlight_syntax.pm (highlight_process): fix output
variable being used in input.
2025-03-15 Patrice Dumas <pertusus@free.fr>
* NEWS, doc/texinfo.texi (HTML Xref Link Basics)
(HTML Xref 8-bit Character Expansion)
(File Names and Links Customization for HTML)
(HTML Customization Variables List): update documentation for changes
making external node and redirection file names more independent of
customization.
2025-03-15 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_node_redirections),
tta/C/convert/format_html.c (external_node_href),
tta/perl/Texinfo/Convert/HTML.pm (_external_node_href)
(_node_redirections): use user-defined EXTERNAL_CROSSREF_EXTENSION
customization variable value, it is only used there.
2025-03-15 Patrice Dumas <pertusus@free.fr>
External node and redirection file names independent of customization
* tta/C/convert/converter.c (normalized_sectioning_command_filename),
tta/C/convert/format_html.c (html_normalized_label_id_file):
initialize TARGET_FILENAME with new_target_filename.
* tta/C/main/converter_types.h (TARGET_FILENAME), tta/C/main/utils.c
(new_target_filename): add extension field to TARGET_FILENAME, and
initialize the whole structure to 0 in new_target_filename.
* tta/C/convert/format_html.c (html_standard_label_id_file),
tta/perl/Texinfo/Convert/HTML.pm (standard_label_id_file): add
function to setup node filename, target and extension based on default
customizaiton values and arguments for extension.
* tta/C/convert/convert_html.c (html_node_redirections),
tta/C/convert/format_html.c (external_node_href),
tta/perl/Texinfo/Convert/HTML.pm (_external_node_href)
(_node_redirections): call html_standard_label_id_file to determine
node redirection file name and external node file name instead of
using the node file names used for local nodes.
* tta/C/convert/convert_html.c (html_node_redirections),
tta/perl/Texinfo/Convert/HTML.pm (_node_redirections): add
transliterated file names nodes redirection files if
TRANSLITERATE_FILE_NAMES is set.
2025-03-14 Patrice Dumas <pertusus@free.fr>
* tta/maintain/regenerate_C_options_info.pl: do not generate the
free_options function, it should be simpler to iterate over
sorted_options.
2025-03-14 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (free_generic_converter),
tta/C/main/customization_options.c (free_options_list): free options
by iterating over sorted_options.
2025-03-14 Patrice Dumas <pertusus@free.fr>
* tta/C/main/document.c (destroy_document_information_except_tree):
free document options by iterating over sorted_options.
2025-03-14 Patrice Dumas <pertusus@free.fr>
* tta/C/main/get_perl_info.c,
tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(register_document_options): inline init_copy_sv_options in
DocumentXS.xs and remove init_copy_sv_options.
2025-03-14 Patrice Dumas <pertusus@free.fr>
* doc/refcard/txivarcheck (read_vars): remove check for
OUTPUT_PERL_ENCODING.
2025-03-14 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Text.pm (converter): set
translated_commands in converter to be more like C code.
2025-03-14 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_translate_names): set
translated_cmds->number dynamically, as Perl code could be called for
translations, this allows to have a consistency between number of
commands in translated_cmds and translated_cmds->number to pass to
Perl.
* tta/C/main/get_perl_info.c (set_translated_commands): fix scoping of
translated_commands_hv.
* tta/perl/Texinfo/Convert/Utils.pm (expand_today): fix call of gdt.
* tta/C/main/convert_utils.c (translated_command_tree),
tta/C/convert/convert_html.c (html_translate_names),
tta/perl/Texinfo/Convert/Converter.pm (translated_command_tree),
tta/perl/Texinfo/Convert/Utils.pm (translated_command_tree): move
translated_command_tree implementation back to
Texinfo::Convert::Utils, keep a wrapper in Converter.pm. Get
TRANSLATED_COMMAND_LIST and option values as arguments. Keep
converter argument and add cdt_tree_fn argument for overriding of
gdt_tree. Call gdt_tree instead of cdt_tree if not overriden.
* tta/C/main/convert_to_text.c (text_brace_no_arg_command)
(convert_to_text_internal), tta/perl/Texinfo/Convert/Plaintext.pm
(conversion_initialization, _convert),
tta/perl/Texinfo/Convert/Text.pm (brace_no_arg_command, _convert):
split translated_command_tree call out of text_brace_no_arg_command,
do it in the caller instead. Get text option values as arguments.
* tta/C/convert/converter.c, tta/C/main/utils.c
(free_translated_commands, copy_translated_commands): move
copy_translated_commands and free_translated_commands to utils.c.
* tta/C/convert/get_converter_perl_info.c
(copy_sv_options_for_convert_text), tta/C/main/build_perl_info.c
(build_convert_text_options), tta/C/main/convert_to_text.c
(new_text_options, destroy_text_options)
(copy_converter_options_for_convert_text),
tta/perl/Texinfo/Convert/Text.pm (_initialize_text_options_encoding)
(convert_to_text), tta/C/main/convert_to_text.h (TEXT_OPTIONS): add
translated_commands to text options. Set in the default case and pass
from converters.
* tta/perl/Texinfo/Convert/Text.pm (text_accents): call _convert
instead of convert_to_text.
2025-03-13 Patrice Dumas <pertusus@free.fr>
* tta/C/main/errors.c (message_list_line_error_ext)
(vmessage_list_line_error, message_list_command_warn)
(pmessage_list_command_warn): pass directly a warn integer indicator
instead of an OPTIONS. Update callers.
* tta/C/main/errors.c: remove vmessage_list_command_warn.
2025-03-13 Patrice Dumas <pertusus@free.fr>
* tta/C/main/errors.c (message_list_command_error): pass directly a
warn integer indicator instead of an OPTIONS. Update callers.
* tta/C/main/convert_to_text.c (convert_to_text_internal),
tta/C/main/convert_utils.c (expand_verbatiminclude)
(converter_expand_verbatiminclude): replace OPTIONS argument by an
integer argument and adapt for change in message_list_command_error.
* tta/C/convert/get_converter_perl_info.c
(copy_sv_options_for_convert_text), tta/C/main/convert_to_text.c
(destroy_text_options, setup_index_entry_keys_formatting),
tta/C/main/convert_to_text.h (TEXT_OPTIONS): remove the now unneeded
fields of TEXT_OPTIONS related to converters options.
* tta/perl/Texinfo/Convert/Text.pm: update POD documentation.
2025-03-13 Patrice Dumas <pertusus@free.fr>
* tta/C/main/convert_to_text.c (convert_to_text_internal),
tta/C/main/convert_utils.c (expand_today),
tta/perl/Texinfo/Convert/Text.pm (_convert),
tta/perl/Texinfo/Convert/Utils.pm (expand_today): add back
expand_today to Utils.pm in Perl. Handle the case of no translation,
translation using gdt/gdt_tree or cdt with converter or overidden
function for HTML.
* tta/C/convert/converter.c (converter_expand_today),
tta/C/convert/format_html.c (html_convert_today_command),
tta/perl/Texinfo/Convert/Converter.pm (expand_today): add or modify
the wrapper around expand_today to be called from converters and use
for HTML, using the possibility to override cdt.
2025-03-13 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Utils.pm (definition_category_tree),
tta/C/main/convert_utils.c (definition_category_tree): add converter
argument and, in C, cdt tree function reference. If set, translate
using a cdt_tree in Perl and the cdt tree function reference in C for
the HTML converter that redefines the function.
* tta/C/convert/format_html.c (html_convert_def_line_type),
tta/perl/Texinfo/Convert/HTML.pm (_convert_def_line_type): call
definition_category_tree with html_cdt_tree and converter as argument
in C and definition_category_tree with converter as argument in Perl.
2025-03-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm
(merge_converter_error_messages_lists): add.
* tta/C/main/convert_to_text.c (convert_to_text),
tta/perl/Texinfo/Convert/Text.pm (convert_to_text): merge Text
converter error messages with calling converter error messages.
* tta/C/main/convert_to_text.c (convert_to_text_internal),
tta/perl/Texinfo/Convert/Text.pm (_convert): only use the Text
converter code to expand verbatiminclude now that error messages are
transmitted to converters.
2025-03-12 Patrice Dumas <pertusus@free.fr>
* tta/C/texi2any.c (main): fix reading of options to handle options
not set at all.
2025-03-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl ($XS_conversion, test): get tree before
conversion to Texinfo and raw text or only a handler if conversion is
with XS.
2025-03-12 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/get_converter_perl_info.c
(copy_sv_options_for_convert_text), tta/C/main/build_perl_info.c
(build_convert_text_options), tta/C/main/convert_to_text.c
(new_text_options, destroy_text_options)
(TEXT_INDICATOR_CONVERTER_OPTIONS, copy_options_for_convert_text),
tta/C/main/convert_to_text.h (TEXT_OPTIONS),
tta/perl/Texinfo/Convert/Text.pm (@text_indicator_converter_option)
(copy_options_for_convert_text): get and set
DOC_ENCODING_FOR_INPUT_FILE_NAME, INPUT_FILE_NAME_ENCODING,
LOCALE_ENCODING and INCLUDE_DIRECTORIES in text options.
* tta/C/main/convert_to_text.c (convert_to_text_internal): use
information directly in text_options for the call to
expand_verbatiminclude.
* tta/perl/Texinfo/Convert/Text.pm (convert, output): set
OUTPUT_ENCODING_NAME directly.
* tta/perl/Texinfo/Convert/Text.pm
(_initialize_text_options_encoding, convert, output): use only one
argument.
* tta/perl/Texinfo/Convert/Text.pm: comment out get_conf and set_conf
now that thy are not used anymore.
2025-03-12 Patrice Dumas <pertusus@free.fr>
Remove OUTPUT_PERL_ENCODING and set_output_perl_encoding
* tta/perl/Texinfo/Common.pm (count_bytes): do not set encoding to
OUTPUT_PERL_ENCODING if not set. Remove converter argument.
Update caller.
* tta/perl/texi2any.pl, tta/perl/XSTexinfo/convert/ConvertXS.xs
(converter_set_document), tta/C/convert/build_html_perl_info.c
(html_pass_conversion_initialization),
tta/C/main/call_perl_function.c, tta/perl/Texinfo/Common.pm,
tta/perl/Texinfo/Convert/Converter.pm (set_document),
tta/perl/texi2any.pl: do not call set_output_perl_encoding anymore.
Remove set_output_perl_encoding and
call_common_set_output_perl_encoding.
* tta/perl/Texinfo/Convert/Converter.pm: pass OUTPUT_ENCODING_NAME
instead of OUTPUT_PERL_ENCODING, now that the encoding is especially
in output_files_open_out.
* tta/data/options_data.txt: remove OUTPUT_PERL_ENCODING customization
variable.
2025-03-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (processing_output_encoding): rename
perl_encoding_name as processing_output_encoding. Update caller.
* tta/perl/Texinfo/Convert/Utils.pm (output_files_open_out),
tta/perl/Texinfo/Convert/HTML.pm, tta/perl/Texinfo/Convert/IXIN.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/texi2any.pl: call
Texinfo::Common::processing_output_encoding on output encoding to get
the encoding name used for encoding. Update callers to pass
OUTPUT_ENCODING_NAME instead of OUTPUT_PERL_ENCODING, now that
the encoding is especially in output_files_open_out.
* tta/perl/Texinfo/Convert/LaTeX.pm (convert_math_to_images),
tta/perl/Texinfo/Convert/Plaintext.pm (conversion_initialization)
(_stream_encode), tta/perl/t/test_utils.pl (test): determine encoding
used for output files by calling
Texinfo::Common::processing_output_encoding.
* tta/perl/Texinfo/Convert/Text.pm (output), tta/perl/t/test_utils.pl
(test): do not call set_output_perl_encoding anymore.
* tta/perl/Texinfo/Common.pm (set_output_perl_encoding): minor change
for more legible code.
2025-03-12 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (set_output_perl_encoding): do not
call Encode::resolve_alias explicitly, let Perl do the aliasing
of encoding names automatically.
2025-03-12 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_convert_def_line_type),
tta/perl/Texinfo/Convert/HTML.pm (_convert_def_line_type): change
variable names.
* tta/perl/Texinfo/Convert/Utils.pm: update POD documentation.
2025-03-11 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/get_converter_perl_info.c
(copy_sv_options_for_convert_text), tta/C/main/convert_to_text.c
(destroy_text_options, copy_options_for_convert_text),
tta/C/main/convert_to_text.h (TEXT_OPTIONS),
tta/perl/Texinfo/Convert/Text.pm (copy_options_for_convert_text):
store documentlanguage and DEBUG in text options.
* tta/C/convert/format_html.c (html_convert_def_line_type),
tta/C/main/convert_to_text.c (text_heading, convert_def_line)
(convert_to_text_internal), tta/C/main/convert_utils.c
(add_heading_number), tta/perl/Texinfo/Convert/HTML.pm
(_convert_def_line_type), tta/perl/Texinfo/Convert/LaTeX.pm
(_convert_def_line), , tta/perl/Texinfo/Convert/Text.pm
(_text_heading, _convert_def_line, _convert),
tta/perl/Texinfo/Convert/Utils.pm (definition_category_tree)
(add_heading_number), tta/perl/ext/epub3.pm, tta/perl/init/chm.pm: get
customization variables values as arguments for translation related
customization variables for definition_category_tree and
add_heading_number. call gdt instead of cdt for untranslated test
type element in Text converter. Call gdt_string or gdt instead of
cdt_string or cdt in definition_category_tree and add_heading_number.
* tta/C/convert/build_html_perl_state.c (build_html_translated_names),
tta/C/convert/convert_html.c (html_translate_names),
tta/C/main/convert_to_text.c (text_set_language),
tta/perl/Texinfo/Convert/HTML.pm (_translate_names),
tta/perl/Texinfo/Convert/Text.pm (set_language): reset
documentlanguage in text options in translate_names.
* tta/C/convert/convert_html.c (html_prepare_converted_output_info),
tta/perl/Texinfo/Convert/HTML.pm (_prepare_converted_output_info):
reset text options at the end of prepare_converted_output_info.
* tta/perl/Texinfo/Convert/Converter.pm: remove add_heading_number
wrapper.
2025-03-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/utils.c (input_file_name_encoding),
tta/C/main/convert_utils.c (encoded_input_file_name)
(converter_encoded_input_file_name, encoded_output_file_name)
(converter_encoded_output_file_name, expand_verbatiminclude)
(converter_expand_verbatiminclude), tta/C/convert/format_html.c,
tta/C/convert/convert_html.c, tta/C/convert/converter.c,
tta/C/convert/html_prepare_converter.c,
tta/C/convert/rawtext_converter_api.c, tta/C/main/convert_to_text.c
(convert_to_text_internal), tta/C/texi2any.c (main): get customization
variables values as arguments, add wrappers getting information from
OPTIONS. Update callers to call the wrappers or get customization
variables values.
* tta/C/main/convert_to_text.c (text_heading),
tta/C/main/convert_utils.c (add_heading_number): change order of
arguments, put options last. Update callers.
* tta/C/main/convert_to_text.c (text_heading): remove code related to
indentation.
* tta/C/main/convert_to_text.c (convert_to_text_internal): handle
reproducible builds for @today.
2025-03-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (translated_command_tree)
(expand_today), tta/perl/Texinfo/Convert/Utils.pm: move
translated_command_tree and expand_today to
Texinfo::Convert::Converter. Update callers.
* tta/perl/Texinfo/Convert/Utils.pm (output_files_open_out): get
customization variable value as argument. Update callers.
* tta/perl/Texinfo/Convert/Utils.pm (definition_category_tree)
(add_heading_number): put converter argument as last argument, rename
$self as $converter. Update callers.
* tta/perl/Texinfo/Convert/Converter.pm (add_heading_number):
add wrapper to get customization variables from converter to call
function. Update callers in converters.
* tta/perl/Texinfo/Convert/Text.pm (_text_heading): remove code
related to indentation, it is not an argument of the function.
* tta/perl/Texinfo/Convert/Text.pm: rename variables.
* tta/perl/Texinfo/Convert/Text.pm (_convert): abides to reproducible
builds.
2025-03-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Common.pm (input_file_name_encoding),
tta/perl/Texinfo/Convert/Utils.pm (expand_verbatiminclude)
(encoded_output_file_name, encoded_input_file_name): get
customization variables values as arguments.
* tta/perl/Texinfo/Convert/Converter.pm (encoded_input_file_name)
(encoded_output_file_name, expand_verbatiminclude): add or modify
wrappers to get customization variables from converter to call
functions. Update callers in converters.
* tta/perl/Texinfo/Convert/Text.pm (_convert): update for changes in
expand_verbatiminclude.
* tta/perl/Texinfo/Convert/Text.pm (output), tta/perl/t/test_utils.pl
(test), tta/perl/texi2any.pl: update for change in
encoded_output_file_name and input_file_name_encoding.
* tta/perl/Texinfo/Convert/Text.pm (convert, output): store document
for call to expand_verbatiminclude.
* tta/perl/Texinfo/Convert/Text.pm
(_initialize_converter_text_options_encoding)
(_initialize_text_options_encoding): duplicate to have a version using
get_conf() and the other directly accessing the hash.
2025-03-10 Patrice Dumas <pertusus@free.fr>
* tta/C/main/customization_options.c (clear_options_list): iterate
over sorted options calling clear_option instead of calling
clear_options.
* tta/maintain/regenerate_C_options_info.pl: remove generation of
clear_options and copy_options that are not used anymore.
2025-03-10 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (copy_command_option_value_option)
(command_init, set_global_document_commands): use COMMAND_OPTION_VALUE
as return value of command_init. Add
copy_command_option_value_option. Remove new_option_value and
get_command_option_value_option.
* tta/perl/Texinfo/Convert/Converter.pm (_command_init): simplify code
and make clearer that it does the same as C code.
2025-03-09 Patrice Dumas <pertusus@free.fr>
* tta/C/main/option_types.h (COMMAND_OPTION_VALUE): turn
COMMAND_OPTION_VALUE to a union.
2025-03-09 Patrice Dumas <pertusus@free.fr>
* tta/maintain/regenerate_C_options_info.pl: do not generate
command_option_default_table anymore.
2025-03-09 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (command_init): find default option for a
command by calling get_converter_command_option and copying the
option instead of using get_command_option_value_option.
2025-03-09 Patrice Dumas <pertusus@free.fr>
* tta/maintain/regenerate_C_options_info.pl: do not generate
get_command_option anymore.
* tta/C/main/customization_options.c (txi_cmd_option_number): make
static.
2025-03-09 Patrice Dumas <pertusus@free.fr>
* tta/C/main/customization_options.c (txi_cmd_option_number)
(txi_initialise_base_options): add txi_cmd_option_number array that
associate command ids to option numbers.
* tta/C/main/customization_options.c (get_converter_command_option)
(set_informative_command_value, set_global_document_command),
tta/C/convert/converter.c (set_global_document_commands),
tta/C/convert/format_html.c (contents_shortcontents_in_title)
(html_convert_heading_command, html_convert_informative_command)
(html_convert_contents_command), tta/C/convert/html_prepare_converter.c
(prepare_special_units): add get_converter_command_option that uses
txi_cmd_option_number to locate an option. Replace get_command_option
calls by get_converter_command_option calls. Pass sorted options to
set_global_document_command and set_informative_command_value.
2025-03-09 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/html_converter_init_options.c
(html_default_options_setup, html_default_options)
(html_converter_defaults), tta/C/convert/html_prepare_converter.c
(html_format_setup): setup HTML converter option defaults when loading
the converter, with the html_default_options_setup function.
* tta/C/convert/html_prepare_converter.c
(html_converter_initialize_beginning): find default value for HTML for
MAX_HEADER_LEVEL in html_default_options, more similar to Perl.
* tta/C/convert/converter.c (set_converter_init_information)
(free_generic_converter), tta/C/main/converter_types.h (CONVERTER):
do not set up the converter->format_defaults_conf field as it should
not be used anymore. Remove the format_defaults_conf field from
CONVERTER.
2025-03-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Unstructured Nodes): Comment out discussion
of topic-oriented documentation. From Patrice.
2025-03-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Unstructured Nodes): New node.
(Command List): Add @xrefname.
* NEWS: Update.
2025-03-09 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/texi2any.pl: Call Texinfo::Document::remove_document
only if TEST is set. From Patrice.
2025-03-08 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (set_commands_options_value): add the
if_set_in_list argument to distinguish the call from the converter,
where only options with OF_set_in_list set are set, and the call from
the HTML converter where all the options are set. When an input
option is set, and is undefined, set it to the undefined value.
* tta/C/convert/html_prepare_converter.c (html_setup_output): move
call to set_commands_options_value to do it at the same place as in
Perl.
2025-03-08 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm (_generic_converter_init)
(set_global_document_commands), tta/perl/Texinfo/Convert/HTML.pm
(_setup_output): rename output_init_conf converter key as
commands_init_conf and put commands only in it. Remove
output_init_conf, reset commands_init_conf in HTML converter
_setup_output instead.
* tta/C/main/option_types.h (COMMAND_OPTION_VALUE),
tta/C/main/utils.h: rename COMMAND_OPTION_DEFAULT as
COMMAND_OPTION_VALUE and move to option_types.h.
* tta/maintain/regenerate_C_options_info.pl
(setup_options_command_map), tta/C/main/customization_options.c
(txi_options_command_map), tta/C/main/option_types.h
(COMMAND_OPTION_NUMBER_CMD): setup a mapping between options numbers
and associated commands id.
* tta/C/convert/converter.c (set_commands_options_value)
(get_command_option_value_option, command_init)
(free_generic_converter), tta/C/main/converter_types.h
(commands_init_conf): add commands_init_conf list mapping commands to
option values to CONVERTER. Add set_commands_options_value to set
from options, also using txi_options_command_map. Use in
command_init. Remove init_conf field from CONVERTER.
2025-03-09 Gavin Smith <gavinsmith0123@gmail.com>
Cache result of parsing translated tree
* tta/perl/Texinfo/Translations.pm (_replace_convert_substrings):
Save result of parsing translated string in a hash and reuse with
dclone whenever needed. This dramatically reduces the amount
of times we need to parse translated strings.
2025-03-09 Gavin Smith <gavinsmith0123@gmail.com>
Cache translation results
* tta/perl/Texinfo/Translations.pm (translate_string):
Store results of conversions in a hash rather than calling
gettext every time (and all the messing about with locales
that we do before and after).
2025-03-08 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_cache_node_names):
Reuse the same paragraph formatter for all node names.
2025-03-08 Gavin Smith <gavinsmith0123@gmail.com>
Bulk conversion of node names.
* tta/perl/Texinfo/Convert/Plaintext.pm (_cache_node_names):
New function to bulk convert node names in one go.
* tta/perl/Texinfo/Convert/Info.pm (output): Call it.
2025-03-08 Gavin Smith <gavinsmith0123@gmail.com>
Disable clean-up at end of program
* tta/perl/texi2any.pl:
Comment out call to Texinfo::Document::remove_document.
2025-03-07 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Info.pm (format_ref):
Use _stream_output_add_next for concision.
2025-03-07 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Info.pm (format_ref),
* tta/perl/Texinfo/Convert/Plaintext.pm (format_ref):
Remove formatter parameter as it can always be gotten from the
converter object.
2025-03-07 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (Global Customization Variables): document
DUMP_STRUCTURE.
2025-03-07 Patrice Dumas <pertusus@free.fr>
* tta/C/main/output_unit.c (do_units_directions_pages): remove useless
code allocating unused variable.
* tta/C/main/output_unit.c (print_output_units_details): free
ou_directions strings list.
* tta/C/convert/convert_html.c (html_node_redirections): free
translit_filename.
* tta/C/main/floats.c (print_caption_shortcaption): always free
caption_texi, even if an empty string.
* tta/perl/Makefile.tres, tta/perl/t/html_tests.t
(anchor_in_menu_on_sectioning_command_line): add a minimal example
demonstrating a memory leak difficult to fix, when a tree copy copies
elements out of the main copied tree.
2025-03-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.tres, tta/perl/t/30sectioning.t
(automatic_menu_with_heading), tta/perl/t/html_tests.t
(heading_node_after_chap, headings_nodes_before_chapter)
(node_heading_between, heading_between): tests of @*heading and
splitting and automatic menus. Mainly from Gavin.
* tta/perl/t/test_utils.pl (test): use is_diff instead of is for
result_texts.
2025-03-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (use vars, test): remove unused %result_*
variables use var.
2025-03-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (is_diff): rename is_with_diff as is_diff.
* tta/perl/t/test_utils.pl: change in spacing.
2025-03-07 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/19def.t (all_commands_printindex)
(all_commands_delimiters_printindex): add an @xrefname to avoid
association of the node with the @heading appearing later on.
* tta/perl/t/test_utils.pl (test): use is_with_diff instead of is for
texinfo output.
2025-03-06 Patrice Dumas <pertusus@free.fr>
Remove USE_NEXT_HEADING_FOR_LONE_NODE, it is now always on
* tta/C/convert/format_html.c (html_convert_heading_command),
tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command),
tta/perl/init/book.pm (book_convert_heading_command): remove code
checking if a node is followed by an @*heading command when
USE_NEXT_HEADING_FOR_LONE_NODE, as now, if a node is followed by
an @*heading command extra associated_title_command is set
and the node is not used for the heading anyway.
* NEWS, doc/texinfo.texi (HTML Output Structure Customization)
(HTML Customization Variables List), tta/data/converters_defaults.txt,
tta/data/options_data.txt: remove USE_NEXT_HEADING_FOR_LONE_NODE
customization option, it is now always on.
2025-03-06 Patrice Dumas <pertusus@free.fr>
* tta/perl/init/book.pm (book_convert_heading_command): sync with
HTML.pm.
2025-03-06 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_convert_menu_entry_type): use the
same condition as in Perl for href determination.
* tta/C/convert/format_html.c (html_internal_command_href),
tta/perl/Texinfo/Convert/HTML.pm (_internal_command_href): use
associated_anchor_command to determine the href for a command, if
there is no associated_node.
* tta/tests/coverage/formatting.texi: add testing of @xrefname.
2025-03-06 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/LaTeX.pm (_convert): do not use Section and
number in @*ref output when @xrefname or @*heading is the command
associated to a node.
* tta/perl/t/test_utils.pl (test): use is_with_diff instead of is for
format output difference.
2025-03-06 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/end_line.c (end_line_misc_line),
tta/perl/Texinfo/ParserNonXS.pm (_end_line_misc_line): no message for
empty @xrefname.
* tta/perl/Makefile.tres, tta/perl/t/converters_tests.t (xrefname)
(empty_xrefname): add tests for @xrefname and empty @xrefname.
2025-03-06 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/end_line.c (end_line_misc_line), : associate
correctly the line command to the node, not the container.
* tta/data/command_data.txt (xrefname): add close_paragraph and global
flags.
* tta/C/convert/html_prepare_converter.c (heading_commands_list),
tta/perl/Texinfo/Convert/HTML.pm (_set_heading_commands_targets):
handle @xrefname as a target command, like @*heading commands.
2025-03-06 Patrice Dumas <pertusus@free.fr>
* tta/perl/texi2any.pl: fix print_tree_details call arguments order.
* tta/perl/Texinfo/ManipulateTree.pm (set_element_tree_numbers),
tta/C/main/manipulate_tree.c (set_element_tree_numbers): number
@xrefname.
2025-03-06 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
associate node to part as associated_title_command.
* tta/perl/Texinfo/Structuring.pm (new_node_menu_entry),
tta/C/convert/format_html.c (file_header_information)
(html_convert_heading_command, html_convert_xref_command),
(html_convert_menu_entry_type), tta/perl/Texinfo/Convert/HTML.pm
(_convert_heading_command, _convert_menu_entry_type)
(_file_header_information), tta/perl/Texinfo/Convert/LaTeX.pm
(_convert): use associated_title_command instead
of associated_section when relevant, for instance for heading, file
title, in menu if !NODE_NAME_IN_MENU.
2025-03-06 Patrice Dumas <pertusus@free.fr>
* tta/data/command_data.txt (xrefname): add xrefname.
* tta/C/main/tree_types.h (AI_KEYS_LIST), tta/C/parsetexi/end_line.c
(associate_title_command_anchor, end_line_misc_line),
tta/perl/Texinfo/ParserNonXS.pm (_associate_title_command_anchor)
(_end_line_misc_line): add extra information associated_anchor_command
and associated_title_command to associate a @node to the following
@*heading, sectioning command or @xrefname.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/html_prepare_converter.c (load_htmlxref_files),
tta/perl/Texinfo/Convert/HTML.pm (_load_htmlxref_files): do not add
the current directory, it is already in TEXINFO_LANGUAGE_DIRECTORIES.
Report from Gavin.
* tta/C/texi2any.c (main), tta/perl/texi2any.pl: canonicalize input
directory and us the canonical form when comparing to curdir. Report
from Gavin.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/C/main/tree_types.h (FLOAT_RECORD): set type to const.
2025-03-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_stream_output_add_next):
New function.
(_convert): Use throughout.
2025-03-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert):
Call _stream_output_add_text throughout.
2025-03-05 Patrice Dumas <pertusus@free.fr>
Remove unused code using Perl data structure for tests
* tta/perl/t/test_utils.pl (test): remove $do_perl_tree and all the
related code.
2025-03-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (_stream_output_add_text):
New function.
* tta/perl/Texinfo/Convert/Info.pm (format_ref): Call it.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs (unsplit)
(rebuild_output_units): add warning message argument to
get_sv_document_document and get_sv_output_units_descriptor.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (%XS_overrides, unsplit): let
unsplit be overriden as a whole. Remove _XS_unsplit.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/C/main/document_types.h (DOCUMENT), tta/C/main/output_unit.c
(do_units_directions_pages),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(rebuild_output_units, do_units_directions_pages): store output units
descriptors associated to document in the new output_units_descriptors
field. This allows output units list that are needed when rebuilt to
Perl with rebuild_output_units to be found even if they are not
associated to a Perl reference passed to the XS function.
* tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(print_output_units_tree_details, do_units_directions_pages):
rearrange code.
* tta/C/main/build_perl_info.c (output_unit_to_perl_hash): improve
fatal error message.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_node_redirections): free
redirection_files.
* tta/C/main/document.c (print_document_indices_sort_strings):
reindent. Free indices_entries_sort_string,
sorted_index_entries_n_nr and indices_sort_strings_n_nr.
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(print_document_listoffloats, print_document_indices_information)
(print_document_indices_sort_strings): free strings after they have
been passed to Perl.
2025-03-05 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Info.pm (format_ref):
Convert label twice, once for checking for ':', a second time
for actually outputting the label. This leads to much more
straightforward code.
2025-03-04 Gavin Smith <gavinsmith0123@gmail.com>
* tta/perl/Texinfo/Convert/Plaintext.pm (new_formatter):
Call throughout without using method call syntax, as this is one
of the most frequently called functions and this produces a slight
speed-up.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test), tta/perl/Texinfo/Document.pm
(print_document_indices_sort_strings): move code used to print index
sort strings to Document.pm as the print_document_indices_sort_strings
function to be able to do an XS override.
* tta/C/main/document.c (INDEX_ENTRIES_SORT_STRINGS)
(INDICES_ENTRIES_SORT_STRINGS, setup_indices_entries_sort_strings)
(find_indices_entries_sort_strings_index)
(print_document_indices_sort_strings): implement
print_document_indices_sort_strings in C.
* tta/perl/Texinfo/Document.pm (%XS_overrides),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(print_document_indices_sort_strings): XS override for
print_document_indices_sort_strings.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/html_conversion_state.c,
tta/C/convert/html_converter_finish.c (html_reset_converter),
tta/C/convert/html_prepare_converter.c
(html_prepare_units_directions_files), tta/C/main/utils.c
(allocate_name_number_list, compare_name_number, find_name_number)
(sort_name_number_list, free_name_number_list): move
compare_name_number and find_name_number to utils.c and add
allocate_name_number_list, sort_name_number_list and
free_name_number_list functions to handle NAME_NUMBER_LIST and use
them when relevant.
* tta/C/main/manipulate_indices.c (setup_index_entries_sort_strings):
store number of entries at the end of the loop only.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test): use a textual representation for
result_indices_sort_strings.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/html_prepare_converter.c
(html_initialize_output_state), tta/C/main/manipulate_indices.c
(compare_index_name, sort_index_names): move code used to sort index
names from html_prepare_converter.c to manipulate_indices.c.
* tta/C/main/document.c (print_document_indices_information),
tta/C/main/manipulate_indices.c (print_indices_information),
tta/perl/Texinfo/Document.pm (%XS_overrides),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(print_document_indices_information), tta/perl/t/test_utils.pl (test):
implement print_document_indices_information and
print_indices_information in C and add an XS interface.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (print_document_indices_information),
tta/perl/t/test_utils.pl (test): add wrapper around
Texinfo::Indices::print_indices_information that is called with the
document, to be able to do an XS override. Call it in test.
2025-03-05 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Indices.pm (print_indices_information): add
print_indices_information that returns textual information on the
indices, but not on the index entries.
* tta/perl/t/test_utils.pl (test): use print_indices_information
as information on indices for tests.
2025-03-04 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test): build the Perl tree especially only
if do_perl_tree.
2025-03-04 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_tree_details),
tta/perl/Texinfo/ManipulateTree.pm (print_tree_details): rename
print_tree as print_tree_details. Update callers.
* tta/C/main/manipulate_tree.c (print_element_extra): handle
extra_deleted.
* tta/perl/Texinfo/ManipulateTree.pm (%XS_overrides),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(print_tree_details): XS override for print_tree_details.
2025-03-04 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test): rebuild Perl output_units only if
Perl data is needed, if do_perl_tree is set.
2025-03-04 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (%XS_overrides),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(do_units_directions_pages): add XS override for
do_units_directions_pages.
* tta/perl/Texinfo/OutputUnits.pm (_output_unit_name_string): use
directly contents to avoid leading and trailing spaces.
2025-03-04 Patrice Dumas <pertusus@free.fr>
* tta/C/main/converter_types.h, tta/C/main/document_types.h
(ELEMENT_STACK), tta/C/main/tree_types.h (COMMAND_STACK): move
COMMAND_STACK to tree_types.h and ELEMENT_STACK to document_types.h.
Update header files includes.
2025-03-04 Patrice Dumas <pertusus@free.fr>
* tta/C/main/document_types.h (enum output_units_descriptor_type),
tta/C/main/converter_types.h: move to output_units_descriptor_type
to document_types.h as it is used in output units code.
* tta/perl/Texinfo/OutputUnits.pm (do_units_directions_pages),
tta/perl/t/test_utils.pl (test): do not split_pages only if the
specification is undef. Leave $split_pages undef in test_utils.pl
test.
* tta/C/main/output_unit.c (do_units_directions_pages),
tta/C/main/output_unit.h (enum units_split_type),
tta/perl/Texinfo/OutputUnits.pm (%XS_overrides),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(do_units_directions_pages), tta/perl/t/test_utils.pl (test): add a C
implementation of the do_units_directions_pages function used in tests
only, and add an XS override. Call rebuild_output_units in
test_utils.pl test now that the changes may be done in C only.
* tta/C/main/build_perl_info.c (setup_output_units_handler): store
output_units_document_descriptor to do the same as
fill_output_units_descriptor_av.
2025-03-04 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (do_units_directions_pages),
tta/perl/t/test_utils.pl (test): add do_units_directions_pages based
on output units code in test. Use a 0/1 specification for splitting
at node or sections.
2025-03-03 Patrice Dumas <pertusus@free.fr>
XS interface for printing list of floats
* tta/C/main/floats.c (print_caption_shortcaption): fix detection of
empty captions.
* tta/perl/Texinfo/ManipulateTree.pm (_print_caption_shortcaption):
keep trailing end of lines.
* tta/C/main/document.c (print_document_listoffloats),
tta/perl/Texinfo/Document.pm (%XS_overrides),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs
(print_document_listoffloats): add an XS override for
print_document_listoffloats.
2025-03-03 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (print_document_listoffloats): add a
wrapper around Texinfo::ManipulateTree print_listoffloats_types.
* tta/perl/t/test_utils.pl (test): use print_document_listoffloats,
separate more handling of floats with and without do_perl_tree set.
2025-03-03 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test): always generate and compare
$tree_text.
* tta/perl/t/test_utils.pl (is_with_diff): handle better undefined
result.
* tta/perl/t/test_utils.pl (test): move code around, in particular
move COMPARE label down, such that less variables are set if there
was nothing done.
2025-03-03 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test): fix generation of floats results.
* tta/perl/t/test_utils.pl (test): reorganize code.
2025-03-03 Patrice Dumas <pertusus@free.fr>
Text representation of listoffloats
* tta/C/main/floats.c (compare_listoffloats_type)
(float_list_to_listoffloats_list): sort listofflots types.
* tta/C/main/floats.c: add include of float.h, correct
add_to_float_record_list prototype.
* tta/C/main/floats.c (print_indented, print_caption_shortcaption)
(print_listoffloats_types), tta/perl/Texinfo/ManipulateTree.pm
(_print_caption_shortcaption, print_listoffloats_types): add printing
of listoffloats, to verify listoffloats types, association with
floats.
* tta/perl/t/test_utils.pl (is_with_diff): handle $reference not being
a string.
* tta/perl/t/test_utils.pl (test): determine float structure before
generating/checking results.
* tta/perl/t/test_utils.pl (test): use print_listoffloats_types for
floats representation if $do_perl_tree is not set.
2025-03-03 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_setup_output_simple_page),
tta/C/convert/html_conversion_state.c (compare_name_number)
(find_name_number), tta/C/convert/html_converter_finish.c
(html_reset_converter), tta/C/convert/html_prepare_converter.c
(compare_name_number, html_prepare_units_directions_files),
tta/C/main/converter_types.h (CONVERTER), tta/C/main/tree_types.h
(NAME_NUMBER, NAME_NUMBER_LIST): move PAGE_NAME_NUMBER and
PAGE_NAME_NUMBER_LIST to tree_types.h and rename NAME_NUMBER and
NAME_NUMBER_LIST. Rename compare_page_name_number as
compare_name_number and find_page_name_number as find_name_number.
Update callers.
2025-03-03 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_element_extra): add a local
context for extra_misc_args case, which has a variable definition.
* tta/C/main/manipulate_tree.c (print_element_extra): initialize
need_free to 1 as it is what is used in most cases.
* tta/C/main/manipulate_tree.c (print_element_extra): free memory.
* tta/C/texi2any.c (main): free dump_structure_name and
dump_tree_name.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl (test): do not output floats information if
there is no float.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/C/parsetexi/separator.c (handle_comma),
tta/perl/Texinfo/ParserNonXS.pm (_handle_comma): do not add format
extra information for @*inline if the first argument is empty.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (add_info_name_string_value),
tta/perl/Texinfo/ManipulateTree.pm (_print_element_associated_info):
specific output when extra string is undef/NULL.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl ($nr_comparisons, test): do not output
separate sectioning, nodes, menus, output_units nor elements if test
results are a textual representation, as the information is already in
the textual representation of the tree.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_element_details),
tta/perl/Texinfo/ManipulateTree.pm (print_element_details): print root
commands Texinfo code for a more readable tree.
* tta/perl/texi2any.pl: prepend information on output encoding of
DUMP_STRUCTURE tree only if not utf-8.
2025-03-02 Patrice Dumas <pertusus@free.fr>
Switch tta/perl/t/*.t tests tree results to a textual representation
* tta/perl/t/test_utils.pl ($do_perl_tree): set to a textual
representation.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/test_utils.pl ($do_perl_tree, test): prepare a new
representation of test results for the tree using a textual
representation. Code is changed in the commit, but only the header is
changed in output, to add the new tree variable.
* tta/perl/t/test_utils.pl (is_with_diff), tta/README: detect if the
Text::Diff module can be loaded at run time. If so, the difference
between reference and obtained textual test results can be shown as a
diff, which should be more readable.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/OutputUnits.pm (_output_unit_name_string): fix
external_node_unit unit type unit_command conversion.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (_print_element_associated_info):
handle associated_index_entry as index entries.
* tta/perl/Texinfo/OutputUnits.pm (_output_unit_name_string)
(print_output_units_details): rename 'index' key as '_index'. Delete
index keys at the end of print_output_units_details.
* tta/perl/Texinfo/OutputUnits.pm (print_output_units_details)
(print_output_units_tree_details): pass $fname_encoding argument.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/C/main/manipulate_tree.c (print_source_marks),
tta/perl/Texinfo/ManipulateTree.pm (_print_source_marks): protect eol
in source mark line.
* tta/C/main/manipulate_tree.c (print_element_details),
tta/perl/Texinfo/ManipulateTree.pm (print_element_details): change
leading character.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (remove_element_tree_numbers):
recurse in the tree.
2025-03-02 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (@xrefname): Add command.
2025-03-02 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (HTML Output Structure Customization)
<ADD_TRANSLITERATED_REDIRECTION_FILES>: Do not say that node
name transliteration must be turned off for this option to do
anything. Report from Patrice.
2025-03-02 Patrice Dumas <pertusus@free.fr>
In C program pass unclosed files from Perl as PerlIO and close
* tta/C/main/utils.c (allocate_file_stream),
tta/C/main/convert_utils.c (register_unclosed_file),
tta/C/main/converter_types.h (FILE_STREAM), tta/C/convert/texinfo.c
(txi_converter_output): add file_path argument to
allocate_file_stream, update callers. Add io field to FILE_STREAM,
and as argument to register_unclosed_file, update callers. Initialize
the whole FILE_STREAM to 0 in allocate_file_stream.
* tta/C/convert/texinfo.c (txi_close_file_stream),
tta/C/main/api_to_perl.c (call_close_perl_io): add to be able to close
a PerlIO passed as io in FILE_STREAM.
* tta/C/main/get_perl_info.c (get_output_files_information): pass
unclosed PerlIO associated to filehandle to output files information
as FILE_STREAM io.
* tta/C/texi2any.c (main): make main_program_unclosed_stdout a
FILE_STREAM such that it may hold a C FILE or a Perl PerlIO. Set it
and call txi_close_file_stream to close. Also call
txi_close_file_stream to close unclosed file streams returned by the
converter.
2025-03-02 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (HTML Xref 8-bit Character Expansion)
(HTML Output Structure Customization):
Document ADD_TRANSLITERATED_REDIRECTION_FILES.
* NEWS: update.
2025-03-02 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/html_tests.t
(simple_only_special_spaces_node_no_translit_files),
tta/perl/Makefile.tres, tta/perl/t/formats_encodings.t
(char_us_ascii_latin1_in_refs_no_translit_files): add tests explicitly
without transliteration of file names.
* tta/perl/t/formats_encodings.t: remove useless spaces.
2025-03-02 Patrice Dumas <pertusus@free.fr>
Set explicitly TRANSLITERATE_FILE_NAMES for tests needing it
* tta/perl/t/30sectioning.t (transliterated_split_equivalent_nodes),
tta/perl/t/formats_encodings.t (char_utf8_latin1_in_refs)
(char_latin1_latin1_in_refs, char_us_ascii_latin1_in_refs)
(char_latin2_latin2_in_refs, sample_utf8, 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): set explicitly
TRANSLITERATE_FILE_NAMES when it is important for the test.
* tta/perl/t/test_utils.pl (convert_to_html): do not set
TRANSLITERATE_FILE_NAMES.
2025-03-01 Patrice Dumas <pertusus@free.fr>
* tta/perl/t/converters_tests.t (conversion_with_undef_customization):
restore setting of TRANSLITERATE_FILE_NAMES to undef now that now that
it takes effect in the tests again.
2025-03-01 Patrice Dumas <pertusus@free.fr>
Add ADD_TRANSLITERATED_REDIRECTION_FILES
* tta/C/convert/convert_html.c (html_node_redirections),
tta/data/options_data.txt (ADD_TRANSLITERATED_REDIRECTION_FILES),
tta/perl/Texinfo/Convert/HTML.pm (_node_redirections): add
ADD_TRANSLITERATED_REDIRECTION_FILES customization variable to add
redirection files with transliterated file names for backward
compatibility with previous default HTML Xrefs.
Modify html_node_redirections to have the possibility to do
node redirection files based on a list of redirection files. Add the
node redirection file to the list, and also add a transliterated file
if ADD_TRANSLITERATED_REDIRECTION_FILES is set, and the file name is
different from already set files.
* tta/perl/t/test_utils.pl (convert_to_html): set
TRANSLITERATE_FILE_NAMES only if not already set.
* tta/perl/t/html_tests.t (set_add_transliterated_redirection_files),
tta/perl/Makefile.tres: test ADD_TRANSLITERATED_REDIRECTION_FILES.
2025-03-01 Gavin Smith <gavinsmith0123@gmail.com>
@*heading for "@xrefautomaticsectiontitle on"
* doc/texinfo.tex (\setref, \donoderef): take an extra argument
instead of referring to \currentsection.
(\currentsection): remove use throughout.
No functional changes intended.
2025-03-01 Gavin Smith <gavinsmith0123@gmail.com>
@*heading for "@xrefautomaticsectiontitle on"
* doc/texinfo.tex (\sectionheading): unconditionally set
\currentsection, even for heading commands.
bug-texinfo discussion, 2025-02-14.
2025-03-01 Gavin Smith <gavinsmith0123@gmail.com>
DUMP_TREE plans
* README-hacking,
* TODO,
* doc/texinfo.texi (Global Customization Variables): Add notes
to change DUMP_TREE behaviour in future.
2025-03-01 Patrice Dumas <pertusus@free.fr>
* NEWS, doc/texinfo.texi (Global Customization Variables),
tta/C/texi2any.c (main), tta/data/options_data.txt (DUMP_STRUCTURE)
(DUMP_TREE), tta/perl/texi2any.pl: consider DUMP_TREE and
DUMP_STRUCTURE to be file names instead of flag. If set to -, print
to STDERR. For DUMP_TREE print to STDERR if set to 1, too, temporary
for backward compatibility. Set document options earlier in main
programs to have them available for DUMP_TREE.
* tta/C/main/convert_utils.c (encoded_input_file_name),
tta/C/main/utils.c (input_file_name_encoding),
tta/perl/Texinfo/Common.pm (input_file_name_encoding),
tta/perl/Texinfo/Convert/Utils.pm (encoded_input_file_name): add
input_file_name_encoding based on code removed from
encoded_input_file_name.
* tta/C/main/manipulate_tree.c (print_element_source_info, print_tree)
(print_*), tta/C/main/output_unit.c (print_output_units_details)
(print_output_units_tree_details), tta/C/texi2any.c (main),
tta/perl/Texinfo/ManipulateTree.pm (_print_element_source_info)
(print_tree, print_*), tta/perl/texi2any.pl: decode source info file
names to internal encoding/UTF-8 for print_tree. Call
input_file_name_encoding in main program to determine input files
encoding. Pass input file encoding down to print_element_source_info.
2025-03-01 Gavin Smith <gavinsmith0123@gmail.com>
TRANSLITERATE_FILE_NAMES is off by default
* tta/data/options_data.txt (TRANSLITERATE_FILE_NAMES): Change
from 0 to 1.
* tta/perl/t/test_utils.pl (convert_to_html),
* tta/tests/tex_html/list-of-tests,
* tta/tests/encoded/list-of-tests: Set TRANSLITERATE_FILE_NAMES to
1 in order not to disturb test results.
* tta/perl/t/converters_tests.t (conversion_with_undef_customization):
Comment out setting of TRANSLITERATE_FILE_NAMES to undef as it
does not take effect in the tests.
* NEWS: update.
2025-03-01 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/ManipulateTree.pm (set_element_tree_numbers)
(remove_element_tree_numbers): add a definition for the recursive
functions. Report from Gavin.
2025-03-01 Gavin Smith <gavinsmith0123@gmail.com>
* NEWS: update
2025-02-28 Patrice Dumas <pertusus@free.fr>
Detailed tree and output units printing in Perl
* tta/C/main/output_unit.c (output_unit_name_string): fix conditions.
* tta/perl/Texinfo/ManipulateTree.pm (set_element_tree_numbers)
(_print_source_marks, _print_text_element)
(_print_element_add_prepend_info, element_number_or_error)
(_debug_protect_eol, _print_element_associated_info)
(_print_element_source_info, print_element_details)
(remove_element_tree_numbers, print_tree): detailed print of tree in
Perl.
* tta/perl/Texinfo/OutputUnits.pm (_output_unit_name_string)
(print_output_units_details, print_output_units_tree_details):
detailed print of output units in Perl.
* tta/perl/texi2any.pl: use print_tree for DUMP_TREE. Add
DUMP_STRUCTURE handling.
2025-02-28 Patrice Dumas <pertusus@free.fr>
* tta/C/main/debug.c (debug_protect_eol): do not protect /, but
protect TAB and line feed.
* tta/C/main/build_perl_info.c (element_to_perl_hash),
tta/C/main/manipulate_tree.c (print_element_extra): do not store
omit_def_name_space flag twice.
* tta/C/main/manipulate_tree.c (print_source_marks): also show source
mark counter when status is none.
* tta/C/main/manipulate_tree.c (print_element_info)
(print_element_extra): print flags like strings.
* tta/C/main/manipulate_tree.c (set_element_tree_numbers): change
order in conditional to hopefully have more likely first.
2025-02-26 Patrice Dumas <pertusus@free.fr>
Output units detailed print
* tta/C/main/manipulate_tree.c (set_element_tree_numbers)
(print_element_details, remove_element_tree_numbers): rename
setup_element_number as set_element_tree_numbers, print_element as
print_element_details, remove_element_number as
remove_element_tree_numbers.
* tta/C/main/output_unit.c (output_unit_name_string, add_ou_direction)
(print_output_units_details, print_output_units_tree_details): print
output units details, including with tree details.
2025-02-26 Patrice Dumas <pertusus@free.fr>
Source marks in detailed print of the tree in C
* tta/C/main/manipulate_tree.c (print_source_marks)
(print_text_element, print_element): print source marks.
2025-02-26 Patrice Dumas <pertusus@free.fr>
Add a detailed print of the tree in C
* tta/C/main/manipulate_tree.c (setup_element_number)
(remove_element_number): put a number for elements that are referred
to by other elements recursively, at the end of element->elt_info with
setup_element_number. Remove the number with remove_element_number.
* tta/C/main/manipulate_tree.c (ADDITIONAL_INFO_NAME_VAL)
(ADDITIONAL_INFO_NAME_VAL_LIST, add_info_name_value)
(compare_name_value, print_info_strings, add_info_name_string_value)
(print_element_info, print_element_extra): add
ADDITIONAL_INFO_NAME_VAL with a name and value to help with printing
additional info and extra of an ellement. Register with
add_info_name_value or add_info_name_string_value, print with
print_info_strings, after sorting by name. Add print_element_info and
print_element_extra to register info or extra information and print.
* tta/C/main/manipulate_tree.c (print_text_element)
(print_element, print_element_add_prepend_info)
(element_number_or_error, print_element_source_info, print_tree): add
print_tree to print tree elements, with a first pass to add numbers,
calling setup_element_number, then the recursive printing of the tree
elements with print_text_element and print_element. No source marks
for now.
* tta/data/options_data.txt: add DUMP_STRUCTURE option.
* tta/C/texi2any.c (main), doc/texinfo.texi (Global Customization
Variables): call print_tree if DUMP_TREE or DUMP_STRUCTURE is set.
2025-02-26 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (element_to_perl_hash): remove
redundant setting of is_target.
* tta/C/main/debug.c (debug_protect_eol): protect \ in addition to \n,
for clarity of the output and to distinguish end of line from \n.
* tta/perl/texi2any.pl: check that DUMP_TREE is true in addition to be
defined.
2025-02-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.tres, tta/perl/t/html_tests.t
(automatic_menus_format_menu_no_detailmenu): add test of FORMAT_MENU
set to menu_no_detailmenu.
2025-02-24 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Plaintext.pm (_convert): set explicit
$arguments_line for clearer code.
* tta/perl/Texinfo/Convert/TextContent.pm (_convert): reindent.
2025-02-24 Patrice Dumas <pertusus@free.fr>
Add menu_no_detailmenu for FORMAT_MENU without automatic @detailmenu
* doc/texinfo.texi (Global Customization Variables, HTML Output
Structure Customization), tta/C/convert/format_html.c
(html_convert_heading_command), tta/C/convert/html_prepare_converter.c
(html_converter_customize), tta/C/convert/texinfo.c (txi_parser),
tta/perl/Texinfo/Convert/HTML.pm (_convert_heading_command)
(converter_initialize), tta/perl/Texinfo/ParserNonXS.pm
(_register_extra_menu_entry_information, _handle_block_command),
tta/perl/Texinfo/Structuring.pm (set_menus_node_directions),
tta/perl/XSTexinfo/Parsetexi.pm (parser): add the possibility to set
FORMAT_MENU to menu_no_detailmenu to use menus for navigation but do
not automatically generate a @detailmenu in the Top node master menu
for HTML. Report from Werner Lemberg.
2025-02-24 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Overview): Change reference for texinfo.tex
to section in this chapter.
2025-02-24 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (History, Adding Output Formats):
Move exhortation to use texi2any test cases to "Adding Output
Formats" and merge with existing text.
2025-02-24 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (History): Move discussion of "reference
implementation" into list of advantages of Perl program, and
edit.
2025-02-24 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (No Space After Definition Name):
Alter example slightly to avoid creating index entry for 'index',
which clashes with actual discussion of Texinfo indexing.
2025-02-24 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (History, Adding Output Formats): Swap nodes.
2025-02-24 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Overview): Mention the main Texinfo processors
in this node. Suggestion from Patrice.
2025-02-23 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (Adding Output Formats): remove useless index
entry, add index entries, fix path.
* doc/texinfo.texi (History): remove old information on makeinfo C
implementation and texi2html already implied by the history.
* doc/texinfo.texi (HTML Customization for Math): add missing to.
2025-02-23 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/convert/get_html_perl_info.c
(html_converter_get_customization_sv): fix conditional on Perl
version by adding to external_references_number only if the version is
below 5.21.4, not above.
2025-02-23 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (History): trim a bit. Encourage to use the
Texinfo code of texi2any tests, not the tests themselves.
2025-02-23 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (History): trim down, by removing too specific and
dated parts.
2025-02-23 Gavin Smith <gavinsmith0123@gmail.com>
Info hooks
* info/configfiles.c (run_info_hook): New function. Locate
and run hook program by name.
* info/info.c (get_initial_file): If couldn't open file, call
'run_info_hook' with "manual-not-found" hook.
2025-02-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/infomap.c, info/configfiles.c (locate_init_file):
Move to new file configfiles.c.
2025-02-23 Gavin Smith <gavinsmith0123@gmail.com>
info init file loading
* info/infomap.c (locate_init_file): Take arguments instead
of hardcoding name of infokey file. Check ~/.infokey file first
before XDG locations, as is documented.
(locate_infokey_file): New function, passing name of infokey
file to 'locate_init_file'.
2025-02-22 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Navigation Panel and Navigation Header
Formatting), tta/C/convert/call_html_perl_function.c
(call_formatting_function_format_navigation_panel),
tta/C/convert/format_html.c (html_default_format_navigation_panel)
(format_navigation_panel, html_default_format_navigation_header)
(html_default_format_element_header)
(html_default_format_element_footer), tta/perl/Texinfo/Convert/HTML.pm
(_default_format_navigation_panel, _default_format_navigation_header)
(_default_format_element_header): add an argument to
format_navigation_panel to specify if in header or footer.
2025-02-22 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_convert_command_tree)
(html_internal_command_text, html_command_text)
(html_internal_command_name, from_element_direction),
tta/C/main/option_types.h (enum html_text_type), tta/C/main/utils.c
(html_button_direction_names), tta/perl/Texinfo/Convert/HTML.pm
(_convert_command_tree, command_text, %valid_direction_return_type)
(from_element_direction), doc/texi2any_api.texi (Target Tree Element
Link, Navigation Panel Button Formatting): add section_nonumber in
addition to section for the type of link. Handle better
string_nonumber.
* tta/C/convert/format_html.c
(default_panel_button_dynamic_direction_internal),
tta/perl/Texinfo/Convert/HTML.pm
(_default_panel_button_dynamic_direction),
tta/perl/t/init/redefined_buttons.pm: use section_nonumber instead of
section.
2025-02-22 Patrice Dumas <pertusus@free.fr>
* tta/C/texi2any.c (get_cmdline_customization_option),
tta/C/main/txi_config.c (set_option_value): do not decode input in
set_option_value but in get_cmdline_customization_option.
* tta/C/main/convert_utils.c (encoded_output_file_name): do not
consider DOC_ENCODING_FOR_OUTPUT_FILE_NAME set if undef.
* tta/C/main/utils.c (encode_with_iconv): distinguish error message
from C.
2025-02-22 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/rawtext_converter_api.c
(initialize_text_options_encoding), tta/perl/Texinfo/Convert/Text.pm
(_initialize_text_options_encoding): rename initialize_options_encoding
as initialize_text_options_encoding.
2025-02-22 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm: remove a FIXME on new HTML5
named accent entities, we won't use them, as decided by Gavin.
2025-02-21 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (HTML Xref Configuration): document omitting
urlprefix in htmlxref files.
* doc/texinfo.texi (Global Customization Variables):
CHECK_MISSING_MENU_ENTRY is on by default.
* doc/texinfo.texi (Generic Translator @command{texi2any}): comment
out too detailed information on C/Perl. Shorten the remainign of the
paragraph.
2025-02-20 Patrice Dumas <pertusus@free.fr>
NEWS: add entries for htmlxref.d and empty string for htmlxref URL
2025-02-20 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (external_node_href),
tta/perl/Texinfo/Convert/HTML.pm (_external_node_href): if an htmlxref
information is an empty string, meaning that the URL was empty in the
htmlxref files information, use the default local link href. Report
by Gavin.
2025-02-20 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (external_node_href),
tta/perl/Texinfo/Convert/HTML.pm (_external_node_href): skip htmlxref
related code if HTMLXREF_MODE is none. Based on a report by Sebastian
Meyer.
2025-02-20 Patrice Dumas <pertusus@free.fr>
@namedanchor in LaTeX output
* tta/perl/Texinfo/Convert/LaTeX.pm (_convert): if
xrefautomaticsectiontitle is on, use the @namedanchor second argument
as name.
2025-02-19 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_convert_command_tree)
(html_internal_command_text, html_internal_command_name_tree)
(html_internal_command_name, html_command_name),
tta/C/convert/html_converter_finish.c (reset_html_targets_list),
tta/C/main/converter_types.h (HTML_TARGET),
tta/perl/Texinfo/Convert/HTML.pm (_convert_command_tree)
(_internal_command_text, _internal_command_name_tree)
(_internal_command_name, command_name): split
html_convert_command_tree out of html_internal_command_text. Add
html_internal_command_name_tree, html_internal_command_name and
html_command_name that returns the name of the command if it exists,
rather than the text corresponding to the identifier. The command
name is only obtained for namedanchor, using the second argument of
the command.
* tta/C/convert/format_html.c (html_convert_xref_command),
tta/perl/Texinfo/Convert/HTML.pm (_convert_xref_commands): if
xrefautomaticsectiontitle is set and a node sectioning command hasn't
been found and the command is not a float, call command_name instad of
command_text for the name of the xref.
* tta/perl/Texinfo/Convert/HTML.pm (%XS_conversion_overrides),
tta/perl/XSTexinfo/convert/ConvertXS.xs
(html_internal_command_name_tree, html_internal_command_name): XS
overrides for _internal_command_name_tree and _internal_command_name.
2025-02-19 Gavin Smith <gavinsmith0123@gmail.com>
Document @namedanchor
* doc/texinfo.texi (@anchor): Revise node and add @named anchor.
(Three Arguments) <xrefautomaticsectiontitle>: Reference @namedanchor.
* doc/refcard/txirefcard.tex, NEWS: update
2025-02-19 Patrice Dumas <pertusus@free.fr>
* util/texinfo.dtd: add namedanchor.
2025-02-19 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/TexinfoMarkup.pm (_convert),
util/texinfo.dtd, t/z_misc/no_structure_test.t: rename name attribute
of node, *anchor and float to identifier.
2025-02-19 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (LABEL_CMD_TYPES_NR)
(html_output_internal_links): add LABEL_CMD_TYPES_NR, remove enum
label_cmd_types.
2025-02-19 Patrice Dumas <pertusus@free.fr>
Initial incomplete implementation of @namedanchor in texi2any
* tta/C/convert/format_html.c (html_command_description)
(html_internal_command_tree, html_convert_anchor_command)
(label_cmd_types_ids), tta/C/convert/html_prepare_converter.c
(default_commands_args, commands_internal_conversion_table),
tta/C/main/node_name_normalization.c (convert_to_normalized_internal),
tta/C/main/utils.c (get_label_element), tta/C/parsetexi/parser.c
(check_valid_nesting_context, handle_close_brace),
tta/data/command_data.txt, tta/perl/Texinfo/Common.pm
(get_label_element), tta/perl/Texinfo/Convert/Converter.pm
(%default_args_code_style), tta/perl/Texinfo/Convert/DocBook.pm
(_convert), tta/perl/Texinfo/Convert/HTML.pm (_internal_command_tree)
(command_description, %html_default_commands_args)
(_convert_anchor_command, %default_commands_conversion)
(output_internal_links), tta/perl/Texinfo/Convert/LaTeX.pm (_convert),
tta/perl/Texinfo/Convert/NodeNameNormalization.pm
(%ignored_brace_commands), tta/perl/Texinfo/Convert/Plaintext.pm
(_convert), tta/perl/Texinfo/Convert/TexinfoMarkup.pm
(%commands_args_elements, _convert), tta/perl/Texinfo/Convert/Text.pm
(%ignored_brace_commands), tta/perl/Texinfo/ParserNonXS.pm
(%command_ignore_space_after, %in_basic_inline_commands)
(_handle_close_brace): add @namedanchor. For now same as @anchor
but with two arguments.
* tta/perl/Makefile.tres, tta/perl/t/converters_tests.t (namedanchor):
add test of @namedanchor.
2025-02-18 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\getprintedrefname): remove unnecessary call
to \getrefx.
2025-02-18 Gavin Smith <gavinsmith0123@gmail.com>
@namedanchor
* doc/texinfo.tex (\namedanchor): Implement @namedanchor command
with second argument giving text for cross-references to an
@anchor.
(\anchor): Set \currentsection to the anchor name so that it
will be output as NAME-title in the .aux file.
(\getprintedrefname) <xrefautomaticsectiontitle>:
Eliminate special case for @anchor and unconditionally use the
"-title" string for the anchor.
Discussion on bug-texinfo, February 2025. Suggestions from
Werner Lemberg and Patrice Dumas.
2025-02-18 Patrice Dumas <pertusus@free.fr>
* tta/C/main/errors.c (reallocate_error_messages, new_error_message)
(merge_error_messages_lists): split reallocate_error_messages in two
with reallocation remaining in reallocate_error_messages and adding
new error message in new_error_message. Update callers. Add
merge_error_messages_lists.
* tta/C/texi2any.c (handle_parser_errors, main): do not handle parser
errors immediately, instead merge with structuring errors and handle
afterwards (like in texi2any.pl). Add handle_parser_errors to output
parser errors and exit if needed. Use it when parser errors need to
be handled before structuring.
2025-02-17 Patrice Dumas <pertusus@free.fr>
* tta/data/converters_defaults.txt,
tta/maintain/regenerate_C_options_info.pl,
tta/maintain/regenerate_perl_options_info.pl: use two - for new format
name, to be consistent with commands values format.
2025-02-16 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Customization Variables for Multiple Formats):
Add missing '@.'.
2025-02-16 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac (ICONV_CONVERTS_EUC_CN): add a missing NUL to the
out buffer. Check that the input counter is set to 0.
* tta/perl/Texinfo/Convert/Converter.pm: move comments.
2025-02-16 Patrice Dumas <pertusus@free.fr>
Register new HTML base accent entities
* tta/C/convert/converter.c (xml_accent_text_entities),
tta/perl/Texinfo/Convert/Converter.pm (%xml_accent_entities),
tta/perl/Texinfo/Convert/TexinfoMarkup.pm (%accent_types): add dot,
macr, breve, caron and dblac as XML accents base entities.
* NEWS: document that the type of some accents changed in TexinfoXML.
2025-02-16 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Converter.pm: change in comments and Pod.
2025-02-16 Patrice Dumas <pertusus@free.fr>
* doc/tta_api/Makefile.am (texi2any_internals_dependencies),
tta/perl/Makefile.am (dist_modules_DATA),
tta/perl/Texinfo/CommandsValues.pod: add separate Pod file with the
documentation of the relevant hashes from Texinfo/CommandsValues.pm.
2025-02-16 Patrice Dumas <pertusus@free.fr>
* tta/maintain/generate_code_commands_values.pl: add 1 at the end of
the generated Perl module.
* tta/TODO, tta/perl/Texinfo/Common.pm: update TODO and comments
related to documentation of hashes mainly.
2025-02-16 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am, tta/perl/Makefile.am, tta/Makefile.am
(maintenance_files), tta/maintain/generate_code_commands_values.pl:
rename generate_code_commands_text.pl as
generate_code_commands_values.pl for consistency with other file
names.
2025-02-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Makefile.am (dist_modules_DATA),
tta/perl/Texinfo/Convert/Unicode.pm, tta/perl/Texinfo/UnicodeData.pm:
split Texinfo/UnicodeData.pm out of Texinfo/Convert/Unicode.pm, moving
hashes that are either big, used to generate C, not used in
Texinfo/Convert/Unicode.pm or not used. Update users.
* tta/C/Makefile.am (accent_tables_8bit_codepoints.c): add a
dependency on Texinfo/UnicodeData.pm.
2025-02-15 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (convert/cmd_converter.c),
tta/data/commands_values.txt,
tta/maintain/generate_code_commands_text.pl,
tta/perl/Texinfo/Convert/Converter.pm : add
xml_text_entity_no_arg_commands to commands_values.txt, remove from
Texinfo/Convert/Converter.pm, generate in
generate_code_commands_text.pl, not in
setup_converters_code_tables.pl.
* tta/C/Makefile.am, tta/Makefile.am (maintenance_files): remove
setup_converters_code_tables.pl and dependences rules, it is not used
anymore.
2025-02-15 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/CommandsValues.pm, tta/data/commands_values.txt,
tta/C/Makefile.am, tta/perl/Makefile.am (Texinfo/CommandsValues.pm),
tta/Makefile.am, tta/maintain/generate_code_commands_text.pl: rename
command_text.txt as commands_values.txt and TextData.pm as
CommandsValues.pm. Update users.
* tta/data/commands_values.txt, tta/C/Makefile.am
(main/cmd_structuring.c), tta/maintain/generate_code_commands_text.pl,
tta/maintain/setup_converters_code_tables.pl, tta/perl/Makefile.am
(Texinfo/CommandsValues.pm), tta/perl/Texinfo/Common.pm: add
command_structuring_level to commands_values.txt. Generate
command_structuring_level in generate_code_commands_text.pl, remove
from Texinfo/Common.pm and setup_converters_code_tables.pl. Update
callers.
2025-02-15 Patrice Dumas <pertusus@free.fr>
* tta/C/main/document.c (setup_texinfo_main), tta/C/main/utils.c
(enum structuring_commands_categories, structuring_commands_levels)
(level_to_structuring_command, setup_structuring_data),
tta/maintain/setup_converters_code_tables.pl: new function,
setup_structuring_data to setup level_to_structuring_command with C
code. Call it in setup_texinfo_main, do not set
level_to_structuring_command anymore in
setup_converters_code_tables.pl.
2025-02-15 Patrice Dumas <pertusus@free.fr>
Generate commands text and unicode characters information from data
* tta/perl/Texinfo/Convert/Unicode.pm (%base_unicode_map): add
%base_unicode_map for the %unicode_map that is not %extra_unicode_map.
* tta/data/command_text.txt, tta/Makefile.am (dist_noinst_DATA): add
information on commands as text with Texinfo::Common
nobrace_symbol_text and text_brace_no_arg_commands,
Texinfo::Convert::Unicode base_unicode_map, extra_unicode_map and
unicode_diacritics and Texinfo::Convert::Text
sort_brace_no_arg_commands.
* tta/maintain/generate_code_commands_text.pl,
tta/perl/Texinfo/Convert/Unicode.pm, tta/Makefile.am
(maintenance_files), tta/perl/Makefile.am (dist_modules_DATA)
(Texinfo/TextData.pm), tta/perl/Texinfo/Common.pm,
tta/perl/Texinfo/Convert/Text.pm: generate %base_unicode_map,
%extra_unicode_map and %unicode_diacritics in
generate_code_commands_text.pl, remove from Unicode.pm. Generate
%nobrace_symbol_text and %text_brace_no_arg_commands in
generate_code_commands_text.pl, remove from Common.pm. Generate
%sort_brace_no_arg_commands in generate_code_commands_text.pl, remove
from Text.pm. Update callers to use Texinfo::TextData data.
* tta/maintain/generate_code_commands_text.pl, tta/C/Makefile.am
(cmd_unicode.c, cmd_text.c), tta/C/main/document.c
(setup_texinfo_main), tta/C/main/unicode.c (setup_unicode_data),
tta/C/main/unicode.h (COMMAND_UNICODE_CHARACTER),
tta/maintain/setup_converters_code_tables.pl: generate
base_unicode_map and extra_unicode_map in
generate_code_commands_text.pl. Add setup_unicode_data to setup
unicode_character_brace_no_arg_commands. Call setup_unicode_data in
setup_texinfo_main.
* tta/C/Makefile.am (EXTRA_DIST, BUILT_SOURCES),
tta/maintain/setup_converters_code_tables.pl, tta/C/main/document.c
(setup_texinfo_main), tta/C/main/node_name_normalization.c
(setup_node_name_normalization): add setup_node_name_normalization to
setup command_normalization_text. Call in setup_texinfo_main. Remove
cmd_normalization.c.
* tta/maintain/generate_code_convert_data.pl: update comments.
2025-02-15 Patrice Dumas <pertusus@free.fr>
* tta/maintain/generate_code_convert_data.pl: give the name of the
input CSV file in comments in the generated code for each of the
sections in the generated file.
2025-02-15 Patrice Dumas <pertusus@free.fr>
* tta/data/default_direction_strings.csv,
tta/data/default_special_unit_info.csv,
tta/maintain/generate_code_convert_data.pl: add a metadata header for
the CSV files with unclear use and content. Report from Gavin.
* tta/data/converters_defaults.txt: improve comments.
2025-02-14 Patrice Dumas <pertusus@free.fr>
* tta/tests/run_parser_all.sh (check_strxfrm_ok): check more
environment variable to determine if conversion with XS is set.
2025-02-14 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (external_node_href),
tta/perl/Texinfo/Convert/HTML.pm (_external_node_href): do not mention
explicitly the htmlxref.cnf file name.
2025-02-14 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (libtexinfo_*la_LDFLAGS): bump current version
number for libraries with changes.
2025-02-13 Patrice Dumas <pertusus@free.fr>
Distribute Texinfo_*.cnf files installed in htmlxref.d for HTML cross-references
* grand-replace.sh, util/Makefile.am (nobase_dist_pkgdata_DATA),
util/htmlxref.d/Texinfo_GNU.cnf, util/htmlxref.d/Texinfo_nonGNU.cnf:
split util/htmlxref.cnf in two files, Texinfo_GNU.cnf for GNU manuals
and Texinfo_nonGNU.cnf for non GNU free manuals and move the two files
to util/htmlxref.d.
* doc/texinfo.texi (HTML Xref Configuration): update for change in
files distributed with Texinfo.
* infog/README: update to avoid naming htmlxref.cnf.
* doc/texinfo.texi (File Names and Links Customization for HTML)
(HTML Customization Variables List): describe htmlxref.d/*.cnf.
2025-02-13 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (HTML Xref Configuration): describe
htmlxref.d/*.cnf.
2025-02-12 Patrice Dumas <pertusus@free.fr>
Use htmlxref.d/*.cnf files as htmlxref files
* tta/C/convert/html_prepare_converter.c (load_htmlxref_files),
tta/perl/Texinfo/Convert/HTML.pm (_load_htmlxref_files): do not call
locate_file_in_dirs, instead reuse locate_file_in_dirs relevant code
and add code to also get htmlxref.d/*.cnf files in the same
directories where htmlxref.cnf files are searched for. Also based on
Gavin idea.
2025-02-12 Patrice Dumas <pertusus@free.fr>
* NEWS: texi2any uses the Perl extensions in C for converters
in the default case now.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* Pod-Simple-Texinfo/pod2texi.pl,
Pod-Simple-Texinfo/t/Pod-Simple-Texinfo.t,
tta/perl/t/z_misc/convert_to_text.t: use forward slashes
systematically.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* tta/C/texi2any.c (main): move call to nl_langinfo after
txi_setup_main_load_interpreter call, to have setlocale be called
before nl_langinfo.
* tta/C/texi2any.c (main), tta/perl/texi2any.pl: decode input file
name and corrected input file name for the message on .info and
replacement by .texi.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* util/texi-elements-by-size: update using texi2any.pl and other
scripts code.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* util/Makefile.am: remove AM_CPPFLAGS and LDADD that do not seem to
be used. Remove localedir that is not used anymore.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* util/txicmdlist (BEGIN), util/txicustomvars (BEGIN): update paths.
2025-02-11 Patrice Dumas <pertusus@free.fr>
README-hacking: update paths.
2025-02-10 Gavin Smith <gavinsmith0123@gmail.com>
Fix auxiliary files for xetex with Latin-1 or Latin-2.
* doc/texinfo.tex (\xetexpreauxfile, \xetexpostauxfile): New macros.
(\setbytewiseio) [xetex]: Set these new macros to specify "UTF-8"
encoding for input files, even if we are otherwise using "bytes".
This is necessary as XeTeX always writes files in UTF-8.
(\pdfmakeoutlines) [xetex],
(\printindex, \contents, \summarycontents, \tryauxfile):
Use new macros to read auxiliary files with UTF-8 encoding.
(\documentwarning) [xetex]: Remove warning about non-ASCII
characters in auxiliary files.
2025-02-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\ifpdf, \ifpdforxetex):
Move definitions before block of LuaTeX code so it is easier to
see the conditions under which they are set. Set \ifpdf directly
depending on LuaTeX version rather than indirectly depending on
setting \pdfoutput. No functional change intended.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* tta/tests/many_input_files/*.sh: comment out escape_file_names.pl
call when there are no non-ASCII output file names.
Add --utf8-argument option to escape_file_names.pl to normalize UTF-8
encoded files before escaping. Report from Daniel Macks.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c: try to have better comments, remove a
FIXME.
* tta/tests/many_input_files/*.sh: remove spurious echo, harmonize
somewhat spacing and remove set -x.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c: remove FIXME, change comment.
* tta/C/main/output_unit.c (destroy_output_unit): call
unregister_perl_data.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (reset_generic_converter): set converter
document to NULL.
2025-02-11 Patrice Dumas <pertusus@free.fr>
* tta/perl/texi2any.pl: call Texinfo::XSLoader::XS_convert_enabled
instead of checking ENV{TEXINFO_XS_CONVERT}.
* tta/tests/run_parser_all.sh: fix check of TEXINFO_XS_CONVERT now
that it is set in the default case.
2025-02-10 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/html_prepare_converter.c (parse_htmlxref_files): reset
line count for each read htmlxref file. Report from Gavin.
2025-02-10 Patrice Dumas <pertusus@free.fr>
Normalize UTF-8 tests output file names for reproducibility
* tta/tests/escape_file_names.pl: if --utf8-argument is given, decode,
normalize and reencode input file name.
* tta/tests/run_parser_all.sh (escape_file_names): if
OUTPUT_FILE_NAME_ENCODING=UTF-8 appears on the command line pass
utf8_output_file argument to escape_file_names and have
escape_file_names pass the --utf8-argument command-line option to
escape_file_names.pl.
This allows to normalize output files to get the same result
independently of the platform notmalization of UTF-8 file names.
Report from Daniel Macks.
2025-02-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/convert/get_html_perl_info.c
(html_converter_get_customization_sv): increase
converter->external_references_number if the version of Perl prevents
C functions to be used for default buttons, such that Perl will
necessarily be called in default buttons.
* tta/perl/XSTexinfo/convert/get_html_perl_info.c
(html_converter_get_customization_sv): increase
converter->external_references_number when handlers are registered, as
they could directly access Perl or setup buttons that will access Perl
later on.
* tta/C/convert/html_prepare_converter.c (html_converter_customize):
add to converter->external_references_number instead of setting it
since it may now already be set in
html_converter_get_customization_sv.
2025-02-10 Patrice Dumas <pertusus@free.fr>
* tta/C/main/call_perl_function.c
(call_nodenamenormalization_unicode_to_transliterate),
tta/C/main/node_name_normalization.c (unicode_to_transliterate)
(normalize_transliterate_texinfo)
(normalize_transliterate_texinfo_contents),
tta/perl/Texinfo/Convert/NodeNameNormalization.pm
(normalize_transliterate_texinfo, transliterate_texinfo)
(transliterate_protect_file_name, _unicode_to_transliterate),
tta/perl/Texinfo/Convert/Unicode.pm (%transliterate_map)
(%tests_specific_transliterate_map, %tests_transliterate_map):
split characters that need to be transliterated to the same value
than with unidecode for tests out of %transliterate_map to
%tests_specific_transliterate_map and merge with %transliterate_map to
set %tests_transliterate_map. Add in_test argument for
_unicode_to_transliterate, if set, use %tests_transliterate_map
instead of %transliterate_map. Update callers, including through
call_nodenamenormalization_unicode_to_transliterate XS.
* tta/C/convert/converter.c (normalized_sectioning_command_filename)
(node_information_filename), tta/C/convert/format_html.c
(html_convert_printindex_command),
tta/C/convert/html_prepare_converter.c
(prepare_index_entries_targets), tta/perl/Texinfo/Convert/Converter.pm
(normalized_sectioning_command_filename, node_information_filename),
tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command)
(_prepare_index_entries_targets), tta/perl/Texinfo/Convert/LaTeX.pm
(_prepare_floats), tta/perl/t/z_misc/nodenormalization.t: add argument
based on TESTS for the new argument of transliteration functions.
2025-02-10 Patrice Dumas <pertusus@free.fr>
* tta/C/main/call_perl_function.c
(call_nodenamenormalization_unicode_to_transliterate),
tta/C/main/node_name_normalization.c (unicode_to_transliterate)
(normalize_transliterate_texinfo)
(normalize_transliterate_texinfo_contents): add no_unidecode argument
to call_nodenamenormalization_unicode_to_transliterate and to callers.
* tta/C/convert/converter.c (normalized_sectioning_command_filename)
(node_information_filename), tta/C/convert/format_html.c
(html_convert_printindex_command),
tta/C/convert/html_prepare_converter.c
(prepare_index_entries_targets): use USE_UNIDECODE to set no_unidecode
argument.
* tta/perl/Texinfo/Convert/Unicode.pm: changes in comments.
2025-02-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\iftxiuseunicodedestname): Set to true by
default to avoid clashes between node names that differ only
by an accent, such as "Bogen" vs. "Bögen".
* doc/texinfo-tex-test.texi (Test of diacritics in node names):
Add section.
Report from Werner.
2025-02-10 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfmakeoutlines) [pdftex]:
Move output of contents at end inside the group with the definitions
and catcode changes for the rest of the outline.
2025-02-10 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/HTML.pm (_convert_printindex_command),
tta/perl/Texinfo/Convert/LaTeX.pm (_prepare_floats): set
systematically the no_unidecode argument.
* tta/perl/Texinfo/Convert/NodeNameNormalization.pm
(_unicode_to_transliterate): use a variable for the representation of
a character as hexadecimal for a more readable code.
2025-02-10 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (@direntry): pod2texi manual is included in texinfo
manual. Report from
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1012612
2025-02-10 Patrice Dumas <pertusus@free.fr>
* configure.ac (ICONV_CONVERTS_EUC_CN): use *-solaris* to match
solaris host.
2025-02-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\doindexinitialentry): Remove output
of empty vbox as it appears to mess up the double column
index formatting in some cases.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/maintain/all_tests.sh: update defs path. Use DIFF_OPTIONS.
2025-02-09 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\indexnofonts): Define \lbracechar and
\rbracechar with an argument to eat following {} in the PDF
outline.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/convert/ConvertXS.xs
(html_prepare_units_directions_files)
(html_prepare_output_units_global_targets, html_output, html_convert):
call store_output_units_texinfo_tree only if
self->external_references_number.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c,
tta/perl/XSTexinfo/convert/ConvertXS.xs
(html_prepare_units_directions_files)
(html_prepare_output_units_global_targets, html_output, html_convert):
inline html_prepare_units_directions_files and
html_prepare_output_units_global_targets in calling functions, and
remove the inlined functions.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c
(html_pass_units_directions_files): do not call
pass_output_unit_files, it is not needed, everything it sets is only
needed by functions called from already overriden functions.
* tta/perl/XSTexinfo/convert/get_html_perl_info.c
(get_output_units_descriptor_converter_sv): fix warning string.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs (build_tree): fix
warning string.
* tta/perl/Texinfo/Structuring.pm
(associate_internal_referencesNonXS): add for
t/z_misc/automatic_nodes.t test.
* tta/perl/t/z_misc/automatic_nodes.t (test_new_node): setup a @ref to
the added node (unprotected) to verify that
associate_internal_references actually use the new node. Since the
node is unprotected, there will be errors for some nodes that get
protection in _new_node without being test failures. Use
associate_internal_referencesNonXS instead of
associate_internal_references as everything needs to happen in pure
Perl. Add a comment explaining why $document->labels_information()
returns labels information modified by pure Perl code in _new_node and
not C data, which is not modified.
Add references of error messages and check them.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Document.pm (%XS_overrides, build_tree),
tta/perl/XSTexinfo/parser_document/DocumentXS.xs (build_tree):
rename rebuild_tree as build_tree. Updte callers.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (build_document): setup registrar only
if a new Perl hash is setup.
* tta/perl/XSTexinfo/parser_document/DocumentXS.xs (rebuild_tree):
change the logic of the code. build document first, and get tree from
Perl hash if no_store is set.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (document_tree): call
store_document_tree_output_units instead of
store_document_texinfo_tree.
* tta/perl/Makefile.am (test_files), tta/perl/Makefile.tres,
tta/perl/t/init_files_tests.t (access_tree_output_unit_in_handler),
tta/t/init/access_tree_output_unit_in_handler.pm: add
access_tree_output_unit_in_handler test, testing access to output
units from an handler directly from the tree.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/perl/Texinfo/Convert/Plaintext.pm (output),
tta/perl/t/test_utils.pl (test): comment out calls to
Texinfo::OutputUnits::rebuild_output_units as currently there is no XS
override of functions called just before, such that everything is done
in Perl only, no need to rebuild to Perl.
2025-02-09 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/converter.c (set_output_unit_file),
tta/C/main/output_unit.c (destroy_output_unit): duplicate
output_unit->unit_filename in set_output_unit_file, such that, if
output_unit_file is destroyed, the string still exists. Free it.
* tta/C/main/output_unit.c (destroy_output_unit): set associated_unit
to 0 for all the elements in output_unit->unit_contents that are
associated to an output unit being destroyed.
* tta/C/convert/converter.c (reset_generic_converter): free output
units lists associated to the converter.
* tta/C/main/build_perl_info.c (output_unit_to_perl_hash): set
associated_unit in Perl output unit only if there is an associated
unit for the element in C.
* tta/C/main/build_perl_info.c (store_document_tree_output_units): add
to be able to build Perl output units with the information on document
only.
* tta/C/main/build_perl_info.c (BUILD_PERL_DOCUMENT_ITEM)
(BUILD_PERL_DOCUMENT_LIST): call store_document_tree_output_units
instead of store_document_texinfo_tree in the macros used to set the
document XS interface functions.
* tta/perl/t/init/access_output_unit_in_handler.pm,
tta/perl/Makefile.am (test_files), tta/perl/Makefile.tres,
tta/perl/t/init_files_tests.t (access_output_unit_in_handler): add
test testing access to output units from an handler from the tree
elements.
2025-02-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfmakeoutlines) [pdftex]: Make
\idxinitialentry capture arguments otherwise we typeset
junk at the end of the table of contents.
2025-02-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfmakeoutlines) [xetex]: Output index
initials at the right level.
2025-02-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfmakeoutlines) [pdftex]: Output entries
for index initials at the right level if @printindex is used
at the level of @section or below.
(\pdfmakeoutlines): Remove obsolete comment about Latin-2 encoding.
Remove unnecessary call to \indexnofonts as this is also done
later in \setpdfoutlinetext.
2025-02-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\listoffloats): Define \entry as \entryinternal.
* doc/texinfo-tex-test.texi: Define \entry for tests of index
formatting.
2025-02-08 Gavin Smith <gavinsmith0123@gmail.com>
Index page links
* doc/texinfo.tex (\entry, \entryinternal): Rename to \entryinternal.
For PDF output, if \linkentrytextfalse and \entrypagetarget is set,
use \pdlinkpage to link the entry text to the page number.
(\indexentry): Add wrapper for \entryinternal. Check if index
page number list has a comma in it, and if not, set \entrypagetarget.
(\printindex): Use \indexentry for \entry.
2025-02-08 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfmkpgn): Remove completely, as it appears to
be useless.
2025-02-07 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\expandaftergroup): add utility definition.
(\macrodef, \linemacrodef): Use it.
2025-02-07 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c
(html_pass_units_directions_files)
(html_pass_output_units_global_targets),
tta/perl/XSTexinfo/convert/ConvertXS.xs (html_global_direction_unit):
call html_setup_global_units_direction_names directly in
html_global_direction_unit before calling
html_find_direction_name_global_unit. Call also
store_output_units_texinfo_tree.
* tta/perl/t/init_files_tests.t
(access_global_direction_unit_in_handler),
tta/perl/t/init/access_global_direction_unit_in_handler.pm,
tta/perl/Makefile.am (test_files), tta/perl/Makefile.tres: add test
with set_global_direction called in setup handler and
global_direction_unit called in button formatting function.
2025-02-07 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c
(html_pass_units_directions_files)
(html_pass_output_units_global_targets),
tta/perl/XSTexinfo/convert/ConvertXS.xs (html_global_direction_text):
call html_setup_global_texts_direction_names in
html_global_direction_text just before it is used, and call it only if
not already filled. Do not call in html_pass_units_directions_files
nor html_pass_output_units_global_targets.
2025-02-07 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/build_html_perl_info.c
(html_pass_units_directions_files): remove
pass_html_elements_in_file_count, as the information is accessed
through an XS interface only.
* tta/perl/Texinfo/Convert/Converter.pm: remove unused
registered_filename function.
* tta/C/main/build_perl_info.c: change in spacing.
2025-02-07 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (output_unit_to_perl_hash): if output
units are built late, there will already be directions but no hv, so
it is not an error to have no hv where a direction points to.
* tta/perl/XSTexinfo/convert/ConvertXS.xs (html_current_output_unit):
call store_output_units_texinfo_tree to rebuild output units to Perl
before returning the output unit Perl reference.
* tta/perl/t/init/access_document_name_in_handler.pm
(_button_show_document_name): also access current_output_unit to
trigger an error with XS if the output unit is not built to Perl.
2025-02-07 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_output_internal_links): remove
unused variable.
* tta/perl/t/init/access_document_name_in_handler.pm
(_texi2any_tests_access_document_name_in_handler): return 0.
Changes in comments.
2025-02-07 Patrice Dumas <pertusus@free.fr>
* tta/C/main/build_perl_info.c (pass_output_units_list): new function
to build output unit array to Perl. Can set output units arrays, if
they are not set in input, or reuse them if they are passed.
* tta/C/main/build_perl_info.c (store_output_units_texinfo_tree): add
function that rebuild the tree and all the output units to Perl,
setting "document_units" in Perl converter too. Move function needed
before store_output_units_texinfo_tree.
* tta/C/convert/build_html_perl_info.c
(html_pass_conversion_output_units, html_pass_units_directions_files)
(html_pass_output_units_global_targets),
tta/perl/XSTexinfo/convert/ConvertXS.xs
(html_prepare_conversion_units),
tta/perl/XSTexinfo/convert/ConvertXS.xs (html_convert): use
store_output_units_texinfo_tree instead of build_output_units_list
or rebuild_output_units_list. Set arrays references to 0 in callers
in xs.
* tta/C/convert/html_prepare_converter.c
(html_prepare_conversion_units, html_prepare_units_directions_files),
tta/C/main/build_perl_info.c (store_output_units_texinfo_tree): use
F_DOCM_output_units document->modified_information flag to notify that
the output_units should be rebuilt to Perl.
* tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(split_by_node, split_by_section), tta/C/main/build_perl_info.c: use
pass_output_units_list instead of
build_output_units_list/rebuild_output_units_list. Remove
build_output_units_list and rebuild_output_units_list.
2025-02-07 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/html_prepare_converter.c: add const.
* tta/C/convert/html_prepare_converter.c
(html_prepare_output_units_global_targets): rename variables.
2025-02-07 Gavin Smith <gavinsmith0123@gmail.com>
Macros with > 10 arguments
* doc/texinfo.tex (\parsemargdef): Move change of catcode of @,
as we were unable to call \parsemmanyargdef@@. This has apparently
been broken for many years.
* doc/texinfo-tex-test.texi (More than ten arguments): add test case.
2025-02-07 Gavin Smith <gavinsmith0123@gmail.com>
* po_document/adjust-translations.pl: add missing braces
for argument of accent command, for Catalan translation.
Report from Werner.
2025-02-07 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\eatleadingcr, \eatleadingcrthen):
Rename to \eatleadingcrthen and pass extra argument to pass
the result of expansion to.
(\scanmacro) <\xeatspaces>: Call \eatleadingcrthen with
\eatspaces. This avoids having to provide the right number
of \expandafter's to expand \eatleadingcr exactly three times.
2025-02-07 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\xrefX): Use \getrefx.
2025-02-07 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\getrefx): Call \turnoffactive and make the
other changes to make node names expandable, as was done in \refx.
(\refx): Call \getrefx.
Report from Werner.
2025-02-06 Gavin Smith <gavinsmith0123@gmail.com>
Macro argument space trimming
* doc/texinfo.tex (\eatleadingcr): replace with implementation
that deals with an empty argument and only handles an active
newline.
(\parsemargdef): do not use an \xempty macro in the definition
of the macro arguments.
* doc/texinfo-tex-test.texi: Update test case. This means that
spaces are once again trimmed from the end of macro arguments.
\xempty could appear in macro expansions and be undefined. Report
from Werner. Rather than providing it with a definition, it is
simpler to get rid of it.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/convert_html.c (html_convert_css_string): add missing
%s xasprintf argument.
* tta/C/convert/format_html.h: remove duplicate ;.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac: move gl_INIT before AM_GNU_GETTEXT, otherwise
LTLIBINTL may not be defined (tested on Solaris).
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/Makefile.am (ctexi2any_LDADD), tta/perl/XSTexinfo/Makefile.am
(Parsetexi_la_LDFLAGS, ConvertXS_la_LDFLAGS): add Gnulib link flags to
ctexi2any_LDADD and to one module in XSTexinfo for Solaris to get the
symbols after linking.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm (_compatibility_idify)
(new, _texinfo_handle_element_end): add _compatibility_idify in case
idify method is missing for old Pod::Simple::XHTML.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/m4/txi_perl_conf.m4 (PACKAGE_XS_VERSION): use -e to have two sed
instructions instead of ;, which does not seems to be portable to
Solaris sed.
* tta/maintain/regenerate_non_ascii_tar_file.sh: redirect stderr of
tar --version test to /dev/null to avoid an error message being shown
if tar do not understand long options, as is the case on Solaris.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/texinfo.c (txi_complete_document),
tta/perl/texi2any.pl: call fill_gaps_in_sectioning_in_document if the
fill_gaps_in_sectioning tree transformation is set.
* tta/perl/t/test_utils.pl (test): replace fill_gaps_in_sectioning by
fill_gaps_in_sectioning_in_document.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/transformations.c
(fill_gaps_in_sectioning_in_document),
tta/perl/Texinfo/Transformations.pm (%XS_overrides)
(fill_gaps_in_sectioning_in_document),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(fill_gaps_in_sectioning_in_document): replace fill_gaps_in_sectioning
by fill_gaps_in_sectioning_in_document that uses a document in
argument instead of a tree. Set document->modified_information in
fill_gaps_in_sectioning_in_document. Add some const. Update callers.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/texinfo.c (txi_complete_document): call
complete_tree_nodes_missing_menu for
STTF_complete_tree_nodes_missing_menu.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* Pod-Simple-Texinfo/pod2texi.pl (_parsed_manual_tree): replace
complete_tree_nodes_menus by complete_tree_nodes_menus_in_document.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/transformations.c
(complete_tree_nodes_menus_in_document),
tta/perl/Texinfo/Transformations.pm (%XS_overrides)
(complete_tree_nodes_menus_in_document),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(complete_tree_nodes_menus_in_document): replace
complete_tree_nodes_menus by complete_tree_nodes_menus_in_document,
using document in argument. Set document->modified_information in
complete_tree_nodes_menus_in_document. Update callers.
* tta/perl/Texinfo/Transformations.pm
(complete_tree_nodes_menus_in_document): use document in argument.
Update callers.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/transformations.c
(move_index_entries_after_items)
(move_index_entries_after_items_internal)
(move_index_entries_after_items_in_document),
tta/perl/Texinfo/ManipulateTree.pm
(move_index_entries_after_items_in_document, %XS_overrides),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(move_index_entries_after_items_in_document): add
move_index_entries_after_items_in_document, with an XS interface.
Remove move_index_entries_after_items_in_tree from C and from
documentation in Perl. Add document to move_index_entries_after_items
arguments. Set document->modified_information in
move_index_entries_after_items. Replace
Texinfo::ManipulateTree::move_index_entries_after_items_in_tree by
Texinfo::ManipulateTree::move_index_entries_after_items_in_document in
callers.
2025-02-05 Patrice Dumas <pertusus@free.fr>
* tta/C/structuring_transfo/transformations.c
(relate_index_entries_to_table_items_in)
(relate_index_entries_to_table_items_internal)
(relate_index_entries_to_table_items_in_document): rename
relate_index_entries_to_table_items_in_tree as
relate_index_entries_to_table_items_in_document. Pass only a document
to functions. Update callers. Get the indices info in
relate_index_entries_to_table_items_in from the document.
* tta/perl/Texinfo/ManipulateTree.pm (%XS_overrides)
(relate_index_entries_to_table_items_in_document),
tta/perl/XSTexinfo/parser_document/StructuringTransfoXS.xs
(relate_index_entries_to_table_items_in_document),
tta/C/structuring_transfo/transformations.c
(relate_index_entries_to_table_items_in): rename
relate_index_entries_to_table_items_in_tree as
relate_index_entries_to_table_items_in_document. Update callers. Set
document->modified_information in
relate_index_entries_to_table_items_in, where the tree or indices
information is actually modified.
2025-02-05 Patrice Dumas <pertusus@free.fr>
Enable XS for conversion in the default case, update documentation
* tta/perl/Texinfo/XSLoader.pm (XS_convert_enabled): enable XS for
conversion in the default case.
* INSTALL: update for XS enabled for conversion in the default case.
Add information on C implementation. Document TEXINFO_XS=warn.
* doc/texinfo.texi (@command{texi2any} Environment Variables):
document TEXINFO_XS required. Document the 3 steps of texi2any and
TEXINFO_XS_STRUCTURE and TEXINFO_XS_CONVERT. Move and reword C
implementation information and use of TEXINFO_XS=debug in that case.
2025-02-04 Patrice Dumas <pertusus@free.fr>
* contrib/mass_test/generate_perlVSC.sh: update paths.
* contrib/mass_test/get_manuals.sh: add or modify manuals and add
notes on missing manuals.
* contrib/mass_test/extract_manuals.sh: add more manuals.
* contrib/mass_test/generate_C.sh,
contrib/mass_test/output_convert_C.sh,
contrib/mass_test/check_perlVSC.sh: generate output from C texi2any
implementation and compare.
2025-02-04 Patrice Dumas <pertusus@free.fr>
* NEWS, doc/texinfo.texi (Invoking @command{texi2any}),
tta/C/convert/format_html.c (enum label_cmd_types)
(label_cmd_types_ids, html_output_internal_links),
tta/perl/Texinfo/Convert/HTML.pm (output_internal_links): change 'toc'
to 'unit' item type name in --internal-links file output. Add
sections, nodes, anchors and float items.
Based on Werner report.
2025-02-04 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/format_html.c (html_output_internal_links),
tta/perl/Texinfo/Convert/HTML.pm (output_internal_links): use 'unit'
instead of 'toc' for output units targets.
2025-02-04 Patrice Dumas <pertusus@free.fr>
* tta/C/README: move tta/C/parsetexi/README to tta/C/README.
* tta/tests/Makefile.am (EXTRA_DIST): distribute the README.
* tta/TODO, tta/data/command_data.txt,
tta/maintain/change_perl_modules_version.sh: fix paths.
* doc/texinfo.texi (Generic Translator @command{texi2any}): fix typo.
2025-02-04 Patrice Dumas <pertusus@free.fr>
* README-hacking, tta/C/parsetexi/README, tta/README, tta/TODO,
tta/perl/t/README, tta/tests/README: update paths.
* tta/README: add information on C and Perl and on the conversion of
Texinfo to output formats.
2025-02-04 Patrice Dumas <pertusus@free.fr>
* tta/data/command_data.txt, tta/data/options_data.txt,
tta/data/converters_defaults.txt, tta/data/*.csv: move
tta/perl/Texinfo/Data/*.csv, tta/perl/Texinfo/*.txt and
tta/perl/Texinfo/Convert/converters_defaults.txt to tta/data/.
* tta/Makefile.am (dist_noinst_DATA), tta/perl/Makefile.am,
tta/C/Makefile.am: update rules, prerequisites and variables for the
move to tta/data/.
2025-02-04 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (Adding Output Formats): precise that the
Texinfo::Convert::Converter documentation is for backends in Perl.
* doc/texinfo.texi (History): describe the change in 2012 in the past.
Update with information on the use of C.
* doc/texinfo.texi (Generic Translator @command{texi2any}): describe
that two implementations, in Perl and in C exist and how to install
teh C implementation.
* doc/texinfo.texi (@command{texi2any} Environment Variables): update
to clearly explain the differences between the Perl and C
implementations for environment variables. Document
TEXINFO_C_EMBED_PERL.
* doc/texinfo.texi (Global Customization Variables): explain that
DUMP_TREE is not available in th eC implementation. Expand on TEST
description.
2025-02-03 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi: fix typo, remove Perl as an adjective for the
Texinfo tree and fix examples of Texinfo code.
2025-02-03 Patrice Dumas <pertusus@free.fr>
NEWS: add information on texi2any program implementation in C.
2025-02-03 Patrice Dumas <pertusus@free.fr>
Add --enable-c-texi2any to use C implementation for tests and install
* configure.ac (USE_EXTERNAL_LIBINTL_PERL), tta/Makefile.am: rename
USE_EXTERNAL_LIBINTL as USE_EXTERNAL_LIBINTL_PERL.
* configure.ac, tta/configure.ac (USE_EXTERNAL_EASTASIANWIDTH)
(USE_EXTERNAL_UNIDECODE, USE_EXTERNAL_LIBINTL_PERL): move to
tta/configure.ac. Use simpler AC_ARG_WITH/AC_ARG_ENABLE in main
configure.ac for flags that are only used in tta.
* tta/perl/Texinfo/Parser.pm (BEGIN), tta/perl/XSTexinfo/Makefile.am
(modulesdir, dist_modules_DATA), tta/perl/XSTexinfo/Parsetexi.pm:
move Parsetexi.pm up to tta/perl/XSTexinfo/. Update/fix paths.
* configure.ac (--enable-c-texi2any), tta/configure.ac
(--enable-c-texi2any, PREFER_C_TEXI2ANY, prefer_c_t2a): add
--enable-c-texi2any configure option that sets TESTS_MAIN_COMMAND and
PREFER_C_TEXI2ANY.
* tta/C/Makefile.am (bin_PROGRAMS, texi2any_SOURCES, texi2any_LDADD)
(texi2any_CPPFLAGS, install-exec-hook), tta/perl/Makefile.am
(noinst_SCRIPTS): add texi2any as bin_PROGRAMS if PREFER_C_TEXI2ANY is
set, using the ctexi2any variables. Add install-exec-hook if
PREFER_C_TEXI2ANY to do a link to makeinfo. Set perl texi2any as
noinst_SCRIPTS if PREFER_C_TEXI2ANY is set.
* tta/defs.in, tta/tests/run_parser_all.sh,
tta/tests/many_input_files/*.sh: set TESTS_MAIN_COMMAND in defs.in and
use TESTS_MAIN_COMMAND in tests.
2025-02-03 Patrice Dumas <pertusus@free.fr>
* tta/C/convert/call_conversion_perl.c: change failure messages and
comments.
* tta/perl/Texinfo/XSLoader.pm (init): simplify condition. Change in
comments.
2025-02-03 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Tips):
Reference GNU Coding Standards.
Remove pronunciation of "Texinfo" as this is not a writing tip
and is covered elsewhere in the manual.
Remove example of K&R C function definition to show what not to
do.
Change "an @code" to "a @code command".
Change "nodes (sections)" to "nodes".
Move info on capitalizing "TeX" etc. later.
Cut down verbiage in section on indexing. Remove recommendation to
"write each index entry differently" as it not clear what this means.
Remove section on Definition Commands as it doesn't add much
beyond what is in the main section of the manual.
Move section on Spaces next to that on Blank Lines.
Reorder section on "Bad Examples" to put corrections after the
example. Change @code to @t to prevent quotes appearing in
Info output.
2025-02-02 Gavin Smith <gavinsmith0123@gmail.com>
No xrefautomaticsectiontitle for links to @anchor commands
* doc/texinfo.tex (\Yanchor): new macro.
(\anchor): output \Yanchor in .aux file.
(\getprintedrefname): check for reference to anchor and use anchor
name regardless of xrefautomaticsectiontitle setting.
(\getrefx): helper macro to retrieve xref strings.
* NEWS: mention
Report from Werner.
2025-02-02 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Three Arguments) <xrefautomaticsectiontitle>:
state that this option does not do anything for Info output.
2025-02-03 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac (ICONV_CONVERTS_EUC_CN): Solaris iconv does not lead
to the same output than GNU libiconv for some characters used in
tests, so we do not set ICONV_CONVERTS_EUC_CN if the platform is
solaris.
2025-02-02 Patrice Dumas <pertusus@free.fr>
* Makefile.am (HTMLData.pm), po/POTFILES.in, po_document/POTFILES.in:
fix paths. Add tta/perl/init/documentation_examples.pm in
po_document/POTFILES.in.
* tta/maintain/setup_accent_tables.pl (BEGIN): update paths, use
forward slashes.
2025-02-02 Patrice Dumas <pertusus@free.fr>
Rename tta/perl/TestXS as tta/perl/CheckXS
* autogen.sh, tta/configure.ac (enable_xs),
tta/maintain/change_perl_modules_version.sh, tta/perl/Makefile.am
(DIST_SUBDIRS): rename tta/perl/TestXS as tta/perl/CheckXS. Update
paths. The objective is to have a different name for the package and
the directory, and also avoid beginning with the same letters as
Texinfo.
* tta/perl/CheckXS/TestXS.pm: set package to TestXS.
2025-02-02 Patrice Dumas <pertusus@free.fr>
Move tta/perl/Texinfo/XS to tta/perl/XSTexinfo
* tta/configure.ac (AC_CONFIG_FILES), tta/perl/Makefile.am (SUBDIRS)
(DIST_SUBDIRS), tta/perl/Texinfo/ModulePath.pm.in,
tta/perl/Texinfo/Parser.pm, tta/perl/XSTexinfo/Makefile.am
(txi_libs_srcdir, MiscXS_la_SOURCES, libparagraph_la_SOURCES),
tta/perl/XSTexinfo: move tta/perl/Texinfo/XS to tta/perl/XSTexinfo,
update paths.
2025-02-02 Patrice Dumas <pertusus@free.fr>
Move tta/perl/Texinfo/TestXS to tta/perl/TestXS
* autogen.sh, tta/configure.ac (TestXS), tta/perl/TestXS,
tta/perl/Makefile.am (DIST_SUBDIRS), tta/perl/TestXS/Makefile.am
(ACLOCAL_AMFLAGS), tta/perl/TestXS/configure.ac
(AC_CONFIG_MACRO_DIRS): move tta/perl/Texinfo/TestXS up.
2025-02-02 Patrice Dumas <pertusus@free.fr>
* tta/Makefile.am (distclean-local), tta/perl/Makefile.am
(distclean-local): add distclean-local target to tta/perl/Makefile.am
and move the t/*.t related rules from tta/Makefile.am to
tta/perl/Makefile.am.
Remove obsolete rules.
2025-02-02 Patrice Dumas <pertusus@free.fr>
* util/Makefile.am (EXTRA_DIST): remove deleted texinfo-cat.in.
2025-02-02 Patrice Dumas <pertusus@free.fr>
* tta/Makefile.am (maintenance_files),
tta/maintain/regenerate_converters_documentation.sh,
tta/perl/Makefile.am (EXTRA_DIST),
tta/perl/Convert_format_template.pod: rename tta/maintain/template.pod
as perl/Convert_format_template.pod.
* tta/maintain/regenerate_converters_documentation.sh: change name of
temporary pod file.
2025-02-02 Patrice Dumas <pertusus@free.fr>
Put tta Perl code and t/*.t tests in a perl subdir in tta
* tta/Makefile.am, tta/perl/Makefile.am: move code related to Perl
only from tta/Makefile.am to tta/perl/Makefile.am, including tests in
t/*.t.
Update directories and 'updirs'.
* tta/configure.ac (enable_xs): redirect stderror of build, call and
grep module output to stderror but also to AS_MESSAGE_LOG_FD, using a
temporary file.
* tta/perl/t/test_utils.pl: distinguish directories more clearly, with
$srcdir for input files, and locales in builddir. Always add a / in
code using directories names.
* tta/perl/t/z_misc/no_structure_test.t: distinguish directories more
clearly, with $srcdir for test results and $t2a_srcdir for input
files.
* tta/perl/t/z_misc/same_parser_multiple_files.t: distinguish
directories more clearly, with $srcdir for test results, $t2a_srcdir
for input files and locales in builddir.
* tta/tests/many_input_files/*.sh (main_command, command_run, cmd):
use main_command, set command_run based on source directory and build
directory, add PERL to prepended_command automatically if main_command
is perl/texi2any.pl and update cmd to remove PERL arguments. This
allows to set main_command='C/ctexi2any'.
* tta/maintain/setup_converters_code_tables.pl,
tta/maintain/regenerate_file_lists.pl,
tta/maintain/setup_converters_code_tables.pl: use forward slashes.
2025-02-02 Patrice Dumas <pertusus@free.fr>
* tta/t/test_utils.pl: fix script name in message.
* doc/refcard/txicmdcheck (main): rename tp_cmds as t2a_cmds, tp_only
as t2a_only and read_tp as read_cmds.
* doc/refcard/txivarcheck (main): rename tp_vars as t2a_vars,
tp_cmds_vars as t2a_cmds_vars, tp_vars_only as t2a_vars_only,
tp_cmds_vars_only as t2a_cmds_vars_only and read_tp as read_vars.
2025-02-02 Patrice Dumas <pertusus@free.fr>
Rename tp_srcdir as t2a_srcdir and tp_builddir as t2a_builddir
* tta/t/test_utils.pl: rename $srcdir as $t2a_srcdir.
2025-02-02 Patrice Dumas <pertusus@free.fr>
* tta/configure.ac, tta/tta/Makefile.am (T2A_TESTS): rename TP_TESTS
as T2A_TESTS.
2025-02-02 Patrice Dumas <pertusus@free.fr>
Rename tp directory as tta and tp_api as tta_api
* configure.ac (--enable-t2a-tests), tta/configure.ac
(--enable-t2a-tests): rename --enable-tp-tests as --enable-t2a-tests
and tp_tests as t2a_tests.
* doc/Makefile.am (gendocs_envvars): use tp_srcdir and tp_builddir
instead of top_srcdir and top_builddir.
* man/Makefile.am: rename tpdir as tp_srcdir.
* tta/t/z_misc/no_structure_test.t,
tta/t/z_misc/same_parser_multiple_files.t,
tta/t/z_misc/test_tree_copy.t: rename $srcdir as $tp_srcdir. Fix
fallback based on Texinfo::ModulePath::tp_srcdir.
* util/texi-elements-by-size (BEGIN): update BEGIN block to be like
other similar scripts in util.
* doc/generate_html_doc_texi.pl,
tta/t/z_misc/same_parser_multiple_files.t,
tta/t/z_misc/test_tree_copy.t, util/txixml2texi.pl: use only forward
slashes.
2025-02-02 Gavin Smith <gavinsmith0123@gmail.com>
* util/texinfo-cat.in: deleted
* util/Makefile.am: remove commented-out rules to build texinfo.cat.
2025-02-01 Patrice Dumas <pertusus@free.fr>
* tp/maintain/setup_accent_tables.pl (BEGIN),
tp/maintain/setup_converters_code_tables.pl (BEGIN): update paths.
2025-02-01 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Parser.pm (BEGIN), tp/Texinfo/XS/Makefile.am (modulesdir)
(dist_modules_DATA, *_SOURCES, EXTRA_DIST, CLEANFILES),
tp/Texinfo/XS/parser_document*.xs: move XS code from main, parsetexi
and structuring_transfo to the parser_document directory to reduce the
number of directories.
2025-02-01 Patrice Dumas <pertusus@free.fr>
* tp/maintain/regenerate_documentlanguages-loc.pl: update paths.
2025-02-01 Patrice Dumas <pertusus@free.fr>
Replace XS by C in comments and debugging to use C when relevant
2025-02-01 Patrice Dumas <pertusus@free.fr>
* tp/C/texi2any.c (main): fix path for determination if uninstalled
and setting tp_srcdir.
2025-02-01 Patrice Dumas <pertusus@free.fr>
Move C libraries and program from tp/Texinfo/XS/ to tp/C
* tp/Texinfo/XS/xspara.h: include "text.h" without directory.
* po/POTFILES.in, po_document/POTFILES.in, tp/Makefile.am (SUBDIRS)
(DIST_SUBDIRS), tp/Texinfo/ModulePath.pm.in (init),
tp/configure.ac (AC_CONFIG_HEADERS, AC_CONFIG_FILES),
tp/Texinfo/XS/Makefile.am, tp/C/Makefile.am, tp/C/*: move C code files
and Makefile.am associated code from tp/Texinfo/XS/ to tp/C/ for
texi2any.c and code used in libraries. XS objects and C code only
used in XS objects remain in tp/Texinfo/XS/.
* Makefile.am (BUILT_SOURCES, html_conversion_data.c): update paths.
* grand-replace.sh, tp/maintain/change_perl_modules_version.sh: update
paths.
2025-02-01 Patrice Dumas <pertusus@free.fr>
Move tp/Texinfo/XS/configure.ac and tp/Texinfo/XS/gnulib to tp
* Makefile.am (ACLOCAL_AMFLAGS), configure.ac (AC_CONFIG_MACRO_DIRS)
(DIFF_OPTIONS), m4/txi_DIFF_OPTION.m4 (txi_DIFF_OPTIONS): move code
setting DIFF_OPTIONS to a macro file, such that it may be shared.
* autogen.sh, configure.ac (AC_CONFIG_FILES, AC_CONFIG_SUBDIRS),
tp/configure.ac (AC_CONFIG_MACRO_DIRS, AC_CONFIG_HEADERS)
(ICONV_CONVERTS_EUC_CN, DISABLE_XS, TP_TESTS, PERL_UNICODE_COLLATE_OK)
(AC_CONFIG_FILES), tp/Makefile.am (AUTOMAKE_OPTIONS, ACLOCAL_AMFLAGS)
(SUBDIRS, DIST_SUBDIRS), tp/Texinfo/TestXS/Makefile.am
(ACLOCAL_AMFLAGS), tp/Texinfo/TestXS/configure.ac
(AC_CONFIG_MACRO_DIRS), tp/Texinfo/XS/Makefile.am (AUTOMAKE_OPTIONS)
(GNULIB_CPPFLAGS, libparagraph_la_LIBADD): move
tp/Texinfo/XS/configure.ac and tp/Texinfo/XS/gnulib to tp. Put code
from main/configure.ac to tp/configure.ac.
* tp/load_txi_modules.pl, tp/texi2any.pl: also match two arguments
AC_INIT to get the version.
* tp/Texinfo/ModulePath.pm.in ($tp_srcdir, init),
tp/Texinfo/XS/texi2any.c (main), tp/Texinfo/XS/convert/texinfo.c
(txi_setup_main_load_interpreter), tp/Texinfo/XS/main/DocumentXS.xs
(init), tp/Texinfo/XS/main/document.c
(free_converter_paths_information, setup_txi_paths_information),
tp/Texinfo/XS/main/document.h (UNINSTALLED_PATHS),
tp/Texinfo/XSLoader.pm (init): set and use tp_srcdir, read tp_builddir
env for tp_builddir. Do not get top_srcdir nor top_builddir. This
change is in line with paths being set from outside of the tp
subdirectory, in which case top_srcdir and top_buildir will be
different from inside tp.
* Pod-Simple-Texinfo/pod2texi.pl (BEGIN),
Pod-Simple-Texinfo/t/Pod-Simple-Texinfo.t (BEGIN),
tp/load_txi_modules.pl (BEGIN), tp/texi2any.pl (BEGIN),
util/txicmdlist (BEGIN), util/txicustomvars (BEGIN),
util/txixml2texi.pl (BEGIN): update paths, setting tp_srcdir, using
env tp_buildir and tp_srcdir.
* doc/Makefile.am (MAKEINFO_ENVIRONMENT), doc/tp_api/Makefile.am
(MAKEINFO_ENVIRONMENT), man/Makefile.am (MAKEINFO_ENVIRONMENT),
tp/Makefile.am (AM_TESTS_ENVIRONMENT), tp/tests/Makefile.am
(AM_TESTS_ENVIRONMENT), tp/tests/many_input_files/Makefile.am
(AM_TESTS_ENVIRONMENT), tp/Texinfo/Convert/HTML.pm
(_load_htmlxref_files, _do_js_files),
tp/Texinfo/XS/convert/convert_html.c (html_do_js_files),
tp/Texinfo/XS/convert/html_prepare_converter.c (load_htmlxref_files),
tp/maintain/catalog.xml.in, tp/t/test_utils.pl, tp/texi2any.pl,
tp/load_txi_modules.pl: update paths.
* tp/t/*.t, tp/t/z_misc/*.t: update updirs argument number.
* autogen.sh: call autoreconf --no-recursive in the main directory,
as there are explicit calls of autoreconf in all the directories
with configure.ac.
* README-hacking: update.
* tp/Texinfo/TestXS/TestXS.pm: set package to Texinfo::TestXS::TestXS.
2025-01-31 Patrice Dumas <pertusus@free.fr>
* tp/t/z_misc/html_convert_tree.t (convert tree with tree handle)
($XS_parser, SKIP): skip "convert tree with tree handle" test if
XS_parser is set, as it is possible that the Perl parser is used even
if XS_parser is set. Indeed, if iconv is not functional, $XS_parser
will be set, but the Parser XS won't be built.
2025-01-31 Gavin Smith <gavinsmith0123@gmail.com>
Accent commands for PDF outline
* doc/texinfo.tex
(\pdfaccentliteralsutfviii, \pdfaccentliteralsliteral)
(\pdfaccentliterals):
New macros to make definitions for accent commands in the PDF
outline.
(\setpdfoutlinetext) [pdftex, luatex, xetex]: Call \pdfaccentliterals.
(\unicodechardefs): add dummy definitions for combining accents.
* doc/texinfo-tex-test.texi: add test of accent commands in
PDF outline.
2025-01-30 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\ogonek): Check \ifrmisbold and use bold
font if so. Otherwise we get regular weight ą etc. in section
titles.
2025-01-31 Patrice Dumas <pertusus@free.fr>
Remove TestXS from tp/Texinfo/XS
* tp/Texinfo/TestXS/Makefile.am: remove TestXS related variables.
Remove TestXS.pm and TestXS.xs from tp/Texinfo/XS.
2025-01-31 Patrice Dumas <pertusus@free.fr>
Test XS build in tp/Texinfo/TestXS/ directory
* autogen.sh, configure.ac (AC_CONFIG_SUBDIRS), tp/Makefile.am
(DIST_SUBDIRS): change main configure.ac to run _AC_OUTPUT_SUBDIRS in
tp/Texinfo/TestXS/, compile and run TestXS in this directory.
Use AC_CONFIG_SUBDIRS for tp/Texinfo/XS. Add Texinfo/TestXS in
tp/Makefile.am DIST_SUBDIRS.
2025-01-31 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/TestXS/configure.ac, tp/Texinfo/TestXS/Makefile.am,
tp/Texinfo/TestXS/TestXS.pm, tp/Texinfo/TestXS/TestXS.xs,
tp/maintain/change_perl_modules_version.sh: add a simple project
directory that builds TestXS modules isolated from the main XS
directory, to be used to check whether XS modules can be built.
2025-01-31 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/m4/txi_perl_conf.m4 (txi_LOOKUP_PERL_CONF)
(txi_LOOKUP_PERL_CONF_VALUES, txi_PERL_CONF),
tp/Texinfo/XS/configure.ac, tp/Texinfo/XS/Makefile.am
(ACLOCAL_AMFLAGS): move XS/configure.ac code determining Perl
variables to an autoconf macro, txi_LOOKUP_PERL_CONF
in XS/m4/txi_perl_conf.m4. Rename lookup_perl_conf macro as
txi_LOOKUP_PERL_CONF and lookup_perl_conf_values macro as
txi_LOOKUP_PERL_CONF_VALUES and move to txi_perl_conf.m4 too.
The objective is to be able to call the macro from another directory
to come.
2025-01-31 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac: move code around, to have Perl variables
setting in the same block and separate test with Autoconf/Gnulib
headers and tests with Perl headers better.
2025-01-31 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac (PERL_CONF_cc): always define.
* tp/Texinfo/XS/configure.ac: remove unset and unused
perl_conf_EMBED_LDFLAGS variable.
* tp/Texinfo/XS/configure.ac: move code around, mainly to have Perl
variables setting in the same block.
2025-01-31 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac: set variables that do not depend on
disable_xs outside of the if disable_xs. This leaves setting CC
depending on disable_xs only, if PERL_EXT_CC is not set.
2025-01-31 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac (AC_CONFIG_HEADERS, CFLAGS, CPPFLAGS)
(LDFLAGS): move AC_CONFIG_HEADERS outside of the disable_xs block,
such that it is always set.
Set CFLAGS, CPPFLAGS and LDFLAGS outside of the disable_xs block such
that they are set to the PERL_EXT_* values in any case, even if XS is
disabled. Remove Perl flags from CFLAGS and LDFLAGS as these are used
for Autoconf/Gnulib tests and the Autoconf/Gnulib tests are for code
not compiled with the Perl flags.
2025-01-30 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (libcallperl_libtexinfo_la_SOURCES): move
ppport.h to a SOURCE variable of code that actually includes it.
2025-01-30 Patrice Dumas <pertusus@free.fr>
* tp/t/init/set_global_direction_for_relative.pm,
tp/t/init_files_tests.t: prepare a test in comments to test calling
texinfo_register_global_direction and texinfo_register_text_direction
with a relative direction in argument. Do not enable the test, as XS
and Perl give different results.
2025-01-30 Patrice Dumas <pertusus@free.fr>
* tp/t/init/index_direction_from_index_name.pm
(_set_index_global_direction_from_index_name): test setting an unknown
direction with set_global_direction.
Update test results.
2025-01-30 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Setting Global Directions From Document
Information), tp/init/documentation_examples.pm
(_set_appendix_direction_node_name), tp/t/init_files_tests.t
($documentation_examples_text): add the "Setting Global Directions
From Document Information" node to document set_global_direction.
Add example code to documentation_examples.pm.
2025-01-30 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/HTML.pm (converter_initialize)
(conversion_initialization): cache all directions in
$self->{'all_directions'}.
* tp/Texinfo/Convert/HTML.pm (%XS_conversion_overrides)
(set_global_direction), tp/Texinfo/XS/convert/ConvertXS.xs
(html_set_global_direction),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_set_global_direction): add set_global_direction to set the node
name of a global direction. Should only be called on an already
registered or default global output unit. Add a C implementation and
an XS interface.
* tp/Makefile.am (test_files),
tp/t/init/index_direction_from_index_name.pm, tp/Makefile.tres,
tp/t/init_files_tests.t (printindex_set_direction): test
set_global_direction.
2025-01-30 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfurl, \pdfmakeurl):
Use common definition of \pdfurl for pdftex and xetex. Use
\pdfmakeurl for engine-specific part.
2025-01-30 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfgettoks) [pdftex, xetex]:
Use common definition for pdftex and xetex.
2025-01-30 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\endlink) [pdftex, xetex]:
Provide separate definitions for pdftex and xetex. The previous
change broke the defition for xetex because xetex had another
definition of \endlink which was then overridden by the common
definition. Report from Werner.
2025-01-30 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Converter.pm (output_tree),
tp/Texinfo/Convert/LaTeX.pm (output), tp/Texinfo/Convert/IXIN.pm: fix
precedence problem between ! and string eq, which leads to a warning
with Perl 5.41.7. Report from Igor Todorovski, details on:
https://github.com/Perl/perl5/issues/22954#issuecomment-2623408763
2025-01-29 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Changing Global Directions Output Units)
(Adding Text And Global Output Units Directions), tp/Texinfo/Config.pm
($GNUT_text_directions, texinfo_register_text_direction)
(GNUT_get_text_directions, GNUT_reinitialize_init_files),
tp/Texinfo/Convert/HTML.pm (converter_initialize)
(conversion_initialization),
tp/Texinfo/XS/convert/get_html_perl_info.c
(html_converter_get_customization_sv): do not register text directions
with texinfo_register_global_direction, add
texinfo_register_text_direction for that. Update initialization
and getting customization.
* tp/t/init/directions_buttons.pm, tp/t/init/test_directions.init: use
texinfo_register_text_direction.
2025-01-29 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): fix reversed conditions.
2025-01-29 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/DocumentXS.xs (rebuild_tree): if no_store is set,
but the Perl tree was never built, build it.
* tp/Makefile.tres (test_tap_files_generated_list),
tp/t/z_misc/html_convert_tree.t: add tests of HTML converter
convert_tree calls, with undefined document and with diverse
possibilities for rebuilt tree.
2025-01-29 Gavin Smith <gavinsmith0123@gmail.com>
Common code for pdftex and xetex
* doc/texinfo.tex (\rgbDarkRed, \rgbBlack, \setcolor, \maincolor)
(\thiscolor, \currentcolordefs, \makefootline, \makeheadline)
(\urlcolor, \linkcolor, \endlink): Place definitions in single
place instead of having duplicated definitions for both pdftex/luatex
and xetex. The large number of duplicated definitions made it
hard to navigate the file.
2025-01-29 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\ifxetex): New conditional. Use throughout.
2025-01-29 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\ifluatex): Introduce new conditional
and use throughout, rather than checking if \luatexversion is
defined every time.
2025-01-29 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfmakeoutlines): Remove accidentally added
use of non-existent macro.
2025-01-29 Patrice Dumas <pertusus@free.fr>
* tp/t/z_misc/automatic_nodes.t (test_new_node, duplicate node added):
call parse_texi_line such that the link to C data is removed, as the
functions used are for Perl only. Do not skip the tests with XS.
The code tested is not really the XS code, but it is still interesting
to test that configuration.
2025-01-29 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\pdfmakeoutlines) [pdftex, xetex, luatex]:
Output entry for table of contents after calling \indexnofonts
to prevent expansion problems if \putwordTOC expands to use
an accent command. Report from Werner.
2025-01-29 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/structuring_transfo/transformations.c
(protect_hashchar_at_line_beginning): add an explicit tree argument.
* tp/Texinfo/Transformations.pm (%XS_overrides)
(reference_to_arg_in_document)
(protect_hashchar_at_line_beginning_in_document)
(protect_first_parenthesis_in_targets_in_document),
tp/Texinfo/XS/structuring_transfo/StructuringTransfoXS.xs
(reference_to_arg_in_document)
(protect_hashchar_at_line_beginning_in_document)
(protect_first_parenthesis_in_targets_in_document),
tp/Texinfo/XS/structuring_transfo/transformations.c
(reference_to_arg_in_document)
(protect_hashchar_at_line_beginning_in_document)
(protect_first_parenthesis_in_targets_in_document): do not override
transformations on tree, but on document only, adding the needed
functions, reference_to_arg_in_document,
protect_hashchar_at_line_beginning_in_document and
protect_first_parenthesis_in_targets_in_document. Not documented, as
they should mostly be relevant for tests, in general the tree should
be manipulated in Perl only.
* tp/t/test_utils.pl (test), tp/t/z_misc/reference_to_text_in_tree.t,
tp/t/z_misc/test_protect_contents.t,
tp/t/z_misc/test_protect_hashchar_at_line_beginning.t: update to use
functions applied on document.
* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm (_protect_hashchar)
(_reference_to_text_in_texi, _normalize_texinfo_name): remove link of
tree to C data.
2025-01-29 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ManipulateTree.pm (%XS_overrides)
(protect_comma_in_document, protect_colon_in_document)
(protect_node_after_label_in_document),
tp/Texinfo/XS/main/manipulate_tree.c (protect_colon_in_document)
(protect_comma_in_document, protect_node_after_label_in_document),
tp/Texinfo/XS/structuring_transfo/StructuringTransfoXS.xs
(protect_colon_in_document, protect_comma_in_document)
(protect_node_after_label_in_document): do not override
transformations on tree, but on document only, adding the needed
functions, protect_comma_in_document, protect_colon_in_document and
protect_node_after_label_in_document. Not documented, as they should
mostly be relevant for tests, in general the tree should be
manipulated in Perl only.
* tp/t/test_utils.pl (test): update to use transformations on
documents.
* tp/t/z_misc/protect_character_in_texinfo.t: get a Perl tree without
C data for the test of parsed line. Call transformations on documents
otherwise.
* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm (_protect_comma)
(_protect_colon, _prepare_anchor): get a Perl tree without C data.
* tp/t/z_misc/automatic_nodes.t: change in spacing.
2025-01-29 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/get_converter_perl_info.c
(converter_set_document_from_sv): handle undef document_in.
2025-01-29 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (null_device_names): explicit condition
for Cygwin.
* tp/Texinfo/XS/main/get_perl_info.h: remove useless get_sv_converter
definition.
2025-01-28 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (build_document): reuse
Perl document associated to C document if possible.
* tp/Texinfo/XS/main/build_perl_info.c (build_minimal_document)
(fill_document_hv): bug messages if the document hv is already
set in build_minimal_document. Bug message if the document hv
is set to another value than the C document associated hv in
fill_document_hv, since it should not happen anymore.
* tp/Texinfo/XS/main/build_perl_info.c: remove rebuild_document. It
could now be implemented as a wrapper around build_document, and it is
unused.
2025-01-28 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/build_html_perl_info.c
(html_pass_converter_initialization_state)
(html_pass_conversion_initialization): remove unused document_in
argument. Update callers.
Change in spacing and comments.
2025-01-28 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/build_html_perl_info.c
(html_pass_conversion_initialization): set the Perl document
associated to the converter as Perl converter "document".
2025-01-28 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (document_tree): prefer the
tree cached in the original Perl document associated to the C
converter document, if it exists.
* tp/Texinfo/XS/main/build_perl_info.c (store_document_texinfo_tree):
remove the document_hv argument, it is not used anymore. Update
callers.
2025-01-28 Patrice Dumas <pertusus@free.fr>
Add a customization option for DocBook for a piece, not a book
* tp/Texinfo/Convert/DocBook.pm (_convert),
tp/Texinfo/options_data.txt: add _DOCBOOK_PIECE option. If set, the
output is not a full book, but a piece of DocBook. In that case,
before_node_section is not ignored.
* tp/t/test_utils.pl (convert_to_docbook): set _DOCBOOK_PIECE if the
tree has only one element, which should then be before_node_section.
This replaces code that did not follow the API.
2025-01-28 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (store_document_texinfo_tree):
store tree in document->hv.
* tp/Texinfo/XS/convert/html_converter_finish.c (html_free_converter),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_free_customized_global_units_directions): add
html_free_customized_global_units_directions based on
html_free_converter code.
* tp/Texinfo/XS/convert/get_html_perl_info.c
(html_converter_get_customization_sv): rename
customized_global_units_directions variable as
custom_global_units_direction_nr.
* tp/Texinfo/XS/main/build_perl_info.c (document_tree): always
determine if there is a C document.
Changes in comments.
2025-01-28 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c
(pass_document_sv_to_converter_sv, pass_converter_text_options): split
pass_document_to_converter_sv in two, with
pass_document_sv_to_converter_sv to add document SV to converter SV
and pass_converter_text_options. Update callers.
Changes in comments and FIXME/TODOs.
2025-01-27 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm, tp/Texinfo/XS/convert/convert_html.c,
tp/Texinfo/XS/parsetexi/commands.c, tp/Texinfo/XSLoader.pm: add and
remove FIXME, change in comments.
2025-01-27 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Converter.pm (_XS_setup_converter_generic): add
a noop implementation of _XS_setup_converter_generic, which is solely
used for an XS interface.
2025-01-26 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/structuring_transfo/structuring.c
(check_nodes_are_referenced): short-circuit some code if all nodes are
referenced, which should be the most common situation.
2025-01-26 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/ConvertXS.xs (html_convert_tree),
tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_explanation)
(html_convert_tree), tp/Texinfo/XS/convert/format_html.c: rename
html_convert_tree as html_convert_tree_explanation. Update callers.
Readd html_convert_tree with a converter and a tree as arguments
to follow the general API.
* tp/Texinfo/Convert/Converter.pm (convert_accents),
tp/Texinfo/XS/convert/converter.c (convert_accents): call convert_tree
with a converter and a tree as arguments, and no explanation, to
follow the API common to converters.
* tp/Texinfo/XS/convert/converter.c (converter_format_data),
tp/Texinfo/XS/convert/converter.h (CONVERTER_FORMAT_DATA): use the
common API for converter_convert_tree field in CONVERTER_FORMAT_DATA.
Add html_convert_tree to converter_format_data.
2025-01-26 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am: more comments.
* tp/Texinfo/XS/Makefile.am, tp/Texinfo/XS/texi2any.c: transform TODO
to NOTE.
2025-01-26 Patrice Dumas <pertusus@free.fr>
Decide if C libraries initialization is called from C or Perl in C code
* tp/Texinfo/Convert/Converter.pm (%XS_overrides, import),
tp/Texinfo/XS/convert/ConvertXS.xs (setup_converter_generic),
tp/Texinfo/XS/convert/converter.c (setup_converter_generic),
tp/Texinfo/XS/main/document.c (txi_paths_info)
(free_converter_paths_information, setup_txi_paths_information)
(setup_texinfo_main), tp/Texinfo/XS/convert/converter.h,
tp/Texinfo/XS/main/document.h (INSTALLED_PATHS, UNINSTALLED_PATHS)
(PATHS_INFORMATION): split generic_setup_main_converter in two, with
conversion specific information in setup_converter_generic and the
remaining in setup_texinfo_main. Move setup_texinfo_main,
txi_paths_info, setup_txi_paths_information and
free_converter_paths_information to main/document.c. Move
INSTALLED_PATHS, UNINSTALLED_PATHS and PATHS_INFORMATION to
document.h. Call setup_converter_generic from XS and from C.
* tp/Texinfo/XS/convert/ConvertXS.xs, tp/Texinfo/XS/convert/texinfo.c
(txi_setup_main_load_interpreter), tp/Texinfo/XS/main/DocumentXS.xs
(init), tp/Texinfo/XS/parsetexi/Parsetexi.xs, tp/Texinfo/XS/texi2any.c
(main), tp/load_txi_modules.pl: move C library main initialization to
DocumentXS.xs, from both ConvertXS.xs and Parsetexi.xs. Rename
txi_load_interpreter as txi_setup_main_load_interpreter. Modify
txi_setup_main_load_interpreter such that it sets the paths instead of
needing the paths to be set before. Call the main C library
initialization functions in txi_setup_main_load_interpreter if the
interpreter is not loaded.
* tp/Texinfo/Convert/HTML.pm (import),
tp/Texinfo/XS/convert/texinfo.c (txi_converter_output_format_setup):
call generic converter and format specific C library initialization
from txi_converter_output_format_setup if the Perl modules is not
loaded. Always initialize C HTML library in HTML.pm with XS.
* tp/texi2any.pl: move locales determination before setup of messages,
as in C.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (libperlembed_libtexinfo_main_la_CFLAGS),
tp/Texinfo/XS/configure.ac (perl_conf_EMBED_CFLAGS): add cccdlflags to
libperlembed_libtexinfo_main_la_CFLAGS through perl_conf_EMBED_CFLAGS,
as PERL_EXTUTILS_EMBED_ccopts does not include cccdlflags.
* tp/Texinfo/XS/configure.ac (TEXINFO_DTD_VERSION_CONFIG): move with
other variable that can be confused with customization variables.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/convert_html.c
(convert_output_output_unit_internal): cast to char * to remove a
const in encoded_output_file_name, as the function cannot be with
const even though the input string is not modified.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Command Tree Element Conversion Functions)
(Command Tree Element Opening Functions)
(Type Tree Element Conversion Functions)
(Type Tree Element Opening Functions),
tp/init/documentation_examples.pm: show how to call functions to get
defaults without a converter. Add an example that uses
default_command_conversion.
* tp/Texinfo/Convert/HTML.pm,
tp/maintain/generate_code_convert_data.pl: remove TODOs, move code,
add NOTEs.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main), tp/texi2any.pl: if
macro_expand_file_name, internal_links_file_name or
sort_element_count_file_name is -, which means output to STDOUT, do
not close the filehandle/file descriptor immediately, and instead put
it in main_program_unclosed_stdout/main_unclosed_files.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/HTML.pm (_do_jslicenses_file),
tp/Texinfo/XS/convert/convert_html.c (do_jslicenses_file): do not use
- as JS_WEBLABELS_FILE path.
* tp/Texinfo/Convert/Text.pm (output): do not close STDOUT. Add an
error message if there is an error when closing.
* tp/Texinfo/XS/convert/rawtext_converter_api.c (rawtext_output):
close output file.
* tp/Texinfo/XS/convert/rawtext_converter_api.c (rawtext_output): free
input_basefile, input_basename, encoded_out_filepath and outfile.
* tp/Texinfo/XS/texi2any.c (main): free the file_directories itself.
Free input_directory after next_input_file such that it is done in
every case.
Homogenize/add to comments on STDOUT not closed immediately, but left
to the main program to close.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/HTML.pm: add a check that needs to be manually
enabled to warn if some relevant commands are not converted.
Changes in comments/TODO/FIXME.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/t/test_utils.pl, tp/t/z_misc/*.t: change in spacing, replace
double quotes by simple quotes, use ok(1, 'modules loading');
consistently. No functional change intended.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/DocumentXS.xs: remove the gdt XS interface unused
documentation only code. Indeed, there is not much point in
overriding the gdt function, it is better if the C gdt function is
called from overriden functions.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Converter.pm ($converter_common_defaults): rename
$common_defaults as $converter_common_defaults.
* tp/Texinfo/Convert/Converter.pm
(%common_converters_non_options_defaults, %all_converters_defaults):
split %common_converters_non_options_defaults out of
%common_converters_defaults. Remove %common_converters_defaults.
Remove/modify FIXMEs and TODOs.
2025-01-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Text.pm (output): handle the case of output file
name not being set.
* tp/Texinfo/XS/convert/rawtext_converter_api.c (rawtext_output):
simplify code in case of output file not set.
* tp/t/z_misc/raw_text_converter.t ($reference_result_text)
($converter_undef_outfile, test output with unsef outfile): add test
with outfile not set. Change in spacing.
2025-01-24 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (info_short_help): mark translations with N_
macro rather than redefining _.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Converter.pm (determine_files_and_directory),
tp/Texinfo/XS/convert/converter.c (determine_files_and_directory): the
document input_file_name information is already a base file name. Do
not determine a basename again.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/t/06columnfractions.t: add html_text format to the tests.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/t/html_tests.t (sectioning_check_menu_structure): replace
TEXI2HTML by the relevant customization variables values.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/t/27float.t: remove incorrect FIXME.
* tp/t/30sectioning.t (top_part_chapter): add docbook. Remove fixed
FIXME.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm (replace_remove_list_element): rename
modify_array_element as replace_remove_list_element. Rename $element
as $removed. Update callers.
* tp/Texinfo/XS/main/tree.c (replace_remove_list_element): rename
replace_element_in_list as replace_remove_list_element. If added
argument is NULL, remove the removed element argument, if found.
Remove remove_element_from_list, since it is the same as
replace_remove_list_element called with added NULL. Update callers.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm (modify_array_element): rename
remove_from_array as modify_array_element, add an optional argument to
replace the removed element. Update callers.
* tp/Texinfo/Transformations.pm (regenerate_master_menu): call
modify_array_element to replace the detailmenu in global commands.
* tp/Texinfo/XS/main/tree.c (remove_element_from_list): rename e as
removed. Call remove_from_element_list directly from the loop.
Return removed element.
* tp/Texinfo/XS/main/tree.c (replace_element_in_list): return removed
element.
* tp/Texinfo/Transformations.pm (regenerate_master_menu),
tp/Texinfo/XS/structuring_transfo/transformations.c
(regenerate_master_menu): rename detailmenu_index as current_idx.
Use a for loop in Perl as in C.
* tp/Texinfo/Common.pm, tp/Texinfo/XS/main/tree.c: remove
replace_element_in_contents.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Config.pm, tp/Texinfo/Document.pm (get_conf),
tp/Texinfo/Indices.pm, tp/Texinfo/Structuring.pm: handle/remove
TODOs.
2025-01-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Structuring.pm (check_nodes_are_referenced),
tp/Texinfo/XS/structuring_transfo/structuring.c
(check_nodes_are_referenced): check that all the nodes are in a menu
except for Top, for nodes that are referenced, if
CHECK_NORMAL_MENU_STRUCTURE is set and there is more than one node.
2025-01-20 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (libtexinfo_main_la_LDFLAGS): remove
linking flags not needed for libtexinfo_main.
2025-01-23 Gavin Smith <gavinsmith0123@gmail.com>
info: reduce use of variables for translated strings
* info/info.c
(msg_cant_find_window, msg_cant_kill_last, msg_no_foot_node)
(msg_no_pointer, msg_unknown_command, msg_term_too_dumb)
(msg_at_node_bottom, msg_at_node_top, msg_cant_make_help):
Remove. All uses updated. Reduce comment saying such variables
are need because of a gettext limitation, as this does not appear
to be true now.
2025-01-23 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/Translations.pm (_switch_messages_locale):
Also exclude "C.UTF-8" (matching C code).
2025-01-23 Gavin Smith <gavinsmith0123@gmail.com>
* doc/txi-cs.tex: recode from ISO-8859-2 to UTF-8
2025-01-23 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/XS/main/translations.c (switch_messages_locale):
Check if locale name begins with "C." to exclude "C.UTF-8" locale
where translations are also disabled.
2025-01-22 Karl Berry <karl@freefriends.org>
* doc/texinfo.texi: fix typos and other errors
2025-01-21 Gavin Smith <gavinsmith0123@gmail.com>
* tp/texi2any.pl (makeinfo_help): remove obsolete comment.
2025-01-20 Gavin Smith <gavinsmith0123@gmail.com>
Contents in PDF outline.
* doc/texinfo.tex (\pdfmakoutlines) [pdftex, luatex, xetex]:
Output entry for table of contents, either at beginning or at
the end of the PDF outline.
(\contents, \startcontents): Output PDF anchor.
(\donoderef): Record that a node has been seen so that if @contents
is seen, we can assume it is at the end of the document rather than
at the beginning.
Suggestion from Werner.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c
(build_sv_converter_info_from_converter_initialization_info): add.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_module_converter): use
build_sv_converter_info_from_converter_initialization_info to pass
deprecated directories too (and translations, but there is no way to
have translations set from texi2any main program).
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (build_deprecated_directories):
add.
* tp/Texinfo/XS/main/build_perl_info.c
(pass_generic_converter_to_converter_sv): call
build_deprecated_directories.
* tp/Texinfo/XS/main/get_perl_info.c (get_converter_info_from_sv): do
not add translated_commands and deprecated_config_directories as
"non_valid_customization" that is passed directly from Perl, as both
are read from Perl to C and build from C to Perl.
Changes in comments.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (long_options, main): use mimicking instead
of the grammatically incorrect mimick. Report from Gavin.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_sort_element_counts): reuse the document hv if it already
exists.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_module_converter): rename call_convert_converter as
call_module_converter. Update callers.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c (call_converter_output)
(call_sort_element_counts): remove module_name argument. Update
callers.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (build_minimal_document):
rename get_document as build_minimal_document. Update callers.
* tp/Texinfo/XS/parsetexi/Parsetexi.xs: change variable names, update
includes, add const.
2025-01-19 Gavin Smith <gavinsmith0123@gmail.com>
* util/texi2pdf, util/texi2dvi: 2025
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (locate_include_file)
(locate_file_in_dirs): destroy the lists returned by splitdir.
2025-01-19 Patrice Dumas <pertusus@free.fr>
Keep converter SV instead of HV in C
* tp/Texinfo/XS/convert/ConvertXS.xs (generic_converter_init),
tp/Texinfo/XS/main/converter_types.h (CONVERTER): keep the converter
SV instead of the converter HV in C.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_converter_output, call_sort_element_counts): no need to reset
the converter stash anymore.
* tp/Texinfo/XS/convert/build_html_perl_state.c,
tp/Texinfo/XS/convert/call_html_perl_function.c,
tp/Texinfo/XS/main/call_perl_function.c,
tp/Texinfo/XS/main/build_perl_info.c: update for the change in
CONVERTER, change variable names.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_converter_output): add a SvREFCNT_inc before the second Perl
function call in call_converter_output.
* tp/Texinfo/XS/convert/converter.c (free_generic_converter):
unregister converter Perl object.
2025-01-19 Gavin Smith <gavinsmith0123@gmail.com>
* grand-replace.sh: split call to find/perl into function
and call several times to mop up more files
2025-01-19 Gavin Smith <gavinsmith0123@gmail.com>
* grand-replace.sh: add option to search for possible copyright
years updated.
* README-hacking: replace long manual "find" command suggestion
with run of grand-replace.sh --missed.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_module_converter_defaults): rename
call_converter_converter_defaults as call_module_converter_defaults.
Update callers.
Minor changes in comments, typo in variable name.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Simple Customization of Containers),
tp/Texinfo/Config.pm (texinfo_register_type_code),
(texinfo_register_type_pre_class, GNUT_get_types_code_info),
(GNUT_get_types_pre_class), tp/Texinfo/Convert/HTML.pm
(_XS_html_converter_get_customization, converter_initialize),
tp/Texinfo/XS/convert/ConvertXS.xs
(html_converter_get_customization_sv),
tp/Texinfo/XS/convert/get_html_perl_info.c
(html_converter_get_customization_sv), tp/t/init/cvs.init:
split texinfo_register_type_format_info in two functions,
texinfo_register_type_code and texinfo_register_type_pre_class.
Update setting customization and passing customization through XS to
C.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm (_next_text): simplify code, as
$input->{'file_name_encoding'} should always be set.
* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line): call defined
explicitly.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi, tp/Texinfo/Common.pm, tp/Texinfo/Config.pm:
remove texinfo_add_valid_customization_option and
add_valid_customization_option. Remove already @ignore'd text in
texi2any_api.texi.
2025-01-19 Gavin Smith <gavinsmith0123@gmail.com>
* info/variables.c (set_variable_to_value): Set 'where_set'
for all variables, including rendition styles, to allow
overriding from the command line even if these are set in infokey.
2025-01-19 Gavin Smith <gavinsmith0123@gmail.com>
Variables in info help message
* info/variables.c
(variable_description_string, variable_long_description_string):
New.
* info/infodoc.c (create_internal_info_help_node):
Output list of variables, including current value, how it
was set, and doc string.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/structuring_transfo/transformations.c (new_node):
destroy arguments_line when removing the newly created node if it is
already present.
2025-01-19 Patrice Dumas <pertusus@free.fr>
* tp/t/z_misc/*.t: update ModulePath updirs.
2025-01-19 Patrice Dumas <pertusus@free.fr>
Update TODO and po files
* po/POTFILES.in: add Translations.pm, rawtext_converter_api.c and
translations.c.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_load_interpreter)
(txi_stop_interpreter): rename txi_customization_loading_setup as
txi_load_interpreter and txi_customization_loading_finish as
txi_stop_interpreter. Update caller.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): rename command_directories as
command_directory.
2025-01-18 Patrice Dumas <pertusus@free.fr>
Remove the tp/ctexi2any.pl wrapper it is not useful anymore
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/tests/run_parser_all.sh: do not systematically prepend $PERL -w
to the command run, set it if main_command is texi2any.pl.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (long_options, main): set the default
program_file to be texi2any, use argv[0] only if --no-mimick is set.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): set top_srcdir and tp_builddir only
if texinfo_uninstalled.
* tp/Texinfo/XS/texi2any.c (main): handle command_directories being
NULL.
* tp/Texinfo/XS/texi2any.c (main): set top_srcdir relative to
command_directories.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS: run
gnulib-tool --add-import getcwd
We need Gnulib getcwd because we pass NULL as first argument such that
getcwd allocates the memory.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/parsetexi/input.c (encode_file_name)
(save_line_directive), tp/Texinfo/XS/parsetexi/end_line.c
(end_line_misc_line): do not call save_string in encode_file_name, as
the encoded file name does not need to be saved in end_line_misc_line.
Call save_string in save_line_directive instead.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.h: remove unused HAS_SLASH filename
portability macro.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/maintain/regenerate_C_options_info.pl: remove leading directory
name in generated #include.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (canonpath): fix wrong dereferencing.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/convert_html.c (do_jslicenses_file): use
file_name_is_absolute.
* tp/Texinfo/XS/main/utils.c (canonpath, add_include_directory): use
file names portability macros.
* tp/Texinfo/XS/parsetexi/input.c (input_push_file): use
parse_file_path to get base_filename.
* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): rename
sys_filename as file_path.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): determine if the program is
uninstalled by checking TEXINFO_DEV_SOURCE environment variable,
and, if not set, by looking at the absolute directory and checking the
last directories, using a report by Eli that it is how it is done in
general.
2025-01-18 Patrice Dumas <pertusus@free.fr>
File names portability
* tp/Texinfo/XS/main/utils.h (O_BINARY, HAVE_DRIVE, IS_SLASH)
(IS_ABSOLUTE): add, from system.h.
* tp/Texinfo/XS/main/utils.h (FILE_SLASH): add.
* tp/Texinfo/XS/main/utils.c (parse_file_path, file_name_is_absolute):
use file names portability macros.
* tp/Texinfo/XS/main/utils.c (splitpath): add.
* tp/Texinfo/XS/main/utils.c (locate_include_file)
(locate_file_in_dirs): use splitpath instead of parse_file_path, as in
Perl.
2025-01-18 Gavin Smith <gavinsmith0123@gmail.com>
Index entry line count adjustment
* tp/Texinfo/Convert/Plaintext.pm (_adjust_final_location):
New function, to decrement index entry line count at the end of
a node.
(convert_output_unit): Call it after processing footnotes.
(_convert) <contents>: Do not save current element on a
'current_roots' array.
(_convert) <index entry>: Do not check 'current_roots' array
for saved location at the end of a node.
This is arguably simpler and slightly quicker. This change has
minor consequences. If several index entries occur together at
the end of a node, they will all be adjusted. If an automatic
"*Menu" block is output at the end of a node, there will be
no adjustment. Adjustment in "plaintext" output is more limited.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (splitdir): add.
* tp/Texinfo/XS/main/utils.c (locate_include_file)
(locate_file_in_dirs): determine if a file name is relative or
contains . or .. in the same way as in Perl, by calling splitdir and
looking at the result.
2025-01-18 Patrice Dumas <pertusus@free.fr>
Use more forward slashes unconditionally in file names
* tp/Texinfo/Tests.pm, tp/ext/highlight_syntax.pm,
tp/ext/latex2html.pm, tp/texi2any.pl, tp/load_txi_modules.pl:
use forward slashes unconditionally instead of File::Spec for more
reproducible file names and consistency with other parts of the code.
Add missing use File::Spec, remove useless use File::Spec.
2025-01-18 Patrice Dumas <pertusus@free.fr>
Set locale for MS-Windows in C texi2any
* tp/Texinfo/XS/texi2any.c (main): in WIN32, set locale using GetACP
and set DOC_ENCODING_FOR_INPUT_FILE_NAME to 0, as in Perl texi2any.
GetACP call code from Eli Zaretskii.
2025-01-18 Patrice Dumas <pertusus@free.fr>
Align perl_conf flags better with ExtUtils::Embed flags
* tp/Texinfo/XS/configure.ac (perl_conf_CFLAGS): remove
PERL_CONF_optimize from perl_conf_CFLAGS, it often conflicts with
PERL_EXT_CFLAGS and it is not added by ExtUtils::Embed ccopts.
* tp/Texinfo/XS/configure.ac (perl_conf_LDFLAGS): add
PERL_CONF_ldflags, like ExtUtils::Embed ldopts does.
* tp/Texinfo/XS/configure.ac (perl_conf_LIBS): add PERL_CONF_perllibs,
like ExtUtils::Embed ldopts does.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (libcallperl_libtexinfo_la_CPPFLAGS)
(libcallperl_libtexinfo_la_CFLAGS, libtexinfoxs_la_CPPFLAGS)
(libtexinfoxs_la_CFLAGS, libcallperl_libtexinfo_convert_la_CPPFLAGS)
(libcallperl_libtexinfo_convert_la_CFLAGS)
(libtexinfo_convertxs_la_CPPFLAGS, libtexinfo_convertxs_la_CFLAGS):
use perl_conf_CFLAGS and perl_conf_CPPFLAGS instead of XSLIBS_CFLAGS
and XSLIBS_CPPFLAGS for shared libraries compiled against Perl that
are not XS modules.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac (perl_conf_CPPFLAGS),
tp/Texinfo/XS/Makefile.am (XSLIBS_CPPFLAGS): remove PERL_INC, instead
set perl_conf_CPPFLAGS to -I${PERL_CONF_archlibexp}/CORE.
* tp/Texinfo/XS/configure.ac (perl_conf_LIBS),
tp/Texinfo/XS/Makefile.am: rename PERL_LIBS as perl_conf_LIBS
for consistency of naming.
2025-01-18 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Navigation Panel Button Formatting): document
global_direction_text.
2025-01-17 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Document.pm: remove document_descriptor accessor. There
shouldn't be any situation where the document cannot be used directly.
2025-01-17 Patrice Dumas <pertusus@free.fr>
* tp/t/z_misc/test_sort.t: call get_customization_options_hash on
main_configuration to get regular options, as done in main program or
other tests, register in the document and use the document as source
of customization.
* tp/t/z_misc/test_sort.t: update Texinfo::ModulePath updirs.
2025-01-17 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Document.pm, tp/Texinfo/Indices.pm: add/change comments,
move code around.
2025-01-17 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/build_perl_info.c (build_global_info): add a
converter argument to try to reuse the "global_info" value of the Perl
document hash instead of systematically creating a new HV. Update
callers.
* tp/Texinfo/Document.pm (%XS_overrides, set_document_global_info):
override directly set_document_global_info. Remove
_XS_set_document_global_info.
* tp/t/z_misc/test_document.t: call global_information() after
set_document_global_info before accessing the hash.
* tp/Texinfo/XS/main/DocumentXS.xs (set_document_global_info): add a
string to get a warning if the document is not found in
set_document_global_info.
* tp/t/z_misc/test_document.t: update Texinfo::ModulePath updirs.
2025-01-17 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Structuring.pm (construct_nodes_tree),
tp/Texinfo/XS/structuring_transfo/structuring.c
(construct_nodes_tree): rename nodes_tree as construct_nodes_tree.
Upate callers.
* tp/Texinfo/Structuring.pm (construct_nodes_tree)
(sectioning_structure), tp/Texinfo/Document.pm,
tp/Texinfo/XS/main/document.c,
tp/Texinfo/XS/structuring_transfo/structuring.c (sectioning_structure)
(construct_nodes_tree): register nodes lists
nd sections lists directly in construct_nodes_tree and
sectioning_structure. Remove register_document_nodes_list,
register_document_sections_list. Upate callers.
2025-01-17 Patrice Dumas <pertusus@free.fr>
Use the TEXINFO_C_PERL_EMBED env variable to prevent loading embedded Perl
* tp/Texinfo/XS/texi2any.c (long_options, main): remove the
no-embed-interpreter option. If the TEXINFO_C_EMBED_PERL environment
variable is 0, do not load the Perl embedded interpreter. Gavin
proposal.
* tp/Texinfo/XS/texi2any.c (main): load init files while processing
command-line options.
2025-01-16 Gavin Smith <gavinsmith0123@gmail.com>
* tp/TODO: remove suggestion to check for comma/fullstop after
@xref{...} in parser as it does not seem like it would add much
benefit and the existing check in Info.pm seems to work well enough.
2025-01-16 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Advanced Navigation Panel Buttons
Specification, Customizing HTML Footers@comma{} Headers and Navigation
Panels): move "Advanced Navigation Panel Buttons Specification" node
to "Customizing HTML Footers@comma{} Headers and Navigation Panels".
2025-01-16 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Simple Navigation Panel Customization):
update with explicit text direction mention. Move accesskey
description to the beginning of the node and mention rel too.
* doc/texi2any_api.texi (Navigation Panels Buttons Arrays): add a
subsection for the list of navigation panels buttons customization
variables arrays.
* doc/texi2any_api.texi (Setting The Navigation Panel Buttons)
(Modifying The Navigation Panel Buttons): add subsection explaining
more simply how to set and modify the navigation panel buttons.
* doc/texi2any_api.texi (Advanced Navigation Panel Buttons
Specification): describe all the possibilities in detail for the
buttons specification in a new node. Add the "string with a text
direction" possibilitiy.
2025-01-16 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Managing Customization Variables)
(Getting Converter Default Variables Values): ignore a confusing
paragraph in "Managing Customization Variables". Add Getting
"Converter Default Variables Values" explaining how to get HTML
converter default values.
2025-01-16 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Navigation Panel Button Formatting): move
"Output Unit Direction Information Type" node content to the
from_element_direction function description, where it is used. Remove
the "Output Unit Direction Information Type" node.
2025-01-15 Patrice Dumas <pertusus@free.fr>
Remove the direction and text type for a button
* tp/Texinfo/Convert/HTML.pm (_default_format_button),
tp/Texinfo/XS/convert/format_html.c (html_default_format_button),
tp/Texinfo/XS/main/create_buttons.c (new_button_specification),
tp/Texinfo/XS/main/get_perl_info.c
(html_get_button_specification_list),
tp/Texinfo/XS/main/option_types.h (enum button_specification_type):
remove the button formatting using a two element array with direction
and text type. It was already unused, undocumented and scheduled for
deletion.
2025-01-15 Patrice Dumas <pertusus@free.fr>
Remove the possibility to use a direction and scalar reference for a button
* tp/Texinfo/Convert/HTML.pm (_default_format_button),
tp/Texinfo/XS/convert/format_html.c (html_default_format_button),
tp/Texinfo/XS/main/create_buttons.c (new_button_specification),
tp/Texinfo/XS/main/customization_options.c (copy_option),
tp/Texinfo/XS/main/get_perl_info.c
(html_get_button_specification_list),
tp/Texinfo/XS/main/option_types.h (enum button_information_type)
(BUTTON_SPECIFICATION_INFO), tp/Texinfo/XS/main/utils.c
(html_free_button_specification_list): remove the button formatting
using a two element array with direction and scalar reference. In C
remove both BIT_external_string and BIT_string.
* tp/Texinfo/XS/main/create_buttons.c (new_button_specification):
remove the string argument. Update callers.
* doc/texi2any_api.texi (Simple Navigation Panel Customization), NEWS:
update. Remove text string is interpreted as an output unit direction
information type button specification @ignore'd block too.
* tp/Texinfo/XS/main/api_to_perl.c: remove now unused
get_perl_scalar_reference_value.
2025-01-15 Patrice Dumas <pertusus@free.fr>
Remove the possibility to use a scalar reference for a button
* tp/Texinfo/Convert/HTML.pm (_default_format_special_body_about),
tp/Texinfo/XS/convert/format_html.c
(html_default_format_special_body_about): do not show global direction
texts in about.
* doc/texi2any_api.texi (Simple Navigation Panel Customization),
tp/Texinfo/Convert/HTML.pm (_default_format_button),
tp/Texinfo/XS/convert/format_html.c (html_default_format_button),
tp/Texinfo/XS/main/create_buttons.c (new_button_specification),
tp/Texinfo/XS/main/customization_options.c (copy_option),
tp/Texinfo/XS/main/get_perl_info.c
(html_get_button_specification_list),
tp/Texinfo/XS/main/option_types.h (enum button_specification_type)
(BUTTON_SPECIFICATION), tp/Texinfo/XS/main/utils.c
(html_free_button_specification_list): remove the possibility to use
a scalar reference as button, a function reference or global text
directions should be used instead. In C remove both
BST_external_string and BST_string buttons types.
* tp/t/init/access_document_name_in_handler.pm
(_button_show_document_name)
(_texi2any_tests_access_document_name_in_handler): use a function
reference instead of a scalar reference as button.
* tp/t/init/test_directions.init: use global text directions instead
of scalar references as buttons.
2025-01-15 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Directions, Default Directions)
(Direction Strings Customization)
(Adding Text And Global Output Units Directions): rearrange directions
documentation. Add information on how to modify and add global
directions using the new HTML customization API to add or replace
global directions.
2025-01-15 Gavin Smith <gavinsmith0123@gmail.com>
UTF-16 in PDF outlines
* doc/texinfo.tex
(\utfsixteentotoks): new. generate UTF-16 from codepoint.
(DeclareUnicodeCharacterUTFviii) [pdftex]: call it.
(\asciitounicode): new macro to expand ASCII to UTF-16BE.
(\defpdfoutlinetextunicode): new macro to set string for PDF
outline to UTF-16BE string if necessary.
(\setpdfoutlinetext) <pdfTeX with UTF-8>: call it.
(\UTFviiiLoop): do not make catcode changes global.
(\UTFviiiDefined): add conditional to allow suppressing error
message.
* doc/texinfo-tex-test.texi: update test case.
2025-01-15 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/convert_html.c
(html_clear_direction_string_type),
tp/Texinfo/XS/convert/get_html_perl_info.c
(html_conversion_initialization_sv),
tp/Texinfo/XS/convert/html_converter_finish.c (html_free_converter),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_nr_string_directions, html_converter_customize)
(html_initialize_output_state): add html_nr_string_directions and use
it to determine the total number of direction strings.
* tp/Texinfo/XS/convert/build_html_perl_info.c
(build_directions_strings): call html_nr_string_directions and use
converter->main_units_direction_names for directions names.
2025-01-15 Patrice Dumas <pertusus@free.fr>
Make converter_defaults conf argument optional
* tp/Texinfo/Convert/Converter.pm (converter_defaults),
tp/Texinfo/Convert/*.pm (converter_defaults),
tp/Texinfo/XS/convert/ConvertXS.xs (converter_defaults): make second
argument of converter_defaults optional.
* tp/Texinfo/Convert/Info.pm, tp/t/init/add_directions_buttons.pm:
update converter_defaults call.
2025-01-15 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/html_prepare_converter.c
(html_initialize_output_state): do not access special output units
directions outside of their range.
* tp/Texinfo/XS/convert/html_converter_finish.c (html_free_converter),
tp/Texinfo/XS/convert/convert_html.c
(html_clear_direction_string_type): correct nr_string_directions.
* tp/Texinfo/XS/convert/html_converter_finish.c (html_free_converter):
free added_global_units_directions,
customized_global_units_directions, customized_global_text_directions
and global_texts_direction_names.
* tp/Texinfo/XS/main/converter_types.h (DIRECTION_NODE_NAME_LIST),
tp/Texinfo/XS/convert/get_html_perl_info.c
(html_converter_get_customization_sv): remove space field.
2025-01-15 Patrice Dumas <pertusus@free.fr>
* tp/t/init/button_replacement_for_special_unit_direction.pm: do not
modify default buttons lists.
2025-01-15 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (string_exists_in_sorted_strings_list):
add.
* tp/Texinfo/XS/convert/ConvertXS.xs (html_global_direction_text),
tp/Texinfo/XS/convert/html_conversion_state.c,
tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_setup_global_texts_direction_names),
tp/Texinfo/XS/main/converter_types.h (CONVERTER): use a STRING_LIST
for global_texts_direction_names. Remove
html_find_direction_name_global_text, TEXT_DIRECTION and
TEXTS_DIRECTION_LIST.
2025-01-15 Patrice Dumas <pertusus@free.fr>
HTML customization API to add or replace global directions
* tp/Texinfo/Config.pm (texinfo_register_global_direction)
(GNUT_get_global_directions): add texinfo_register_global_direction
to register text global direction or output unit global direction with
a Texinfo node name.
* tp/Texinfo/XS/convert/ConvertXS.xs (html_global_direction_text),
tp/Texinfo/Convert/HTML.pm (conversion_initialization),
tp/Texinfo/XS/convert/format_html.c (html_global_direction_text)
(from_element_direction),
tp/Texinfo/XS/convert/html_conversion_state.c
(html_find_direction_name_global_text): simply set 1 for global
direction text in hash or as a return value.
* tp/Texinfo/Convert/HTML.pm (converter_initialize)
(conversion_initialization),
tp/Texinfo/XS/convert/get_html_perl_info.c
(html_converter_get_customization_sv),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_set_main_units_direction_names, html_converter_customize)
(html_initialize_output_state), tp/Texinfo/XS/main/converter_types.h
(DIRECTION_NODE_NAME, DIRECTION_NODE_NAME_LIST, CONVERTER),
tp/Texinfo/XS/convert/html_converter_api.c
(html_converter_initialize): get customized_global_directions and
consider the added directions to be customizable directions, pass them
to C. Separate code determining main_units_direction_names to the
html_set_main_units_direction_names function, call it in
html_converter_get_customization_sv before getting customization of
direction strings and in html_converter_initialize.
* tp/Texinfo/Convert/HTML.pm (conversion_initialization),
tp/Texinfo/XS/convert/format_html.c (html_global_direction_text)
(html_setup_global_texts_direction_names),
tp/Texinfo/XS/main/converter_types.h (CONVERTER),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_set_main_units_direction_names): add
customized_global_directions text directions.
* tp/Texinfo/Convert/HTML.pm (_prepare_output_units_global_targets),
tp/Texinfo/XS/Makefile.am (libtexinfo_convert_la_CPPFLAGS),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_converter_customize, html_initialize_output_state)
(html_prepare_output_units_global_targets)
(html_setup_global_units_direction_names): get the
customized_global_directions output units to replace or add to
global_units_directions.
* tp/Makefile.am (test_files), tp/t/init/add_directions_buttons.pm,
tp/t/init/directions_buttons.pm, tp/Makefile.tres,
tp/t/init_files_tests.t ($directions_buttons_text, directions_buttons)
(directions_buttons_buttons): test of the direction addition API,
adding directions and using in buttons.
2025-01-13 Gavin Smith <gavinsmith0123@gmail.com>
Define NULL_DEVICE in system.h
* system.h,
* info/info.h,
* install-info/install-info.c (NULL_DEVICE): move all setting
of NULL_DEVICE to system.h. Remove special case where it is
set to "/dev/null" for DJGPP as apparently "NUL" works as well.
* info/filesys.h (DEFAULT_INFOPATH) [__DJGPP__]: move override
of DEFAULT_INFOPATH here.
Report from Patrice.
2025-01-13 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block): check
if parent command is found (should always be).
* tp/Texinfo/XS/texi2any.c (main): fix precedence of dump_texi_option.
* tp/Texinfo/XS/xspara.c (xspara_add_text): use PRIuLEAST32 in format.
* tp/Texinfo/XS/convert/texinfo.c (txi_general_output_strings_setup):
free locales_dir only if it was set.
2025-01-12 Patrice Dumas <pertusus@free.fr>
Consider global direction with text and no output unit as a category
* tp/Texinfo/Convert/HTML.pm (global_direction_text)
(_default_format_button, _prepare_output_units_global_targets)
(conversion_initialization), tp/Texinfo/XS/convert/format_html.c
(html_global_direction_text, html_default_format_button): generalize
the case of the Space button as a global direction with text and no
output unit.
* tp/Texinfo/XS/convert/ConvertXS.xs (html_global_direction_text),
tp/Texinfo/Convert/HTML.pm (%XS_conversion_overrides),
tp/Texinfo/XS/convert/build_html_perl_info.c
(html_pass_units_directions_files)
(html_pass_output_units_global_targets),
tp/Texinfo/XS/convert/html_conversion_state.c
(compare_global_texts_direction_name)
(html_find_direction_name_global_text),
tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter),
tp/Texinfo/XS/convert/html_prepare_converter.c
(compare_global_texts_direction_name)
(html_setup_global_texts_direction_names),
tp/Texinfo/XS/main/converter_types.h (TEXT_DIRECTION),
(TEXTS_DIRECTION_LIST, CONVERTER): add an XS interface for
global_direction_text.
2025-01-12 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/html_converter_types.h
(global_unit_direction),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_global_unit_direction_names), tp/Texinfo/XS/main/option_types.h
(direction_unit_direction), tp/Texinfo/XS/main/utils.c
(html_button_direction_names),
tp/maintain/generate_code_convert_data.pl: handle Space button as part
of HTML_GLOBAL_DIRECTIONS_LIST.
2025-01-12 Patrice Dumas <pertusus@free.fr>
Rename space direction ' ' to 'Space'
* tp/Texinfo/Data/default_direction_strings.csv, NEWS,
doc/texi2any_api.texi (Directions), tp/Texinfo/Convert/HTML.pm
(%defaults, _default_format_button, _default_format_navigation_panel)
(_default_format_special_body_about, _set_variables_texi2html),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_global_unit_direction_names), tp/Texinfo/XS/main/utils.c
(html_button_direction_names), tp/init/book.pm,
tp/maintain/generate_code_convert_data.pl,
tp/t/init/access_document_name_in_handler.pm, tp/t/init/icons.init,
tp/t/init/special_element_customization.pm, tp/t/init/t2h_buttons.pm,
tp/t/init/t2h_singular.init,
tp/t/init/translated_strings_customization.pm: rename space direction
' ' to 'Space'.
2025-01-12 Patrice Dumas <pertusus@free.fr>
Rename LINKS_BUTTONS customization variable to LINKS_DIRECTIONS
* tp/Texinfo/options_data.txt, tp/Texinfo/Convert/HTML.pm (%defaults,
_get_links), tp/Texinfo/XS/convert/format_html.c (get_links),
tp/Texinfo/XS/convert/html_converter_init_options.c
(set_html_default_buttons_specifications)
(add_html_default_buttons_specifications), tp/init/book.pm,
tp/t/converters_tests.t,
tp/t/init/button_replacement_for_special_unit_direction.pm: rename
LINKS_BUTTONS to LINKS_DIRECTIONS. Also rename link_buttons variable
as link_directions and $link as $link_direction.
* NEWS, doc/texi2any_api.texi (Simple Navigation Panel Customization)
(Customizing HTML File Beginning): remove LINKS_DIRECTIONS from
"Simple Navigation Panel Customization" node. Update.
2025-01-12 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main), tp/load_txi_modules.pl,
tp/texi2any.pl: postpend +nc instead of +dev when the Perl script
called is not configured, to avoid possible confusion with the dev
string in the main version used for the development version. Also do
that for texi2any.c if uninstalled, as there is no possibility to be
non-configured in C.
2025-01-11 Gavin Smith <gavinsmith0123@gmail.com>
* configure.ac (AC_INIT): bump version to 7.2dev.
* tp/Texinfo/XSLoader.pm,
* tp/Texinfo/XS/configure.ac (XS_VERSION): strip off dev suffix
as XS bootstrap function doesn't accept it.
2025-01-12 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (conf_file_name, main): read
texi2any-config.pm customization files.
* tp/Texinfo/XS/texi2any.c (warn_deprecated_dirs): free
deprecated_dir_info strings too.
* tp/Texinfo/XS/texi2any.c (main): destroy
converter_config_dirs_array_ref earlier.
2025-01-12 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac, README-hacking: do not use
AC_LINK_IFELSE nor ready-to-use Autoconf code to test for Perl
embedding, as it does not seems possible to avoid AC_DEFINE results
performed previously includes:
https://lists.gnu.org/archive/html/autoconf/2025-01/msg00008.html
Instead use a code every similar to the configure code generated by
AC_LINK_IFELSE. This implies using an internal Autoconf shell
function and variable. Document in README-hacking that when Autoconf
is updated, this code should be checked.
2025-01-12 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Info.pm, tp/Texinfo/Convert/Paragraph.pm
(@EXPORT_OK, BEGIN), tp/Texinfo/Convert/Plaintext.pm,
tp/t/z_misc/paragraph.t: remove code in Paragraph.pm importing symbols
in the caller, instead use Exporter and @EXPORT_OK. Gavin analysed
that this is not needed anymore since 2019 when XSLoader.pm init
started relying on XS declaring the correct package name.
Update code using Texinfo::Convert::Paragraph.
2025-01-11 Patrice Dumas <pertusus@free.fr>
Use last @printindex for Index direction in HTML
* NEWS, doc/texi2any_api.texi (Directions), tp/Texinfo/Convert/HTML.pm
(_prepare_output_units_global_targets),
tp/Texinfo/XS/convert/html_prepare_converter.c
(html_prepare_output_units_global_targets): use last @printindex for
the Index global direction in HTML. Report from Werner Lemberg.
2025-01-10 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XSLoader.pm (%dl_path_prepended_dirs)
(load_libtool_library): prepend directories found where libtool .la
files are only once.
2025-01-10 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/ParagraphNonXS.pm (new): do not bless returned
hash reference.
* tp/Texinfo/Convert/Info.pm (_info_header),
tp/Texinfo/Convert/ParagraphNonXS.pm (new),
tp/Texinfo/Convert/Plaintext.pm (new_formatter),
tp/Texinfo/XS/XSParagraph.xs (xspara_new), tp/t/z_misc/paragraph.t:
remove class argument of Texinfo::Convert::Paragraph new.
2025-01-10 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am: comments, move teximakehtml down.
2025-01-09 Patrice Dumas <pertusus@free.fr>
If installed, try to find XS module even if .la file is missing
* tp/Texinfo/ModulePath.pm.in ($converterxsdir): add.
* tp/Texinfo/XSLoader.pm ($added_converterxsdir, load_libtool_library)
(init): if called from installed Texinfo and loading an XS module and
the la file is not found,
- add $converterxsdir, where the XS modules are installed to
DynaLoader path
- let DynaLoader find the module file using the usual file names.
This allows to have modules found even if packagers remove .la files
installed in the default case on platforms where modules have usual
names and are found by DynaLoader.
2025-01-09 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.c (info_short_help):
Split translatable string into shorter chunks.
2025-01-08 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/replace_call_embed_perl.c,
tp/Texinfo/XS/convert/replace_call_conversion_perl.c: move
call_eval_use_module to replace_call_embed_perl.c.
* tp/Texinfo/XS/Makefile.am (libperlembed_libtexinfo_main_la_SOURCES)
(libperlembed_libtexinfo_main_la_LIBADD, libtexinfo_main_la_LIBADD):
if PERL_EMBEDDED is not set use replace_call_embed_perl.c instead of
call_embed_perl.c in libperlembed_libtexinfo_main and do not use
PERL_EXTUTILS_EMBED_ldopts. The resulting library won't embed a Perl
interpreter. Based on a report from Gavin.
2025-01-08 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (teximakehtml_SOURCES),
tp/Texinfo/XS/convert/replace_call_conversion_perl.c,
tp/Texinfo/XS/convert/replace_call_embed_perl.c: split
replace_call_embed_perl.c out of replace_call_conversion_perl.c with
replacements for call_embed_perl.c functions only.
2025-01-08 Patrice Dumas <pertusus@free.fr>
pod2texi usage message
* Pod-Simple-Texinfo/pod2texi.pl: use ; instead of . to separate
information. Indent second line of option description by two spaces.
2025-01-08 Patrice Dumas <pertusus@free.fr>
texi2any usage message
* tp/Texinfo/XS/texi2any.c (main), tp/texi2any.pl: remove periods from
options descriptions unless they end a proper sentence starting with
an upper-cased letter.
2025-01-08 Patrice Dumas <pertusus@free.fr>
texi2any usage message
* tp/Texinfo/XS/texi2any.c (main): add examples to help message.
2025-01-08 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): split translated strings at end of
lines.
2025-01-08 Gavin Smith <gavinsmith0123@gmail.com>
Remove USE_REL_REV variable
* tp/Texinfo/options_data.txt,
* tp/Texinfo/Convert/converters_defaults.txt,
* tp/Texinfo/Convert/HTML.pm
(_direction_href_attributes, _default_format_button)
* tp/Texinfo/XS/convert/format_html.c
(direction_href_attributes, html_default_format_button)
* tp/Texinfo/XS/main/options_data.h,
* tp/t/init/redefined_buttons.pm
(_redefined_buttons_button_dynamic_direction),
* doc/texinfo.texi (File Names and Links Customization for HTML),
* doc/texi2any_api.texi (Simple Navigation Panel Customization),
* NEWS:
Remove USE_REL_REV.
2025-01-08 Patrice Dumas <pertusus@free.fr>
texi2any usage message
* tp/texi2any.pl (makeinfo_help) <Examples>: substitute
$real_command_name instead of hardcoding it.
2025-01-08 Gavin Smith <gavinsmith0123@gmail.com>
texi2any usage message
* tp/texi2any.pl (makeinfo_help) <Examples>: Split translation
string, remove newline from translation string, do not mention
@setfilename in examples, refer to "texi2any" rather than "makeinfo".
2025-01-08 Gavin Smith <gavinsmith0123@gmail.com>
texi2any usage message
* tp/texi2any.pl (makeinfo_help) <conditionals>,
* tp/Texinfo/XS/texi2any.c (main) <--help output> <conditionals>
Remove trailing '.'. Describe default settings generically.
Do not document all of --no-ifFORMAT commands explicitly.
Remove "even if not generating FORMAT" provisos from some option
descriptions. @ifnotFORMAT is relevant for --ifFORMAT as well
as --no-ifFORMAT. Align long options with other long options
in usage message.
2025-01-07 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Translations.pm (_switch_messages_locale),
tp/Texinfo/XS/main/translations.c (switch_messages_locale): redirect
"locale -a" stderr to /dev/null. We are not really interested by
locale errors and there is a more general warning just after.
2025-01-07 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Translations.pm (_switch_messages_locale),
tp/Texinfo/XS/main/translations.c (switch_messages_locale): warn
immediately if the switch to a locale other than C and POSIX did not
succeed.
2025-01-07 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_embed_perl.c (call_init_perl): set
PL_perl_destruct_level to 0 to decrease the time needed for the
destruction of the embedded Perl interpreter. Using
PERL_DESTRUCT_LEVEL env variable to get useful leak information with
valgrind is still possible.
2025-01-07 Patrice Dumas <pertusus@free.fr>
* doc/texi2any_api.texi (Target Tree Element Link): correct the order
of the return arguments of get_element_root_command_element.
2025-01-06 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (ctexi2any_LDADD): remove
libtexinfo-convertxs.la, it is not used at all in the program.
2025-01-06 Patrice Dumas <pertusus@free.fr>
Separate library for main program to isolate Perl embedding code
* tp/Texinfo/XS/convert/call_conversion_perl.c,
tp/Texinfo/XS/convert/call_embed_perl.c (call_eval_use_module)
(my_perl, xs_init, call_init_perl, call_finish_perl): move functions
related to Perl embedding to a different file, to be able to use
the ExtUtils::Embed compile flags for this file only.
* tp/Texinfo/XS/Makefile.am (C_libtexinfo_convert_sources)
(libtexinfo_convert_la_CPPFLAGS, libtexinfo-main.la)
(C_libtexinfo_main_sources, libperlembed_libtexinfo_main.la)
(libperlembed_libtexinfo_main_la_SOURCES)
(libperlembed_libtexinfo_main_la_CFLAGS)
(libperlembed_libtexinfo_main_la_LDFLAGS)
(libperlembed_libtexinfo_main_la_LIBADD, libtexinfo_main_la_SOURCES)
(libtexinfo_main_la_CPPFLAGS, libtexinfo_main_la_LIBADD)
(libtexinfo_main_la_LDFLAGS, teximakehtml_SOURCES)
(ctexi2any_LDADD): add the libtexinfo-main small library to use the
ExtUtils::Embed library flags for this library only. The C part
contains texinfo.c and there is also a convenience library for
call_embed_perl.c. Do not use ExtUtils::Embed compile flags
for the main program.
2025-01-06 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac: remove the warning messages at the end,
the check for enabled XS is done in the top configure.ac.
* tp/Texinfo/XS/configure.ac (embedded_perl, PERL_EMBEDDED): add
a full check for linking against the Perl interpreter library. Even
it the Perl XS infrastructure including headers and ExtUtils::Embed
is present the Perl interpreter library may not be installed.
2025-01-06 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac: improve a message.
2025-01-06 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (ctexi2any, ctexi2any_LDADD)
(ctexi2any_CFLAGS, ctexi2any_LDFLAGS), tp/Texinfo/XS/configure.ac
(PERL_EMBEDDED, PERL_EXTUTILS_EMBED_ccopts)
(PERL_EXTUTILS_EMBED_ldopts): check if ExtUtils::Embed is present, if
not do not build ctexi2any, if yes, use "perl -MExtUtils::Embed -e
ccopts" in ctexi2any CFLAGS and "perl -MExtUtils::Embed -e ldopts"
in ctexi2any LDADD.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/*.pm, tp/Texinfo/ParserNonXS.pm,
tp/Texinfo/Structuring.pm, tp/Texinfo/Transformations.pm,
tp/Texinfo/XS/convert/convert_html.c,
tp/Texinfo/XS/convert/converter.c,
tp/Texinfo/XS/convert/format_html.c,
tp/Texinfo/XS/main/convert_to_texinfo.c,
tp/Texinfo/XS/main/convert_to_text.c,
tp/Texinfo/XS/main/node_name_normalization.c,
tp/Texinfo/XS/parsetexi/end_line.c,
tp/Texinfo/XS/parsetexi/handle_commands.c,
tp/Texinfo/XS/structuring_transfo/structuring.c,
tp/Texinfo/XS/structuring_transfo/transformations.c: add comments,
change variables names and add checks to make clearer when an
arguments_line element is used.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/ext/highlight_syntax.pm (_get_language): use the first argument
to get the language.
* tp/tests/other/highlight_example.texi: add a second argument on
@example line for one of the @example.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm, tp/Texinfo/ParserNonXS.pm,
tp/Texinfo/Convert/*.pm, tp/Texinfo/XS/convert/converter.c,
tp/Texinfo/XS/convert/format_html.c, tp/Texinfo/XS/main/utils.c,
tp/Texinfo/XS/parsetexi/*.c, tp/ext/*.pm, tp/init/*.pm: add comments
and change variable names to make clearer when an arguments_line
element is used when the type is not tested.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main), tp/texi2any.pl: add
--[no-]number-footnotes to the help message.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): if uninstalled, prepend +dev to
PACKAGE_VERSION too.
* tp/Texinfo/XS/texi2any.c (main): if the mimick option is set, reset
PROGRAM program_options too.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/maintain/regenerate_documentlanguages-loc.pl: update country
codes. Add Namibia country code which seems to be missing.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* doc/texinfo.texi (@code{@@documentlanguage}),
tp/maintain/regenerate_documentlanguages-loc.pl: add three letter
languages that correspond to individual languages.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): use a variable to be more robust
for non_first_file_cmdline_options initialization and free'ing.
* tp/Texinfo/XS/texi2any.c (main): close files.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): free texi2dvi_args also in case
texi2dvi is not called.
2025-01-05 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/customization_options.c (clear_option)
(clear_options_list): remove the OF_set_in_list flag in clear_option
and not in clear_options_list, to be able to do it for individual
options.
* tp/Texinfo/XS/main/customization_options.c
(options_list_remove_option_number): add.
* tp/Texinfo/XS/texi2any.c (main): set XS_EXTERNAL_CONVERSION and
XS_EXTERNAL_FORMATTING.
* tp/Texinfo/XS/texi2any.c (main): remove the options that are only
relevant for the first processed file for the other files.
* tp/texi2any.pl: comment out unused code.
2025-01-04 Patrice Dumas <pertusus@free.fr>
SHOW_BUILTIN_CSS_RULES in ctexi2any
* tp/texi2any.pl: move code related to SHOW_BUILTIN_CSS_RULES earlier.
* tp/Texinfo/XS/convert/html_prepare_converter.c
(html_builtin_default_css_text), tp/Texinfo/XS/convert/texinfo.c
(txi_builtin_default_css_text): add.
* tp/Texinfo/XS/texi2any.c (main): handle SHOW_BUILTIN_CSS_RULES by
calling txi_builtin_default_css_text.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): add ignoring splitting message.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: remove end of line in help message translated
strings. Report from Benno Schulenberg.
* tp/Texinfo/XS/texi2any.c (main): add --Xopt message, reorder help
message to be the same as texi2any.pl.
2025-01-04 Gavin Smith <gavinsmith0123@gmail.com>
* doc/txi-fi.tex: recode from Latin-1 into UTF-8
2025-01-04 Patrice Dumas <pertusus@free.fr>
TREE_TRANSFORMATIONS in ctexi2any
* tp/Texinfo/XS/convert/texinfo.c (txi_tree_transformation_table)
(txi_find_tree_transformation), tp/Texinfo/XS/convert/texinfo.h
(TRANSFORMATION_NAME_FLAG, TT_TYPES_LIST): add.
* tp/Texinfo/XS/convert/texinfo.c (txi_complete_document): add missing
insert_nodes_for_sectioning_commands call.
* tp/Texinfo/XS/texi2any.c (main): setup tree transformation flags
based on TREE_TRANSFORMATIONS, calling txi_find_tree_transformation
and add them to the txi_complete_document call.
2025-01-04 Gavin Smith <gavinsmith0123@gmail.com>
* doc/txi-fi.tex: recode from Latin-2 into UTF-8
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_general_output_strings_setup):
rename txi_general_setup as txi_general_output_strings_setup. Update
caller.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/converter.c (txi_paths_info)
(setup_txi_paths_information, generic_setup_main_converter): rename
conversion_paths_info as txi_paths_info,
setup_converter_paths_information as setup_txi_paths_information and
converter_setup as generic_setup_main_converter.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_general_setup),
tp/Texinfo/XS/texi2any.c (main): remove call of converter_setup from
txi_general_setup, use conversion_paths_info. Call converter_setup
directly in main and earlier, to have txi_base_sorted_options setup
early. Call txi_general_setup later on, in the same place as in Perl.
2025-01-04 Patrice Dumas <pertusus@free.fr>
Support formats handled by texi2dvi in ctexi2any
* tp/texi2any.pl: handle TEXI2DVI being undef or empty by exiting with
error.
* tp/Texinfo/XS/texi2any.c (FORMAT_NAME, format_names)
(name_of_format): add.
* tp/Texinfo/XS/texi2any.c (formats_table, format_expanded_formats)
(long_options, main): add support for formats handled by texi2dvi.
2025-01-04 Patrice Dumas <pertusus@free.fr>
Never consider stdin to be the input file when calling texi2dvi
* tp/texi2any.pl (@input_files): do not add - to input_files if there
is something on stdin when call_texi2dvi is set. texi2dvi do not
support reading files on stdin and will give an error message of it
own, but it is better to catch the missing file as soon as possible
in texi2any.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: move error related to call_texi2dvi down, where
call_texi2dvi is set.
* tp/texi2any.pl (name_of_format): rename format_name as
name_of_format.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/build_html_perl_info.c
(html_pass_conversion_initialization): always call
call_common_set_output_perl_encoding, even if there is no formatting
of HTML as Perl, as the Perl converter encoding may be used in the
main program for calls to
Texinfo::Convert::Utils::output_files_open_out.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: move code around to correspond better to texi2any.c
code.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_general_setup),
tp/Texinfo/XS/texi2any.c (main): call messages_and_encodings_setup
directly in main and not in txi_general_setup. Call txi_general_setup
later on in main. Move txi_general_setup code down in texinfo.c.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/HTML.pm (%XS_conversion_overrides),
tp/Texinfo/XS/convert/ConvertXS.xs (html_output_internal_links): add
an XS interface for output_internal_links.
* tp/Texinfo/XS/convert/build_html_perl_info.c
(html_pass_conversion_initialization), tp/Texinfo/XS/texi2any.c
(main): update now that output_internal_links do not need Perl
anymore.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): exit with an error and a message if
there is no interpreter and SORT_ELEMENT_COUNT is set.
2025-01-04 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/node_name_normalization.c
(unicode_to_transliterate), tp/Texinfo/XS/main/replace_perl_api_call.c
(call_nodenamenormalization_unicode_to_transliterate): check return of
call_nodenamenormalization_unicode_to_transliterate in
unicode_to_transliterate, and call C code if NULL.
* tp/Texinfo/XS/main/call_perl_function.c
(call_nodenamenormalization_unicode_to_transliterate)
(call_translations_translate_string, call_setup_collator): check
get_no_perl_interpreter and return an appropriate value if set.
2025-01-04 Patrice Dumas <pertusus@free.fr>
Build ctexi2any even if DISABLE_ADDITIONAL_CHECKS is set
* tp/Texinfo/XS/Makefile.am (noinst_PROGRAMS): remove
DISABLE_ADDITIONAL_CHECKS conditional for ctexi2any.
2025-01-03 Patrice Dumas <pertusus@free.fr>
Check same version in ctexi2any caller and embedded Perl modules
* tp/Texinfo/XS/texi2any.c (main): postpend +dev to the
PACKAGE_AND_VERSION program customization option if uninstalled,
similar with texi2any.pl.
* tp/Texinfo/XS/convert/call_conversion_perl.c (call_init_perl),
tp/Texinfo/XS/convert/texinfo.c (txi_customization_loading_setup),
tp/Texinfo/XS/texi2any.c (main), tp/load_txi_modules.pl: pass the
version down to call_init_perl. In call_init_perl pass the version
as argument to load_txi_modules(.pl). In load_txi_modules.pl
check that the version on the command-line matches with the Perl
modules version.
2025-01-03 Patrice Dumas <pertusus@free.fr>
Pass direction icons to C options using names
* tp/Texinfo/XS/convert/ConvertXS.xs (html_prepare_simpletitle)
(html_convert), tp/Texinfo/XS/convert/convert_html.c
(html_free_direction_icons_array, compare_direction_icon)
(prepare_direction_icons_list, html_prepare_direction_icons)
(html_prepare_converted_output_info),
tp/Texinfo/XS/convert/format_html.c (html_default_format_button)
(html_default_format_special_body_about),
tp/Texinfo/XS/convert/html_converter_api.c (html_convert),
tp/Texinfo/XS/main/build_perl_info.c (html_build_direction_icons),
tp/Texinfo/XS/main/converter_types.h (CONVERTER),
tp/Texinfo/XS/main/customization_options.c (copy_option),
tp/Texinfo/XS/main/get_perl_info.c (get_sv_option)
(html_get_direction_icons_sv), tp/Texinfo/XS/main/option_types.h
(DIRECTION_ICON, DIRECTION_ICON_LIST), tp/Texinfo/XS/main/utils.c
(html_clear_direction_icons, html_free_direction_icons),
tp/Texinfo/XS/convert/html_converter_finish.c (html_reset_converter),
tp/maintain/regenerate_C_options_info.pl: add the DIRECTION_ICON type
to specify a direction name associated to an icon file name. Modify
DIRECTION_ICON_LIST in options to hold a list of DIRECTION_ICON,
such that the direction names do not have to be known when filling
direction icons information. Remove converter arguments of
html_build_direction_icons and html_get_direction_icons_sv. Inline
html_fill_direction_icons in html_get_direction_icons_sv.
Add arrays of icon file name strings to CONVERTER, similar to the
former direction icons options, filled with the new function
html_prepare_direction_icons based on direction icons options, and use
them in conversion in format_html.c. Call
html_prepare_direction_icons before starting the tree conversion.
2025-01-03 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/converter_types.h (CONVERTER): rename
direction_unit_direction_name field as main_units_direction_names,
special_units_direction_name as special_units_direction_names and
global_units_direction_name as global_units_direction_names. Update
users.
* tp/Texinfo/XS/convert/html_prepare_converter.c
(html_setup_global_units_direction_names): rename
global_units_direction_names variable as global_units_directions_list
and special_units_direction_name as special_units_direction_names.
2025-01-03 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_sort_element_counts), tp/Texinfo/XS/convert/texinfo.c
(txi_sort_element_counts), tp/Texinfo/XS/main/converter_types.h
(CONVERTER_TEXT_INFO), tp/Texinfo/XS/texi2any.c (main): add a call to
Perl sort_element_counts and a wrapper around in texinfo.c.
Use it to implement handling SORT_ELEMENT_COUNT in texi2any.c.
2025-01-02 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/format_html.c (html_output_internal_links):
use sorted indices by name to determine the order of indices
processing.
2025-01-02 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (analyze_documentlanguage_argument),
tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): move code
checking documentlanguage validity to a function,
analyze_documentlanguage_argument.
* tp/Texinfo/XS/texi2any.c (main): check the validity of
document-language option value.
2025-01-02 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm (warn_unknown_language): do not allow trailing
characters after region code.
* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): warn about
invalid @documentlanguage argument exactly like in Perl.
* tp/Makefile.tres, tp/t/languages.t (invalid_documentlanguage): test
invalid @documentlanguage.
2025-01-02 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (C_libtexinfo_sources),
tp/maintain/regenerate_documentlanguages-loc.pl, README-hacking:
generate C source files with hash functions to check if a language or
a region code is valid using gperf.
2025-01-02 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_converter_output): do not get output_files_information from the
Perl converter if it is already in the C converter.
2025-01-02 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_converter_output): allow
output_files_information to be NULL.
2025-01-02 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (long_options, main): remove the
demonstration mode.
2025-01-01 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/txi_config.c (program_file)
(GNUT_initialize_customization, txi_config_document_warn),
tp/Texinfo/XS/texi2any.c (main): pass address of program_file in
GNUT_initialize_customization, to be able to dereference the value in
txi_config_document_warn to get the modified strings, if they are
modified.
2025-01-01 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (long_options, main): change the mimick
option to only reset the program_file name, and have it change it as
soon as the option is encountered.
* tp/ctexi2any.pl: set the --mimick option to get texi2any in early
messages.
2025-01-01 Gavin Smith <gavinsmith0123@gmail.com>
Index initials in PDF outline
* doc/texinfo.tex
(\pdfmakeoutlines) [pdftex, xetex]: treat \idxinitialentry like
@section.
(\doindexinitialentry): New macro to create PDF target and
entry in .toc file for index initial.
(\initial): Call it.
Suggestion from Werner Lemberg, bug-texinfo, 2024-11-10.
2025-01-01 Gavin Smith <gavinsmith0123@gmail.com>
* INSTALL: mention gnulib-l10n soft dependency
2025-01-01 Patrice Dumas <pertusus@free.fr>
Implement internal links in C
* tp/Texinfo/XS/convert/format_html.c (html_output_internal_links):
implement output_internal_links.
* tp/Texinfo/XS/texi2any.c (write_to_file): add function based on code
related to macro expansion file;
* tp/Texinfo/XS/texi2any.c (formats_table, long_options, main): add
internal-links option and implement outputting internal links text.
2025-01-01 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XSLoader.pm (init): if embedded_xs is set, reset
TEXINFO_XS variable and environment variable if TEXINFO_XS was omit,
as it is not possible to omit XS if Perl is embedded.
* tp/Texinfo/XS/convert/texinfo.c (txi_converter_setup): call fatal if
call_convert_converter did not succeed.
* tp/Texinfo/XSLoader.pm (_fatal): show message if embedded_xs is set.
2025-01-01 Gavin Smith <gavinsmith0123@gmail.com>
No change for txicodevaristt
* doc/texinfo.tex (\var): change comments to no longer say that
we will turn off "@set txicodevaristt". In practice users appear
happy with the current behaviour.
* TODO,
* doc/texinfo.texi (@var): update
2025-01-01 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\b): Call \defcharsdefault so that
"@defun foo @b{&bar}" doesn't break.
2025-01-01 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\opnr, \cpnr): unconditionally use \sf
font for opening or closing parenthesis, regardless of
whether an &keyword has been seen and whether we are at
the first level of parenthesis.
The purpose of this was unknown but it was not correct for input
such as:
@defmac define-advice symbol (where lambda-list &optional name depth) &rest body
where the closing ) would be printed in a different font to the
opening (.
2025-01-01 Gavin Smith <gavinsmith0123@gmail.com>
* po/ChangeLog, po_document/ChangeLog: delete these files
as they only include automatically generated content
2025-01-01 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Plaintext.pm (_process_text_internal): use a hash
to substitute --- before -- instead of using a control character as
placeholder, in case a binary file with that character is given in
input. Also to get the same output as in C.
* tp/tests/formatting/Makefile.am (EXTRA_DIST),
tp/tests/formatting/foo.info: add an input file for the
info_extension_warning test such as to have an output independent of
the build directory location.
2024-12-31 Gavin Smith <gavinsmith0123@gmail.com>
Add pot headers to advertise both translation domains
* po/texinfo.pot-header,
* po_document/texinfo_document.pot-header: Add headers to be
used at the start of texinfo.pot and texinfo_document.pot. This
will hopefully encourage more translators to translate the
"texinfo_document" domain as well as "texinfo".
* Makefile.am (EXTRA_DIST): Reference these files as they are
not distributed otherwise.
2024-12-31 Gavin Smith <gavinsmith0123@gmail.com>
Reset linemacro counter
* tp/Texinfo/XS/parsetexi/macro.c (expand_linemacro_arguments):
Declare COUNTER object as a local variable as it is not used
outside the function. Call counter_reset before and after using
it.
* tp/Texinfo/XS/parsetexi/counter.c (counter_element_value):
adjust formatting.
2024-12-31 Gavin Smith <gavinsmith0123@gmail.com>
Separate sui generis tp/t tests
* tp/t/01use.t,
* tp/t/accents.t,
* tp/t/automatic_menus.t,
* tp/t/automatic_nodes.t,
* tp/t/convert_to_text.t,
* tp/t/do_master_menu.t,
* tp/t/index_before_item.t,
* tp/t/no_structure_test.t,
* tp/t/nodenormalization.t,
* tp/t/paragraph.t,
* tp/t/protect_character_in_texinfo.t,
* tp/t/raw_text_converter.t,
* tp/t/reference_to_text_in_tree.t,
* tp/t/same_parser_multiple_files.t,
* tp/t/test_brace_count.t,
* tp/t/test_converter_option.t,
* tp/t/test_document.t,
* tp/t/test_fill_gaps_in_sectioning.t,
* tp/t/test_is_content_empty.t,
* tp/t/test_parse_texi_line.t,
* tp/t/test_protect_contents.t,
* tp/t/test_protect_hashchar_at_line_beginning.t,
* tp/t/test_sort.t,
* tp/t/test_tree_copy.t:
Move all these tests to a subdirectory, tp/t/z_misc. These
are the tests that do not use the tp/t/test_utils.pl framework.
This makes it clearer which tests may need manual updating as
"maintain/all_tests.sh generate" won't work for these. It also
means that our instructions for running these tests with valgrind
(by changing Perl::Destruct::Level test_utils.pl) do not work and
this will make this exception more apparent.
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
Italic correction on def line
* doc/texinfo.tex (\opnr, \cpnr):
add an italic correction before parenthesis.
(\defunargs) <@set codevaristt>:
add a kern at end of redefintion of @var to prevent italic correction.
2024-12-30 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): free macro expansion file output
files information.
2024-12-30 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/convert_utils.c (register_unclosed_file),
tp/Texinfo/XS/main/utils.c (new_output_files_information)
(allocate_file_stream): add allocate_file_stream based on
register_unclosed_file code, with code doing the allocation of a
FILE_STREAM in OUTPUT_FILES_INFORMATION unclosed_files. Add
new_output_files_information.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_converter_output), tp/Texinfo/XS/convert/texinfo.c
(txi_converter_output), tp/Texinfo/XS/main/converter_types.h
(OUTPUT_TEXT_FILES_INFO), tp/Texinfo/XS/main/get_perl_info.c
(get_output_files_information): in call_converter_output, call also
converter->output_files_information and return both the output text
and output files information in OUTPUT_TEXT_FILES_INFO struct.
Add get_output_files_information to setup OUTPUT_FILES_INFORMATION
based on Perl data returned by converter->output_files_information.
Copy opened_files and unclosed_files returned by call_converter_output
to the converter output_files_information in txi_converter_output.
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
* info/scan.c (INFO_QUOTE, INFO_QUOTE_STR):
Define to avoid using \177 literals or equivalent. This should
make the purpose of the code clearer.
(scan_node_contents, read_quoted_string)
(scan_reference_target, scan_reference_label): Use.
(scan_reference_label): Do not check for INFO_QUOTE in a place
it should not be necessary.
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
". " terminator for index entry node name
* info/scan.c (scan_reference_target):
First check for a ". " and ".\n" terminator for node name in menu,
rather than just a ".". This allows index entries referring to
nodes with "." in their names. Report from Bruno Haible.
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
* info/scan.c [__hpux]: remove define of __va_copy which isn't
used in this file.
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
Remove def formatting font switching
* doc/texinfo.tex (\cpnr): remove conditional switch to \sl
font after a close bracket (but only for the outermost level of
brackets).
(\infirstlevel): remove now unused macro
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
Remove \bfafterword for def formatting
* doc/texinfo.tex (\bfafterword): Remove. This made the
second word in parentheses bold on a definition line, but
only after an &keyword. So in "@defun func &word (foo bar)",
"bar" would be printed in bold.
I do not know the purpose of this but it is presumably something
to do with Emacs Lisp syntax. But in some cases in the Emacs Lisp
manual this font style appeared inappropriate, for example in
@defmac cl-defmethod name [qualifier] arguments [&context (expr spec)@dots{}] &rest [docstring] body
the word "spec" was in bold, and nothing else. As no attempt is
made to do anything like this in texi2any and it is likely not
appropriate in many cases, we are better getting rid of the feature.
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\boldbrax, \parenbrackglpyhs):
Rename \boldbrax as it is not just for square brackets and
does not only use bold.
(\clnr, \cpnr): Rename to \cpnr as the old name does not
seem to make sense.
(\opnr, \cpnr, \lbrb, \rbrb):
Add comments about what the names of the macros stand for.
2024-12-30 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Text.pm (converter_line_error)
(converter_document_warn, get_converter_errors): implement the
functions needed in Texinfo::Convert::Utils::expand_verbatiminclude to
get the error messages by using the Texinfo::Convert::Converter code.
* tp/Texinfo/XS/convert/ConvertXS.xs (text_convert_tree),
tp/Texinfo/XS/main/convert_to_text.c (destroy_text_options)
(convert_to_text_internal), tp/Texinfo/XS/main/convert_to_text.h
(TEXT_OPTIONS): add ERROR_MESSAGE_LIST error_messages field to
TEXT_OPTIONS. Use if for verbatiminclude if there is no associated
converter, be it text or other output converter, which means that we
are in C called from Perl Text Converter. Pass the error_messages
information back to Perl.
* tp/Texinfo/Convert/Text.pm (import): use a hash to specify overriden
functions.
2024-12-30 Gavin Smith <gavinsmith0123@gmail.com>
* tp/tests/run_parser_all.sh (post_process_output):
Do not create raw output directory except in certain cases,
as stderr output is no longer filtered for all tests.
2024-12-29 Gavin Smith <gavinsmith0123@gmail.com>
No skipping lines after no-arg macro at end of line
* doc/texinfo.tex (\endlineisspace, \ignoreactivenewline):
Replace \endlineisspace with \ignoreactivenewline.
(\macrodef) <no args>: Call \ignoreactivenewline. Rather
than changing the catcode of newline to space so that newlines
following the macro name are skipped, this only changes the definition
of active newline so that it is ignored. This is an issue if
the macro is called at the end of a line inside an environment
such as @example where newlines are active, at the end of a line.
* doc/texinfo-tex-test.texi (Braceless at end of line):
update test cases.
2024-12-29 Gavin Smith <gavinsmith0123@gmail.com>
* tp/tests/run_parser_all.sh (post_process_output):
Remove code stripping out lines with file names from output
as we unconditionally use forward slash as the directory separator,
so results should not be different on MS-Windows.
2024-12-28 Gavin Smith <gavinsmith0123@gmail.com>
Move defines out of system.h
* system.h [O_BINARY]:
Remove some system-dependent defines.
* info/info.h [O_BINARY]:
Re-add defines which were relevant to 'info'.
* install-info/install-info.c: [O_BINARY]
Re-add defines for NULL_DEVICE.
2024-12-28 Gavin Smith <gavinsmith0123@gmail.com>
Rename config.in to config.h.in.
* configure.ac (AM_INIT_AUTOMAKE),
* tp/Texinfo/XS/configure.ac (AM_INIT_AUTOMAKE):
Move config.in to config.h.in.
2024-12-28 Gavin Smith <gavinsmith0123@gmail.com>
Remove DJGPP support
* configure.ac,
* tp/Texinfo/XS/configure.ac:
Do not check for "msdosdjgpp" in $host. Comments changed.
* tp/Texinfo/XS/main/utils.c (null_device_names),
* tp/Texinfo/Common.pm (%null_device_file):
Remove special case for djgpp for checking for name of null
device.
* INSTALL,
* README,
* Makefile.am (EXTRA_DIST, po-check, po_document-check):
Remove djgpp subdirectory.
* djgpp/config.sed: deleted
* djgpp/README: deleted
* djgpp/config.bat: deleted
* djgpp/config.site: deleted
2024-12-27 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): add set_message_encoding and set
the variable to the customized MESSAGE_ENCODING value. Use
set_message_encoding for calls to txi_handle_*error_messages.
* tp/Texinfo/XS/convert/texinfo.c (txi_parser): remove locale_encoding
argument, take it from options_list only. Update caller.
2024-12-27 Patrice Dumas <pertusus@free.fr>
Raw text converter in C
* tp/Texinfo/XS/convert/converter.c, tp/Texinfo/XS/main/utils.c
(STRING_AND_LEN, texinfo_extensions, remove_extension, canonpath)
(determine_files_and_directory, texinfo_input_file_basename): move
remove_extension and canonpath to utils.c. Create
texinfo_input_file_basename in utils.c based on
determine_files_and_directory code, move STRING_AND_LEN and
texinfo_extensions to utils.c.
* tp/Texinfo/XS/convert/converter.c (apply_converter_info)
(write_or_return), tp/Texinfo/XS/main/converter_types.h
(ENCODING_CONVERSION): make apply_converter_info and write_or_return
public, move ENCODING_CONVERSION to converter_types.h.
* tp/Texinfo/XS/convert/converter.c (init_generic_converter)
(copy_translated_commands, free_translated_commands)
(apply_converter_info, clear_converter_initialization_info)
(destroy_converter_initialization_info)
(copy_converter_initialization_info),
tp/Texinfo/XS/main/converter_types.h (TRANSLATED_COMMAND_LIST)
(CONVERTER, CONVERTER_INITIALIZATION_INFO), tp/Texinfo/XS/main/utils.c
(add_translated_command, clear_translated_commands),
tp/Texinfo/XS/main/build_perl_info.c (set_translated_commands,
get_converter_info_from_sv): add TRANSLATED_COMMAND_LIST for
translated command list with the number of items. Use it instead of
TRANSLATED_COMMAND arrays in CONVERTER_INITIALIZATION_INFO and
CONVERTER. Add add_translated_command and clear_translated_commands
and modify the other functions. Update callers.
* tp/Texinfo/XS/Makefile.am (C_libtexinfo_convert_sources),
tp/Texinfo/XS/convert/rawtext_converter_api.c (rawtext_converter)
(initialize_options_encoding, rawtext_output, rawtext_convert)
(rawtext_convert_tree), tp/Texinfo/XS/convert/converter.c
(converter_format_data), tp/Texinfo/XS/main/converter_types.h (enum
converter_format), tp/Texinfo/XS/texi2any.c (formats_table): add
rawtext converter.
* tp/Texinfo/Convert/Text.pm (_initialize_options_encoding): change a
variable name.
2024-12-26 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/converter.c (converter_format_data)
(converter_converter), tp/Texinfo/XS/convert/converter.h
(CONVERTER_FORMAT_DATA): add converter_converter field in
CONVERTER_FORMAT_DATA and use it in converter_converter to be able to
do a different converter initialization for a format.
* tp/Texinfo/XS/convert/converter.c (set_converter_init_information),
tp/texi2any.pl: handle NULL/undef converter_defaults return.
2024-12-25 Patrice Dumas <pertusus@free.fr>
PlainTexinfo converter in C
* tp/Texinfo/Convert/PlainTexinfo.pm (%defaults),
tp/Texinfo/Convert/converters_defaults.txt (plaintexinfo_converter):
add PlainTexinfo converter defaults to converters_defaults.txt.
* tp/Texinfo/XS/convert/converter.c (converter_defaults)
(converter_conversion_initialization): add default implementations.
* tp/Texinfo/XS/convert/converter.h (CONVERTER_FORMAT_DATA),
tp/Texinfo/XS/convert/converter.c (write_or_return)
(converter_output_tree): implement converter_output_tree.
* tp/Texinfo/XS/Makefile.am (C_libtexinfo_convert_sources),
tp/Texinfo/XS/convert/plaintexinfo_converter_api.c
(plaintexinfo_converter_defaults, plaintexinfo_output)
(plaintexinfo_convert, plaintexinfo_convert_tree): implement a
converter for PlainTexinfo.
* tp/Texinfo/XS/texi2any.c (formats_table),
tp/Texinfo/XS/convert/converter.c (converter_format_data):
register the PlainTexinfo C converter.
* tp/Texinfo/XS/texi2any.c (main): check if FORMAT_MENU string is set
before accessing.
* tp/Texinfo/XS/main/document.c (set_document_options): free temporary
document_options options list.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/document.c (set_document_options): replace
initialize_document_options by set_document_options, which uses a
temporary OPTIONS_LIST and uses program_options, cmdline_options
and init_files_options too to set document options. Similar to Perl
code setting MainConfig, filling with document options, calling
get_customization_options_hash and register_document_options.
* tp/Texinfo/XS/convert/texinfo.c (txi_complete_document),
tp/Texinfo/XS/texi2any.c (main): call set_document_options in main
program, not in txi_complete_document.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/customization_options.c
(show_options_list_options_set), tp/Texinfo/XS/main/utils.c
(sort_strings_list, join_strings_list): add functions to sort and join
strings list, and function to show the options set in OPTIONS_LIST,
to be used for debugging.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): set program_file to be "texi2any"
if TEST is set.
* tp/Texinfo/XS/texi2any.c (main): if FORMAT_MENU is not set at all,
consider that menus are to be checked.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): reset the format_specification to
the converted format format_specification if the output format is
different from the converted format.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/maintain/change_perl_modules_version.sh,
tp/Texinfo/XS/configure.ac (TEXINFO_DTD_VERSION)
(TEXINFO_DTD_VERSION_CONFIG): add TEXINFO_DTD_VERSION to
tp/Texinfo/XS/configure.ac. Synchronize with top-level configure.ac
value in change_perl_modules_version.sh, set as
TEXINFO_DTD_VERSION_CONFIG in AC_DEFINE_UNQUOTED.
* tp/Texinfo/XS/convert/texinfo.c (txi_set_base_default_options):
set TEXINFO_DTD_VERSION based on TEXINFO_DTD_VERSION_CONFIG.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c (main): load HTML Perl module based on init
files being loaded but also based on customization variables values
requiring Perl, using the same rules as in build_html_perl_info.c
html_pass_conversion_initialization. Determine if
CONVERT_TO_LATEX_IN_MATH will be set as in
html_initialize_output_state.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Config.pm (%XS_overrides), tp/Texinfo/XS/main/ConfigXS.xs
(texinfo_set_format_from_init_file), tp/Texinfo/XS/main/txi_config.c
(texinfo_set_format_from_init_file, GNUT_get_format_from_init_file),
tp/Texinfo/XS/texi2any.c (main): add Texinfo::Config
format_from_init_file XS interface.
* tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_append): set
an empty string if call_latex_convert_to_latex_math returns NULL.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/customization_options.c
(new_converter_initialization_info),
tp/Texinfo/XS/convert/converter.c: move
new_converter_initialization_info to customization_options.c such that
it may be called in get_perl_info.c.
* tp/Texinfo/XS/convert/get_converter_perl_info.c,
tp/Texinfo/XS/main/get_perl_info.c (set_translated_commands)
(get_deprecated_config_directories_sv, get_converter_info_from_sv):
move to get_perl_info.c such that it is available to functions in
call_conversion_perl.c.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_converter_converter_defaults), tp/Texinfo/XS/convert/texinfo.c
(txi_converter_format_defaults): add call_converter_converter_defaults
to get converter defaults from Perl. Add module argument to
txi_converter_format_defaults and call
call_converter_converter_defaults if set.
* tp/Texinfo/XS/main/utils.c (main): do not exist explicitly,
handle_errors should exit if there are errors, otherwise there should
be a normal exit.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/ctexi2any.pl: add a ctexi2any wrapper that can be called as a
Perl script, to be called for tests.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/ConfigXS.xs (texinfo_set_from_init_file),
tp/Texinfo/XS/main/txi_config.c (warn_obsolete_options)
(texinfo_find_init_file_option_name, GNUT_set_from_init_file):
warn for obsolete options and ignore. This is different from Perl
where values and option names may be mapped.
2024-12-25 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am (C_libtexinfo_sources),
tp/Texinfo/XS/main/txi_config.c (GNUT_initialize_customization)
(GNUT_get_conf, GNUT_decode_input, GNUT_encode_message)
(txi_config_document_warn, set_option_value)
(GNUT_set_customization_default, GNUT_set_from_cmdline)
(GNUT_set_from_init_file, txi_config_add_to_option_list)
(txi_config_remove_from_option_list), tp/Texinfo/XS/texi2any.c:
move configuration related functions out of texi2any.c to the new
main/txi_config.c file to get an interface similar to Texinfo::Config.
* tp/Makefile.am (modulesdir), tp/Texinfo/Config.pm (%XS_overrides)
(import), tp/Texinfo/ConfigXS.pm, tp/Texinfo/XS/Makefile.am
(xs_LTLIBRARIES, ConfigXS_la_*), tp/Texinfo/XS/main/txi_config.c
(texinfo_get_conf_by_name) (texinfo_find_command_line_option_name)
(texinfo_find_init_file_option_name)
(texinfo_command_line_option_add_option_number): add an XS interface
for Texinfo::Config functions related to customization options.
2024-12-24 Patrice Dumas <pertusus@free.fr>
README-hacking, tp/Texinfo/XS/convert/call_conversion_perl.c: add
call_conversion_perl as needing ppport.h, and follow ppport.h
suggestion to include ppport.h.
2024-12-24 Patrice Dumas <pertusus@free.fr>
Update po files.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* po/POTFILES.in: replace teximakehtml.c by texi2any.c.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/texi2any.c, tp/Texinfo/XS/Makefile.am
(teximakehtml_SOURCES, ctexi2any_SOURCES): rename teximakehtml.c as
texi2any.c.
* tp/texi2any.pl: remove end of line from translated string.
* tp/Texinfo/XS/texi2any.c (main): use the leading message of
texi2any.pl.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (formats_table, long_options)
(main): add formats with Perl modules specifications and options.
Load the corresponding Perl module to output the format.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c (call_eval_use_module)
(call_config_GNUT_load_init_file), tp/Texinfo/XS/convert/texinfo.c
(txi_converter_output_format_setup), tp/Texinfo/XS/teximakehtml.c
(main): add call_eval_use_module that evals use module to load a
module. Pass external_module to txi_converter_output_format_setup
to call call_eval_use_module.
* tp/init/book.pm (book_unit_file_name): always return a two elements
list.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): add
parentheses to Cwd::abs_path to avoid being considered as a bareword.
Found in the opencsw CI.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm: remove _print_command_args_texi, it
is better to call Texinfo::Convert::Texinfo functions.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/HTML.pm (_convert),
tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_append):
remove the condition on arguments_list being set, it is always the
case.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/HTML.pm (_convert),
tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_append): check
only that brace command is not empty when determining if there are
arguments, as other commands cannot be empty.
* tp/Texinfo/Convert/Text.pm: change in comments.
2024-12-24 Patrice Dumas <pertusus@free.fr>
always use arguments being line_arg to determine if item in table
* tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/HTML.pm
(_convert_item_command, _convert), tp/Texinfo/Convert/TexinfoMarkup.pm
(_convert), tp/Texinfo/Convert/Text.pm (_convert),
tp/Texinfo/Convert/TextContent.pm (_convert),
tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_append),
tp/Texinfo/XS/convert/format_html.c (html_convert_item_command),
tp/Texinfo/XS/main/builtin_commands.c (element_builtin_data_cmd):
always check that the argument is a line_arg to determine that an item
is to be considered a line command, in a @table or similar, instead of
using the type of the parent element,
2024-12-24 Patrice Dumas <pertusus@free.fr>
rename argument type as arguments_line
* tp/Texinfo/ParserNonXS.pm (_parse_macro_command_line)
(_handle_line_command, _handle_block_command),
tp/Texinfo/Structuring.pm (new_block_command),
tp/Texinfo/Transformations.pm (_new_node),
tp/Texinfo/XS/main/element_types.txt,
tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command)
(handle_block_command), tp/Texinfo/XS/parsetexi/macro.c
(parse_macro_command_line),
tp/Texinfo/XS/structuring_transfo/structuring.c (new_block_command),
tp/Texinfo/XS/structuring_transfo/transformations.c
(fill_gaps_in_sectioning, new_node): rename argument type as
arguments_line. Update users.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm (_parse_macro_command_line): reorganize
code to be more similar with the corresponding C code.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm (_parse_macro_command_line),
tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line): do not set
info arg_line for @*macro as the information is already in first
content argument text content. Make @macro element a block command
type in C.
* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): get @*macro line
from text in argument, the first content.
* tp/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo),
tp/Texinfo/XS/main/convert_to_texinfo.c (convert_to_texinfo_internal):
handle command with line arguments in first content before line
commands with arg_line.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm (_parse_macro_command_line)
(_expand_macro_arguments, _expand_linemacro_arguments)
(_lookup_macro_parameter, _expand_macro_body, _handle_macro)
(_process_macro_block_contents), tp/Texinfo/XS/main/element_types.txt,
tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line)
(lookup_macro_parameter, expand_macro_arguments)
(expand_linemacro_arguments, expand_macro_body, handle_macro),
tp/Texinfo/XS/parsetexi/parser.c (process_macro_block_contents): put
@*macro line in first content argument element as macro_line text
type. Put macro name in extra "macro_name" and formal args array in
extra "misc_args". Remove macro_name and macro_arg types, add
macro_name extra item.
* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): adapt to change in
tree.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo, _convert_args),
tp/Texinfo/XS/main/convert_to_texinfo.c (convert_args)
(convert_to_texinfo_internal): add convert_args for expansion of
arguments separated by commas.
* tp/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo),
tp/Texinfo/XS/main/convert_to_texinfo.c (convert_to_texinfo_internal):
change conditions to group more by type of commands.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Text.pm (_convert): check line_commands instead
of converted_formattable_line_commands. Remove
%converted_formattable_line_commands.
* tp/Texinfo/XS/main/convert_to_text.c (convert_to_text_internal):
modify code to be more similar to corresponding Perl code.
* tp/maintain/regenerate_commands_perl_info.pl: remove unused
%converter_flag variable.
2024-12-24 Patrice Dumas <pertusus@free.fr>
remove remaining args from line commands and from Texinfo tree
* tp/Texinfo/ParserNonXS.pm (_parse_float_type),
tp/Texinfo/XS/main/floats.c (parse_float_type): let callers determine
the element with the Texinfo code corresponding to the float
identifier. Update callers.
* tp/Texinfo/Common.pm (informative_command_value)
(index_content_element), tp/Texinfo/ParserNonXS.pm
(_is_container_empty, _end_line_misc_line, _end_line_starting_block)
(_handle_line_command, _handle_comma, _parse_line_command_args),
tp/Texinfo/Structuring.pm (new_block_command),
tp/Texinfo/Transformations.pm (_correct_level),
tp/Texinfo/XS/main/manipulate_indices.c (index_content_element),
tp/Texinfo/XS/main/utils.c (informative_command_value),
tp/Texinfo/XS/parsetexi/close.c (is_container_empty),
tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args)
(end_line_starting_block, end_line_misc_line),
tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command),
tp/Texinfo/XS/parsetexi/separator.c (handle_comma),
tp/Texinfo/XS/structuring_transfo/structuring.c (new_block_command),
tp/Texinfo/XS/structuring_transfo/transformations.c (correct_level):
use contents instead of args for non root line commands.
* tp/Texinfo/ManipulateTree.pm
(_relate_index_entries_to_table_items_in): avoid spurious
autovivification.
* tp/Texinfo/OutputUnits.pm (units_directions),
tp/Texinfo/XS/main/output_unit.c, (units_directions): use contents to
determine if a node has automatic directions.
* tp/Texinfo/Common.pm (_collect_commands_in_tree)
(_collect_commands_list_in_tree, debug_print_element, debug_hash),
tp/Texinfo/ManipulateTree.pm (_copy_tree, _remove_element_copy_info)
(modify_tree), tp/Texinfo/Translations.pm (_substitute),
tp/Texinfo/XS/main/build_perl_info.c (element_to_perl_hash),
tp/Texinfo/XS/main/debug.c (print_element_debug),
tp/Texinfo/XS/main/manipulate_tree.c (copy_tree_internal)
(remove_element_copy_info, modify_tree),
tp/Texinfo/XS/main/translations.c (substitute),
tp/Texinfo/XS/main/tree.c (destroy_element)
(destroy_element_and_children), tp/Texinfo/XS/main/tree_types.h
(CONTAINER), tp/Texinfo/XS/parsetexi/debug_parser.c
(print_element_debug_parser), tp/t/test_utils.pl (@contents_keys):
remove code going through args as there are no args anymore. Remove
add_to_element_args, insert_into_args, insert_list_slice_into_args,
remove_from_args, pop_element_from_args, last_args_child and
args_child_by_index from tree.c.
* tp/Texinfo/Convert/DocBook.pm (_convert),
tp/Texinfo/Convert/LaTeX.pm (_convert),
tp/Texinfo/Convert/Plaintext.pm (_convert), tp/Texinfo/Convert/Text.pm
(_convert), tp/Texinfo/XS/main/convert_to_text.c
(convert_to_text_internal): return right after a line command is
formatted.
* tp/Texinfo/Convert/HTML.pm (_convert): add $data_command_name set
to item_LINE for @item in @*table, as in C.
* tp/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo),
tp/Texinfo/XS/main/convert_to_texinfo.c (convert_to_texinfo_internal):
reorganize code, inlining _expand_cmd_args_to_texi in
_convert_to_texinfo and updating for the change of args to contents
for line commands.
* tp/Texinfo/Convert/Converter.pm
(normalized_sectioning_command_filename)
(format_comment_or_return_end_line, table_item_content_tree)
(comma_index_subentries_tree), tp/Texinfo/Convert/DocBook.pm
(conversion_output_begin, _index_entry)
(_convert_argument_and_end_line, _convert), tp/Texinfo/Convert/HTML.pm
(_internal_command_tree, command_description)
(_convert_quotation_command, _convert_item_command)
(_convert_printindex_command, _convert_menu_entry_type)
(_prepare_simpletitle, _prepare_converted_output_info, _convert),
tp/Texinfo/Convert/IXIN.pm, tp/Texinfo/Convert/Info.pm (_info_header),
tp/Texinfo/Convert/LaTeX.pm (_prepare_conversion, _title)
(_include_file_name, _convert),
tp/Texinfo/Convert/NodeNameNormalization.pm (_convert),
tp/Texinfo/Convert/Plaintext.pm (_convert),
tp/Texinfo/Convert/TexinfoMarkup.pm (_end_line_spaces, _texinfo_line)
(_convert_argument_and_end_line, _convert), tp/Texinfo/Convert/Text.pm
(_convert), tp/Texinfo/Convert/TextContent.pm (_convert),
tp/Texinfo/DebugTree.pm (_print_tree), tp/Texinfo/Indices.pm
(_idx_leading_text_or_command), tp/Texinfo/XS/convert/convert_html.c
(html_prepare_simpletitle, html_prepare_converted_output_info)
(html_convert_tree_append), tp/Texinfo/XS/convert/converter.c
(normalized_sectioning_command_filename, table_item_content_tree)
(comma_index_subentries_tree), tp/Texinfo/XS/convert/format_html.c
(html_command_description, html_convert_quotation_command)
(html_convert_item_command, html_convert_printindex_command)
(html_convert_menu_entry_type), tp/Texinfo/XS/main/convert_to_text.c
(convert_to_text_internal), tp/Texinfo/XS/main/manipulate_indices.c
(idx_leading_text_or_command),
tp/Texinfo/XS/main/node_name_normalization.c
(convert_to_normalized_internal), tp/ext/epub3.pm (epub_finish),
tp/init/documentation_examples.pm
(my_test_documentation_convert_index_entry_command_type),
tp/t/init/ignore_and_comments_output.init (convert_comment_command),
tp/t/init/redefine_need.init (my_need_formatting): update for
replacement of args by contents for line commands for conversion.
* tp/t/01use.t ($manual_tree): update for replacement of args by
contents.
2024-12-24 Patrice Dumas <pertusus@free.fr>
root line commands in 'argument' container in contents
* tp/Texinfo/Common.pm (is_content_empty), tp/Texinfo/XS/main/utils.c
(is_content_empty): ignore argument type.
* tp/Texinfo/XS/convert/format_html.c (html_open_quotation_command):
remove incorrect const.
* tp/Texinfo/Common.pm (get_label_element), tp/Texinfo/XS/main/utils.c
(get_label_element), tp/Texinfo/ParserNonXS.pm (_end_line_misc_line)
(_check_valid_nesting, _handle_line_command)
(_process_remaining_on_line, _parse_line_command_args),
tp/Texinfo/Structuring.pm (check_nodes_are_referenced, nodes_tree)
(new_node_menu_entry, new_block_command, new_complete_node_menu)
(_print_down_menus), tp/Texinfo/Transformations.pm
(fill_gaps_in_sectioning, _new_node)
(_get_non_automatic_nodes_with_sections),
tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args)
(end_line_misc_line), tp/Texinfo/XS/parsetexi/handle_commands.c
(handle_line_command), tp/Texinfo/XS/parsetexi/parser.c
(check_valid_nesting, process_remaining_on_line),
tp/Texinfo/XS/structuring_transfo/structuring.c (new_block_command)
(check_nodes_are_referenced, complete_node_tree_with_menus, nodes_tree)
(new_node_menu_entry, new_complete_node_menu, print_down_menus),
tp/Texinfo/XS/structuring_transfo/transformations.c
(fill_gaps_in_sectioning, new_node)
(insert_nodes_for_sectioning_commands)
(get_non_automatic_nodes_with_sections): put arguments of root line
commands (@node, sectioning commands) in the first content in the
argument container type, remove args.
* tp/Texinfo/Convert/Converter.pm
(normalized_sectioning_command_filename, set_output_units_files)
(format_comment_or_return_end_line, sort_element_counts),
tp/Texinfo/Convert/DocBook.pm (conversion_output_begin)
(_convert_argument_and_end_line, _convert), tp/Texinfo/Convert/HTML.pm
(_internal_command_tree, _convert_heading_command)
(_file_header_information, _prepare_converted_output_info)
(_node_redirections), tp/Texinfo/Convert/LaTeX.pm (_convert),
tp/Texinfo/Convert/NodeNameNormalization.pm (_convert),
tp/Texinfo/Convert/Plaintext.pm (process_footnotes, format_contents)
(_convert), tp/Texinfo/Convert/Texinfo.pm
(root_heading_command_to_texinfo), tp/Texinfo/Convert/TexinfoMarkup.pm
(_convert), tp/Texinfo/Convert/Text.pm (_convert),
tp/Texinfo/XS/convert/convert_html.c (fulltitle_cmds)
(html_prepare_converted_output_info, html_node_redirections),
tp/Texinfo/XS/convert/converter.c
(normalized_sectioning_command_filename),
tp/Texinfo/XS/convert/format_html.c (html_internal_command_tree)
(file_header_information, html_convert_heading_command),
tp/Texinfo/XS/main/convert_to_texinfo.c
(root_heading_command_to_texinfo),
tp/Texinfo/XS/main/convert_to_text.c (convert_to_text_internal),
tp/Texinfo/XS/main/node_name_normalization.c
(convert_to_normalized_internal), tp/ext/epub3.pm (epub_finish),
tp/init/chm.pm (chm_init): update conversion code for change in root
commands tree.
2024-12-24 Patrice Dumas <pertusus@free.fr>
use contents for definition lines instead of args
* tp/Texinfo/ParserNonXS.pm (_handle_line_command)
(_handle_block_command), tp/Texinfo/Translations.pm
(complete_indices), tp/Texinfo/XS/parsetexi/handle_commands.c
(handle_line_command, handle_block_command),
tp/Texinfo/XS/parsetexi/indices.c (complete_indices): use contents for
definition lines in tree instead of args.
* tp/Texinfo/Convert/DocBook.pm (_convert),
tp/Texinfo/Convert/LaTeX.pm (_convert),
tp/Texinfo/Convert/Plaintext.pm (_convert),
tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tp/Texinfo/Convert/Text.pm (_convert): return right after converting
definition line.
* tp/Texinfo/Convert/DocBook.pm (_convert_def_line),
tp/Texinfo/Convert/TexinfoMarkup.pm (_end_line_spaces)
(_convert_def_line), tp/Texinfo/Convert/Utils.pm
(definition_arguments_content, definition_category_tree),
tp/Texinfo/XS/main/convert_utils.c (definition_arguments_content)
(definition_category_tree): update for change in definition line in
tree.
* tp/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo)
(_expand_cmd_args_to_texi), tp/Texinfo/XS/main/convert_to_texinfo.c
(expand_cmd_args_to_texi, convert_to_texinfo_internal): update for
change in definition line in tree. Simplify code by handling
definition lines as regular contents containers and by simplifying the
cases if arguments formatting.
* tp/Texinfo/Convert/TextContent.pm (%ignored_types, _convert): update
for change in definition line in tree. Format argument container type
like any other container.
2024-12-24 Patrice Dumas <pertusus@free.fr>
remaining non-definition block commands 'argument' container in contents
* tp/Texinfo/ParserNonXS.pm (_gather_def_item)
(_end_line_starting_block, _handle_block_command),
tp/Texinfo/XS/parsetexi/def.c (gather_def_item),
tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block),
tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command): put
arguments of block commands with items in the first content in the
argument container type, remove args.
* tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/HTML.pm
(_convert_preformatted_command, _open_quotation_command, _convert),
tp/Texinfo/Convert/LaTeX.pm (_set_environment_options, _convert)
(convert_math_to_images), tp/Texinfo/Convert/Plaintext.pm (_convert),
tp/Texinfo/Convert/TextContent.pm (_convert),
tp/Texinfo/XS/convert/convert_html.c (html_convert_tree_append),
tp/Texinfo/XS/convert/format_html.c
(html_convert_preformatted_command, html_open_quotation_command),
tp/ext/highlight_syntax.pm (_get_language)
(highlight_preformatted_command), tp/ext/latex2html.pm (l2h_process),
tp/ext/tex4ht.pm (tex4ht_prepare): update for change in quotation,
cartouche and example tree.
2024-12-24 Patrice Dumas <pertusus@free.fr>
block commands with items in 'argument' container in contents
* tp/Texinfo/ParserNonXS.pm (_gather_previous_item)
(_close_command_cleanup, _close_command_cleanup, _end_line_misc_line)
(_end_line_starting_block, _parent_of_command_as_argument)
(_register_command_as_argument, _handle_other_command)
(_handle_block_command, _handle_open_brace),
tp/Texinfo/XS/convert/format_html.c (html_convert_itemize_command),
tp/Texinfo/XS/parsetexi/close.c (close_command_cleanup),
tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block)
(end_line_misc_line), tp/Texinfo/XS/parsetexi/handle_commands.c
(handle_other_command, handle_block_command),
tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item),
tp/Texinfo/XS/parsetexi/parser.c (parent_of_command_as_argument)
(register_command_as_argument), tp/Texinfo/XS/parsetexi/separator.c
(handle_open_brace): put arguments of block commands with items in the
first content in the argument container type, remove args.
* tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/HTML.pm
(_convert_itemize_command), tp/Texinfo/Convert/LaTeX.pm
(_set_environment_options, _convert), tp/Texinfo/Convert/Plaintext.pm
(_convert), tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tp/Texinfo/Convert/TextContent.pm (%ignored_types, _convert),
tp/init/html32.pm (html32_convert_item_command): update conversion for
change in block commands with items tree.
2024-12-24 Patrice Dumas <pertusus@free.fr>
@float arguments in 'argument' container in contents instead of args
* tp/Texinfo/Common.pm (get_label_element), tp/Texinfo/ParserNonXS.pm
(_parse_float_type, _end_line_starting_block, _handle_block_command)
(_handle_comma, _process_remaining_on_line),
tp/Texinfo/XS/main/floats.c (parse_float_type),
tp/Texinfo/XS/main/utils.c (get_label_element),
tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block),
tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command),
tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
tp/Texinfo/XS/parsetexi/separator.c (handle_comma): put @float
line arguments in argument container first in contents, remove float
args.
* tp/Texinfo/Convert/Converter.pm (format_comment_or_return_end_line)
(float_type_number, float_name_caption), tp/Texinfo/Convert/DocBook.pm
(%ignored_types), tp/Texinfo/Convert/HTML.pm
(%default_types_conversion), tp/Texinfo/Convert/LaTeX.pm
(%ignored_types, _prepare_floats, _convert),
tp/Texinfo/Convert/Plaintext.pm (%ignored_types, _convert),
tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi),
tp/Texinfo/Convert/TexinfoMarkup.pm (_end_line_spaces)
(_convert_argument_and_end_line, _convert), tp/Texinfo/Convert/Text.pm
(%ignored_types, _convert), tp/Texinfo/XS/convert/converter.c
(float_type_number, float_name_caption),
tp/Texinfo/XS/convert/html_prepare_converter.c (ignored_types),
tp/Texinfo/XS/main/convert_to_texinfo.c (expand_cmd_args_to_texi),
tp/Texinfo/XS/main/convert_to_text.c (convert_to_text_internal): adapt
conversion to float argument being in in an argument container in
contents, and prepare more generally for block commands with arguments
in 'argument' container in contents.
2024-12-24 Patrice Dumas <pertusus@free.fr>
@*macro arguments in 'argument' container in contents instead of args
* tp/Texinfo/ParserNonXS.pm (_parse_macro_command_line)
(_expand_macro_arguments, _expand_linemacro_arguments)
(_lookup_macro_parameter, _expand_macro_body, _handle_macro)
(_process_macro_block_contents), tp/Texinfo/XS/main/element_types.txt
(argument), tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line)
(lookup_macro_parameter, expand_macro_arguments)
(expand_linemacro_arguments, expand_macro_body, handle_macro),
tp/Texinfo/XS/parsetexi/parser.c (process_macro_block_contents):
put @*macro commands argument first in contents in a new container
type, argument. Do not use command args anymore.
* tp/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo),
tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
tp/Texinfo/Transformations.pm (_protect_hashchar_at_line_beginning),
tp/Texinfo/XS/main/convert_to_texinfo.c (convert_to_texinfo_internal),
tp/Texinfo/XS/structuring_transfo/transformations.c
(protect_hashchar_at_line_beginning_internal): update for the change
in @*macro arguments.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): use contents
instead of args for @math.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/element_types.txt: remove unused internal type
internal_spaces_after_cmd_before_arg.
2024-12-24 Patrice Dumas <pertusus@free.fr>
Use contents instead of args for brace commands in Texinfo tree
* tp/Texinfo/ParserNonXS.pm (_handle_comma): rename $brace_command as
$command_element.
* tp/Texinfo/Common.pm (get_label_element), tp/Texinfo/ParserNonXS.pm
(_end_line_starting_block, _new_value_element, _handle_open_brace)
(_handle_close_brace, _handle_comma, _process_remaining_on_line),
tp/Texinfo/Translations.pm (_substitute_element_array),
tp/Texinfo/XS/main/build_perl_info.c (element_to_perl_hash),
tp/Texinfo/XS/main/translations.c (substitute_element_array),
tp/Texinfo/XS/main/utils.c (get_label_element),
tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block),
tp/Texinfo/XS/parsetexi/parser.c (new_value_element)
(process_remaining_on_line), tp/Texinfo/XS/parsetexi/separator.c
(handle_open_brace, handle_close_brace, handle_comma): use contents
instead of args for brace command arguments in Texinfo tree.
* tp/Texinfo/Structuring.pm (check_nodes_are_referenced),
tp/Texinfo/Transformations.pm (fill_gaps_in_sectioning)
(_reference_to_arg, _protect_hashchar_at_line_beginning),
tp/Texinfo/ManipulateTree.pm (_new_asis_command_with_text)
(_protect_text, protect_first_parenthesis),
tp/Texinfo/XS/main/manipulate_tree.c (new_asis_command_with_text)
(protect_text), tp/Texinfo/XS/structuring_transfo/structuring.c
(check_nodes_are_referenced, associate_internal_references),
tp/Texinfo/XS/structuring_transfo/transformations.c
(protect_first_parenthesis, fill_gaps_in_sectioning)
(reference_to_arg_internal)
(protect_hashchar_at_line_beginning_internal): update structuring and
transformations for change of args to contents for brace commands.
* tp/Texinfo/Convert/Converter.pm (table_item_content_tree),
tp/Texinfo/Convert/DocBook.pm (conversion_output_begin, _index_entry)
(_convert), tp/Texinfo/Convert/HTML.pm (_internal_command_tree)
(_convert_explained_command, _convert_listoffloats_command)
(_convert_float_command, _convert_xref_commands)
(_convert_printindex_command, _default_format_single_footnote)
(_prepare_converted_output_info, _convert), tp/Texinfo/Convert/Info.pm
(format_ref, format_image), tp/Texinfo/Convert/LaTeX.pm (_title)
(_begin_document, _index_entry, _convert),
tp/Texinfo/Convert/NodeNameNormalization.pm (_convert),
tp/Texinfo/Convert/Plaintext.pm (%ignored_commands, process_footnotes)
(process_printindex, format_ref, image_formatted_text, format_image)
(_convert), tp/Texinfo/Convert/Texinfo.pm (_convert_to_texinfo)
(_expand_cmd_args_to_texi), tp/Texinfo/Convert/TexinfoMarkup.pm
(_convert), tp/Texinfo/Convert/Text.pm (_convert),
tp/Texinfo/Convert/Utils.pm (definition_category_tree)
(find_innermost_accent_contents), tp/Texinfo/Indices.pm
(_idx_leading_text_or_command), tp/Texinfo/ManipulateTree.pm
(_new_asis_command_with_text, _protect_text)
(protect_first_parenthesis), tp/Texinfo/XS/convert/convert_html.c
(html_prepare_converted_output_info, html_convert_tree_append)
(html_node_redirections), tp/Texinfo/XS/convert/converter.c
(table_item_content_tree), tp/Texinfo/XS/convert/format_html.c
(html_internal_command_tree, html_default_format_single_footnote)
(html_convert_explained_command, html_convert_xref_command)
(html_convert_float_command, html_convert_listoffloats_command)
(html_convert_printindex_command),
tp/Texinfo/XS/main/convert_to_texinfo.c (expand_cmd_args_to_texi)
(convert_to_texinfo_internal), tp/Texinfo/XS/main/convert_to_text.c
(convert_to_text_internal), tp/Texinfo/XS/main/convert_utils.c
(find_innermost_accent_contents),
tp/Texinfo/XS/main/manipulate_indices.c (idx_leading_text_or_command),
tp/Texinfo/XS/main/node_name_normalization.c
(convert_to_normalized_internal), tp/ext/latex2html.pm (l2h_process),
tp/ext/tex4ht.pm (tex4ht_prepare): update conversion for change of
args to contents for brace commands. call get_label_element more.
* tp/Texinfo/Convert/DocBook.pm (_convert),
tp/Texinfo/Convert/LaTeX.pm (_convert),
tp/Texinfo/XS/main/convert_to_text.c (convert_to_text_internal),
tp/Texinfo/XS/main/node_name_normalization.c
(convert_to_normalized_internal): return right after formatting brace
commands.
* tp/init/documentation_examples.pm
(my_test_documentation_convert_xref_commands), tp/t/01use.t,
tp/t/init/footnote_mark_in_inline_content.pm
(_texi2any_test_format_single_footnote_in_inline_content): update
tests init files and manually written tree.
* tp/t/09indices.t: change code order.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm (_expand_macro_arguments)
(_expand_linemacro_arguments, _handle_macro),
tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments)
(expand_linemacro_arguments, expand_macro_body, handle_macro): use
contents instead of args for macro call elements.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/ParserNonXS.pm (_place_source_mark)
(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/close.c,
tp/Texinfo/XS/parsetexi/end_line.c, tp/Texinfo/XS/parsetexi/parser.c
(process_remaining_on_line), tp/Texinfo/XS/parsetexi/separator.c,
tp/Texinfo/XS/parsetexi/source_marks.c (place_source_mark): put text
element for spaces appearing after a brace @-command name before the
opening brace directly in info spaces_after_cmd_before_arg instead of
using the brace command contents. There is no need for
_gather_spaces_after_cmd_before_arg anymore, remove, update callers.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): always use
forward slashes as file path elements delimiter.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Makefile.am (CLEANFILES): add load_txi_modules.
2024-12-24 Patrice Dumas <pertusus@free.fr>
tp/tests/run_parser_all.sh (check_info_math2img, no_dvipng)
(post_process_output): add support for INFO_MATH_IMAGES tests.
* autogen.sh, tp/tests/Makefile.am (other_tests_dirs), configure.ac
(AC_CONFIG_FILES), tp/tests/Makefile.onetst,
tp/tests/info_tex/Makefile.am, tp/tests/info_tex/tex_math.texi: add
test of INFO_MATH_IMAGES.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): return png
files relative to the directory where the info file is created.
2024-12-24 Patrice Dumas <pertusus@free.fr>
Implement INFO_MATH_IMAGES in Info
* tp/Texinfo/Convert/LaTeX.pm (_enc_usepackage, _latex_header):
separate _enc_usepackage to setup the usepackage related to encoding.
* tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): call
_enc_usepackage and encode output.
* tp/Texinfo/Convert/Info.pm (format_image_element),
tp/Texinfo/Convert/Plaintext.pm (format_image_element): rename
format_image as format_image_element.
* tp/Texinfo/Convert/Info.pm (format_image, format_image_element),
tp/Texinfo/Convert/Plaintext.pm (format_image): add format_image, to
do the low level formatting of image only. Note that the Plaintext
format_image is not called.
* tp/Texinfo/options_data.txt (INFO_MATH_IMAGES): add.
* TODO, tp/Texinfo/Convert/Plaintext.pm (conversion_initialization)
(_insert_image, _convert): implement INFO_MATH_IMAGES. Push a count
for @math and @displaymath with INFO_MATH_IMAGES to capture content.
Add _insert_image to output an image in case it is needed outside of
@image formatting, and use it for INFO_MATH_IMAGES @math and
@displaymath formatting.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Plaintext.pm (conversion_initialization)
(_convert): set block_math_commands to always be
default_preformatted_context_commands and
default_format_context_commands. Do not set dynamically anymore the
'preformatted_context_commands' and 'format_context_commands'.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/LaTeX.pm (convert_math_to_images): render math
@-commands Texinfo tree elements as images using LaTeX with the
preview package and dvipng.
* tp/Texinfo/Convert/Info.pm (output): preliminary code for the call
to convert_math_to_images.
2024-12-24 Patrice Dumas <pertusus@free.fr>
Remove letter column in printindex HTML formatting, improve formatting
* TODO, tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
tp/Texinfo/Data/default_css_element_class_styles.csv
tp/Texinfo/XS/convert/format_html.c (html_convert_printindex_command):
remove the letter column, there is no reason to indent with the letter
used as heading. Add classes for the letter as heading. Bigger fonts
for the letter, add some spacing. Report from Per Bothner.
* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
tp/Texinfo/Data/default_css_element_class_styles.csv,
tp/Texinfo/XS/convert/format_html.c (html_convert_printindex_command):
replace rule by table cell border in printindex formatting.
* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),: remove
the printindex indices formatting heading telling that the first
column is the index entry and the second one is the section, this
heading is not useful as it is only visible at the beginning of the
index, this is understandable without the heading and the formatting
structure is easier to follow without this heading.
* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
tp/Texinfo/XS/convert/format_html.c
(printindex_letters_head_foot_internal): add classes with the index
name replaced by index to be able to set CSS for all the indices for
summary letters tables and index entries table.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* Pod-Simple-Texinfo/pod2texi.pl: move end of lines out of translated
messages.
Update po files
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: move end of lines out of translated messages.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* po/POTFILES.in: add tp/Texinfo/XS/teximakehtml.c.
Update po files
2024-12-24 Patrice Dumas <pertusus@free.fr>
Update po files
2024-12-24 Patrice Dumas <pertusus@free.fr>
* Makefile.am (po-check): avoid a false positive.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS: run
gnulib-tool --add-import getopt-gnu
2024-12-24 Patrice Dumas <pertusus@free.fr>
Run gnulib --add-import under tp/Texinfo/XS.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/converter.c (free_converter_paths_information)
(setup_converter_paths_information), tp/Texinfo/XS/convert/converter.h
(INSTALLED_PATHS, UNINSTALLED_PATHS): add
free_converter_paths_information. Free previous conversion_paths_info
before setting them in setup_converter_paths_information.
* tp/Texinfo/XS/convert/converter.c (converter_setup): the function
can be called twice if called both from C and from a Perl converter
modules initialization called from C. Add a variable to avoid running
twice the code except for setting paths.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (locate_and_load_init_file)
(locate_and_load_extension_file, main): free strings and structures to
avoid memory leaks found with valgrind.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_load_init_file): add
embedded_interpreter argument, to be able to skip the call if there is
no embedded interpreter forced by the caller. Update caller.
* tp/Texinfo/XS/convert/texinfo.c (txi_customization_loading_setup),
tp/Texinfo/XS/main/api_to_perl.c (get_perl_scalar_reference_value)
(call_switch_to_global_locale, call_sync_locale),
tp/Texinfo/XS/main/xs_utils.c (set_no_perl_interpreter)
(get_no_perl_interpreter): add set_no_perl_interpreter and
get_no_perl_interpreter to be able to communicate that there is no
Perl interpreter even though the code is linked against Perl. Set it
in txi_customization_loading_setup. Avoid calling Perl functions if
set.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/Makefile.am
(libcallperl_libtexinfo_convert_la_SOURCES)
(libtexinfo_convertxs_la_SOURCES),
tp/Texinfo/XS/convert/call_conversion_perl.c (get_sv_converter),
tp/Texinfo/XS/convert/get_converter_perl_info.c: move
libcallperl_libtexinfo_convert.c to libcallperl_libtexinfo_convert,
and move get_sv_converter to libcallperl_libtexinfo_convert.c as it is
used in that file.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_config_GNUT_load_init_file), tp/Texinfo/XS/Makefile.am
(teximakehtml_SOURCES),
tp/Texinfo/XS/convert/replace_call_conversion_perl.c: add replacements
for call_conversion_perl.c functions to be used when not linked
against libtexinfo_convertxs.
* tp/Texinfo/XS/convert/texinfo.c (txi_customization_loading_setup)
(txi_load_init_file, txi_customization_loading_finish)
(txi_converter_setup, txi_converter_output),
tp/Texinfo/XS/teximakehtml.c (locate_and_load_init_file)
(locate_and_load_extension_file, main): move code calling
call_conversion_perl.c functions out of texi2makehtml.c to texinfo.c.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/call_conversion_perl.c (call_init_perl),
tp/Texinfo/XS/teximakehtml.c (main): call perl_run to have
load_txi_modules.pl executed. Report and check statuses.
* tp/Texinfo/XS/teximakehtml.c (main): put init files in a list when
they appear on the command line and load them only after the embedded
interpreter has been loaded.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/load_txi_modules.pl (BEGIN): load Texinfo::XSLoader in BEGIN
block and call set_XS_embedded to be sure that it is done before any
module with XS is loaded.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: use get_conf to determine if HTML_MATH and
HIGHLIGHT_SYNTAX are set to load extensions. Move code around.
* tp/Texinfo/XS/teximakehtml.c (locate_and_load_extension_file)
(main): load interpreter right after command-line options.
Load extension files based on customization variables set.
* tp/Texinfo/XS/teximakehtml.c (FORMAT_SPECIFICATION, main): handle
format needing an init file.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_set_base_default_options),
tp/Texinfo/XS/teximakehtml.c (main): set XS_STRXFRM_COLLATION_LOCALE
in main, remove embedded_interpreter txi_set_base_default_options
argument.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add options to
control embedded interpreter. Initialize embedded interpreter after
parsing the command-line.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/replace_perl_api_call.c
(call_translations_translate_string),
tp/Texinfo/XS/main/translations.c (translate_string): have
call_translations_translate_string return 0 if there is no external
translate_string.
In translate_string, even if use_external_translate_string is > 0,
continue with C gettext if there is no external translate_string.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/converter.c
(clear_converter_initialization_info), tp/Texinfo/XS/main/utils.c
(clear_deprecated_dirs_list): add.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_convert_converter), tp/Texinfo/XS/convert/texinfo.c
(txi_converter_initialization_setup, txi_converter_setup),
tp/Texinfo/XS/teximakehtml.c (main): separate
txi_converter_initialization_setup from txi_converter_setup.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/html_prepare_converter.c
(html_converter_customize): modify the external_* counters before
resetting the status.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/converter.c (free_generic_converter),
tp/Texinfo/XS/convert/ConvertXS.xs (generic_converter_init): hold a
reference to the converter in C. It is required if the converter is
not lexicaly associated to a Perl module, for instance when the
converter is created by a call to Perl method from C.
* tp/Texinfo/XS/Makefile.am (libtexinfo_convertxs_la_SOURCES),
tp/Texinfo/XS/convert/call_conversion_perl.c
(call_config_GNUT_load_init_file, call_init_perl, call_finish_perl),
tp/Texinfo/XS/main/call_perl_function.c: move code called from
embedded Perl to the new convert/call_conversion_perl.c file.
* tp/Texinfo/XS/convert/call_conversion_perl.c
(call_convert_converter, call_converter_output),
tp/Texinfo/XS/teximakehtml.c (formats_table, FORMAT_SPECIFICATION)
(main): add Perl module in FORMAT_SPECIFICATION, and add calls
tp converter converter and output Perl methods. Use it for HTML if
init files were loaded.
2024-12-24 Patrice Dumas <pertusus@free.fr>
force using XS when Perl interpreter is embedded
* tp/Texinfo/XSLoader.pm ($embedded_xs, set_XS_embedded)
(XS_parser_enabled, XS_structuring_enabled, XS_convert_enabled),
tp/load_txi_modules.pl: add set_XS_embedded to notify that the Perl
parser is embedded and set $embedded_xs. Call it from
load_txi_modules.pl.
* tp/Texinfo/Convert/HTML.pm (import): do not call _XS_format_setup if
Perl is embedded, as it has already been called by the C code.
2024-12-24 Patrice Dumas <pertusus@free.fr>
load initialization files in teximakehtml.c
* tp/Texinfo/XS/main/build_perl_info.c,
tp/Texinfo/XS/main/call_perl_function.c (newSVpv_byte): move
newSVpv_byte to call_perl_function.c.
* tp/Texinfo/XS/main/call_perl_function.c
(texinfo_convert_html_module_loaded, call_config_GNUT_load_init_file):
add call_config_GNUT_load_init_file.
* tp/Texinfo/XS/teximakehtml.c (warn_deprecated_dirs)
(locate_and_load_init_file, long_options, main): handle conf-dir and
init-file options. call call_config_GNUT_load_init_file through
locate_and_load_init_file when an init file is specified. Setup
directory lists related to init files.
2024-12-24 Patrice Dumas <pertusus@free.fr>
* tp/Makefile.am (converterdata_SCRIPTS, load_txi_modules): install
load_txi_modules.
* tp/Texinfo/XS/main/call_perl_function.c (call_init_perl),
tp/Texinfo/XS/teximakehtml.c (main): get file to load from
call_init_perl caller.
* tp/load_txi_modules.pl: add/remove loaded modules.
2024-12-24 Patrice Dumas <pertusus@free.fr>
ctexi2any C program for conversion to HTML with Perl embedding
* tp/load_txi_modules.pl, tp/Texinfo/XS/teximakehtml.c (main),
tp/Texinfo/XS/main/call_perl_function.c (xs_init, call_init_perl)
(call_finish_perl), tp/Texinfo/XS/Makefile.am (noinst_PROGRAMS)
(ctexi2any_SOURCES, ctexi2any_LDADD, ctexi2any_LDFLAGS)
(ctexi2any_CPPFLAGS): add load_txi_modules.pl, a new script that loads
the Texinfo modules, based on texi2any.pl beginning trimmed down.
Add call_init_perl and call_finish_perl to load a Perl interpreter
calling load_txi_modules.pl. In teximakehtml.c, if EMBED_PERL is
defined, call the functions to load an interpreter.
Add ctexi2any based on teximakehtml.c linking against libtexinfo*
libraries with EMBED_PERL defined.
* tp/Texinfo/XS/convert/texinfo.c (txi_general_setup)
(txi_set_base_default_options): add arguments to set
use_external_translate_string, and to be able to avoid setting
XS_STRXFRM_COLLATION_LOCALE. Update callers.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (main): really handle option setting a
flag. Set customization variable for debug option.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm (%valid_tree_transformations): remove
indent_menu_descriptions, it has been removed long ago.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm (%valid_tree_transformations),
tp/Texinfo/XS/convert/texinfo.h: reorder valid transformations. Add
STTF_fill_gaps_in_sectioning.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm (%valid_transformation), tp/t/test_utils.pl
(test): fix spelling of relate_index_entries_to_table_items. Update
tests using that transformation.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: remove end of line in translated string.
* tp/Texinfo/XS/teximakehtml.c (document_warn, main): free strings
and wipe values in the end.
* tp/Texinfo/XS/teximakehtml.c (main): warn if input file ends with
.info. Complete suffixes. Set format if TEXI2HTML is specified.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (values, main): add -D and -U options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (is_ascii_digit, main): add
paragraph-indent option. Encode help message and output to stdout.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (add_to_option_list)
(remove_from_option_list, set_expansion, unset_expansion)
(main): add add_to_option_list and remove_from_option_list, use in
set_expansion, unset_expansion and to set EXPANDED_FORMATS.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add css-include
and css-ref options.
* tp/Texinfo/XS/teximakehtml.c (main): always consider that
command-line array options are set from the command-line and call
options_list_add_option_number early for all these customization
variables.
* tp/Texinfo/XS/convert/texinfo.c (txi_converter_setup),
tp/Texinfo/XS/teximakehtml.c (main): set TEXINFO_LANGUAGE_DIRECTORIES
option in main, not in txi_converter_setup. Remove
texinfo_language_config_dirs_in txi_converter_setup argument. Move
code adding top_srcdir/util to texinfo_language_config_dirs to main.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/customization_options.c (clear_options_list):
also clear the OF_set_in_list flags.
* tp/Texinfo/XS/convert/texinfo.c (txi_converter_format_defaults),
tp/Texinfo/XS/teximakehtml.c (main): do not set expanded_formats
through txi_converter_format_defaults, remove corresponding argument,
it should be set as a regular customization option. Remove
expanded_formats in teximakehtml.c.
* tp/Texinfo/XS/teximakehtml.c (main, set_expansion, unset_expansion):
always set EXPANDED_FORMATS as an added options in cmdline_options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (store_value, clear_value),
tp/Texinfo/XS/parsetexi/macro.c (store_value_parsed_document)
(store_parser_value_parsed_document, clear_value_parsed_document)
(clear_parser_value_parsed_document): move the part of store_value
and clear_value strictly related to setting or clearing values in a
values list to utils.c, adding a values list argument to clear_value.
Rename functions in macro.c that apply on parser and also set internal
flags in parsed document to store_value_parsed_document,
store_parser_value_parsed_document, clear_value_parsed_document and
add clear_parser_value_parsed_document. Update callers.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add command line
options setting customization variables simply.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (main): add prepended include
directories options. Correctly set include directories for parser and
converters.
* tp/Texinfo/XS/convert/texinfo.c (txi_parser): rearrange code for the
case of include directories not set, and put the current directory in
front.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (set_option_value)
(set_customization_default, set_from_cmdline): pass option number
instead of option. Pass value to set_customization_default. Update
callers.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add headers and
no headers command-line options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add macro-expand
option and implementation.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl (document_warn): do not chomp input message.
Remove end of lines in document_warn calls.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (set_customization_default): also check
init_files_options.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add verbose and
trace-include options. Implement output of includes if TRACE_INCLUDES
is set.
* tp/Texinfo/XS/teximakehtml.c (main): handle parse and structure
output formats. Set do menu argument of txi_complete_document.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_converter_setup),
tp/Texinfo/XS/teximakehtml.c (FORMAT_COMMAND_LINE_NAME)
(format_command_line_names, FORMAT_REGION_NAME)
(converter_format_expanded_region_name, FORMAT_SPECIFICATION)
(formats_table, get_conf, set_option_value, set_from_cmdline)
(set_from_init_file, set_format, get_cmdline_customization_option)
(format_expanded_formats, set_cmdline_format, main): set
TEXINFO_OUTPUT_FORMAT especially based on environment, command-line or
as customization variable on command-line. Add formats table with
structuring and transformation flags. Set output_format,
converted_format and EXPANDED_FORMATS based on TEXINFO_OUTPUT_FORMAT.
Do not set TEXINFO_OUTPUT_FORMAT in txi_converter_setup anymore.
Remove parser_EXPANDED_FORMATS. Complete help message.
* tp/Texinfo/XS/teximakehtml.c (long_options): add html, remove
print_help_p for "help".
* tp/Texinfo/XS/teximakehtml.c (exit_if_errors): convert error_limit
to size_t.
* tp/Texinfo/XS/convert/texinfo.c: rename format_str as
converted_format.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl (%formats_table): remove internal_links for latex, it
is not implemented.
* tp/texi2any.pl (set_format): remove end of line in message.
* tp/texi2any.pl (set_format): do not recognize undef for
TEXINFO_OUTPUT_FORMAT.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (remove_from_strings_list): free removed
string.
* tp/Texinfo/XS/teximakehtml.c (merge_opened_files, exit_if_errors)
(handle_errors, main): keep track of opened files. Remove opened
files at exit. Exit depending on options values and error numbers
as done in texi2any.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add force and
no-warn options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/errors.c (output_error_messages), tp/texi2any.pl
(_output_error_messages): rename handle_error_messages as
output_error_messages and _handle_errors as _output_error_messages.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: keep track of total errors number by using the
handle_errors return value. Use handle_errors for document errors.
* tp/texi2any.pl (handle_errors): change a variable name.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/utils.c (remove_from_strings_list): add.
* tp/Texinfo/XS/teximakehtml.c (main): set directly
cmdline_options.options->INCLUDE_DIRECTORIES strings list with include
directories, remove include_dirs.
* tp/Texinfo/XS/teximakehtml.c (set_expansion, unset_expansion)
(long_options, main): handle --if*FORMAT options. Remove
demo_parser_EXPANDED_FORMATS.
2024-12-23 Patrice Dumas <pertusus@free.fr>
Handle processing more than one file in teximakehtml
* tp/Texinfo/XS/main/customization_options.c (clear_options_list):
add.
* tp/Texinfo/XS/teximakehtml.c (main): set program_options and not
converter_options based on demonstration_p and mimick_p. Parse input
file name and use the input file name directory to complete
converter_texinfo_language_config_dirs.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (set_from_cmdline): handle "undef"
value. Fix variable name.
* tp/Texinfo/XS/configure.ac (CONVERTER_CONFIG): pass CONVERTER as
CONVERTER_CONFIG.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add version,
output, footnote-style and split options.
* tp/texi2any.pl ($makeinfo_help): avoid \n in translated strings,
split each option in a translatable string. Report from Benno
Schulenberg.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (set_from_cmdline, _)
(get_cmdline_customization_option, long_options, main): use _() for
translated messages. Add help message similar to texi2any help
message. Use - as input file if it is possible to read from stdin.
Add document-language, error-limit and help options. Put all the
files to process in a list. Output the same error messages as in
texi2any when input file is missing.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (set_subdir_directories): remove
useless leading ./.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): add long options
support by calling getopt_long and set long_options.
* tp/Texinfo/XS/teximakehtml.c (long_options, main): set mimick mode
and demonstration mode with long options. Do not set TEST especially.
Remove run mode, using options should be enough.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/main/customization_options.c
(option_number_in_option_list, options_list_add_option_number),
maintain/regenerate_C_options_info.pl: set OF_set_in_list flag in in
option flag when the option is added to an option list. Always check
that the OF_set_in_list flag is not set before adding to the options
list, and remove the check_duplicates options_list_add_option_number
argument. Update callers.
2024-12-23 Patrice Dumas <pertusus@free.fr>
Use XDG base directory in teximakehtml
* tp/Texinfo/XS/main/utils.c (find_deprecated_dir_info): add const.
* tp/Texinfo/XS/convert/texinfo.c (txi_converter_setup): get and set
DEPRECATED_DIRS_LIST deprecated dirs.
* tp/Texinfo/XS/teximakehtml.c (add_config_paths, main)
(set_subdir_directories): implement add_config_paths and
set_subdir_directories and use to set texinfo_language_config_dirs.
2024-12-23 Patrice Dumas <pertusus@free.fr>
Deprecated directories warning in XS/C
* tp/Texinfo/XS/main/utils.c (file_name_is_absolute)
(locate_include_file, locate_file_in_dirs): add file_name_is_absolute.
* tp/Texinfo/XS/main/converter_types.h (DEPRECATED_DIR_INFO)
(DEPRECATED_DIRS_LIST, CONVERTER_INITIALIZATION_INFO, CONVERTER),
tp/Texinfo/XS/main/utils.c (find_deprecated_dir_info)
(add_deprecated_dir_info, copy_deprecated_dirs)
(add_new_deprecated_dir_info, free_deprecated_dirs_list): add
deprecated directories structures and functions.
* tp/Texinfo/XS/convert/converter.c (apply_converter_info)
(destroy_converter_initialization_info, free_generic_converter),
tp/Texinfo/XS/convert/get_converter_perl_info.c
(get_deprecated_config_directories_sv, get_converter_info_from_sv):
pass deprecated directories information from Perl to converter.
* tp/Texinfo/XS/main/utils.c (locate_file_in_dirs),
tp/Texinfo/XS/convert/html_prepare_converter.c (load_htmlxref_files):
set deprecated directories used in locate_file_in_dirs. Warn if
deprecated directories are used in load_htmlxref_files.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_parser): check that
input_directory is not NULL before using.
* tp/Texinfo/XS/teximakehtml.c (main): call
options_list_add_option_number for parser options set.
* tp/Texinfo/XS/Makefile.am (teximakehtml_CPPFLAGS),
tp/Texinfo/XS/teximakehtml.c (push_include_directory, main): pass
PATH_SEP from configure PATH_SEPARATOR to teximakehtml flags.
Add -I option, add include_dirs and set INCLUDE_DIRECTORIES option
based on the -I values.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (main): copy the parser customizations
set into the parser options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/converters_defaults.txt,
tp/maintain/regenerate_C_options_info.pl: set defaults for parser array
variables. Select integer and strings only to set regular options in
C.
* tp/Texinfo/Common.pm: remove %array_parser_options, it is not useful
anymore.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/converter.c (set_global_document_commands)
tp/Texinfo/XS/main/customization_options.c (initialize_option)
(option_set_conf, copy_options_list_set_configured),
tp/Texinfo/XS/main/get_perl_info.c (get_sv_option),
tp/Texinfo/XS/main/option_types.h (OPTION): replace configured with
flags, and use a flag to determine if the option is configured.
Add flags argument to initialization function.
* tp/maintain/regenerate_C_options_info.pl: set a specific flag for
parser options and options set in parser flags when initializing the
options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Common.pm (%array_parser_options)
(%default_parser_customization_values)
($common_parser_regular_options_defaults): add %array_parser_options
for array reference parser options and use Texinfo::Options
parser options to get the other customization options. Remove
%common_parser_customization and %parser_customization.
* util/txicustomvars: use Texinfo::Options::parser_options only to get
parser specific options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/maintain/regenerate_perl_options_info.pl,
tp/Texinfo/Convert/Converter.pm, tp/Texinfo/Convert/HTML.pm: do not
prepend converter_ in front of regular options defaults. Rename
get_converter_regular_options as get_regular_options.
* tp/Texinfo/Convert/converters_defaults.txt,
tp/Texinfo/Convert/Converter.pm, tp/Texinfo/Convert/HTML.pm,
tp/Texinfo/XS/convert/html_converter_init_options.c
(html_converter_defaults), tp/Texinfo/XS/convert/converter.c
(set_generic_converter_options): update names.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/maintain/regenerate_C_options_info.pl,
tp/Texinfo/options_data.txt: add parser customization options.
* tp/Texinfo/Convert/converters_defaults.txt (common_parser):
setup common_parser options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c, tp/Texinfo/XS/teximakehtml.c
(set_customization_default, main): remove
txi_config_set_customization_default from texinfo.c and add the
similar set_customization_default function to teximakehtml.c.
2024-12-23 Patrice Dumas <pertusus@free.fr>
Fix memory leaks in teximakehtml (from valgrind)
* tp/Texinfo/XS/teximakehtml.c (document_warn): free encoded_message.
* tp/Texinfo/XS/teximakehtml.c (main): strdup top_builddir if coming
from getenv. Free top_builddir. Destroy format_defaults.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/teximakehtml.c (get_cmdline_customization_option):
clear option if value is undef, case insensitive, to match what is
done in Perl, setting to undef.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/texi2any.pl: when parsing -c/--set-customization-variable,
determine the variable name before checking if the value should be
decoded.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Config.pm (_GNUT_document_warn, _GNUT_document_fatal)
(GNUT_set_from_cmdline, texinfo_register_no_arg_command_formatting)
(GNUT_get_no_arg_command_formatting)
(texinfo_register_style_command_formatting)
(GNUT_get_style_command_formatting)
(texinfo_register_special_unit_info): remove \n in messages. Remove
chomp in _GNUT_document_warn and _GNUT_document_fatal.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/html_prepare_converter.c,
tp/Texinfo/XS/main/base_utils.c (read_var_len): move read_var_len to
base_utils.c.
* tp/Texinfo/XS/main/errors.c (handle_error_messages): ignore no_warn
if < 0.
* tp/Texinfo/XS/teximakehtml.c (get_conf, decode_input)
(encode_message, document_warn, get_cmdline_customization_option)
(main): add command-line option to set customization option.
Use NO_WARN and TEST customization variables values for
txi_handle_*_error_messages arguments.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/convert/texinfo.c (txi_set_base_default_options)
(txi_converter_setup), tp/Texinfo/XS/teximakehtml.c (main): do not set
options independent of converter format in txi_converter_setup, add
txi_set_base_default_options for that, and call it early, before
getting command-line options. In txi_set_base_default_options, also
call add_program_cmdline_options_defaults and
add_program_customization_options_defaults to set the same defaults
as in texi2any.
* tp/Texinfo/XS/convert/texinfo.c
(txi_config_set_customization_default),
tp/Texinfo/XS/main/customization_options.c
(option_number_in_option_list, options_list_add_option_number): add
option_number_in_option_list based on options_list_add_option_number.
Add txi_config_set_customization_default to set program option if not
already set as command line option.
* tp/Texinfo/XS/teximakehtml.c (main): call
txi_config_set_customization_default to set FORMAT_MENU based on
converter customization option taking into account cmdline_options.
Set convert_options based on program_options and cmdline_options.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Config.pm (texinfo_set_from_init_file)
(GNUT_set_customization_default): consistently use exists to determine
if cmdline_options or init_files_options are set, and not defined.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type),
tp/Texinfo/XS/convert/format_html.c (html_convert_menu_entry_type):
if !NODE_NAME_IN_MENU, pick the associated section even if the node is
the element command. Report from Frederico Muñoz.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* system.h (setmode): Remove now unused.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* system.h (SET_BINARY): Remove now unused.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* configure.ac (AC_CONFIG_HEADERS): Elaborate on config.in
naming. Information from Eli.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
makedoc: remove -tags option
* info/makedoc.c (EMACS_TAG, EMACS_TAG_BLOCK, emacs_tags):
Remove.
(maybe_dump_tags): Remove.
(main, process_one_file): Remove all handling of -tags option or
tag blocks.
"makedoc -tags" appeared to be used to generate an Emacs tags
table, but the purpose of this is unknown.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h includes
* system.h, info/info.h, install-info/install-info.c:
remove include of <sys/stat.h> and redefinition of S_ISDIR from
system.h.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* system.h (HAVE_LONG_FILENAMES): Remove as it is not used
anywhere.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/info.h, install-info/install-info.c:
Include <unistd.h> instead of relying on system.h including it.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h includes
* system.h: remove further unnecessary includes
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h include
* system.h, info/info.h, install-info/install-info.c:
Move include of "xalloc.h" out of system.h.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h defines
* system.h,
* info/info.h: Remove or move more includes out of system.h.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h defines
* system.h,
* info/info.h,
* info/window.h,
* install-info/install-info.c: Move system includes out of system.h.
* system.h (PATH_MAX): Remove.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h defines
* system.h [STAT_MACROS_BROKEN]: Remove section as this symbol
is not set anywhere. It was formerly set by AC_HEADER_STAT in
configure.ac but this macro is now obsolescent..
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h defines
* system.h, info/tilde.c: move include of <pwd.h> to tilde.c.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove system.h defines
* system.h:
[MIKTEX]: Remove section. I have been unable
to determine its purpose or relevance. (Added 2002-09-26.)
* system.h: Remove comment re assuming ANSI C89 headers.
[VMS] Remove section. (Added 1997-30-03.)
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove or move system.h defines.
* system.h (TEXINFO_PRINTFLIKE): Remove.
* info/info.h (TEXINFO_PRINTFLIKE): Add.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Remove or move system.h defines.
* system.h (STREQ, STRCASEEQ. STRNCASEEQ): Remove.
* info/info.h (STREQ): Add.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
Version updating script
* update-version.sh: New file.
* Makefile.am (update-version): Add rule.
* README-hacking: update instructions
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* doc/refcard/txirefcard.tex: remove comments after defines
of year and version number
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* info/nodemenu.c (get_visited_nodes, nodemenu_format_info):
Remove "* Menu:" from translatable string to prevent translators
from translating it.
2024-12-23 Patrice Dumas <pertusus@free.fr>
* tp/tests/other/list-of-tests (highlight_syntax_example_latin9):
load highlight syntax init file by setting HIGHLIGHT_SYNTAX as it is
how it needs to be done now.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Master Menu Parts, Sample Function Definition):
Eliminate references to "Command and Variable Index" node which
doesn't exist any more.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/XS/main/translations.c: remove comment that says
that LC_CTYPE is used in XSParagraph as it isn't any more.
2024-12-23 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking: update webpages before announcement
Copyright 2025 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.