2023-09-11  Gavin Smith <gavinsmith0123@gmail.com>

	pretest 7.0.91

2023-09-11  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: adjust release instructions

2023-09-09  Patrice Dumas <pertusus@free.fr>

	* tp/t/html_tests.t (automatic_menus): test with FORMAT_MENU menu
	and no explicit menus.

2023-09-09  Patrice Dumas <pertusus@free.fr>

	Automatic menu in HTML if missing and FORMAT_MENU is menu

	* tp/Texinfo/Convert/HTML.pm (%available_converter_info)
	(_convert_heading_command): add 'labels' to the
	%available_converter_info.  Automatic menu setup and formatting if
	FORMAT_MENU is menu, a sectioning command is being formatted,
	associated node is with automatic directions and without menu
	and there is no table of contents already formatted.

2023-09-09  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (new_complete_menu_master_menu),
	tp/Texinfo/Convert/Plaintext.pm (_convert): move code setting up a
	menu and detailed menu if node is Top to Texinfo::Structuring
	as new_complete_menu_master_menu.

2023-09-08  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm (string_width): remove explicit
	matching of 0-width characters, they correspond to the remaining
	characters after matching printing characters except for Marks.

2023-09-08  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm (string_width): replace IsPrint
	by more explicit character classes.

2023-09-07  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm (string_width): use
	DefaultIgnorableCodePoint for better compatibility with old perls.

2023-09-07  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: add note re *.pot versions.

2023-09-06  Patrice Dumas <pertusus@free.fr>

	* tp/t/input_files/in_menu_only_special_spaces_node.texi,
	tp/t/input_files/only_special_spaces_node.texi: separate node for
	LINE SEPARATOR and PARAGRAPH SEPARATOR in test files.

2023-09-06  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm (string_width): consider
	Default_Ignorable_Code_Point to be of zero width.  These codepoints
	are described as having no visible glyph or advance width in and of
	themselves.

2023-09-06  Patrice Dumas <pertusus@free.fr>

	Consider control characters to have a 0 width

	* tp/Texinfo/Convert/Unicode.pm (string_width): do not consider space
	control characters especially.  This is better for line feed, carriage
	return and form feed, and vertical or horizontal tabs should not
	happen in situations where we want to know the width of strings.

2023-09-05  Patrice Dumas <pertusus@free.fr>

	Add customization of external node reference names

	* doc/texi2any_api.texi (Customizing Output Target Names)
	(Customizing External Node Output Names), tp/Texinfo/Convert/HTML.pm
	(%customizable_file_id_setting_references, _external_node_href):
	add external_target_split_name and external_target_non_split_name
	file id setting customization function reference.  Based on
	Jonas Hahnfeld feedback.

2023-09-04  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_external_node_href): initialize
	explicitly $target_split.  Use a different variable for the case of
	$target_split ($file) and !$target_split ($directory).  Rearrange code
	returning the final href to have less conditions.  If target is empty
	and TOP_NODE_FILE_TARGET is not set use the directory and
	target_filebase as in the other cases.  This case probably never
	happens, though, as TOP_NODE_FILE_TARGET is always set.

2023-09-04  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_external_node_href): do not call
	_normalized_to_id in $target, it is already done in
	_normalized_label_id_file.

2023-09-04  Patrice Dumas <pertusus@free.fr>

	Add last element argument to format_end_file

	* doc/texi2any_api.texi (Customizing HTML File End),
	tp/Texinfo/Convert/HTML.pm (_default_format_end_file, output): add the
	last element to the call of format_end_file in output.  Idea from
	LilyPond init file commit from Jonas Hahnfeld where converter state
	is used, to be able to get the output unit directly instead.

2023-09-03  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Config.pm (GNUT_load_init_file): Check if
	message is non-empty as well as defined before printing.
	(_GNUT_document_fatal): Keep going if FORCE is set.

2023-09-02  Gavin Smith <gavinsmith0123@gmail.com>

	Fatal error for init file loading

	* tp/Texinfo/Config.pm (_GNUT_document_fatal): copy
	from _GNUT_document_warn and exit program.
	(GNUT_load_init_file): Load init file with "do" rather than
	"require".  As calling code has already located the file with
	Texinfo::Common::locate_init_file, we do not need "require" to
	locate the file in @INC.  Call _GNUT_document_fatal if "do"
	could not load or parse the file.

	Report from Jonas Hahnfeld who is working on an init file for
	GNU Lilypond.  It was not helpful to continue on if there
	was a syntax error in the init file.

2023-09-01  Patrice Dumas <pertusus@free.fr>

	Run 'gnulib-tool --add-import libunistring' under tp/Texinfo/XS.

	Update gnulib.

2023-08-20  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/README: Add Unicode::Collate to list of modules.  Mention
	possibility of not using internal versions of some modules.
	* tp/t/README: Say to look at tp/README for the module requirements.

2023-08-19  Bruno Haible  <bruno@clisp.org>

	* doc/Makefile.am (wwwdoc-install):
	Indent all lines in the rule with a tab.

2023-08-19  Bruno Haible  <bruno@clisp.org>

	* doc/Makefile.am (refcard/txirefcard.pdf, refcard/txirefcard-a4.pdf):
	Combine Makefile rules in attempt to forestall two make processes
	running at the same time in case of a parallel make.

2023-08-19  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/Makefile.am (refcard/txirefcard.pdf, refcard/txirefcard-a4.pdf):
	Add rules for these files, as they aren't tracked in git any more
	and are needed for make dist.  From Bruno.

2023-08-19  Gavin Smith <gavinsmith0123@gmail.com>

	* contrib/gen-dir-node,
	* contrib/javaprop2texiflag.pl,
	* doc/refcard/Makefile: Eliminate $Id keyword expansion.

2023-08-19  Gavin Smith <gavinsmith0123@gmail.com>

	* configure.ac: Check for Unicode::Collate and issue a warning
	if not found.  Report from Bruno Haible on CentOS 8-stream.

2023-08-19  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Structuring.pm (sort_indices):
	Put collator options in a hash variable to make code clearer.
	Reorder code slightly.

2023-08-19  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Structuring.pm (Texinfo::CollateStub):
	Provide fall-back module in case Unicode::Collate can't be loaded.
	(sort_indices): Use it if loading Unicode::Collate fails.

2023-08-19  Patrice Dumas <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (complete_node_tree_with_menus): add
	missing extra for menus key.

2023-08-18  Gavin Smith <gavinsmith0123@gmail.com>

	* install-info/tests/ii-0059-test: Fix malformed menu entry.

2023-08-18  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: remove recommendation to check with
	-Wdeclaration-after-statement, as it may not be a relevant
	warning any more.  From Bruno.

2023-08-18  Gavin Smith <gavinsmith0123@gmail.com>

	* install-info/install-info.c (readfile): null-terminate file
	data so to avoid reading off the end in mark_entry_for_deletion.
	(mark_entry_for_deletion): Add checks for end of data.

2023-08-18  Gavin Smith <gavinsmith0123@gmail.com>

	* install-info/install-info.c (output_dirfile): Avoid mixed
	declaration and statements.

2023-08-18  Gavin Smith <gavinsmith0123@gmail.com>

	install-info atomic dir update

	* install-info/install-info.c (output_dirfile):
	Get name of temp file by appending to dir file name.  This
	ensures that the temporary file is in the same directory and
	thus on the same disk volume.  Report from Bruno Haible.

2023-08-18  Gavin Smith <gavinsmith0123@gmail.com>

	* install-info/install-info.c (output_dirfile):
	Change further uses of perror to pfatal_with_name for concision
	and to print program name.

2023-08-18  Gavin Smith <gavinsmith0123@gmail.com>

	* install-info/install-info.c (output_dirfile):
	In case removing and renaming to target dirfile failed, print
	error message and exit with pfatal_with_name function.  Lack
	of exit reported by Bruno Haible.

2023-08-16  Gavin Smith <gavinsmith0123@gmail.com>

	pretest 7.0.90

2023-08-16  Gavin Smith <gavinsmith0123@gmail.com>

	* util/srclist.txt: Update source for INSTALL to doc/INSTALL.ISO
	in gnulib sources to avoid non-ASCII sequences.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* INSTALL: integrate text from doc/README about *.tex installation.
	use https: for ftp.gnu.org link.
	* doc/README: eliminate file.
	* doc/Makefile.am (install-data-local): update reference to INSTALL.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* info/session.c: removed unused variable.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: update suggested configure invocation to
	disable some unneeded warnings

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	parsetexi compiler warnings

	* tp/Texinfo/XS/parsetexi/parser.c (isolate_last_space):
	Change a condition to make it easier to see that a variable is
	not used uninitialised.
	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line):
	Restructure to make it clearer that a variable is not used
	uninitialised, especially as this is quite a long function.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block) <float>:
	Comment out declaration of unused variable.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	parsetexi compiler warnings

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	Do not save separator characters into unused variables.
	* tp/Texinfo/XS/parsetexi/separator.c: Removed unused "funexit:" label.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: add pod2texi to list of programs with
	copyright years in --version calls.  Adjust commands for
	looking for copyright years to update.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	Bump version to 7.0.90 for pretest

	* configure.ac: version
	* README-hacking: reorder some instructions

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/refcard/txirefcard.tex: 2023, 7.1

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* build-aux/pre-inst-env.in: set TEXINFO_DEV_SOURCE rather than
	TEXINFO_UNINSTALLED as the latter is not used anywhere.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	Translator comments and contexts

	* tp/Texinfo/Common (%def_map):
	Change "users-modifiable" to "user-modifiable" in a translator
	comment, and shorten context for @deftypefn "Function" to be
	similar to context for @deffn -- we don't need to describe
	what the difference is in these contexts.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	Move month names translation strings

	* tp/Texinfo/Convert/Converter.pm,
	* tp/Texinfo/Convert/Utils.pm: move appearance of month names
	in gdt to Utils.pm, in order to be next to the @MONTH_NAMES
	array that these strings are used with.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* ChangeLog, texindex/ChangeLog: Move texindex ChangeLog entries
	into top-level file.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/maintain/regenerate_cmd_tests.sh,
	* tp/maintain/regenerate_docstr.sh: do not place copyright year
	in generated files as this complicates updating copyright years.
	* tp/maintain/regenerate_docstr.sh: add a comment as to the
	purpose of this file.

2023-08-15  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: tweak advice on updating copyright years

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: start of advice on how to update copyright
	years automatically

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/prove.sh: Add a comment stating the purpose of this file (mail
	from Patrice, October 24th, 2022).

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: reorder to put longer, less predictable
	tasks further away from the final release instructions.

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	* INSTALL.generic, build-aux/compile, build-aux/config.guess,
	build-aux/config.sub, build-aux/depcomp, build-aux/mdate-sh:
	update from gnulib

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Menus): Be clearer about when menus are
	output in HTML.

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/Makefile.am (MAKEINFO_ENVIRONMENT): Do not use shell
	export statements as this may lead to the same problem experienced
	with TEXI2DVI_ENVIRONMENT.

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	Do not rely on texi2dvi internal directory layout

	* doc/Makefile.am (TEXI2DVI_ENVIRONMENT),
	* doc/tp_api/Makefile.am (TEXI2DVI_ENVIRONMENT):
	Use $(abs_top_srcdir) and $(abs_top_builddir) to reference texindex
	files, rather than $(top_srcdir) and $(top_builddir) concatenated
	with a certain number of "../", as this is hard to understand and
	depends on internal details of texi2dvi that we shouldn't have
	to think about.

2023-08-14  Gavin Smith <gavinsmith0123@gmail.com>

	Fix "make distcheck" without installed texinfo.tex

	* doc/Makefile.am (TEXI2DVI_ENVIRONMENT),
	* doc/tp_api/Makefile.am (TEXI2DVI_ENVIRONMENT):
	Do not export TEXINDEX or TEXINDEX_SCRIPT shell variables in
	separate shell statements.

	As texi2dvi was run by Makefile rules like

	  TEXINPUTS=... MAKEINFO=... \
	  TEXINDEX=... ; export TEXINDEX ; \
	  TEXINDEX_SCRIPT=... ; export TEXINDEX_SCRIPT ; ../util/texi2dvi ...

	the first semicolon ended the shell statement where TEXINPUTS and
	MAKEINFO were set, so they were not set correctly for texi2dvi.
	This broke "make distcheck" under doc/tp_api, where texinfo.tex
	was not found, if not installed on the user's system.

2023-08-13  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS: Run "gnulib-tool --add-import"

	* tp/Texinfo/XS/Makefile.am
	(XSParagraph_la_LDFLAGS, Parsetexi_la_LDFLAGS):
	Add $(LTLIBUNISTRING) as recommended by gnulib-tool --add-import.
	* tp/Texinfo/XS/parsetexi/labels.c,
	* tp/Texinfo/XS/parsetexi/source-marks.c:
	include <config.h> before <string.h>.

2023-08-13  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: advice on LDADD for new gnulib modules

2023-08-13  Gavin Smith <gavinsmith0123@gmail.com>

	gnulib LDADD

	* info/Makefile.am (LDADD), install-info/Makefile.am (LDADD):
	Revise and extend variable use from gnulib so that the correct
	libraries will be linked on various platforms reliably.

2023-08-13  Gavin Smith <gavinsmith0123@gmail.com>

	Run "gnulib-tool --add-import" (top level)

2023-08-13  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: note that we can't use gettext 0.22.

2023-08-13  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\entry): Reduce possible margin overhang from
	2.1em to 1.5em.
	(\indexdotfill): Reduce minumum length from 1em
	to 0.5em.  This stops long section titles jutting out into the
	margin too visibly.

2023-08-13  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: texinfo.tex, info updates.

2023-08-13  John Wheeler <wheelerwjx9@runbox.com>

	* install-info/tests/ii-0058-test,
	* install-info/tests/ii-0059-test: Add new tests to check
	blank lines between sections on repeated addition and deletion of
	sections.

2023-08-12  Gavin Smith <gavinsmith0123@gmail.com>

	* info/terminal.c (term_Km): Remove.
	(terminal_initialize_terminal): Do not load or set Km (kmous)
	capability string.  As the termcap string for xterm can be
	"\033[<" rather than the "\033[M" we expected, we cannot rely
	on the contents of this.
	(initialize_byte_map): Add KEY_MOUSE bindings unconditionally.  They
	are harmless even if mouse support is off.
	(terminal_begin_using_terminal): Do not use term_Km to decide
	whether to try to turn on "normal tracking mode".  Instead, only
	use the setting from the "mouse" variable.
	(terminal_end_using_terminal): Likewise.

2023-08-12  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_get_state): Remove
	unused function (which currently does nothing).

2023-08-12  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Command List): List new commands
	@defblock, @defline, @deftypeline, @linemacro, @link,
	@nodedescription, @nodedescriptionblock.
	(Node Descriptions): Add index entries for new commands.

2023-08-12  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: list updated automake version used for distribution

2023-08-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): free
	fullpath only after error messages have been output.

	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting, parse_texi):
	add parentheses to avoid ambiguity and match better perl parser code.
	(isolate_last_space): simplify debug output code.

	* tp/Texinfo/XS/parsetexi/parser.c, tp/Texinfo/XS/parsetexi/input.c,
	tp/Texinfo/XS/parsetexi/tree.c, tp/Texinfo/XS/parsetexi/close.c,
	tp/Texinfo/XS/parsetexi/end_line.c, tp/Texinfo/XS/parsetexi/macro.c,
	tp/Texinfo/XS/parsetexi/menus.c, tp/Texinfo/XS/parsetexi/indices.c:
	remove unused variables.

	* tp/Texinfo/XS/parsetexi/close.c (close_command_cleanup),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace):
	add parentheses to avoid ambiguity and match better perl parser code.

	* tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list): explicit
	default in switch for SM_status_none and SM_type_none.

	* tp/Texinfo/XS/MiscXS.xs (xs_parse_texi_regex): remove left over
	variable.

	* tp/Texinfo/XS/xspara.c (xspara_init): group expressions to avoid
	ambiguity.

	* tp/Texinfo/XS/xspara.c (xspara_get_state): avoid mixing declarations
	and code.

2023-08-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/source_marks.c (source_marks_names): setup
	the source_marks_names table in the file using it and not in the
	header file defining the macro used to setup the table, to have the
	table defined only where it is used.

2023-08-12  Patrice Dumas  <pertusus@free.fr>

	* 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/macro.c (expand_linemacro_arguments),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): avoid
	mixing declarations and code.

	* tp/Texinfo/XS/parsetexi/handle_commands.c (parse_rawline_command):
	remove unused variable.

2023-08-12  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: add note re "git stash list".

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/refcard/txirefcard.tex: Close TeX group as intended (broken
	since 2022-10-21).

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/refcard/txirefcard.tex: Document new commands.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/refcard/txicmdcheck: ignore @item_LINE as this is not
	a real Texinfo command and is only used internally.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* po/POTFILES.in, po_document/POTFILES.in: update so that
	"make po-check" and "make po_document-check" work at the top level.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* Makefile.am (po-check): look under directories beginning A-Z as
	well as a-z to include Pod-Simple-Texinfo.  Eliminate use of
	$(CVS_LIST_EXCEPT) which does not appear to be defined anywhere.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* po/POTFILES.in: some updates
	* Makefile.am (po-check): exclude tp/t/results directory.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Other Customization Variables)
	<CLOSE_QUOTE_SYMBOL>: Give @samp as an example use case, as
	at OPEN_QUOTE_SYMBOL.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi: Add line "@microtype on".

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: edit, clarify, reorder.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands) <d>: Say a little about
	what the dir node is.

2023-08-07  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm (@variable_string_settables):
	Change AUTO_MENU_DESCRIPTION_FILLCOLUMN to
	AUTO_MENU_MAX_WIDTH and AUTO_MENU_DESCRIPTION_INDENT_LENGTH to
	AUTO_MENU_DESCRIPTION_ALIGN_COLUMN.
	* tp/Texinfo/Convert/Plaintext.pm (_convert): Subtract one
	from the value of AUTO_MENU_DESCRIPTION_ALIGN_COLUMN to get the
	number of preceding columns in the line.

2023-08-05  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: Mention AUTO_MENU_DESCRIPTION_FILLCOLUMN and
	AUTO_MENU_DESCRIPTION_INDENT_LENGTH.

2023-08-05  Gavin Smith <gavinsmith0123@gmail.com>

	* TODO: add outputting detailmenu comment lines

2023-08-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Translations.pm (gdt): have the gettext framework convert
	translated strings to UTF-8, and decode from UTF-8 to internal perl
	encoding.

2023-08-06  Patrice Dumas  <pertusus@free.fr>

	* po_document/LINGUAS, po_document/pl.iso-8859-2.po, tp/Makefile.am
	(test_files), t/input_files/pl_translated_inserted_strings_8bit.texi,
	tp/Makefile.tres (test_files_generated_list), tp/t/formats_encodings.t
	(8bit_document_translations): add 8bit encoded po_document po file for
	testing purposes, using iconv and manual edition of charset for
	polish.  Add a corresponding test, 8bit_document_translations, with
	@documentencoding ISO-8859-2 which should use the pl.iso-8859-2.po
	translations file.

2023-08-06  Patrice Dumas  <pertusus@free.fr>

	update po files

2023-08-06  Patrice Dumas  <pertusus@free.fr>

	* po_document/POTFILES.in: add tp/Texinfo/Structuring.pm.

2023-08-06  Patrice Dumas  <pertusus@free.fr>

	* TODO, tp/TODO: update.

2023-08-05  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm,  tp/Texinfo/Structuring.pm
	(_normalized_entry_associated_internal_node, new_master_menu):
	Move to Structuring.pm as Common.pm should not depend on
	Texinfo::Structuring or Texinfo::Translations.  Report from Patrice.

2023-08-05  Gavin Smith <gavinsmith0123@gmail.com>

	add CHECK_MISSING_MENU_ENTRY

	* tp/Texinfo/Common.pm (%default_main_program_customization):
	Add CHECK_MISSING_MENU_ENTRY, true by default.
	* tp/Texinfo/Structuring.pm (complete_node_tree_with_menus):
	Do not output warnings about missing menu entries if 
	CHECK_MISSING_MENU_ENTRY is not set.  This was formerly controlled
	by CHECK_NORMAL_MENU_STRUCTURE but was latterly on unconditionally.
	* doc/texinfo.texi (Other Customization Variables): Document.
	* tp/t/test_utils.pl: Set 'CHECK_NORMAL_MENU_STRUCTURE' in
	configuration.
	* NEWS: update

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Top): Remove @menu and @detailmenu, using
	@nodedescription throughout.  Also remove joke after end of menu.

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	Blank line before detailmenu

	* tp/Texinfo/Convert/Plaintext.pm (_convert) <sectioning commands>:
	Add a blank line before the inserted detailmenu block.

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Structuring.pm,
	* tp/Texinfo/Common.pm (_normalized_entry_associated_internal_node):
	Remove duplicate definition in Structuring.pm, using the definition
	in Common.pm instead.

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm (new_master_menu): Always take an array
	reference as an argument with a list of menus to operate on, so
	that there is only one way of calling this function.  Callers updated.
	* tp/Texinfo/Convert/Plaintext.pm (_convert) <sectioning commands>:
	Check that node name is actually "Top".

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	Generate master menu in plaintext output

	* tp/Texinfo/Common.pm (new_master_menu): Take extra optional
	argument which is the menu in the Top node.
	* tp/Texinfo/Convert/Plaintext.pm (_convert) <sectioning commands>:
	At the Top node, call new_master_menu after calling
	Texinfo::Structuring::new_complete_node_menu, so to also generate
	a detailed menu.

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm (_print_down_menus):
	Call Texinfo::Structuring:::new_complete_node_menu in order to output
	part of the master menu when a node is missing a @menu block.

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm (%valid_tree_transformations):
	Add 'complete_tree_nodes_missing_menu', which should have been in
	this list as it is documented and implemented.

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	Move new_master_menu

	* tp/Texinfo/Transformations.pm
	* tp/Texinfo/Common.pm (new_master_menu): Move to Common.pm.
	* tp/t/do_master_menu.t: Update.

2023-08-04  Patrice Dumas  <pertusus@free.fr>

	* tp/texi2any.pl (set_translations_encoding): really pass argument.
	Report and investigation of faulty commit by Werner.

2023-08-04  Gavin Smith <gavinsmith0123@gmail.com>

	* info/session.c (info_handle_pointer): When going Up, look
	for the current node in the Up nodes menu and position the
	cursor there.
	* NEWS: mention this

2023-08-03  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi: Use trailing comma before 'or' more
	consistently.

2023-08-03  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Menus): Advertise the benefits of not using
	@menu in Texinfo sources.

2023-08-03  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Node Descriptions): New node to document
	@nodedescription and @nodedescriptionblock.
	(Menus): Edit slightly.

2023-08-03  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: reword slightly

2023-08-03  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Writing a Node, Writing a Menu, Menu Parts)
	(Raise/lower sections, Cross Reference Parts):
	Refer to 'texi2any' rather than 'makeinfo'.

2023-08-03  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi: Finish removing most @menu blocks, using
	@nodedescription instead.

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert) <node description>:
	If adding extra space before node description, count this space
	in the line length.

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Hardcopy with TeX): Edit and condense.  Reference
	another node for details of changing the paper size.
	(@smallbook): Say that 8.5x11" paper is called letter size.

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Printing): Remove node, as it is duplicative
	of "Texinfo Mode Printing".  Move a paragraph into "Hardcopy with TeX".

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Emacs Shell Printing): Remove node, moving
	some material into "Hardcopy with TeX".

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Printing with Emacs): Move node and sub-nodes
	to appendix.

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	Edits to manual

	* doc/texinfo.texi (Insertions): Remove @iftex block listing
	contents of chapter.
	(Requirements Summmary): Remove node as the content is covered
	elsewhere.

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi: Continue removing @menu throughout.

2023-08-02  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert) <node description>:
	Use the same code for @nodedescription and @nodedescriptionblock
	for adding extra spaces if needed to separate the description.
	Use the previous converter for adding the spaces and add two
	spaces rather than one.  Suggestion from Patrice.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi: Start removing @menu throughout.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	Remove extra space for @nodedescriptionblock

	* tp/Texinfo/Convert/Plaintext.pm (_convert) <@nodedescriptionblock>:
	Check if space is needed before adding space with current paragraph
	formatter, as the existing check would always be true and the space
	would be added, leading @nodedescriptionblock descriptions to be
	indented by an extra space compared with @nodedescription descriptions.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/t/10menu.t (nodedescription_descriptions): Adjust test so
	it tests what was tested before with a node description only fitting
	on the next line in a menu.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (PDF Colors): Move up a level as the section is not
	just related to @link.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Other Customization Variables)
	<AUTO_MENU_DESCRIPTION_FILLCOLUMN>,
	<AUTO_MENU_DESCRIPTION_INDENT_LENGTH>: Update.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert) <menu entry description>:
	Multiply by 0.44 instead of dividing by 2.32 as this is easier
	to understand.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi: Remove remaining @menu blocks and
	use @nodedescription where needed.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm <AUTO_MENU_DESCRIPTION_FILLCOLUMN>
	If AUTO_MENU_DESCRIPTION_FILLCOLUMN not set, increase the text width
	by 10% as existing Info menus often go beyond 72 columns in width.

2023-08-01  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\nodedescription, \nodedescriptionblock):
	Add stub implementations.
	* NEWS: Mention these new commands.

2023-07-31  Patrice Dumas  <pertusus@free.fr>

	nodedescription customization

	* doc/texinfo.texi (Other Customization Variables),
	tp/Texinfo/Common.pm b/tp/Texinfo/Common.pm
	(@variable_string_settables), tp/Texinfo/Convert/Plaintext.pm
	(_convert): add AUTO_MENU_DESCRIPTION_INDENT_LENGTH and
	AUTO_MENU_DESCRIPTION_FILLCOLUMN customization for @nodedescription*
	formatting.

	* tp/t/10menu.t (commands_in_nodedescriptionblock): set
	AUTO_MENU_DESCRIPTION_INDENT_LENGTH and
	AUTO_MENU_DESCRIPTION_FILLCOLUMN.

2023-07-31  Patrice Dumas  <pertusus@free.fr>

	@nodedescriptionblock output

	* tp/Texinfo/Convert/HTML.pm (convert_tree_new_formatting_context)
	(_convert_paragraph_type, _convert_menu_entry_type): add formatting
	of @nodedescriptionblock. Check if node description was formatted more
	than once, and use convert_tree_new_formatting_context in that case.
	pass block_command to convert_tree_new_formatting_context to be able
	tp avoid paragraph markup for the first nodedescriptionblock
	paragraph.

	* tp/Texinfo/Convert/Plaintext.pm (converter_initialize)
	(new_formatter, _convert): formatting of @nodedescriptionblock. Add
	'indent_length' to format_context considered variables for
	new_formatter. Use text_element_context to set the counter for
	nodedescription and nodedescriptionblock. Add seen_node_descriptions
	to the converter state to be able to be silent if a node description
	is formatted more than once. Determine $description_indent_length
	by applying a factor on text_element_context max.

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command): multiple
	pass argument of convert_tree_new_formatting_context usable as
	identifier.

	* tp/Makefile.tres, tp/t/10menu.t (commands_in_nodedescriptionblock):
	test multiple @nodedescriptionblock with commands in it.

2023-07-31  Patrice Dumas  <pertusus@free.fr>

	@nodedescriptionblock parsing

	* tp/Texinfo/Convert/*.pm, tp/Texinfo/ParserNonXS.pm
	(_handle_line_command, _handle_block_command),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command),
	(handle_block_command), tp/Texinfo/command_data.txt: add
	@nodedescriptionblock.  Set extra node key node_long_description.
	Also associated with node_description unless there is also a
	@nodedescription.

	* tp/Makefile.tres, tp/t/10menu.t (nodedescriptionblock_descriptions):
	new test.

2023-07-30  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/separator.c (handle_comma):
	Keep copy of return value of next_text so to avoid a memory
	leak.

2023-07-30  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args)
	<@defindex>: Free index name when finished.
	* tp/Texinfo/XS/parsetexi/indices.c (add_index): Call strdup on
	argument to add_index_internal.

2023-07-30  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/tree.c (destroy_node_spec):
	Free 'out_of_tree_elements' array.

2023-07-30  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line):
	Free return value of read_command_name in the case that the name
	is bad.

2023-07-30  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/macro.c (unset_macro_record):
	Set 'macro_name' field of MACRO to null rather than an empty
	string.  This prevents a memory leak if the macro record is
	reused and the pointer to the empty string is not freed.

2023-07-30  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line)
	<@value>: Free a string in one case where it was not freed.

2023-07-29  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: hints on valgrind for tp/t tests

2023-07-29  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/def.c (split_delimiters):
	Free return value from u8_strconv_from_encoding.

2023-07-29  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/macro.c (expandline_macro_arguments):
	Free return value from parse_command_name.

2023-07-29  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/source_marks.c (relocate_source_marks):
	Free malloc-allocated int array at end of function.

2023-07-29  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line) <@include>:
	Call free on return value of locate_include_file once done with value.

2023-07-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_expand_linemacro_arguments),
	tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo),
	tp/Texinfo/XS/parsetexi/convert.c (convert_to_texinfo_internal),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/macro.c (expand_linemacro_arguments):
	use a new type, bracketed_linemacro_arg instead of bracketed_arg for
	the linemacro call element holding text.  It is indeed different from
	bracketed_arg, which contains other elements and not directly text.

	* tp/Texinfo/ParserNonXS.pm (_handle_macro),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro): rename name extra macro
	call key as command_name and put it in info instead of extra.

	* tp/t/60macro.t (macro_expansion_in_multitable_prototype): add test
	of macro expansion in bracketed_arg in multitable prototypes.

2023-07-29  John Wheeler <wheelerwjx9@runbox.com>  (tiny change)

	* install-info/install-info.c (output_dirfile):
	Do not insert a blank line before a new section if one is there
	already.  This prevents the number of blank lines continually
	increasing if a section is repeatedly deleted and inserted.

2023-07-29  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo-tex-test.texi (Index and paragraphs): Remove section
	as change making index command end paragraph was reverted.

2023-07-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text): do not try to modify the
	output when there was an encoding error.  Do not use Encode::decode
	to emit a warning in case of decoding error, as it may not, and it
	would not be the same message as the XS parser.
	Instead call Encode::decode with check argument set to
	Encode::FB_CROAK in an eval to get the perl message and the
	information that there was an error.  Get the erroneous byte using
	Encode::decode with Encode::FB_QUIET.  Then call Encode::decode
	again with the default check argument to get the decoded string.
	Based on Gavin input.

	* tp/tests/encoded/Makefile.am (EXTRA_DIST),
	tp/tests/encoded/list-of-tests (test_latin1_no_documentencoding):
	prepare a test with a letter in latin1 but no documentencoding to
	test for manuals that assumed latin1, especially for accented letters
	in person names.  Do not set it because the XS and perl parsers lead
	to different outputs.

2023-07-29  Patrice Dumas  <pertusus@free.fr>

	* NEWS: mention stricter checks of input encoding, with more errors
	and warnings, especially for UTF-8.

2023-07-29  Patrice Dumas  <pertusus@free.fr>

	* texi2any.pl: if format and converted format differ, mention both in
	messages including converted format (only one case).

	* texi2any.pl: rename set_format_menu_from_cmdline_header as
	set_format_menu_from_cmdline_header_option.

2023-07-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm (check_unicode_point_conversion): in
	case encoding is not attempted, still use an eval to catch invalid
	argument to hex().

2023-07-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm (check_unicode_point_conversion): with
	strict encoding, there is a warning for nonchar with perl 5.10.1 on
	solaris 11, though not on solaris 10.  So for a range of perl versions,
	5.10.0 to 5.13.8 we do not attempt the eval and check for the
	codepoints to be below 0x10FFFF early.

2023-07-28  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\deftypeline): Read arguments correctly, in
	the same way as \deftypefn.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t
	(line_end_accent_command_macro_call): add test for a command with
	braces expanded in a macro followed by end of line one line command.

	* tp/Texinfo/Common.pm (modify_tree): error out if argument not
	defined or not a HASH.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (element_associated_processing_encoding):
	rename element_extra_encoding_for_perl as
	element_associated_processing_encoding.  Update callers.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (%non_formatted_brace_commands): add sortas.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/texi2any.pl (set_translations_encoding): reset translations
	encoding when COMMAND_LINE_ENCODING is reset.

	* tp/texi2any.pl: move code around for a more logical organization.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm (check_unicode_point_conversion):
	check that the codepoint expands to valid UTF-8, by using
	:encoding(utf-8) instead of :utf8 on the stream, consistently with the
	conversion used to output UTF-8.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm
	(%unicode_character_brace_no_arg_commands): add a comment to described
	the failure with charnames::vianame.

	* tp/Texinfo/Convert/Unicode.pm (_eight_bit_and_unicode_point)
	(unicode_point_decoded_in_encoding): exclude 127, \x{7F}, DEL from the
	characters considered to be decoded.  It is probably actually decoded,
	but should not represent an accented character or a specific character.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Unicode.pm
	(%unicode_character_brace_no_arg_commands): revert use of
	charnames::vianame as an attempt to fix tests of @sc{@aa{}} in
	perl 5.10.1 (on solaris).

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/Parsetexi.xs (init): use macro corresponding
	to bytes to get file paths in the C parser.  The file path comes from
	Texinfo::ModulePath through Texinfo::XSLoader and is a byte string.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/Parsetexi.xs: use # comments, not C
	comments.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	Set 'no utf8' in texi2any as we substitute file names in byte strings

	* tp/texi2any.pl: set 'no utf8'.  Through rules in Makefile.am
	directory paths set through configure are substituted directly in
	strings in the code and we always use these strings as byte string,
	therefore we explicitly set no utf8 to be sure that strings in code
	will never be considered as character strings by Perl.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/Parsetexi.pm,
	tp/Texinfo/XS/parsetexi/Parsetexi.xs (parse_file)
	(add_include_directory): use macro corresponding to bytes to get
	file paths in the C parser.  Add comments explaining that file paths
	should be binary string, with any encoding, while other strings should
	be UTF-8 encoded.

2023-07-28  Patrice Dumas  <pertusus@free.fr>

	* tp/texi2any.pl: use $curdir from File::Spec->curdir() instead of '.'.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\unnsecentry, \unnsubsecentry): Correct
	spelling of command sequences.

2023-07-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser),
	tp/Texinfo/XS/parsetexi/Parsetexi.xs: pass parser conf strings as
	UTF-8 encoded bytes, and use the macro corresponding to bytes to get
	the strings in the C parser.

2023-07-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/Parsetexi.pm (parse_texi_piece)
	(parse_texi_text, parse_texi_line),
	tp/Texinfo/XS/parsetexi/Parsetexi.xs (parse_piece, parse_string)
	(parse_text): encode strings passed to the C parser to UTF-8
	explicitly to make those strings byte strings.  In the C parser, use
	the macro corresponding to bytes to get the strings.

2023-07-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (store_additional_info)
	(store_source_mark_list, element_to_perl_hash): add fatal() calls for
	impossible cases (info information element added twice, source mark
	element registered twice, parent set after the children).
	Add comments to explain that since args and contents are processed
	before extra information, element associated to extra often have their
	hv already set.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Top): Eliminate @menu and
	use new @nodedescription command in sub-nodes.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Xref Commands): Eliminate @menu and
	use new @nodedescription command in sub-nodes.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_add_text):
	Re-order arguments to fprintf to match intended order.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands): Remove reference to "this
	window".  Add index entry for 'execute-command'.
	(More Node Commands): Subordinate comment about 'global-next-node'
	and 'global-prev-node' to one of the items in the table.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Xref Commands): Mention menus in this node.
	(Parts of an Xref): Change two cases of "cross reference" to
	"cross-reference".   Place example earlier in node.
	Refer to a menu entry as an "entry".  Link
	to different node in Texinfo manual.  Fix capitalisation of
	"Texinfo".

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands): Do not link to emacs manual
	for explanation of M-x, as this contains much irrelevant material.
	State that M-x is 'execute-command'.  Give example using previously
	documented command.  Change ALT to Alt and CTRL to Ctrl, as well
	as META to Meta.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands): Edit.  Do not talk about
	'the current window' as this is an unnecessary complication.  Say
	more about the hierarchical structure of an Info file.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands, More Node Commands):
	Split off 'More Node Commands' node with the less important
	commands in it.
	(Cursor Commands, Node Commands): Move description of M-x, C-u
	and keystroke notation earlier in manual.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands): Reduce duplication in
	discussion of 'l' command and talk less about 'discarding nodes'.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands) <goto-invocation>:
	Fix example to use the right key.
	(Stand-alone Info, Miscellaneous Commands):
	Change 'makeinfo' to 'texi2any'.

2023-07-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (@verbatim): Change [tab] to <tab> as is
	more usual in other parts of the manual.

2023-07-26  Gavin Smith <gavinsmith0123@gmail.com>

	TOC @subsubsection number alignment

	* doc/texinfo.tex (\findsecnowidths): Also collect information
	on the widths of subsubsection numbers.
	(\numsubsecentry, \unsubsecentry): Call \retrievesecnowidth.
	(\dosubsubsecentry): Assign \secnowidth based on result.

2023-07-26  Gavin Smith <gavinsmith0123@gmail.com>

	TOC @subsection number alignment

	* doc/texinfo.tex (\findsecnowidths): Also collect information
	on the widths of subsection numbers.
	(\retrievesecnowidth): Take an argument, being the dimension
	register to assign to.
	(\numsecentry, \unsecentry): Call \retrievesecnowidth.
	(\dosubsecentry): Assign \secnowidth based on result.

2023-07-26  Patrice Dumas  <pertusus@free.fr>

	Simpler more consistent UTF-8 and unicode handling, stricter UTF-8 conversion

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): map utf8 to
	utf-8 for input_encoding, to get the same output as the perl parser
	with mime_name and also because it is better.

	* tp/Texinfo/Common.pm (%encoding_name_conversion_map): map utf8 to
	utf-8 to always use the same conversion in perl, and prefer the strict
	conversion.

	* tp/Texinfo/Common.pm (encode_file_name, count_bytes): do not use
	utf-8 specific conversion, always use Encode encode and also use the
	strict conversion.

	* tp/Texinfo/Convert/Unicode.pm (_format_eight_bit_accents_stack),
	tp/Texinfo/ParserNonXS.pm (_new_text_input, _next_text): use the
	utf-8 encoding not utf8 for Encode encode strict conversion.

	* tp/Texinfo/Convert/HTML.pm (converter_initialize),
	tp/Texinfo/Convert/Unicode.pm: use charnames::vianame to obtain
	characters based on a string representation of unicode codepoints, as
	it is simple and this is what is described in the documentation.

	* tp/Texinfo/Convert/Unicode.pm (unicode_point_decoded_in_encoding):
	handle hex strings in the ascii range for 8bit encodings.

	* tp/Makefile.tres, tp/t/08misc_commands.t (documentencoding_utf8):
	new test with documentencoding utf8.

2023-07-26  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\summarycontents): Set \extrasecnoskip to
	restore extra space in the summary contents.

2023-07-26  Gavin Smith <gavinsmith0123@gmail.com>

	TOC section number spacing

	* doc/texinfo.tex (\labelspace): Narrow from 1em to 0.6em.  This
	is used after section numbers in the table of contents.
	(\tocentry, \extrasecnoskip): Add an extra skip of \extrasecnoskip
	after the section number.
	(\dochapentry): Set \extrasecnoskip so to maintain the same space
	after chapter numbers in the table of contents.

2023-07-26  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\tocentry): Fix setting of \entrycontskip
	to work with last change.

2023-07-26  Gavin Smith <gavinsmith0123@gmail.com>

	TOC section number alignment

	* doc/texinfo.tex (\findsecnowidths): New macro, to get maximum
	width of section numbers for each chapter.
	(\contents): Call it.

	(\retrievesecnowidth): New macro to get the maximum widths.
	(\numchapentry, \appentry): Call it.

	(\tocentry, \secnowidth): Use \secnowdith for alignment if set to
	a non-zero value.
	(\dosecentry): Set \secnowidth based on result of \retrievesecnowidth.

	This aligns section titles in the table of contents if there are
	10 or more sections in a chapter.  Report from Karl.

2023-07-26  Patrice Dumas  <pertusus@free.fr>

	in HTML associate node without section to following heading command

	* tp/Texinfo/Convert/HTML.pm (%defaults, _convert_heading_command),
	NEWS, doc/texinfo.texi (HTML Customization Variables),
	tp/Texinfo/Common.pm (@variable_string_settables),
	tp/Texinfo/Convert/Utils.pm (find_root_command_next_heading_command):
	add find_root_command_next_heading_command() to return a heading
	command found before contents that could be formatted.  Use that
	in HTML heading formating such as not to output a heading if there
	is a node not associated to sectioning command but followed by
	a @*heading command.  Use USE_NEXT_HEADING_FOR_LONE_NODE to customize
	that, set in the default case.

	* tp/Makefile.tres, tp/t/html_tests.t (headings_after_lone_nodes):
	new test to test association of lone node with next @*heading command.

2023-07-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_default_format_navigation_panel): do
	not output buttons corresponding to space separators if there is no
	button before.  Do not output the paragraph in the navigation panel
	div if there is no navigation panel buttons output.

2023-07-25  Patrice Dumas  <pertusus@free.fr>

	Complete HTML menus with nodedescription

	* tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type): replace
	empty description by node_description extra information.

	* tp/Texinfo/Convert/Plaintext.pm (_convert): more robust
	determination of empty menu description.

	* tp/t/results/menu/nodedescription_descriptions.pl
	(nodedescription_descriptions): fix type in @verb name.

2023-07-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_expand_linemacro_arguments),
	tp/Texinfo/XS/parsetexi/macro.c (expand_linemacro_arguments):
	a comment on a linemacro defined command invokation (not in braces) is
	not part of the arguments, and is left after the expansion as
	agreed with Gavin.

	* tp/Makefile.tres, tp/t/65linemacro.t
	(comment_on_linemacro_call_out_of_braces)
	(comment_on_linemacro_call_macro_expansion): more tests of comments on
	linemacro call lines.

2023-07-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/ParagraphNonXS.pm (new): rename 'last_char'
	as 'last_letter'. a Always set 'last_letter', to an empty string
	when it was previously undef.

	* tp/Texinfo/Convert/ParagraphNonXS.pm (end, _add_next, add_text),
	tp/Texinfo/XS/xspara.c (xspara__end_line, xspara_end)
	(xspara_add_text): set last_letter to the last character when it is
	space or end of line, or fullwidth character.  Do not unset
	last_letter in _add_pending_word.  Unset last_letter in end.

	* tp/Texinfo/Convert/ParagraphNonXS.pm ($end_sentence_characters):
	rename $end_sentence_character as $end_sentence_characters.

	* tp/Texinfo/XS/xspara.c (after_punctuation_characters)
	(end_sentence_characters): use defin for the strings to be sure to
	avoid errors in code (] was missing in one place).

	* tp/Texinfo/Convert/ParagraphNonXS.pm: try to have all debug messages
	as one string.

	* tp/t/paragraph.t: more tests with fullwidth characters, including
	latin fullwidth characters that can be upper case.

	* tp/Makefile.tres, tp/t/plaintext_tests.t
	(split_punctuation_detection_in_commands): new test with all the
	puctuation related character tested and with @-commands.

2023-07-24  Gavin Smith <gavinsmith0123@gmail.com>

	No casts in isascii_* calls

	* tp/Texinfo/XS/parsetexi/end_line.c (isascii_alpha),
	* tp/Texinfo/XS/parsetexi/parser.c (isascii_alnum):
	Remove casts to 'unsigned char' from call sites.  These should
	not be necessary as we check in the functions that the argument
	is in the ASCII range.

2023-07-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm (_convert): add a space after
	a menu entry before the added menu entry description if there is none.

	* tp/Texinfo/Convert/Plaintext.pm: change in spacing.

	* tp/t/10menu.t (nodedescription_descriptions): more tests with
	long node and name entries.

2023-07-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/ParagraphNonXS.pm (_add_pending_word, _add_next):
	rearrange code to be more similar to XS Paragraph.

2023-07-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/xspara.c (xspara__print_escaped_spaces): really
	add this function (rename from print_escaped_spaces).

2023-07-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/xspara.c (xspara__add_pending_word): reset
	state.space_counter too when indent and !state.unfilled.

	* tp/Texinfo/XS/xspara.c (xspara__print_escaped_spaces)
	(xspara__add_pending_word, xspara_end, xspara__add_next)
	(xspara_add_text): add debug similar to the perl Paragraph module.
	Enabled by changing a variable in the source file and recompiling.

2023-07-23  Patrice Dumas  <pertusus@free.fr>

	Complete Plaintext/Info menus with nodedescription

	* tp/Texinfo/Convert/Plaintext.pm (_convert): use nodedescription
	if a menu_entry_description is empty, using a new paragraph container.

	* tp/Texinfo/Convert/ParagraphNonXS.pm (counter),
	tp/Texinfo/XS/XSParagraph.xs (xspara_counter), tp/Texinfo/XS/xspara.c
	(xspara_counter): add counter() to get the current column counter value.

	* tp/Makefile.tres, tp/t/10menu.t (nodedescription_descriptions): new
	test to test @nodedescription added descriptions.

2023-07-23  Gavin Smith <gavinsmith0123@gmail.com>

	Fix parsetexi compilation errors

	* tp/Texinfo/XS/parsetexi/macro.c (expand_linemacro_arguments):
	Place case label after block variable declarations to prevent
	gcc error 'a label can only be part of a statement and a
	declaration is not a statement'.

2023-07-23  Patrice Dumas  <pertusus@free.fr>

	@nodedescription parsing in texi2any

	* tp/Texinfo/ParserNonXS.pm (%contain_full_text_commands)
	(_handle_line_command), tp/Texinfo/XS/parsetexi/handle_commands.c
	(handle_line_command), tp/Texinfo/XS/parsetexi/parser.c
	(check_valid_nesting), tp/Texinfo/command_data.txt: parse
	@nodedescription, adding extra information about the current node in
	and in the current node too in extra node_description.

	* tp/t/test_utils.pl (@contents_keys): add node_description.

	* tp/Makefile.tres, tp/t/08misc_commands.t (nodedescription): test
	parsing of @nodedescription.

2023-07-23  Patrice Dumas  <pertusus@free.fr>

	* doc/tp_api/Makefile.am (AM_MAKEINFOFLAGS): add the
	TREE_TRANSFORMATIONS complete_tree_nodes_menus, otherwise the Index
	appendix node in texi2any_internals_indices.texi concatenated file
	is not in any menu.

2023-07-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_expand_macro_arguments, _handle_macro),
	tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments)
	(handle_macro): pass the leading brace and possible spaces following
	the leading brace to expand_macro_arguments instead of handling them
	in handle_macro.  Add space before brace to
	"spaces_after_cmd_before_arg" info key as an element for macros call
	elements.

2023-07-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_new_value_element)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/parser.c
	(new_value_element, process_remaining_on_line) <value>: add space
	before brace to "spaces_after_cmd_before_arg" info key as an element,
	similar to other brace commands.

2023-07-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/65linemacro.t
	(protection_of_end_of_line_by_command): add specific test of
	protection of end of line by @ in linemacro call.  From Gavin.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/t/60macro.t (non_ascii_in_macro_name): skip test if /a regex flag
	is not available.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	autoconf test for conversion from EUC-CN to UTF-8 by iconv

	* configure.ac, tp/Makefile.am, tp/Texinfo/ModulePath.pm.in,
	tp/t/formats_encodings.t (multiple_include_encodings),
	tp/t/info_tests.t (chinese_mixed_with_en_EUC_CN): add a runtime check
	whether iconv converts EUC-CN to UTF-8.  Pass the result through
	Makefile.am and Texinfo::ModulePath.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (parse_file),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line),
	tp/Texinfo/XS/parsetexi/parser.c (check_line_directive): rename
	char variables used as a temporary placeholder for a character
	replaced by an end of string as saved to be more explicit and
	consistent.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm, tp/Texinfo/XS/parsetexi/input.c: explain
	the mapping of US-ASCII encoding to ISO-8859-1 for compatibility
	with old manuals in which US-ASCII could have been considered to
	be an alias for ISO-8859-1.  Based on Gavin input and looking at
	old Texinfo releases code and manuals.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c (isascii_alpha)
	(parse_line_command_args, end_line_starting_block)
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/handle_commands.c
	(parse_rawline_command), tp/Texinfo/XS/parsetexi/macro.c
	(parse_macro_command_line), tp/Texinfo/XS/parsetexi/parser.c
	(isascii_alnum, read_command_name, read_flag_name): add isascii_alpha
	to replace isalpha and isascii_alnum to replace isalnum to make sure
	that the character is also ascii, both because we want to select ascii
	characters only, and because we do not want to depend on the locale.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): replace
	uses of isspace by other str* functions applied on whitespace_chars
	to avoid being dependent on the locale as isspace is.

	* tp/Texinfo/ParserNonXS.pm, tp/Texinfo/XS/parsetexi/end_line.c,
	tp/Texinfo/XS/parsetexi/parser.c: use more consistently \d instead
	of [0-9] or [[:digit:]] in the perl parser, and use consistently
	digit_chars in the XS parser for a more consistent code and easier
	comparison between the two codes.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	Same parsing of @macro line for both parsers

	* tp/Texinfo/ParserNonXS.pm (_parse_macro_command_line),
	tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line): use
	the same code to parse @macro line for both parsers to get the
	same parsing and same errors message.

	* tp/Makefile.tres, tp/t/60macro.t (zero_argument_comment)
	(non_ascii_in_macro_name): new tests, with comment on zero arguments
	@macro line and non ascii character in macro name.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (element_extra_encoding_for_perl)
	(set_output_encodings), tp/Texinfo/Convert/Converter.pm
	(txt_image_text), tp/Texinfo/Convert/IXIN.pm (output_ixin),
	tp/Texinfo/Convert/Plaintext.pm (converter_initialize),
	tp/Texinfo/Translations.pm (gdt): check if encoding name
	is not defined, or not empty, but not that it is not '0'.

	* tp/Texinfo/Convert/Converter.pm (txt_image_text),
	tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/Info.pm
	(format_image), tp/Texinfo/Convert/Plaintext.pm (format_image): do not
	remove last end of line in txt_image_text, but in callers.

	* tp/ext/highlight_syntax.pm (highlight_process): check close()
	errors.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (txt_image_text): decode file name
	for error messages.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/encoded/osé_utf8_no_setfilename.texi: synchronize with
	tp/tests/encoded/osé_utf8.texi.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (html_image_file_location_name): add
	leading dot to extension used in case of error.

2023-07-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_input_push_file, _next_text)
	(_end_line_misc_line), tp/Texinfo/Convert/HTML.pm (_process_css_file):
	do not use binmode to reset input encoding, as with buffering in
	input the file content is read ahead with the previous encoding.
	Instead set binary mode and decode upon getting the line.

	* tp/Makefile.am (test_files), t/include/chapter_*.texi,
	t/include/documentdescription_EUC_CN.texi,
	t/input_files/multiple_include_encodings.texi, tp/Makefile.tres,
	tp/t/formats_encodings.t (multiple_include_encodings): new test
	to test multiple encodings in a Texinfo manual with included files
	using different encodings.

	* tp/tests/encoded/Makefile.am (EXTRA_DIST), tp/tests/Makefile.onetst,
	tp/tests/encoded/list-of-tests (non_ascii_test_info),
	tp/tests/encoded/osé_utf8.texi, tp/tests/encoded/txt_çimage.txt:
	add image text file to osé_utf8.texi.  Add an info output test
	for osé_utf8.texi.

2023-07-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (%encoding_name_conversion_map)
	(element_extra_encoding_for_perl, set_output_encodings),
	tp/Texinfo/ParserNonXS.pm (_end_line_misc_line): add mapping of
	encodings to encodings that extend them to use the extending encoding
	for conversion, as is done for us-ascii to ISO-8859-1 in XS parser.

	* tp/t/formats_encodings.t (char_us_ascii_latin1_in_refs),
	tp/Makefile.tres: add test with @documentencoding us-ascii and
	non-ascii ISO-8859-1 encoded characters.

2023-07-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization)
	(get_parser_info, _end_line_misc_line, _handle_close_brace):
	set info information in get_parser_info, set input_encoding_name
	as a parser state.  This allows not to set global parser information
	in parse_texi_line, as is done in the XS parser.

	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf)
	(build_global_info), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/input.c
	(set_input_encoding, reset_encoding_list),
	tp/Texinfo/XS/parsetexi/parser.c (wipe_global_info, wipe_global_info),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace):
	remove global_info.input_encoding_name, and rename input_encoding_name
	as global_input_encoding_name to be used instead, to have only one
	variable used.  Set global_input_encoding_name only if the iconv
	conversion could be initialized.  Set input encoding to utf8 after
	resetting the variables, not before.  Rename current_encoding as
	current_encoding_conversion. rename struct ENCODING as
	ENCODING_CONVERSION.

	* tp/Texinfo/XS/parsetexi/input.c (set_input_encoding)
	(encode_file_name): distinguish encoding name used in conversion and
	input encoding name.

	* tp/Makefile.am (test_files), tp/Makefile.tres,
	tp/maintain/regenerate_latin1_tests.sh, tp/t/formats_encodings.t
	(char_utf8_latin1_in_refs),
	tp/t/input_files/char_latin1_latin1_in_refs.texi,
	tp/t/input_files/char_us_ascii_latin1_in_refs.texi,
	tp/t/input_files/char_utf8_latin1_in_refs.texi: change file name,
	minor changes in files and generated files, generate a file with
	US-ASCII documentencoding containing latin1 encoded characters, not
	ussed for now.

2023-07-21  Patrice Dumas  <pertusus@free.fr>

	Use any input encoding known by iconv in the XS parser 

	* doc/texinfo.texi (@code{@@documentencoding}),
	tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/XS/parsetexi/input.c (set_input_encoding)
	(convert_to_utf8, encode_file_name, reset_encoding_list):
	use a list of encodings and iconv handlers based on the
	@documentencoding found in the manual.  Always set utf-8 at
	the first position in the list.  Use any encoding known by iconv
	instead of a fixed list of known encodings.  Remove enum
	character_encoding.

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line)
	<documentencoding>: trim non-ascii characters and keep only
	alphanumeric characters, - and _ in encoding names. iconv also seems
	to trim non alphanumeric non - _ characters.  Consider an encoding not
	handled by iconv or not found in perl parser during parsing to be
	unhandled.

	* tp/Texinfo/Common.pm (get_perl_encoding)
	(element_extra_encoding_for_perl), tp/Texinfo/ParserNonXS.pm
	(%parser_state_initialization, parse_texi_text, _input_push_file)
	(get_parser_info, parse_texi_file, _encode_file_name),
	tp/Texinfo/XS/parsetexi/Parsetexi.pm (get_parser_info): add
	get_perl_encoding function in Texinfo::Common to set
	{'info'}->{'input_perl_encoding'} based on XS parser code.  Use this
	function in both parsers.  In the perl parser, add get_parser_info
	function to call get_perl_encoding instead of doing it while parsing,
	and call get_parser_info in parse_* functions as required, similar to
	code in the XS parser.  Consider an encoding not found by perl to
	be unrecognized.

	* tp/Makefile.am (test_files), tp/Makefile.tres,
	tp/t/08misc_commands.t (documentencoding_zero), tp/t/info_tests.t
	(chinese_mixed_with_en_EUC_CN),
	tp/t/input_files/chinese_mixed_with_en_EUC_CN.texi: two new tests
	related to encodings, one using EUC-CN an ascii compatible encodding
	that was not available before in the XS parser.

2023-07-20  Patrice Dumas  <pertusus@free.fr>

	* tp/t/65linemacro.t (end_conditional_in_linemacro)
	(begin_conditional_in_linemacro, block_begin_end_in_linemacro_call):
	add another conditional test in end_conditional_in_linemacro, add
	begin_conditional_in_linemacro and block_begin_end_in_linemacro_call
	similar tests.

2023-07-20  Patrice Dumas  <pertusus@free.fr>

	* tp/t/65linemacro.t (recursive_linemacro_in_call): new test.

2023-07-20  Patrice Dumas  <pertusus@free.fr>

	* tp/t/60macro.t (arobase_brace_in_macro_call), tp/t/65linemacro.t
	(arobase_brace_in_linemacro_call): add tests with @{ and @} in macro
	and linemacro calls.

	* tp/t/65linemacro.t (spaces_after_command_in_call)
	(spaces_after_unknown_command_in_call): rename
	spaces_after_command_in_call as spaces_after_unknown_command_in_call
	and use a known brace command in the new version of
	spaces_after_command_in_call.

	* tp/t/65linemacro.t (spaces_after_macro_linemacro_commands_in_call):
	add test.

2023-07-20  Patrice Dumas  <pertusus@free.fr>

	* tp/t/60macro.t (verb_with_arobase_in_macro_call)
	(verb_with_brace_in_macro_call, tp/t/65linemacro.t
	(verb_in_linemacro_call, verb_with_arobase_in_linemacro_call)
	(verb_with_brace_in_linemacro_call), tp/Makefile.tres: more tests for
	@verb in macro and linemacro calls.

2023-07-20  Patrice Dumas  <pertusus@free.fr>

	* tp/t/65linemacro.t (comment_in_linemacro_call)
	(comment_in_one_argument_linemacro_call)
	(comment_at_end_of_linemacro_call): new tests with comments and
	linemacro.

2023-07-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_macro),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro): put checks related to
	expansion before the expansion, as during the expansion, the text may
	go past the call.  In particular for user defined linemacro which
	generally get the final new line from following text.

	* tp/t/65linemacro.t (call_macro_in_linemacro_body)
	(call_macro_in_linemacro_call, recursive_linemacro_in_body),
	tp/Makefile.tres: new @linemacro tests.

	* tp/Texinfo/XS/parsetexi/macro.c (expand_linemacro_arguments):
	change code to be more readable and compact.

	* tp/Texinfo/XS/parsetexi/debug.c (debug_print_protected_string):
	special message if input_string is 0.

2023-07-19  Patrice Dumas  <pertusus@free.fr>

	Reimplement linemacro arguments expansion in a separate function

	* tp/Texinfo/ParserNonXS.pm (_expand_linemacro_arguments)
	(_end_line_misc_line, _end_line_def_line, _end_line, _handle_macro)
	(_handle_open_brace, _process_remaining_on_line, _parse_texi),
	tp/Texinfo/XS/parsetexi/context_stack.c (context_name),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line)
	(end_line_misc_line, end_line), tp/Texinfo/XS/parsetexi/macro.c
	(count_toplevel_braces, set_toplevel_braces_nr)
	(expand_linemacro_arguments, handle_macro),
	tp/Texinfo/XS/parsetexi/parser.c (linecommand_expansion_delimiters)
	(process_remaining_on_line, parse_texi),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace):
	use the expand_linemacro_arguments function directly in handle_macro
	to parse the linemacro defined user commands arguments, such that they
	are expanded in a second step only.  @-command are taken into account
	to protect spaces or braces, braces are matched, spaces separate
	arguments and what remains on the line is the last argument.  In the
	XS parser, use a specific counter count_toplevel_braces, and use
	set_toplevel_braces_nr to count closed braces.
	Remove code related to the previous implementation.

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization)
	(_end_line_def_line, _process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	remove global state in_parsing_only, which is not relevant with
	the new implementation.

2023-07-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_command_name)
	(_process_remaining_on_line), tp/Texinfo/XS/MiscXS.xs
	(xs_parse_command_name), tp/Texinfo/XS/misc.c (xs_parse_command_name):
	use more similar interface for parse_command_name in the perl parser
	than in the XS parser.

2023-07-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_command_name, _parse_texi_regex)
	(_process_remaining_on_line), tp/Texinfo/XS/MiscXS.xs
	(xs_parse_command_name, xs_parse_texi_regex), tp/Texinfo/XS/misc.c
	(xs_parse_command_name, xs_parse_texi_regex),
	tp/Texinfo/XS/parsetexi/parser.c (parse_command_name)
	(process_remaining_on_line): process text starting with @ in one
	place.  Determine first if starting by @ (in _parse_texi_regex in the
	perl parser) and afterwards determine the command name, with a new
	function parse_command_name.

2023-07-17  Gavin Smith <gavinsmith0123@gmail.com>

	Multi-line TOC entry alignment

	* doc/texinfo.tex (\entrycontskip): new dimen.
	(\entry): Use \entrycontskip for indentation of continuation lines.
	When splitting across several lines, cancel adjustments
	made to allow a slightly longer, single line.  When entry text could
	cross over more than two lines, use the same line length for all
	lines.

	(\tocentry): New macro.  Handle concatenation of section
	number, space and section title, before calling \entry.
	When a TOC entry has a section number, set \entrycontskip
	to the width of the number and a following space so that any
	continuation lines in the entry will be aligned.

	(\partentry, \numchapentry, \shortchaptentry, \appentry)
	(\unnchapentry, \shortunnchapentry, \numsecentry, \unsecentry)
	(\numsubsecentry, \unnsubsecentry, \numsubsubsecentry)
	(\unnsubsubsecentry, \dochapentry, \dosecentry, \dosubsecentry)
	(\dosubsubsecentry):
	Calls to \tocentry (previously alias for \entry) updated.

	Report from Karl.

2023-07-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line): inline and remove
	_encoding_alias, for simpler code more similar to XS parser.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): update
	comments and move a variable declaration.

2023-07-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/IXIN.pm (output_ixin): take encoding information
	from image element.

2023-07-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (encoded_input_file_name),
	tp/Texinfo/Convert/Utils.pm (expand_verbatiminclude)
	(encoded_input_file_name): put encoded_input_file_name in
	Texinfo::Convert::Utils, and make encoded_input_file_name in
	Texinfo::Convert::Converter a wrapper around it.  Add an optional
	argument to encoded_input_file_name to specify the input file
	encoding.  Use encoded_input_file_name in expand_verbatiminclude
	with the optional argument.

	* tp/texi2any.pl: initialize correctly the converter used when
	SORT_ELEMENT_COUNT is set.  Use the converter more consistently to
	find customization variables and methods.

2023-07-16  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (test): OUTPUT_PERL_ENCODING should always be set
	in converters, so use nly that variables to set output encoding.

2023-07-16  Patrice Dumas  <pertusus@free.fr>

	* tp/t/08misc_commands.t (comment_space_command_on_line): remove
	redundant xml test.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/Parsetexi.pm (get_parser_info),
	tp/Texinfo/XS/parsetexi/api.c (build_global_info),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line)
	<documentencoding>, tp/Texinfo/XS/parsetexi/parser.c
	(wipe_global_info): do not set input_perl_encoding in the XS parser,
	set in perl code in Parsetexi.pm get_parser_info.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): remove
	input_perl_encoding from documentencoding extra hash.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	Replace extra input_perl_encoding by input_encoding_name in elements

	* tp/Texinfo/Common.pm (element_extra_encoding_for_perl),
	tp/Texinfo/Convert/Converter.pm (txt_image_text),
	tp/Texinfo/Convert/Text.pm (converter), tp/Texinfo/Convert/Utils.pm
	(expand_verbatiminclude), tp/Texinfo/ParserNonXS.pm
	(_end_line_misc_line, _handle_close_brace),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): use
	input_encoding_name instead of input_perl_encoding in tree extra
	elements.  Add element_extra_encoding_for_perl to Texinfo::Common
	to find perl encoding based on element extra input_encoding_name.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace) <verb>:
	handle a non-ascii verb delimiter.

	* tp/Makefile.tres, tp/t/formats_encodings.t
	(verb_delimiter_not_ascii): new test to test non ascii @verb
	delimiters.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/formats_encodings.t (dotless_argument_non_ascii): add the
	test of braced non-ascii argument of @dotless.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line)
	<accent commands>: use an element string to get a whole UTF-8
	character in error message on dotless argument.

	* tp/Makefile.tres, tp/t/formats_encodings.t
	(dotless_argument_non_ascii): new test to test the dotless incorrect
	argument error message with a non-ascii character.

2023-07-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/t/formats_encodings.t (accent_argument_non_ascii): Enable.

2023-07-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line)
	<accent commands>: Count UTF-8 continuation bytes for character
	following accent command.  Report from Patrice.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/formats_encodings.t: add
	accent_argument_non_ascii test.  Set it to be skipped as the result is
	incorrect with the XS parser for now.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm (_convert): avoid undef warning
	with definfoenclose by checking that $brace_commands{} exists.
	Change in spaces.

2023-07-15  Patrice Dumas  <pertusus@free.fr>

	Distinguish input text macro context and input text macro expansion

	* tp/Texinfo/ParserNonXS.pm (_input_push_text, _next_text)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/input.c
	(next_text, input_push_text), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line): the macro name passed to
	input_push_text means that the text comes from macro expansion.
	The input stack is used to determine if alreay in macro context.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_macro_command_line)
	(_expand_macro_arguments, _end_line, _handle_macro)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/macro.c
	(parse_macro_command_line, expand_macro_arguments, handle_macro),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	synchronize debug messages, move code around to be more consistent
	across parsers, 

	* tp/Texinfo/ParserNonXS.pm (_handle_comma): remove retval return
	value, it is only set to the same value as the default in the caller.

	* tp/Texinfo/ParserNonXS.pm (_new_macro, _process_remaining_on_line):
	add _new_macro function to be more in line with XS parser.

	* tp/Texinfo/ParserNonXS.pm (_expand_macro_body, _handle_macro): allow
	macrobody to be undef if there is no content, similar to XS parser.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/t/60macro.t: add spaces after bad macro specification argument.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (run_stage_handlers): do not output the
	code handler reference, instead use an index to determine the handler.

2023-07-14  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: mention @linemacro

2023-07-14  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Generic Definition Commands), NEWS:
	Document @deftypeline.

2023-07-12  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: remove reverted change about index commands ending
	paragraphs.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line)
	(_handle_menu_entry_separators, _handle_line_command)
	(_handle_open_brace, _handle_comma),
	tp/Texinfo/XS/parsetexi/handle_commands.c (parse_rawline_command)
	(handle_line_command), tp/Texinfo/XS/parsetexi/menus.c
	(handle_menu_entry_separators), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line), tp/Texinfo/XS/parsetexi/separator.c
	(handle_comma): synchronize debug messages across parsers.

	* tp/Texinfo/ParserNonXS.pm (_handle_open_brace),
	tp/Texinfo/XS/parsetexi/separator.c (handle_comma): rearrange code
	related to inline type.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_html_set_pages_files): set up a
	reproducible order following the tree units order for the call
	of set_file_path.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/debug.c (debug_print_element)
	(debug_print_protected_string): use fputs instead of debug_nonl to
	output a string when there is no need for formats.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_open_brace)
	(_process_remaining_on_line): handle @verb delimiter determination
	in handle_open_brace to do the same as in the XS parser.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace): call
	new_line after verb opening brace if the line is an empty string
	in case the delimiter is in macro expansion.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add macro_for_verb test.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/65linemacro.t: add
	end_conditional_in_linemacro test.

2023-07-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line, _handle_macro)
	(_handle_menu_entry_separators, _handle_open_brace)
	(_process_remaining_on_line, _parse_texi): use exactly the
	whitespace_chars_except_newline chracters from the XS parser
	in matching.

	* tp/Texinfo/ParserNonXS.pm (_debug_protect_eol)
	(_process_remaining_on_line): use a function to protect eol in debug
	messages.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): add
	debug message for form feeds.

2023-07-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_expand_macro_arguments),
	tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments): simplify XS
	parser code.  More consistent code.

2023-07-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_current, _expand_macro_arguments)
	(_handle_menu_entry_separators, _handle_close_brace)
	(_process_remaining_on_line, _parse_line_command_args),
	tp/Texinfo/XS/parsetexi/close.c (close_all_style_commands)
	(close_commands), tp/Texinfo/XS/parsetexi/context_stack.c
	(context_name), p/Texinfo/XS/parsetexi/macro.c
	(expand_macro_arguments), tp/Texinfo/XS/parsetexi/menus.c
	(handle_menu_entry_separators), tp/Texinfo/XS/parsetexi/parser.c
	(abort_empty_line, process_remaining_on_line, parse_texi), 
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): synchronize
	debug messages.

	* tp/Texinfo/ParserNonXS.pm (_expand_macro_arguments),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	more similar codes for both parsers.


2023-07-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser),
	tp/Texinfo/XS/parsetexi/Parsetexi.xs (reset_parser),
	tp/Texinfo/XS/parsetexi/api.c (reset_parser): pass directly DEBUG
	configuration value to reset_parser() to override previous parser
	configuration, as the configuration isn't already reset and the new
	configuration is set afterwards.  Do not call debug() in reset_parser()
	but use directly the debugging configuration input value.

2023-07-13  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Error Reporting in User Defined Functions),
	tp/Texinfo/Report.pm (line_warn, line_error),
	tp/Texinfo/XS/parsetexi/Parsetexi.pm (_get_errors), 
	tp/Texinfo/XS/parsetexi/errors.c (debug_error_warning_message)
	(line_error_internal): output directly some messages for
	warning/errors in XS parser as is done in perl parser, using
	the debug_error_warning_message function.  To avoid a redundant
	message being output when calling Texinfo::Report::line_warn or
	line_error from Parsetexi.pm _get_errors, add an argument to
	line_warn/line_error to silence the messages output normally when
	DEBUG is set.

	* tp/Texinfo/ParserNonXS.pm (parser, simple_parser)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/close.c
	(close_container), tp/Texinfo/XS/parsetexi/debug.c (debug_protect_eol)
	(debug_print_protected_string), tp/Texinfo/XS/parsetexi/input.c
	(next_text), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line, parse_texi): synchronize debug messages.

2023-07-12  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo-tex-test.texi (Definitions): Add a needed
	"@clear txidefnamenospace" before examples.

2023-07-12  Gavin Smith <gavinsmith0123@gmail.com>

	No custom gendocs template any more

	* doc/gendocs.chapter/gendocs_template: Remove.  Not needed
	any more following gnulib update.
	* doc/Makefile.am (wwwdoc-build): Update.
	* README-hacking: mention necessity of installing texinfo.tex to
	run "make wwwdoc-build".

2023-07-12  Gavin Smith <gavinsmith0123@gmail.com>

	No space for @ def line continuation

	* doc/texinfo.texi (\argremovespace): Remove macro handling
	@(newline).  This should only occur in line arguments on @def*
	lines and we do not need the complicated handling of it generally.
	Handling @(newline) in here makes it very hard to make any changes
	that just affect @def*.
	(\argremovespace): Reinstate definition from 2003-11-22 to handle
	stripping a space token from the end of an argument, which is
	simpler and all that is needed for most calls.
	(\printname, \defunargs): Make @<newline> sequence expand to
	nothing.  This matches the behaviour of texi2any.

	bug-texinfo discussion, 7 Apr 2023.

2023-07-12  Gavin Smith <gavinsmith0123@gmail.com>

	XS file copyright notices

	* tp/Texinfo/XS/MiscXS.xs
	* tp/Texinfo/XS/XSParagraph.xs,
	* tp/Texinfo/XS/parsetexi/Parsetexi.xs:
	Move or add copyright notice further up in files.

2023-07-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization)
	(_end_line_def_line, _process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	add in_parsing_only state set when only parsing should process,
	not any processing (error message, rearranging of the tree...).

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization, _next_text)
	(_process_remaining_on_line): remove value_stack, use a simpler
	integer as indicator of the number of values expansion,
	value_expansion_nr, as in the XS parser.

	* tp/Texinfo/XS/parsetexi/close.c (close_commands): no debug message
	if stopping closing at ET_root_line.

	* tp/Texinfo/ParserNonXS.pm (_close_all_style_commands, _next_text)
	(_end_line_misc_line, _end_line_starting_block, _end_line)
	(_handle_other_command, _handle_open_brace, _parse_line_command_args),
	tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/context_stack.c (context_name),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args)
	(end_line_starting_block, end_line_misc_line, end_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_brace_command),
	tp/Texinfo/XS/parsetexi/parser.c (parent_of_command_as_argument)
	(process_remaining_on_line), tp/Texinfo/XS/parsetexi/separator.c
	(handle_open_brace, handle_close_brace),
	tp/Texinfo/XS/parsetexi/source_marks.c (place_source_mark):
	add context_name function in XS parser. Modify debug messages,
	synchronize debug messages across both parsers.


2023-07-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/close.c (remove_empty_content)
	(close_container, close_commands), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_def_line, end_line_starting_block, end_line),
	tp/Texinfo/XS/parsetexi/parser.c (merge_text, abort_empty_line)
	(isolate_last_space), tp/Texinfo/XS/parsetexi/source_marks.c
	(place_source_mark): do not use print_element_debug without free'ing
	the result string, instead use debug_print_element more to avoid
	memory leaks.  Report and idea of fix from Gavin.

2023-07-11  Gavin Smith <gavinsmith0123@gmail.com>

	NEWS: Mention CHECK_NORMAL_MENU_STRUCTURE change.

2023-07-11  Gavin Smith <gavinsmith0123@gmail.com>

	Warnings for missing menu entries

	* tp/Texinfo/Structuring.pm (complete_node_tree_with_menus):
	Give a warning for missing menu entries even if
	CHECK_NORMAL_MENU_STRUCTURE is not set.

	Report from Bruno Haible.

2023-07-11  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi: Fix structuring errors revealed by
	CHECK_NORMAL_MENU_STRUCTURE=1.

2023-07-10  Patrice Dumas  <pertusus@free.fr>

	* util/texinfo.dtd: fix typo in link attribute declaration.

2023-07-10  Gavin Smith <gavinsmith0123@gmail.com>

	@link for "Texinfo XML"

	* tp/Texinfo/Convert/TexinfoMarkup.pm (%commands_args_elements):
	Add 'link'.
	(_convert): Handle @link like @inforef.
	* util/texinfo.dtd: Add link element and its subelements.

2023-07-10  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (@link), NEWS: Document @link.
	* doc/texinfo.texi (Info Format FAQ): Mention possibility of @link.

2023-07-10  Gavin Smith <gavinsmith0123@gmail.com>

	* util/texinfo.dtd: Add 'link'.

2023-07-10  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/t/converters_tests.t (link): New test.

2023-07-10  Gavin Smith <gavinsmith0123@gmail.com>

	@link for DocBook

	* tp/Texinfo/Convert/DocBook.pm (_convert): Handle @link.

2023-07-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_current),
	tp/Texinfo/XS/parsetexi/close.c (close_current): use the current
	element returned by end_line_misc_line and end_line_starting_block,
	and get the parent/call close_container for each type.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line): unset parent
	field of linemacro_call container in source mark.

	* tp/Texinfo/ParserNonXS.pm (_close_container),
	tp/Texinfo/XS/parsetexi/close.c (close_container): output a debug
	message even if there are source marks.

	* tp/Texinfo/Structuring.pm (sectioning_structure): change in debug
	message.

2023-07-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_remove_empty_content, _close_container),
	tp/Texinfo/XS/parsetexi/close.c (remove_empty_content)
	(close_container): synchronize debug messages across the parsers.
	Use more print_element_debug instead of debug_print_element in XS
	parser.

2023-07-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (debug_command_name, debug_print_element),
	tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/debug.c (debug_command_name)
	(print_element_debug), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line): escape \n and \t in command name in
	debug messages for better readability.

2023-07-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_debug_show_source_mark)
	(_place_source_mark, _merge_text),
	tp/Texinfo/XS/parsetexi/source_marks.c (source_mark_name)
	place_source_mark), tp/Texinfo/XS/parsetexi/tree_types.h
	(source_marks_names): more similar code in perl parser than in XS
	parser, same source marks debug message in XS parser than in perl
	parser.

	* tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
	tp/Texinfo/XS/parsetexi/tree_types.h (enum source_mark_status): remove
	unused SM_status_fail source mark status.

2023-07-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization, _next_text)
	(_handle_macro): register the number of expanded macros in a scalar
	and go through input to check if a macro is being expanded instead
	of keeping a stack of expanded macros, also to be more similar with
	XS parser.

	* tp/Texinfo/ParserNonXS.pm (_isolate_last_space),
	tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line)
	(end_line_starting_block), tp/Texinfo/XS/parsetexi/macro.c
	(handle_macro), tp/Texinfo/XS/parsetexi/parser.c (isolate_last_space):
	add debug messages in XS parser to match better perl parser.

2023-07-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (debug_print_element),
	tp/Texinfo/ParserNonXS.pm (_merge_text, _abort_empty_line)
	(_isolate_last_space, _end_line_misc_line, _parse_texi),
	tp/Texinfo/XS/parsetexi/context_stack.c (push_context, pop_context),
	tp/Texinfo/XS/parsetexi/debug.c (print_element_debug),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line),
	tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line),
	tp/Texinfo/XS/parsetexi/parser.c (merge_text, abort_empty_line)
	(parse_texi): shorten debug messages, synchronize debug messages of
	perl and XS parsers to some extent.

2023-07-07  Patrice Dumas  <pertusus@free.fr>

	* tp/t/65linemacro.t, tp/Makefile.tres: add blockitem_no_item
	test.

2023-07-02  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\link): Call \unsepspaces in case
	@link is used in @example environment, to stop the label
	in e.g. @link{One, Three} being taken as " Three" with a
	extra leading space.  Report from Andreas Falkenhahn.

2023-06-25  Gavin Smith <gavinsmith0123@gmail.com>

	Rename texi2any config file

	* tp/texi2any.pl ($conf_file_name): Rename config file from
	'Config' to 'texi2any-config.pm', as 'Config' is too generic
	and can clash with other uses.
	* doc/texi2any_api.texi (Loading Init Files): Update.

	Report from Jun T <takimoto-j@kba.biglobe.ne.jp>.

2023-06-11  Gavin Smith <gavinsmith0123@gmail.com>

	@link for LaTeX

	* tp/Texinfo/Convert/LaTeX.pm (_convert): Handle @link.

2023-06-10  Paul Eggert <eggert@cs.ucla.edu>

	* doc/texinfo.tex: Fix two misspellings in comments.
	Originally reported by Josh Soref <jsoref@gmail.com> in:
	https://lists.gnu.org/r/bug-gnulib/2023-06/msg00057.html

2023-06-05  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: Correct name of new variable.

2023-05-17  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/debug.h: Change include guard symbol to
	avoid clash with Perl headers.  Report from Werner.  Remove copyright
	notice, as this file is trivial.

2023-05-05  Gavin Smith <gavinsmith0123@gmail.com>

	@link for HTML

	* tp/Texinfo/Convert/HTML.pm (%default_commands_args):
	Add 'link', copied from 'inforef'.
	(_convert_xref_commands): Treat 'link' similarly to 'ref', but
	with the arguments of 'inforef'.
	Do not prefix a user-provided label with a parenthesised manual.

2023-05-05  Gavin Smith <gavinsmith0123@gmail.com>

	Error checking for @link and @inforef

	* tp/Texinfo/command_data.txt (link): Add ref flag.
	* tp/Texinfo/ParserNonXS.pm (_handle_close_brace) <ref command>,
	* tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace):
	Handle @link the same as @inforef.  Add internal @link and @inforef
	to list of internal references, which results in check being done
	in Texinfo/Structuring.pm for references to non-existent nodes.

2023-05-05  Gavin Smith <gavinsmith0123@gmail.com>

	@link for Info output

	* tp/Texinfo/command_data.txt: Add @link.
	* tp/Texinfo/Convert/Plaintext.pm (_convert): Handle.

2023-04-21  Gavin Smith <gavinsmith0123@gmail.com>

	* info/infomap.c (default_vi_like_info_keys): Add BackTab for
	info_move_to_prev_xref.
	Report from Sebastian Carlos <sebaaa1754@gmail.com>

2023-04-16  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert):
	Do not insert into  'current_contents' array at all.  Do not
	copy 'contents' array when converting element contents.  This
	save space and time.
	<xref commands, index entry commands> Adapt to fact that
	elements are not removed from 'current_contents' as they are
	converted, so current element is still present.

2023-04-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert):
	Insert into 'current_contents' array less, rather calling
	_convert recursively on added material.  This seems more
	straightforward than modifying an array that we are iterating
	over.

2023-04-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert):
	Move handling of cross-reference commands earlier.

2023-04-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert):
	Combine brace commands into a single conditional block
	so all the checks for these can be easily skipped.

2023-04-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list):
	Use newRV_noinc when refering to objects we have just created.
	(store_additional_info): Use sv_2mortal on created hash.

2023-04-14  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (Root): Declare as a static
	pointer.  For some reason, even though the symbol was undefined
	in the XS library, the program still ran, although much slower.

2023-04-14  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf):
	Always call destroy_element_and_children.

2023-04-14  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/tree.c (reset_obstacks):
	Do not call obstack_init more than once.  Storage was not
	being reused in the obstack.
	(alloc_element): Zero element.
	(alloc_and_zero): Do not use for obstack_chunk_alloc definition,
	and remove.

2023-04-14  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line):
	Free a variable to avoid a memory leak.

2023-04-13  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: add note about Perl::Destruct::Level.

2023-04-13  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash)
	(build_single_index_data, build_global_info, build_global_info2)
	(build_source_info_hash, convert_error): Use newRV_noinc instead
	of newRV_inc when we have just created a Perl object that we
	are taking a reference to, as the object already has a reference
	count of 1.

2023-04-13  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/tree.c (spare_element, new_element)
	(destroy_element, reset_obstacks): Reuse storage from
	destroy_element, which is called a lot from abort_empty_line.
	* tp/Texinfo/XS/parsetexi/end_line.c (end_line): Disable
	check for infinite loop when closing commands.

2023-04-12  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/tree_types.h (ELEMENT):
	Reorder fields slightly.

2023-04-11  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/tree.c: Remove some commented-out code.

2023-04-11  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/tree.c (alloc_and_zero): New function
	to wrap calloc.  Use for obstack_chunk_alloc definition.
	(new_element): Remove explicit initialisation code.

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/tree_types.h (ELEMENT):
	Contain ASSOCIATED_INFO structures as subfields rather than
	as pointers outside the structure.  This avoids having to
	allocate these objects separately and may improve memory cache
	performance.
	* tp/Texinfo/XS/parsetexi/tree.c (alloc_associated_info)
	(new_associated_info): Remove.
	(destroy_associated_info): Do not free the ASSOCIATED_INFO
	object itself.
	(destroy_element): Call destroy_associated_info to free other
	storage.

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (build_single_index_data):
	Remove commented-out code.  Combine conditional blocks.  Use
	av_unshift and av_store instead of av_push.

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	Run 'gnulib-tool --add-import obstack' under tp/Texinfo/XS.

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	Obstacks for parsetexi

	* tp/Texinfo/XS/parsetexi/tree.c (alloc_element, alloc_associated_info)
	(reset_obstacks): Use obstack allocation for tree elements.
	(new_associated_info, new_element): Call new functions.
	(destroy_element): Do not call 'free' on obstack-allocated storage.
	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf):
	Call reset_obstacks.
	(parse_string, parse_piece): Do not create tree elements until
	after calling reset_parser_except_conf.

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/input.c (encode_with_iconv):
	Remove spurious comment.

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: add note of LD_BIND_NOW variable for callgrind

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (build_perl_array)
	(store_additional_info, element_to_perl_hash)
	(build_target_elements_list, build_internal_xref_list):
	Use av_unshift to extend array followed by av_store instead
	of av_push for each element.

2023-04-10  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (build_perl_array):
	Remove case checking for a null pointer that we unconditionally
	dereferenced afterwards anyway.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_add_text):
	Use btowc instead of mbrtowc for printable ASCII characters.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/api.c (element_to_perl_hash): Precompute
	hash arguments for hv_store using PERL_HASH macro.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (PRINTABLE_ASCII): New macro.
	(xspara__add_next): Use btowc for printable ASCII bytes rather
	than mbrtowc.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/debug.c (debug_print_element):
	Do not construct dump string for element unless it will actually
	be printed.
	(print_element_debug): Declare as static.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf):
	Keep a few old values of the 'Root' pointer to avoid calling
	destroy_element_and_children on the main tree, which takes a
	significant length of time.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: mention callgrind for XS modules

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara__add_next): When getting
	display length of text, optimize for the common case of printable
	ASCII characters, not calling mbrtowc or wcwidth for such.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_add_text):
	Use a static buffer rather than calling malloc and free.  This
	is significant as it is done for nearly every character output.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara__add_next): Do not use mbrlen
	to go back one UTF-8 code point; use elementary operations instead.
	Use strchr instead of wcschr to check for end-of-word punctuation.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara__add_next),
	* tp/Texinfo/Convert/ParagraphNonXS.pm (_add_next):
	Move code into a conditional block as it will only be run if
	that block is run.

2023-04-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_add_text): Only call mbrtowc
	after if current character is an ASCII space character, for which
	case this is not needed.

2023-04-08  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_add_text, xspara_add_next):
	Receive length of strings as an argument and return lengths in
	structure.  This avoids having to call strlen.

2023-04-08  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert): Inline the most
	frequently used call to _count_added for efficiency.

2023-04-07  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert):
	Check for accent command after checking for style command
	as accents commands are slightly less used.

2023-04-07  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert):
	Use $type variable instead of accessing 'type' value in hash.

2023-04-07  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert): Assign
	variables $type and $command earlier so we can use them in
	a condition.  Swap two blocks of code dealing with spaces to
	put the more frequently used one first, which may have a
	minor reduction in runtime.

2023-04-06  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\startxreflink): Use \ifpdforxetex conditional
	to avoid duplicating code for both cases.

2023-04-06  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Line macros): Add space in example before
	line continuation character.  Add index entries.

2023-04-06  Gavin Smith <gavinsmith0123@gmail.com>

	* TODO.HTML: Update location of webkitgtk-info sources

2023-04-05  Gavin Smith <gavinsmith0123@gmail.com>

	Avoid gnulib/Perl definition clash

	* tp/Texinfo/XS/MiscXS.xs,
	* tp/Texinfo/XS/misc.c,
	* tp/Texinfo/XS/parsetexi/Parsetexi.xs,
	* tp/Texinfo/XS/xspara.c [defined _WIN32 && !defined __CYGWIN__]:
	'#undef free' after including "perl.h" and before including
	"XSUB.h" to avoid warnings about redefining symbols in Perl
	headers that Gnulib already redefined.	(Same change made on
	2022-10-22 to other files.)  From Eli and Arash Esbati.

2023-04-05  Gavin Smith <gavinsmith0123@gmail.com>

	intptr_t for KEY_PAIR

	* tp/Texinfo/XS/parsetexi/tree_types.h (KEY_PAIR):
	Store 'value' field as an 'intptr_t', which is said to
	allow storage of pointer values, and may avoid possible
	warnings of pointer/integer casts when storing integer values,
	especially on MS-Windows.  Consequent changes throughout the
	rest of the code.

	* tp/Texinfo/XS/parsetexi/extra.c
	(lookup_extra_element, lookup_info_element): New functions to
	simplify some code that called lookup_info and lookup_extra.

	Suggestion From Eli.

2023-04-04  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Line Macros): Change second example to
	show use of braces for the return type for @deftypeline.

2023-04-04  Gavin Smith <gavinsmith0123@gmail.com>

	@link in texinfo.tex

	* doc/texinfo.tex (\xrefX, \getprintedrefname, \startxreflink):
	Split out \getprintedrefname and \startxreflink so we can reuse
	this code.
	(\link): New experimental command for creating plain link in
	PDF output with no page number or decoration around link.
	(\definedummies): Add \link.

	Suggestion from Andreas Falkenhahn (help-texinfo, February 2023).

2023-04-03  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/def.c (parse_def): Treat @deftypeline
	like @deftypefn in alternating between typearg and arg in arguments.

2023-04-03  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/t/19def.t (deftypeline): New test.

2023-04-03  Gavin Smith <gavinsmith0123@gmail.com>

	@deftypeline in texi2any

	* tp/Texinfo/command_data.txt,
	* tp/Texinfo/Common.pm (%def_map),
	* tp/Texinfo/XS/parsetexi/def.c (def_maps):
	Add @deftypeline.

	* tp/Texinfo/ParserNonXS.pm (_gather_def_item, _end_line_def_line),
	* tp/Texinfo/XS/parsetexi/def.c (gather_def_item),
	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line),
	* tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command):
	Treat @deftypeline the same as @defline.

	* tp/Texinfo/Convert/DocBook.pm (%defcommand_name_type),
	* tp/Texinfo/Convert/LaTeX.pm (_convert),
	* tp/Texinfo/Convert/Plaintext.pm (_convert),
	* tp/Texinfo/Convert/TexinfoMarkup.pm (%defcommand_name_type):
	Handle @deftypeline.

2023-04-03  Gavin Smith <gavinsmith0123@gmail.com>

	* install-info/Makefile.am (LDADD): Add $(GETRANDOM) in attempt
	to fix missing BCryptGenRandom symbol on MinGW.

2023-04-03  Gavin Smith <gavinsmith0123@gmail.com>

	Run gnulib-tool --add-import

2023-04-03  Gavin Smith <gavinsmith0123@gmail.com>

	* install-info/install-infoc (output_dirfile): Use chmod
	instead of fchmod as fchmod doesn't exist on MinGW.  From
	Arash Esbati.

2023-04-03  Gavin Smith <gavinsmith0123@gmail.com>

	* info/pcterm.c (MAX): Add definition (removed on 2023-01-15).
	Report from Arash Esbati.

2023-04-02  Gavin Smith <gavinsmith0123@gmail.com>

	* info/indices.c (info_indices_of_file_buffer): Check for
	N_IsIndex flag on index nodes.  This has the effect that typing
	'i<ret>' avoids taking you to a node with "Index" in the name
	that is not a real index, as long as there are other nodes with
	the index marker in them.

2023-04-02  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/HTML.pm (%default_no_arg_commands_formatting):
	In 'preformatted' context, use '...' for @dots as well as for
	@enddots.  This is because a monospaced ellipsis looks bad inside
	@example.

2023-04-02  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/t/22xtable.t (item_index_transformation):
	New test using 'relate_index_entries_to_item' transformation.

2023-04-02  Gavin Smith <gavinsmith0123@gmail.com>

	* util/htmlxref.cnf (gdb, stabs): Update.
	From Thérèse Godefroy <godef.th@free.fr>

2023-04-02  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm
	(_handle_brace_command, _handle_open_brace):
	Duplicate 'source_info' hashes to avoid disparity with XS test results.

2023-04-02  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm (_relate_index_entries_to_table_items_in):
	Relocate index entries before setting 'entry_associated_element'.

2023-04-02  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item):
	Rename variables to match XS code.
	* tp/Texinfo/ParserNonXS.pm (_gather_previous_item): add comment.

2023-04-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_texi),
	tp/Texinfo/XS/parsetexi/context_stack.c (in_context),
	tp/Texinfo/XS/parsetexi/parser.c (parse_texi): if in a linemacro
	command expansion at the end of input, call end_line to get new input
	corresponding to the linemacro command expansion.

	* tp/t/65linemacro.t, tp/Makefile.tres: add brace_command_not_closed,
	verb_not_closed and paragraph_no_paragraph tests.

2023-03-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line): if a linemacro
	command call is nested on a line, return instead of closing
	the precedeing commands as they may use the expansion result.

	* tp/Texinfo/ParserNonXS.pm (_end_line): fix name of linemacro
	call type.

	* tp/Texinfo/ParserNonXS.pm (_handle_close_brace): avoid a potential
	undefinition message.

	* tp/t/65linemacro.t, tp/Makefile.tres: add
	simple_nested_linemacro_calls and nested_linemacro_calls tests.

	* tp/t/60macro.t: always call @phooindex in
	macro_alias_definfoenclose_defindex and not phoo.

2023-03-28  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Line Macros): Write node documenting @linemacro.

2023-03-27  Gavin Smith <gavinsmith0123@gmail.com>

	Fix PDF page labels if pages appear between title page and contents

	* doc/texinfo.texi (\contentsendroman): Record end of contents
	in new count register, \contentsendcount.  Reset \pageno to 1.
	(\pagelabels): Check \contentsendcount to support case of @contents
	appearing at end of document.

	Arnold Robbins reported that Roman numerals would be used for the
	PDF page labels throughout the gawk manual.  This was because the
	two dedication pages before the contents were being treated as the
	Arabic-numbered pages in the document.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_bracketed_or_word_agg),
	tp/Texinfo/XS/parsetexi/def.c (next_bracketed_or_word_agg): to be
	consistent with Texinfo TeX, only spaces delimitates arguments,
	matching braces (bracketed_arg) do not automatically start a new
	argument.

	* tp/t/65linemacro.t: change braces_after_text to use @defline and
	@defblock to have results easier to interpret.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_macro)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/macro.c
	(handle_macro): rename arguments_container variable as
	macro_call_element for consistency.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): do not
	set source_info for linemacro call container.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_def): use code more similar to XS
	parser to set the def_role for the rest or arguments.

	* tp/Texinfo/XS/parsetexi/def.c (parse_def): rename next_type as
	set_type_not_arg.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_def),
	tp/Texinfo/XS/parsetexi/def.c (parse_def),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line): handle
	linemacro without argument, by correct memory initialization, checking
	that there is a last argument and avoiding destroying element if
	it was not initialized.

	* tp/Texinfo/ParserNonXS.pm (_parse_def): do not increase results
	index, similar to XS parser.

	* tp/Makefile.tres, t/65linemacro.t: add missing_formal_arg and
	no_arguments tests.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/def.c (parse_def): do not increase the
	index in the result array, such as to have the value at that index
	set.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/t/65linemacro.t, tp/Makefile.tres: add tests of @linemacro.

2023-03-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_split_def_args)
	(_next_bracketed_or_word_agg, _parse_def): add
	_next_bracketed_or_word_agg and modify _parse_def to use the same code
	as the XS parser, which is much cleaner.

	* tp/Texinfo/ParserNonXS.pm (_parse_def, _end_line_def_line),
	tp/Texinfo/XS/parsetexi/def.c (parse_def, end_line_def_line): do not
	put spaces in the last linemacro defined command call argument.

2023-03-26  Patrice Dumas  <pertusus@free.fr>

	linemacro implementation for the XS Parser

	* tp/Texinfo/XS/parsetexi/api.c (linemacro_expansion),
	tp/Texinfo/XS/parsetexi/context_stack.h (no_paragraph_context),
	tp/Texinfo/XS/parsetexi/def.c (parse_def),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line)
	(end_line_misc_line, end_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line)
	(parse_texi), tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace),
	tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark)
	(source_marks_reset_counters): handle @linemacro and linemacro defined
	command calls using the same design as for perl Parser.

	* tp/Texinfo/ParserNonXS.pm (%no_paragraph_contexts): set
	ct_linecommand to be no paragraph context.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line):
	change code opening arguments_container line_arg for linemacro command
	call to be more like XS parser.

2023-03-26  Gavin Smith <gavinsmith0123@gmail.com>

	* NEWS: add 7.0.3 news.
	* README-hacking: update

2023-03-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/def.c (parse_def),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line),
	tp/Texinfo/XS/parsetexi/tree_types.h (DEF_ARG): return parsed
	definition information as a list of DEF_ARG argument type name and
	element, instead of setting the types of arguments as structure
	fields.  Remove DEF_INFO type.

2023-03-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/def.c (DEF_MAP, def_maps, parse_def): pass
	the list of def commands arguments by using a list of arguments names
	as strings.  This is a first step to allow to generalize parse_def
	to be able to handle linemacro defined arguments with arbitrary names
	and is more similar to the perl parser.

2023-03-26  Patrice Dumas  <pertusus@free.fr>

	linemacro implementation for the perl Parser

	* tp/Texinfo/ParserNonXS.pm (_parse_def, _end_line_misc_line)
	(_end_line_def_line, _handle_macro, _handle_block_command)
	(_handle_open_brace, _process_remaining_on_line, _parse_texi),
	tp/Texinfo/command_data.txt: handle @linemacro and linemacro defined
	command calls.  The associated command call arguments parsing is
	different than for regular @macro.  In _handle_macro start a
	linemacro_call container, but do not parse the arguments.  In
	_process_remaining_on_line add the linemacro_call container to the
	tree and start a line_arg in ct_linecommand, to let regular Texinfo
	code parsing proceed similar to @def lines, with a special treatment
	of @ at end of lines.  At end of line, use _parse_def to determine
	arguments, reusing part of the code used for @def*.  Replace with
	linemacro body expansion text, remove the container element from the
	tree and associate it to the source mark.

	* tp/Texinfo/Convert/HTML.pm, tp/Texinfo/Convert/LaTeX.pm,
	tp/Texinfo/Convert/Plaintext.pm, tp/Texinfo/Convert/TexinfoMarkup.pm
	(_convert), tp/Texinfo/Convert/Text.pm,
	tp/Texinfo/Convert/TextContent.pm: ignore or handle @linemacro.

	* tp/Texinfo/ParserNonXS.pm (_start_empty_line_after_command): code
	more similar to XS parser.

	* util/texinfo.dtd: add linemacro.

2023-03-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo)
	(_expand_cmd_args_to_texi), tp/Texinfo/XS/parsetexi/convert.c
	(expand_cmd_args_to_texi, convert_to_texinfo_internal),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): consider
	spaces_before_argument (and spaces_after_argument) only in
	convert_to_texinfo_internal/convert_to_texinfo.  Call
	convert_contents_to_texinfo instead of convert_to_texinfo to avoid
	spaces appearing in messages.

2023-03-25  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Image Scaling, Predefined Indices):
	Move index commands back after @item in @table so that they are not
	considered to be part of the preceding paragraphs.  These uses of
	@table do not have empty lines to save vertical space in Info
	output.  This partially reverts change on 2022-11-26.

2023-03-25  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm (_relate_index_entries_to_table_items_in):
	Move index entries that immediately follow an @item to before the
	item.

2023-03-25  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_gather_previous_item):
	Comments and variable names changed.  Compare expressions to zero
	explicitly to be clearer.

2023-03-23  Gavin Smith <gavinsmith0123@gmail.com>

	Make setting TEXI2DVI_BUILD_DIRECTORY equivalent to --build-dir option

	* util/texi2dvi: Make setting build dir to a directory change
	build mode from 'local' to 'tidy' regardless of whether it is
	given with --build-dir or setting the TEXI2DVI_BUILD_DIRECTORY
	envvar.
	(build_dir): Make default value empty rather than '.'.
	(usage): Update.

	Suggestion from Bogdan Drozdowski.

2023-03-21  Patrice Dumas  <pertusus@free.fr>

	Index commands do not end paragraphs in texi2any

	* tp/Texinfo/ParserNonXS.pm (_parse_line_command_args),
	tp/Texinfo/XS/parsetexi/indices.c (add_index_command): do not set
	index commands as close_paragraph.

2023-03-21  Gavin Smith <gavinsmith0123@gmail.com>

	Index commands do not end paragraphs

	* doc/texinfo.tex (\doindex, \docodeindex): Do not use \indexpar.
	(\indexpar): Remove.

	This reverts change on 2023-02-19.  It caused problems for the
	Lilypond manuals -- report from Werner.

2023-03-19  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: Update

2023-03-19  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo-tex-test.texi (Line macros):
	Test @defline with continuation.  Add example of nested @defblock
	for API documentation.

2023-03-13  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\linemacro): Do not set \scanctxt when getting
	argument in order to keep @ as the escape character, allowing
	@<NEWLINE> to be kept as a line continuation character for @def*.
	* doc/texinfo-tex-test.texi (Line macros): Add example.

2023-03-13  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\linemacro): Fix definition of zero-arg
	@linemacro so not to break literal backslash in macro body.
	* doc/texinfo-tex-test.texi (Line macros): More tests.

2023-03-13  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\linemacro): Parameter list in macro definition
	is in braces and surrounded by commas, the same as for @macro.
	Suggestion from Patrice.

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/separator.c (handle_comma): when at the end
	of a line after strcspn call, do not prepend to argument text, as the
	line is empty.

2023-03-12  Gavin Smith <gavinsmith0123@gmail.com>

	Roman rather than bold for &rest etc.

	* doc/texinfo.tex (\amprm): Use \rm instead of \bf.
	* doc/texinfo.texi (Def Cmd Conventions, Sample Function Definition):
	Update.  Bold gives too much emphasis when compared with the
	headword itself, which is in tt.

2023-03-12  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\defname, \printdefname, \defcaption, \docaptionz)
	(\defmacro, \macrodef): Rename macros beginning with \def... to
	avoid possible confusion with @def* Texinfo commands.

2023-03-12  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\linemacro): Do not use @xeatspaces around
	macro arguments as this appears to be unnecessary.

2023-03-12  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\linemacrodef): Do not append space to macro
	argument line.  Require empty final argument to be given explicitly
	as {}.  Avoid extra space before arg in @example environment.
	* doc/texinfo-tex-test.texi (Line macros): Update.  Add case with
	substitution into @example environment.

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/separator.c (handle_comma): when getting
	a line in an inline* ignored last argument, set line to the new text
	gotten, even if null, as otherwise the previously freed line (freed as
	alloc_line) may be used.

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	Update po files

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args): fix
	missing end of firstparagraphindent command name in message.

	* po/POTFILES.in: add tp/Texinfo/XS/parsetexi/labels.c

	* tp/Texinfo/ParserNonXS.pm: synchronize messages with XS parser.

	* tp/t/08misc_commands.t: use @firstparagraphindent insert to have it
	tested somewhere and add test of an @firstparagraphindent invalid
	argument.

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	Update in-source copy of Text::Unidecode to 1.30

	* tp/Texinfo/Convert/Unicode.pm (%transliterate_map): add an explicite
	transliterations of characters in the 0080 to 009F range to an empty
	string.  Indeed, in Text::Unicode starting from version 1.25_01, those
	characters (C1 codes) are mapped to Windows-1252 characters.  We still
	consider the Unicode standard to rule and keep on transliterating to
	empty strings.

	* tp/t/nodenormalization.t: update test result without Unidecode now
	that the 0085 character has an explicit transliteration.

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	Update in-source copy of Unicode::EastAsianWidth to 12.0

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (%default_special_element_info): change
	the 'order' of contents and shortcontents to have shortcontents
	separate element appear before contents separate element.

2023-03-12  Gavin Smith <gavinsmith0123@gmail.com>

	Swap contents and shortcontents

	* tp/Texinfo/Convert/HTML.pm (_convert_heading_command)
	(_contents_shortcontents_in_title, _prepare_special_elements):
	Swap the output for @contents and @shortcontents, so that
	@shortcontents is first, for CONTENTS_OUTPUT_LOCATION set to
	'after_top', 'after_title', or 'separate_element'.  From
	Arsen Arsenović.
	* NEWS: update

2023-03-12  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace):
	Move declaration out of switch block to stop compilation error.

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	* tp/t/30sectioning.t: modify node name for two_nodes_at_the_end to be
	more in line with the test content.

2023-03-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/30sectioning.t: add
	two_nodes_at_the_end_nodes and two_nodes_at_the_end_texi2html.

	* tp/Makefile.tres, tp/t/40moresectioning.t: do not set TEXI2HTML in
	more_sections_than_nodes, but add more_sections_than_nodes_texi2html.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/30sectioning.t: add
	chapter_between_nodes_texi2html, two_nodes_between_chapters_nodes and
	two_nodes_between_chapters_texi2html.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/t/30sectioning.t, tp/Makefile.tres: add
	one_node_explicit_directions_anchor_no_use_node and
	top_without_node_texi2html_no_use_nodes tests.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/t/30sectioning.t: add
	nodes_after_top_before_chapter_no_use_nodes_chapter test.

	* tp/t/40moresectioning.t: add
	placed_things_before_element_no_use_node and
	sectioning_part_appendix_texi2html_chapter tests.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/t/40moresectioning.t, tp/Makefile.tres: add
	anchor_in_footnote_split_node and
	anchor_in_footnote_separate_split_node tests.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/t/50value.t, tp/t/60macro.t, tp/Makefile.tres: add
	closing_brace_in_value_in_ingnored_inline and
	closing_brace_in_macro_call_in_ingnored_inline with end of @inline*
	command in @value or macro expansion in the ignored @inline* command
	argument.

2023-03-11  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo-tex-test.texi (Macros):
	Show desired output for all test cases to make it easier to
	check.

2023-03-11  Gavin Smith <gavinsmith0123@gmail.com>

	Avoid spurious space in macro expansion

	* doc/texinfo.texi (\defmacro): Define a control sequence with
	\string rather than \relax.  This avoids an extra space appearing
	for an argument substituted into an environment like @example.

	* doc/texinfo-tex-test.texi (Bugs, Substitution into @example):
	Update now-working test case.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/texi2any.pl: minor changes.  Reindent, change in comments.
	Use $main_configuration instead of $converter for
	Texinfo::Common::output_files_open_out call for SORT_ELEMENT_COUNT.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): determine if an
	accent command argument has braces in the same way as it is done in
	other converters by checking if argument type is not
	brace_command_arg.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_current, _handle_close_brace),
	tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): separate
	code handling bracketed_arg and balanced_braces.  No functional
	change.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_open_brace, _handle_close_brace),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace,
	handle_close_brace): right in a rawpreformatted, use merge_text to
	merge an opening or a closing brace to the preceding text, if any.

2023-03-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/HTML.pm
	(_convert_balanced_braces_type), tp/Texinfo/Convert/LaTeX.pm
	(_convert), tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/Convert/Text.pm (_convert),
	tp/Texinfo/Convert/TextContent.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_close_current, _handle_open_brace)
	(_handle_close_brace), tp/Texinfo/XS/parsetexi/close.c
	(close_current), tp/Texinfo/XS/parsetexi/convert.c
	(convert_to_texinfo_internal), tp/Texinfo/XS/parsetexi/separator.c
	(handle_open_brace, handle_close_brace): put braces associated to the
	balanced_braces type in the contents of the container, as text.

	* tp/Texinfo/ParserNonXS.pm (_handle_close_brace),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): abort empty
	line and close paragraph in brace_command_context commands only if the
	current container is actually a paragraph.

	* tp/t/03coverage_braces.t, tp/Makefile.tres: add
	empty_line_in_braces_in_math and
	empty_line_in_braces_in_math_at_begin_line tests.

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/HTML.pm
	(_convert_balanced_braces_type), tp/Texinfo/Convert/LaTeX.pm
	(_convert), tp/Texinfo/Convert/NodeNameNormalization.pm (_convert),
	tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/Convert/Text.pm (_convert),
	tp/Texinfo/Convert/TextContent.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_close_current, _handle_open_brace)
	(_handle_close_brace), tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/convert.c (convert_to_texinfo_internal),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace)
	(handle_close_brace): rename bracketed type as balanced_braces.

	* tp/t/01use.t: replace bracketed by bracketed_arg on @multitable
	line.

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	* 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),
	tp/Texinfo/Convert/TextContent.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_close_current, _split_def_args)
	(_end_line_starting_block, _handle_close_brace),
	tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/def.c (split_def_args),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace)
	(handle_close_brace): use 'bracketed_arg' instead of 'bracketed' on
	@multitable line for column prototypes.

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Translations.pm (complete_indices)
	(_non_bracketed_contents): fix _non_bracketed_contents by using
	'bracketed_arg' as the type, to match with the type on @def* lines.
	But do not call _non_bracketed_contents as it is not clear that it is
	better to avoid the 'bracketed_arg' type.

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_split_def_args, _parse_def)
	(_end_line_def_line), tp/Texinfo/XS/parsetexi/convert.c
	(convert_to_texinfo_internal), tp/Texinfo/XS/parsetexi/def.c
	(next_bracketed_or_word_agg, split_delimiters),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line): rename
	bracketed_def_content as bracketed_arg.

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	No capitalization of @sc argument in node name normalization

	* NEWS, doc/texinfo.texi (HTML Xref Command Expansion),
	tp/Texinfo/Convert/NodeNameNormalization.pm (_convert),
	tp/t/nodenormalization.t: no upper-casing of @sc argument in node
	normalization (and therfore in HTML cross references).

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	* tp/t/converters_tests.t, tp/t/nodenormalization.t, tp/Makefile.tres:
	test commands with lower case arguments in @var, with commands_in_var
	and a test in nodenormalization.t.

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (_convert),
	tp/Texinfo/Convert/Text.pm (_convert),
	tp/Texinfo/Convert/TextContent.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_handle_line_command),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command):
	rename 'misc_arg' type as 'rawline_arg'.

2023-03-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert): protect from upper-casing
	in @sc the node name and the associated text in @*ref.

	* tp/t/converters_tests.t, tp/t/nodenormalization.t: use a variable
	for the content common to the two test files for lower-case content to
	be tested in @sc.

2023-03-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm (_process_text, new_formatter)
	(_convert): put upper casing information on a distinct stack, to be
	able to stop the upper casing context, using an internal type
	_stop_upper_case.  Use it for node and file and *note for @*ref, for
	@url and @inlineraw.

	* tp/t/info_tests.t, tp/t/nodenormalization.t: add more to
	commands_in_sc.

2023-03-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm (_process_text): remove condition
	on'var' state when 'upper_case' is set, as 'upper_case' implies 'var'.

2023-03-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_docbook_section_element, _convert),
	tp/Texinfo/Convert/Info.pm (format_node), tp/Texinfo/Convert/LaTeX.pm
	(_associate_other_nodes_to_sections), tp/Texinfo/Structuring.pm
	(set_menus_node_directions), tp/Texinfo/Transformations.pm
	(insert_nodes_for_sectioning_commands): avoid autovivification, and
	use defined() for extra 'normalized' strings that can be '0'.

	* tp/Texinfo/Transformations.pm (_new_node): remove/warn about cases
	that cannot happen.

	* tp/Texinfo/Convert/Plaintext.pm (_process_text): use $context for 
	'var' state too.

2023-03-08  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Overview): Remove duplicate words.  From
	Ray Kuo <ray20140811@gmail.com>.

2023-03-08  Arsen Arsenović  <arsen@aarsen.me>

	texi2any: Don't switch to subdir mode if '-' names a dir
	* tp/texi2any.pl (output|out|o=s): If the filename argument is
	specifically '-', do not consider the possibility of it being the
	name of a subdirectory.  This prevents programs that generate info
	in a pipeline from being confused in weird working directories.

2023-03-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/info_tests.t: add commands_in_sc
	tp/t/nodenormalization.t: add two more tests, one corresponding to
	commands_in_sc.

2023-03-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (set_menus_node_directions): use in-tree
	external menu_entry_node as menu direction.

2023-03-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (output_internal_links): determine if
	index entry is in code style by checking the associated index
	information, and not the entry information.

2023-03-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_prepare_index_entries),
	tp/Texinfo/Convert/IXIN.pm, tp/Texinfo/Convert/LaTeX.pm
	(_index_entry), tp/Texinfo/Convert/Plaintext.pm (process_printindex),
	tp/Texinfo/Structuring.pm (index_entry_sort_string, sort_indices),
	tp/init/chm.pm (chm_init), tp/t/test_sort.t, tp/t/test_utils.pl (test):
	pass indices_information to sort_indices.  Set 'code' in options for
	text conversion before calling index_entry_sort_string, based on
	indices_information.

	* tp/Texinfo/Translations.pm (complete_indices): do not set in_code
	for index entries, the information should always be taken from the
	entry associated index name.

	* tp/Texinfo/Structuring.pm (sort_indices): rename $entry as
	$index_entry.

	* tp/Texinfo/Convert/HTML.pm (_prepare_index_entries),
	tp/Texinfo/Convert/Plaintext.pm (process_printindex): rename
	$index_names as $indices_information.

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_index_entry): use associated
	index information, and not the entry information to determine if index
	entry is in code style.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (lookup_index_entry): lookup_index_entry also
	returns index information.  Update callers.

	* tp/Texinfo/Convert/DocBook.pm (_index_entry),
	tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
	tp/Texinfo/Convert/Plaintext.pm (process_printindex), tp/init/chm.pm
	(chm_init): determine if index entry is in code style by checking the
	associated index information, and not the entry information.

	* tp/Texinfo/Convert/HTML.pm (%available_converter_info): add
	indices_information.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_copy_tree, _copy_extra_info): do not setup
	any extra info in _copy_tree.  Rename _substitute_references as
	_copy_extra_info as it now copy all the extra info.  Detect if an hash
	in _substitute_references is an element, and in that case call
	_copy_tree and _copy_extra_info on that out of tree element.
	Remove FIXME for a situation that happens fine.

	* tp/Texinfo/Common.pm (_substitute_references_in_array): remove the
	case of a text element, cannot happen right now and should be done
	differently as if could be an element with other information.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_def, _end_line_def_line): gather
	initial arguments name, category... in a has, to be returned from the
	function after setting the extra def_role key.  Set other contents
	extra def_role key directly.  More similar to the XS parser.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (@contents_keys): remove obsolete keys.  Add
	'info'.  Remove keys within 'info'.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (_duplicate_element_keys): remove code related to
	extra keys not existing anymore.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/extra.c (add_extra_contents_oot),
	tp/Texinfo/XS/parsetexi/tree.c (destroy_associated_info),
	tp/Texinfo/XS/parsetexi/tree_types.h (enum extra_type): remove
	extra_contents_oot extra type, remove add_extra_contents_oot
	function.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_copy_tree, _substitute_references): remove
	handling of extra prototypes that do not exist anymore.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/element_types.txt: remove
	bracketed_multitable_prototype and row_prototype.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_other_command):
	remove extra prototypes.  Use the number of bracketed content to set
	max_columns, and always use max_columns for the number of columns
	in the XS parser.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert),
	tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): use directly the
	multitable line argument and the bracketed on that line to determine
	the prototype, instead of extra prototypes.

	* tp/t/plaintext_tests.t, tp/Makefile.tres: use braces on @multitable
	line for multitable_in_example_extraneous_tab, and add
	multitable_in_example_extraneous_item_tab without braces.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_copy_tree, _substitute_references): handle
	def_index_element and def_index_ref_element explicitly as out of tree
	elements.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_def_line),
	tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line),
	tp/Texinfo/XS/parsetexi/extra.c (add_extra_misc_args),
	tp/Texinfo/XS/parsetexi/tree.c (destroy_associated_info),
	tp/Texinfo/XS/parsetexi/tree_types.h (enum extra_type):
	do not set extra def_parsed_hash in the tree.  It is easy to look at
	the contents, and in general the @def args argument need to be
	collected at the same time, such that there is a need to look at the
	contents anyway.
	Remove everything related to extra_def_info, in particular the
	add_extra_misc_args function.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Translations.pm (complete_indices): remove the type of
	the tree root returned by gdt.  Do not mess with the parent of the
	elements, as the elements may be in the main tree.

2023-03-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Translations.pm (complete_indices): determine the name
	and class of def command by looking at the contents instead of using
	def_parsed_hash.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry): use the
	"integer" extra key in extra_misc_args to pass an integer instead
	of a string in the extra_misc_args array.  Use it for the index
	number.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_def_line_type),
	tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/Plaintext.pm (_convert), tp/Texinfo/Convert/Text.pm
	(_convert), tp/Texinfo/Convert/Utils.pm
	(definition_arguments_content, definition_category_tree): determine
	the category, name, type and name in definition_arguments_content.
	Do not use def_parsed_hash in definition_category_tree.  Use this
	information instead of def_parsed_hash in the callers.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry),
	tp/Texinfo/XS/parsetexi/api.c (build_single_index_data): store the
	index_entry extra array directly in enter_index_entry, using
	extra_misc_args.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (lookup_index_entry), tp/Texinfo/ParserNonXS.pm
	(_enter_index_entry), tp/Texinfo/XS/parsetexi/api.c
	(build_single_index_data), t/test_utils.pl (_duplicate_element_keys):
	store the index name and the index entry number in the index_entry
	extra value, do not refer directly to the index entry structure,
	Texinfo::Common::lookup_index_entry should be used to get the index
	entry structure.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (lookup_index_entry)
	(_relate_index_entries_to_table_items_in)
	(_relate_index_entries_to_table_items)
	(relate_index_entries_to_table_items_in_tree),
	tp/Texinfo/Convert/DocBook.pm (_index_entry),
	tp/Texinfo/Convert/LaTeX.pm (_index_entry),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_index_entry, _convert),
	tp/t/test_utils.pl (test), tp/texi2any.pl: add the lookup_index_entry
	function, to find an index entry based on the extra index_entry key,
	that abstracts how the index entry is found.  The function requires
	the indices information too.
	Pass the indices information to
	_relate_index_entries_to_table_items_in through
	relate_index_entries_to_table_items_in_tree.

	* tp/Texinfo/Structuring.pm (merge_indices), tp/t/automatic_nodes.t,
	tp/t/test_sort.t, tp/t/test_utils.pl (test): change name of
	$index_names to $indices_information.

	* tp/Texinfo/Convert/Plaintext.pm (_convert): use index_entry_command
	type to determine that the commmand is an index entry command instead
	of using the command name.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_relate_index_entries_to_table_items_in),
	tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/Plaintext.pm (_convert): use index_entry_command
	type instead of extra index_entry when this is more relevant.

	* tp/Texinfo/Transformations.pm (_reassociate_to_node): simplify and
	generalize code reassociating extra element_node, by using only that
	information and not information related to the element as an index
	element.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Tree Element Conversion Functions),
	tp/Texinfo/Convert/HTML.pm (_convert)
	(_convert_index_entry_command_type): use the type of index commands,
	index_entry_command, to select index commands formatting, instead of
	a modified command name.  Convert with
	_convert_index_entry_command_type, remove _convert_index_command.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/extra.c (add_extra_contents_array)
	(add_extra_index_entry), tp/Texinfo/XS/parsetexi/tree.c
	(destroy_associated_info), tp/Texinfo/XS/parsetexi/tree_types.h:
	remove extra_contents_array and extra_index_entry extra types and
	associated functions, add_extra_contents_array and
	add_extra_index_entry.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line)
	(_handle_open_brace, _handle_close_brace, _handle_comma):
	add _handle_open_brace, _handle_close_brace, _handle_comma from
	_process_remaining_on_line code, as in the XS parser.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_texi_regex)
	(_process_remaining_on_line), tp/Texinfo/XS/MiscXS.xs
	(xs_parse_texi_regex), tp/Texinfo/XS/misc.c (xs_parse_texi_regex),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_separator): handle
	separately the different separators (except for menu only separators)
	instead of grouping them, directly in process_remaining_on_line.
	Remove the handle_separator function.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_copy_tree, _substitute_references_in_array)
	(_substitute_references): copy info keys, fix _substitute_references
	calls in which new and current were swapped, add more checks,
	enable extra key hash handling setup for index_entry for all the
	extra key hashes, add a level argument for nicer debug messages.

	* tp/t/test_tree_copy.t: test copy with Texinfo manual and
	tests/converage/formatting.texi.

2023-03-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_def): set parent for the
	definition args for the argument content gathered when there
	is no args to finish the item before.

	* tp/Makefile.tres, tp/t/19def.t: add def_groupings_args to
	test grouping of def args more.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): do not
	start a paragraph for an unknown @-command.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): do not
	throw away the current line in an ignored rawpreformatted.

	* tp/Makefile.tres, tp/t/16raw.t: add second_level_lone_braces_in_html
	and second_level_lone_braces_in_html_not_expanded tests with braces at
	the beginning of a line within an @-command within a rawpreformatted
	environment.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace):
	abort empty line before opening brace in rawpreformatted.

2023-03-05  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Invoking Macros): Mention possibility of
	using @asis to escape commas.

2023-03-05  Gavin Smith <gavinsmith0123@gmail.com>

	Warning for \, in macro arg

	* tp/Texinfo/ParserNonXS.pm (_expand_macro_arguments),
	* tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments):
	Issue a warning if \, is used in a macro argument, recommending
	@comma{} instead.

	\, doesn't work with texinfo.tex so it is better to warn about it.

2023-03-05  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_handle_line_command) <def commands>
	Avoid a variable being undefined.

2023-03-05  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/t/19def.t (defline_no_params, adjacent_defline, multiple_defline)
	(defblock_no_defline): New tests.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line, _parse_texi),
	tp/Texinfo/XS/parsetexi/parser.c (parse_texi),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace)
	(handle_close_brace): do not abort empty line if there is a misplaced
	brace.  Abort empty line at the very end of the document.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line): move
	end_line_def_line definition up in the file to be before the functions
	using it.

	* tp/Texinfo/XS/parsetexi/end_line.c, tp/Texinfo/XS/parsetexi/labels.c
	(check_register_target_element_label, parse_node_manual): move
	parse_node_manual and check_register_target_element_label to labels.c.

	* tp/Texinfo/XS/parsetexi/parser.h: do not include "def.h", let the
	files using functions from def.c include it directly.
	Do not define end_line_def_line which is only used within end_line.c.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c,
	tp/Texinfo/XS/parsetexi/handle_commands.c (skip_to_comment):
	(skip_to_comment_if_comment_or_spaces, parse_rawline_command): move
	parse_rawline_command, skip_to_comment and
	skip_to_comment_if_comment_or_spaces to handle_commands.c.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	Merge special command line data type into lineraw

	* tp/Texinfo/Common.pm (_informative_command_value),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/ParserNonXS.pm(_handle_line_command)
	(_parse_rawline_command), tp/Texinfo/XS/parsetexi/end_line.c
	(parse_rawline_command), tp/Texinfo/XS/parsetexi/handle_commands.c
	(handle_line_command), tp/Texinfo/command_data.txt: merge LINE_special
	commands in LINE_lineraw, with arguments.  Rename
	parse_special_misc_command as parse_rawline_command and have the
	function return the information on whether the command had special
	args.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/t/02coverage.t, tp/Makefile.am (test_files), tp/Makefile.tres:
	add delcomment_on_comment with a DEL comment on a @comment line.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_line_command),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command):
	always close a line or block line command a raw line command is on.

2023-03-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): minor
	change, remove a useless variable, code more similar to XS parser.

2023-03-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.h (GLOBAL_INFO),
	tp/Texinfo/XS/parsetexi/parser.c (register_global_command)
	(wipe_global_info), tp/Texinfo/XS/parsetexi/api.c
	(build_global_info2): add author to global info, to be consistent with
	global in command_data.txt.
	Remove a useless TODO.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): minor
	changes: change order of code, remove useless retval set, changein
	comments, more similar codes in XS and perl parsers.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	Multiple @defline in @defblock in texi2any

	* tp/Texinfo/XS/parsetexi/handle_commands.c
	(handle_line_command) <def command>: Allow for @defline
	occurring part way through a @defblock.
	* tp/Texinfo/XS/parsetexi/def.c (gather_def_item)
	Check for empty contents in block, and for items before a
	@defline, gather an element of type 'def_item' rather than
	'inter_def_item'.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	Multiple @defline in @defblock in texi2any

	* tp/Texinfo/ParserNonXS.pm
	(_handle_line_command) <def command>: Allow for @defline occurring
	part way through a @defblock.
	(_gather_def_item): Check for empty contents in block, and for
	items before a @defline, gather an element of type 'def_item'
	rather than 'inter_def_item'.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Generic Definition Commands), NEWS:
	Document @defblock, @defline.

2023-03-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (relocate_source_marks): move from
	tp/Texinfo/ParserNonXS.pm.

	* tp/Texinfo/Common.pm (relocate_source_marks),
	tp/Texinfo/ParserNonXS.pm (_isolate_last_space, _split_delimiters)
	(_split_def_args), tp/Texinfo/XS/parsetexi/def.c (split_delimiters)
	(split_def_args), tp/Texinfo/XS/parsetexi/parser.c
	(isolate_last_space_internal), tp/Texinfo/XS/parsetexi/source_marks.c
	(relocate_source_marks): pass current index and added length to
	relocate_source_marks, and get the new current index in return.

	* tp/Texinfo/XS/parsetexi/end_line.c (parse_node_manual),
	tp/Texinfo/Common.pm (parse_node_manual): relocate source marks from
	removed elements.

2023-03-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (parse_node_manual): use same code as XS
	parser.

	* tp/Texinfo/XS/parsetexi/end_line.c (parse_node_manual): minor change
	in code.

	* tp/t/60macro.t, tp/Makefile.tres: add macro_call_in_node_manual,
	demonstrating that source marks are lost in parse_node_manual.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\deflinex, \newdef): Remove.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/command_data.txt: Remove @deflinex as @defline is
	enough.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo-tex-test.texi (Macros): Add example that doesn't
	work properly.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo-tex-test.texi (Line macros): New section.

2023-03-04  Gavin Smith <gavinsmith0123@gmail.com>

	@linemacro, adapted from @macro implementation

	(\linemacro): New macro, to implement @linemacro command.
	(\linegetargs, \linegetparamlist, \parselinemacrobody, \linemacrodef):
	New macros that are part of the implementation.

	This is mainly intended for use with @defblock/@defline.

2023-03-04  Patrice Dumas  <pertusus@free.fr>

	Add alias_of info key for an alias used for an @-command element

	* tp/Texinfo/ParserNonXS.pm (_handle_macro, _handle_other_command)
	(_handle_line_command, _handle_block_command)
	(_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_other_command)
	(handle_line_command, handle_block_command, handle_brace_command),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	handle_macro returns the element containing the macro expansion
	argument, or 0 if there was an error instead of returning an error
	status.
	Return command element and change command element variable name
	in handle_*_command functions.
	Add alias information in command element in alias_of info key.

2023-03-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_line_command),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command): use
	data command information and arg_spec more, where it makes sense even
	if there cannot be @item there.

2023-03-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/ParserNonXS.pm (_end_line_misc_line, _handle_line_command),
	tp/maintain/regenerate_commands_perl_info.pl: in end_line_misc_line,
	use item_LINE to get the command data information associated to
	@item.
	Keep item_LINE in the perl commands information as in the XS parser,
	modify _handle_line_command and _end_line_misc_line accordingly, also
	to be more in line with the XS parser code.
	For some selected flags that are of interest for converters but not
	for the parsers, duplicate the multi category, ie item_LINE
	information for the main command, here item.  In the converters,
	item_LINE is not present and the tree allows to knwo in advance which
	type of item command is processed.

2023-03-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line), 
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command):
	for @item, there is a difference between the command name, and the
	name used to access data information, which is item_LINE.  Check
	preferentially command data with the modified name and use the
	original name in messages and command name checks.  Pass both
	the original command and the data access name to handle_line_command.
	Reorganize command processing in process_remaining_on_line, closing a
	containing paragraph as soon as possible to be able to check the
	parent command, and opening a paragraph as late as possible.

2023-03-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_other_command)
	(_handle_line_command, _handle_block_command, _handle_brace_command)
	(_process_remaining_on_line): split handle_*_command out of
	_process_remaining_on_line as in the XS parser.

2023-03-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_menu_entry, _end_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line),
	tp/Texinfo/XS/parsetexi/menus.c (end_line_menu_entry): put code
	handling end of menu entry from end_line in its own function
	end_line_menu_entry.

	* tp/Texinfo/ParserNonXS.pm (_handle_menu_entry_separators),
	tp/Texinfo/XS/parsetexi/menus.c (handle_menu_entry_separators):
	rename handle_menu as handle_menu_entry_separators.

2023-03-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line)
	(_handle_menu): split _handle_menu out of _process_remaining_on_line
	to be more similar to XS parser.

2023-03-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/menus.c (handle_menu): move code that sets up
	a menu separator before code that handles a menu separator for
	improved readability.

2023-03-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_texi_regex)
	(_process_remaining_on_line), tp/Texinfo/XS/MiscXS.xs
	(xs_parse_texi_regex), tp/Texinfo/XS/parsetexi/menus.c (handle_menu),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_separator): handle menu
	separator separatly from other separators (with a possible overlap for
	comma, considered both as a menu and other separator in the perl
	parser), also moving the code starting the menu_entry_separator
	element together with the code handling menu entries.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): code more
	similar to XS parser code for accent argument without brace and for
	menu_entry.

2023-03-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XSLoader.pm (init): call Texinfo::Parser->import() after
	loading the NonXS parser.

2023-03-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/menus.c (handle_menu): start a node entry
	only if the * is at the beginning of a line, as for the perl parser.

	* tp/Makefile.tres, tp/t/10menu.t: add leading_space_before_menu_star test.

2023-03-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/menus.c (handle_menu): synchronize and improve
	comments and debug messages.  No change in code.

2023-03-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text): remove 'fh' at the end of
	STDIN too.  Report from Arsen Arsenović.

2023-03-01  Patrice Dumas  <pertusus@free.fr>

	Remove extra misc_args for special and lineraw line commands

	* tp/Texinfo/Common.pm (_informative_command_value),
	tp/Texinfo/Convert/LaTeX.pm (_convert), tp/Texinfo/ParserNonXS.pm
	(_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command): do
	not add args to extra misc_args for special and lineraw line commands,
	regular args can be used instead.

2023-03-01  Patrice Dumas  <pertusus@free.fr>

	Merge LINE_skipline in LINE_lineraw, distinguish with arg number

	* tp/Texinfo/Common.pm (_informative_command_value),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/command_data.awk,
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command),
	tp/Texinfo/command_data.txt: merge LINE_lineraw with LINE_skipline,
	but set the number of arguments to 1 for former lineraw commands and
	to 0 for former LINE_skipline commands.  Use the number of arguments
	to distinguish when needed.

2023-03-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/58alias.t: add alias_macro_target_removed
	to test an alias resolving to a @macro after @unmacro.

2023-03-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	catch an unknown command that is an unresolved alias earlier.

2023-03-01  Patrice Dumas  <pertusus@free.fr>

	An alias referring to another alias at definition time is resolved

	* NEWS, tp/Texinfo/ParserNonXS.pm (_parse_line_command_args),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): resolve
	an alias referring to another alias, at @alias defintion time.

	* tp/Makefile.tres, tp/t/58alias.t: add texinfo_command_alias,
	texinfo_command_alias_indirect, texinfo_command_alias_indirect_before
	and recursive_alias tests.

2023-03-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line)
	(_parse_line_command_args): unset previous alias when a macro is
	defined, unset macro, alias and definfoenclose when a @def*index
	command is defined and unset alias, macro and @def*index when a
	@definfoenclose command is defined.

	* tp/Texinfo/XS/parsetexi/commands.c (add_texinfo_command),
	tp/Texinfo/XS/parsetexi/macro.c (delete_macro, unset_macro_record):
	when adding a user-defined command, reuse the existing command but
	reset it, unsetting the macro record with the new function
	unset_macro_record based on part of delete_macro.

	* tp/Texinfo/XS/parsetexi/commands.c (add_texinfo_command)
	(remove_texinfo_command), tp/Texinfo/XS/parsetexi/commands.h,
	tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args),
	tp/Texinfo/XS/parsetexi/indices.c (add_index_command),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	pre-register @alias existing command if it does not actually exist,
	using the new flag CF_REGISTERED.  If the command is not defined, also
	set CF_UNKNOWN.  Keep CF_REGISTERED when redefining the command.

	* tp/Texinfo/ParserNonXS.pm (_parse_line_command_args),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args),
	tp/Texinfo/XS/parsetexi/indices.c (index_by_name): do not
	destroy an index if it is re-defined.  Reset the associated index
	command.

	* tp/Texinfo/ParserNonXS.pm (_parse_line_command_args),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args): warn if
	an alias refers to another alias and do not set it.

	* tp/Texinfo/XS/parsetexi/macro.c (lookup_macro_and_slot, new_macro):
	try to reuse empty macro_list slots instead of always adding a new
	macro.

	* tp/Makefile.tres (test_files_generated_list), tp/t/58alias.t,
	tp/t/60macro.t: add alias.t tests alias_non_existing_command,
	alias_of_macro, alias_of_macro_before_macro, alias_of_definfoenclose,
	alias_of_definfoenclose_before_definfoenclose, alias_of_added_index,
	alias_of_added_index_before_added_index to test for pre-registering of
	@alias referred to commands.  Add macro.t tests
	macro_replaced_by_definfoenclose, definfoenclose_replaced_by_macro,
	macro_alias_definfoenclose_defindex.

2023-02-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/convert.c (convert_contents_to_texinfo),
	tp/Texinfo/XS/parsetexi/end_line.c
	(check_register_target_element_label, end_line_starting_block),
	tp/Texinfo/XS/parsetexi/macro.c (new_macro): add the
	convert_contents_to_texinfo function that converts only the contents
	of an element.  Use it.

2023-02-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/convert.c (expand_cmd_args_to_texi)
	(convert_to_texinfo_internal): update to match
	Texinfo::Convert::Texinfo.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block)
	tp/Texinfo/XS/parsetexi/macro.c (new_macro): call new_element on
	temporary element used to convert contents only with
	convert_to_texinfo to initialize properly.

	* tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi): there
	are spaces_after_cmd_before_arg only after commands.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): minor
	change, use an else if, to be like the perl parser code, and remove
	an old FIXME.

2023-02-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (parse_node_manual), tp/Texinfo/ParserNonXS.pm
	(_end_line_misc_line), tp/Texinfo/Structuring.pm
	(new_node_menu_entry): add an argument to control whether the element
	argument is modified or not as in the XS parser.  Remove
	_parse_node_manual and call directly parse_node_manual instead.

2023-02-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c
	(check_register_target_element_label), tp/Texinfo/XS/parsetexi/tree.c
	(destroy_node_spec): add destroy_node_spec to deallocate out of
	tree elements coollected in a label manual and node name
	specification, as well as the manual and node name associated
	elements.  Use it in check_register_target_element_label.  In the
	other cases, the manual and node name elements are used in the tree
	and will be deallocated when the tree is destroyed.

2023-02-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line)
	(_end_line_starting_block, _check_register_target_element_label)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/end_line.c
	(check_register_target_element_label, end_line_starting_block)
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/separator.c
	(handle_close_brace): group together the call of
	parse_node_manual, the check of no manual element and the
	registering if a target element for links in
	_check_register_target_element_label.  Remove _check_internal_node,
	integrated in _check_register_target_element_label.

	* tp/Texinfo/XS/parsetexi/end_line.c (parse_node_manual): add an
	argument to control whether the element argument is modified or not.
	Add a field in NODE_SPEC_EXTRA to keep the added elements in case
	the element argument is not modified.  Do not modify the node before
	being sure that there really is a manual name if there is an opening
	brace.  Update callers.

2023-02-27  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Other Customization Variables),
	* NEWS: Document ASCII_DASHES_AND_QUOTES and ASCII_GLYPH.

2023-02-27  Gavin Smith <gavinsmith0123@gmail.com>

	Nuke obsolete XS overrides

	* tp/Texinfo/XS/MiscXS.xs, tp/Texinfo/XS/misc.c
	(xs_abort_empty_line, xs_merge_text): Remove.
	* tp/Texinfo/ParserNonXS.pm: Remove commented-out code using these.

	These would only be used in unusual cases when the XS parser
	couldn't be used but the other XS overrides could still be loaded.
	It means that there are now only two implementations of these
	functions rather than three.  The removed implementations had not
	been changed to match changes in the other two, and it would be
	laborious to keep these up to date.

2023-02-27  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (%defaults, converter_initialize):
	Rename 'ASCII_PUNCTUATION' as 'ASCII_DASHES_AND_QUOTES' and
	'NO_GRATUITOUS_UTF8' as 'ASCII_PUNCTUATION'.

2023-02-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm (link_element_to_texi),
	tp/Texinfo/ParserNonXS.pm (_check_node_label),
	tp/Texinfo/Structuring.pm: new function that replaces functionally
	node_extra_to_texi and is applied to an element.  Update callers.

	* tp/Texinfo/Structuring.pm associate_internal_references): more
	common code to handle both types of internal references commands.

	* tp/Texinfo/Convert/Texinfo.pm (target_element_to_texi_label): remove
	call to node_extra_to_texi, it cannot happen.

	* tp/Texinfo/ParserNonXS.pm (_check_node_label, _check_empty_node),
	tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/end_line.c (check_empty_node)
	(check_node_label), tp/Texinfo/XS/parsetexi/separator.c
	(handle_close_brace): determine directly if an @anchor is empty, and
	call check_internal_node if it is not the case.  Remove
	check_node_label and check_empty_node.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): rename
	arg as arg_label in the code determining @*ref link label information.

	* tp/Texinfo/Structuring.pm (nodes_tree): rename $arg as
	$direction_element.

2023-02-27  Patrice Dumas  <pertusus@free.fr>

	* Pod-Simple-Texinfo/pod2texi.pl (_parsed_manual_tree): update node
	element creation to match with the current tree.

	* Pod-Simple-Texinfo/manual_tests, Pod-Simple-Texinfo/Makefile.am
	(EXTRA_DIST): add a directory with a script to ease manual testing of
	the code in pod2texi.pl _parsed_manual_tree with gaps in sectioning
	and manual name prepended.

2023-02-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm (_convert), tp/Texinfo/Structuring.pm
	(associate_internal_references): remove the 'label' extra key, instead
	dynamically determine the link target as already done in other output
	formats than Plaintext.

	* tp/Texinfo/Structuring.pm (associate_internal_references): remove a
	missed occurence of node_argument.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block)
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/separator.c
	(handle_close_brace): free all the elements of returned by parse_node_manual
	for elements that are targets of links and use parse_node_manual only
	to check that their syntax is not the one of an external reference.

2023-02-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/HTML.pm
	(_convert_xref_commands), tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/Structuring.pm (check_nodes_are_referenced)
	(associate_internal_references), tp/Texinfo/XS/parsetexi/separator.c
	(handle_close_brace), tp/Texinfo/XS/parsetexi/tree.c
	(destroy_associated_info), tp/Texinfo/XS/parsetexi/api.c
	(build_node_spec, store_additional_info),
	tp/Texinfo/XS/parsetexi/extra.c (add_extra_node_spec): put
	node_content and node_manual information for @xref commands in the
	first argument instead of with the command in node_argument.
	Remove node_argument.
	Remove completly extra_node_spec and associated functions,
	build_node_spec and add_extra_node_spec from the XS parser.

2023-02-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_register_extra_menu_entry_information)
	(_enter_menu_entry_node), tp/Texinfo/Structuring.pm
	(associate_internal_references), tp/Texinfo/XS/parsetexi/menus.c
	(register_extra_menu_entry_information, enter_menu_entry_node):
	put menu_entry_node in internal_references instead of menu_entry.

2023-02-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_copy_tree, _substitute_references),
	tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type),
	tp/Texinfo/ParserNonXS.pm (_register_extra_menu_entry_information),
	tp/Texinfo/Structuring.pm (_check_menu_entry)
	(set_menus_node_directions, associate_internal_references)
	(new_node_menu_entry), tp/Texinfo/Transformations.pm
	(_normalized_entry_associated_internal_node),
	tp/Texinfo/XS/parsetexi/menus.c
	(register_extra_menu_entry_information): put node_content and
	node_manual information directly in the menu_entry_node element,
	not in the menu_entry, remove menu_entry_node_label.

2023-02-26  Gavin Smith <gavinsmith0123@gmail.com>

	Add NO_GRATUITOUS_UTF8 (name could change)

	* tp/Texinfo/Common.pm (@variable_string_settables):
	Add NO_GRATUITOUS_UTF8.
	* tp/Texinfo/Convert/Plaintext.pm (converter_initialize):
	Set several other variables if NO_GRATUITOUS_UTF8 is set.
	Move call to Texinfo::Convert::Text::copy_options_for_convert_text
	to end of function as it is not immediately obvious which options
	are relevant for this call.

2023-02-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (set_nodes_list_labels),
	tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
	tp/Texinfo/Structuring.pm (nodes_tree) and other functions,
	tp/Texinfo/Transformations.pm
	(_get_non_automatic_nodes_with_sections),
	tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/XS/parsetexi/extra.c (add_extra_node_spec_array),
	tp/Texinfo/XS/parsetexi/tree.c (destroy_associated_info):
	remove the nodes_manuals extra key array, instead set extra
	node_content, manual_content and normalized directly in the @node
	directions arguments, and use the number of arguments of @node to
	determine if there are automatic directions.
	Remove completly add_extra_node_spec_array and extra type
	extra_node_spec_array.

	* tp/Texinfo/ParserNonXS.pm: avoid autovivification.

	* tp/Texinfo/Structuring.pm (_label_target_unit_element): rename
	_label_target_element as _label_target_unit_element.

	* tp/Texinfo/XS/parsetexi/api.c (store_additional_info): to determine
	if an extra key is needed, count the number of additional info set.

2023-02-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/debug.c (print_element_debug)
	(debug_print_element): add print_element_debug that sets up the
	element debugging string based on debug_print_element code.  Use in
	debug_print_element.

2023-02-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_xref_commands)
	(_convert_menu_entry_type): rename $node_entry as $label_info.
	Reindent.

2023-02-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (set_nodes_list_labels):
	remove code related to structures not present for target elements
	anymore.
	Reindent.

2023-02-26  Arsen Arsenović  <arsen@aarsen.me>

	install-info: Invert umask in mode computation
	* install-info/install-info.c (output_dirfile): Invert umask
	applied to tempfile (as is specified in the definition for
	umasks).

2023-02-26  Arsen Arsenović  <arsen@aarsen.me>

	install-info: Relax tempfile mode earlier
	* install-info/install-info.c (output_dirfile): Reorder the
	tempfile mode relaxation block directly under mkstemp, in order to
	not accidentally operate on a closed file descriptor.

2023-02-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (set_nodes_list_labels),
	tp/Texinfo/Convert/Plaintext.pm (_convert), tp/Texinfo/ParserNonXS.pm
	(_end_line_misc_line), tp/Texinfo/Structuring.pm,
	tp/Texinfo/Transformations.pm (_new_node)
	(_get_non_automatic_nodes_with_sections),
	tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): do not put
	the node name itself in extra nodes_manuals, only the node directions.

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): remove check on
	existing manual_content for automatic directions, as it should never
	be possible.

	* tp/Texinfo/Convert/Texinfo.pm: use Texinfo::Common;

2023-02-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (register_label, get_label_element),
	tp/Texinfo/Convert/Converter.pm (node_information_filename)
	(_set_tree_units_files, sort_element_counts),
	tp/Texinfo/Convert/HTML.pm (command_text, _normalized_label_id_file)
	(_set_root_commands_targets_node_files, _external_node_href, output),
	tp/Texinfo/Convert/IXIN.pm, tp/Texinfo/Convert/Info.pm (output)
	(format_node), tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/NodeNameNormalization.pm (set_nodes_list_labels),
	tp/Texinfo/Convert/Plaintext.pm (process_footnotes, node_line)
	(_convert), tp/Texinfo/Convert/Texinfo.pm
	(target_element_to_texi_label), tp/Texinfo/Convert/TexinfoMarkup.pm
	(_convert), tp/Texinfo/ParserNonXS.pm (_end_line_misc_line)
	(_end_line_starting_block, _process_remaining_on_line),
	tp/Texinfo/Structuring.pm (_check_node_same_texinfo_code)
	(_check_menu_entry, check_nodes_are_referenced)
	(complete_node_tree_with_menus, nodes_tree)
	(associate_internal_references, number_floats, new_node_menu_entry),
	tp/Texinfo/Transformations.pm (_new_node),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block)
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/labels.c
	(register_label), tp/Texinfo/XS/parsetexi/separator.c
	(handle_close_brace), tp/init/documentation_examples.pm: do not
	register the label element in register_label, instead use directly
	arguments, first argument of node or anchor, second argument of float,
	possibly using get_label_element when the element command name is not
	known.
	Use {'extra'}->{'normalized'} instead of {'extra'}->{'node_content'}
	to determine if th enode is present multiple times, or empty.
	Pass normalized label string and label contents separately to
	node_information_filename, to _normalized_label_id_file and to user
	defined reference label_target_name.
	Add file_info_label_contents with label contents to files_source_info
	for a redirection file.
	Add 'normalized' extra key in Plaintext/Info for nodes or anchors
	created for footnotes.
	Add target_element_to_texi_label to format target element label to
	Texinfo.

	* tp/Texinfo/Convert/DocBook.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): use directly the
	normalized extra key instead of redoing the normalization.

2023-02-26  Gavin Smith <gavinsmith0123@gmail.com>

	ASCII_GLYPH in tests

	* tp/t/plaintext.t
	(punctuation_sc_accents_ascii_punct)
	(punctuation_sc_accents_ascii_glyph)
	(punctuation_sc_accents_ascii_punct_latin1)
	(punctuation_sc_accents_ascii_glyph_latin1)
	(punctuation_sc_accents_ascii_punct_usascii)
	(punctuation_sc_accents_ascii_glyph_usascii)
	(punctuation_sc_accents_to_utf8_ascii_punct_latin1)
	(punctuation_sc_accents_to_utf8_ascii_glyph_latin1)
	(punctuation_sc_accents_to_utf8_ascii_punct_usascii):
	(punctuation_sc_accents_to_utf8_ascii_glyph_usascii):
	Rename from *_ascii_punct_* to *_ascii_glyph_*.

2023-02-26  Gavin Smith <gavinsmith0123@gmail.com>

	ASCII_GLYPH in tests

	* tp/t/plaintext.t
	(punctuation_sc_accents_ascii_punct)
	(punctuation_sc_accents_ascii_punct_latin1)
	(punctuation_sc_accents_ascii_punct_usascii)
	(punctuation_sc_accents_to_utf8_ascii_punct_latin1)
	(punctuation_sc_accents_to_utf8_ascii_punct_usascii):
	Set ASCII_GLYPH rather than ASCII_PUNCTUATION.

2023-02-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (set_nodes_list_labels):
	use -> systematically with references.

2023-02-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (build_target_elements_list):
	rename build_label_list as build_target_elements_list.

	* tp/Texinfo/XS/parsetexi/labels.c (register_label),
	tp/Texinfo/XS/parsetexi/labels.h, tp/Texinfo/XS/parsetexi/api.c
	(build_target_elements_list): rename labels_list as
	target_elements_list and make it a list of element.  Remove the LABEL
	type.  More explicit comments and variable names.

	* tp/Texinfo/XS/parsetexi/labels.h: remove external definition of
	internal_xref_space.

	* tp/Texinfo/ParserNonXS.pm: remove _register_label, call directly
	Texinfo::Common::register_label.

	* tp/Texinfo/Common.pm (register_label): more explicit comments and
	variable names.

2023-02-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block): check
	only that there is a command_as_argument, not the parent command to
	error on accent command being used as command_as_argument.

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block): remove
	a useless check of contents content.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block): use
	a else if to be more similar to pure parser code.

2023-02-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_current)
	(_process_remaining_on_line, _parse_texi): use same messages as XS
	parser.  Remove redundant checks on contents, now if contetns exists,
	there is some contents.

	* tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace): remove
	useless code for an impossible situation.

2023-02-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_special_misc_command): match
	@comment before @c.  Allow @clickstyle argument to be be right
	after @clickstyle without space in-between.

	* tp/Texinfo/XS/parsetexi/end_line.c (parse_special_misc_command):
	check that there is only comments or spaces after argument for
	unmacro and clickstyle.  For clickstyle, verify that the string is not
	finished before doing memcmp.

	* tp/Texinfo/ParserNonXS.pm (_parse_special_misc_command),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_special_misc_command): check
	remaining on line only for @clickstyle.

	* tp/Makefile.tres, tp/t/08misc_commands.t: add
	clickstyle_no_end_of_line and clickstyle_and_comments tests.  Add a
	case without spaces between @clickstyle and argument in the clickstyle
	test.
	For set_on_item_line and set_in_item_missing_line tests, use different
	item names with and without comments following to be able to check
	more easily the results.

2023-02-24  Arsen Arsenović  <arsen@aarsen.me>

	install-info: Fix dir file mode being restricted

	The recent switch to mkstemp and atomic updating of the directory
	file unintentionally lead to overly restrictive permissions being
	set on directory file.  This error was originally introduced in
	93162b78d84f731710025b300bc0cd7ca8b14347 (2022-12-03 Gavin Smith
	<gavinsmith0123@gmail.com>).
	* install-info/install-info.c (output_dirfile): Change mode of
	installed dir file back to its usual value, rather than the
	mkstemp default of 0600.

2023-02-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c
	(skip_to_comment_if_comment_or_spaces, parse_special_misc_command):
	add skip_to_comment_if_comment_or_spaces based on set argument
	handling, to return end of argument before comment and whitespace if
	the line is followed either by whitespaces or a comment.  Use in
	@clear argument parsing to allow for comments but error out if
	there is anything else than a comment or whitespaces following
	the flag argument.

	* * tp/Texinfo/XS/parsetexi/end_line.c (parse_special_misc_command):
	handle the case of Texinfo framgment with @set ending right after
	the argument, without a new line.

	* tp/Texinfo/XS/parsetexi/end_line.c (skip_to_comment): rename
	skip_comment as skip_to_comment.

	* tp/Makefile.tres, tp/t/50value.t: add
	begin_like_comment_on_set_line, comment_on_clear_line,
	set_no_end_of_line and clear_no_end_of_line tests.

	remove or replace some FIXME.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/menus.c (handle_menu): remove empty menu entry
	node description by using close_container to close.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): clarify
	the comments explaining the situation after closing when encountering
	a root command or @bye.  Restate a FIXME as a TODO and be more
	explicit.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): explain
	why the next input is directly drawn after macro handling.

2023-02-22  Gavin Smith <gavinsmith0123@gmail.com>

	Split ASCII_GLYPH and ASCII_PUNCTUATION

	* tp/Texinfo/Common.pm (@variable_string_settables):
	Add ASCII_GLYPH.
	* tp/Texinfo/Convert/Plaintext.pm (converter_initialize):
	Ignore ASCII_PUNCTUATION for the output of @quoted_commands.
	(_process_text): Reorder conditional.
	(%defaults): Set ASCII_PUNCTUATION to 1 and ASCII_GLYPH to 0.
	* tp/Texinfo/Convert/Text.pm
	(copy_options_for_convert_text): Propagate ASCII_GLYPH.
	(brace_no_arg_command): Check ASCII_GLYPH setting rather than
	that of ASCII_PUNCTUATION.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_handle_macro)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/macro.c
	(handle_macro), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line): return an error status from handle_macro for macro
	expansion error.  Do not get next text and instead return the
	remaining of the line if there was a macro expansion error.

	* tp/Texinfo/ParserNonXS.pm (_handle_macro),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro): rename current element
	for line_args line arguments parsing as arg_elt.

	* tp/Texinfo/ParserNonXS.pm (_handle_macro),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro): expand macro body only
	if there is no expansion error.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): rename
	region extra anchor key to element_region.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	remove code removing empty contents and trensferring source
	marks of accent command now that it is collected by
	gather_spaces_after_cmd_before_arg.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): similar
	organization of code with XS parser.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_gather_spaces_after_cmd_before_arg)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/convert.c
	(expand_cmd_args_to_texi), tp/Texinfo/XS/parsetexi/parser.c
	(gather_spaces_after_cmd_before_arg, process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace): store
	spaces_after_cmd_before_arg as an element, firstly put in the brace
	command contents (with an internal type used solely for debugging)
	to gather source marks, then removed from the tree and put in
	the spaces_after_cmd_before_arg info key, with
	gather_spaces_after_cmd_before_arg().

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): avoid
	autovivification.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text, _parse_texi)
	(_process_remaining_on_line): adapt to input stack not being empty
	even after last input has been fetched.  Remove completly the empty
	input from the input stack at the end of _parse_texi.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): in case
	of an unclosed raw output ignored block, exit to get to end line
	processing in parse_texi instead of setting the line to an empty
	string.

2023-02-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/Makefile.am (Parsetexi_la_SOURCES),
	tp/Texinfo/XS/parsetexi/debug.h, tp/Texinfo/XS/parsetexi/api.c,
	tp/Texinfo/XS/parsetexi/close.c,
	tp/Texinfo/XS/parsetexi/context_stack.c,
	tp/Texinfo/XS/parsetexi/debug.c, tp/Texinfo/XS/parsetexi/end_line.c,
	tp/Texinfo/XS/parsetexi/handle_commands.c,
	tp/Texinfo/XS/parsetexi/macro.c, tp/Texinfo/XS/parsetexi/menus.c,
	tp/Texinfo/XS/parsetexi/parser.c, tp/Texinfo/XS/parsetexi/parser.h,
	tp/Texinfo/XS/parsetexi/separator.c,
	tp/Texinfo/XS/parsetexi/source_marks.c,
	tp/Texinfo/XS/parsetexi/end_line.c, tp/Texinfo/XS/parsetexi/input.c:
	add a separate include fle for debug.c.  More include of header files
	when the code declared in these header files is directly used.

	* tp/Texinfo/XS/parsetexi/input.c (next_text): add a debug statement
	if a source mark was missed, more similar code as in the perl parser.

2023-02-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	do not call end_line nor ask for a new line when there is no more
	input after an empty line, since this is done in parse_texi.

	* tp/Texinfo/ParserNonXS.pm (_parse_texi),
	tp/Texinfo/XS/parsetexi/parser.c (parse_texi): gather text after @bye
	only if there is still some input and status was FINISHED_TOTALLY.
	Collect source marks after @bye.

	* tp/Texinfo/XS/parsetexi/parser.c (parse_texi): check that the
	context_stack is empty at the end.

	* tp/Texinfo/XS/parsetexi/parser.c (parse_texi): do not call
	input_reset_input_stack at the end, as now the text after @bye is
	collected, so the input stack, as well as macro expansion and value
	expansions should all be closed.  Add bug messages if it is not
	the case.

	* tp/t/60macro.t, tp/Makefile.tres: add bye_in_macro test.

2023-02-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_input_push_file, _end_line_misc_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/XS/parsetexi/input.c (next_text, input_push_file):
	keep the information on the full include file path with input info.
	Use the full input path in include file opening and closing errors.

	* tp/Texinfo/ParserNonXS.pm (_input_push_file): return the error
	message.  Update callers.

	* tp/Texinfo/ParserNonXS.pm (_new_text_input): die if opening the
	internal text handler fails.
	(_next_text): show the close error message.

2023-02-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/xspara.c (xspara__add_next): check output of mbrtowc,
	in particular if 0, advance to avoid an infinite loop.

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* po/POTFILES.in: update highlight_syntax.pm path.

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (float_type_number),
	tp/Texinfo/Convert/HTML.pm (_convert_listoffloats_command),
	tp/Texinfo/Convert/IXIN.pm, tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): @float and
	@listoffloats always have {'extra'}->{'float_type'} set, assume that
	in the code.

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (set_float_types): avoid
	autovivification.

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (_parse_float_type),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_float_type): check only
	that there is one argument, not that there is content in the argument.

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_substitute_references),
	tp/Texinfo/Convert/Converter.pm (float_type_number)
	(float_name_caption), tp/Texinfo/Convert/HTML.pm
	(_convert_listoffloats_command), tp/Texinfo/Convert/IXIN.pm,
	tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/NodeNameNormalization.pm (_parse_float_type),
	tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.p (_convert),
	tp/Texinfo/XS/parsetexi/api.c (store_additional_info): put
	float_type directly in extra as string.

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (_parse_float_type),
	tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_float_type),
	tp/Texinfo/XS/parsetexi/extra.c (add_extra_float_type),
	tp/Texinfo/XS/parsetexi/tree.c (destroy_associated_info):
	do not store 'content' in extra float_type, it is not used
	anymore.  Do corresponding changes in the XS parser, removing the
	add_extra_float_type function, the extra_float_type extra type
	and the EXTRA_FLOAT_TYPE type (this code is not really used in
	the XS parser, but could be).

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (float_type_number)
	(float_name_caption), tp/Texinfo/Convert/IXIN.pm,
	tp/Texinfo/Convert/LaTeX.pm (_latex_header, _convert): use directly
	float or listoffloats {'args'}->[0] instead of
	{'extra'}->{'float_type'}->{'content'}.

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (_parse_float_type),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_float_type): return
	the float type.  (Note that parse_float_type in end_line.c
	is not currently used).

2023-02-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_substitute_references),
	tp/Texinfo/Convert/Converter.pm (float_type_number)
	(float_name_caption), tp/Texinfo/Convert/HTML.pm
	(_convert_listoffloats_command), tp/Texinfo/Convert/IXIN.pm,
	tp/Texinfo/Convert/LaTeX.pm (_latex_header, _convert),
	tp/Texinfo/Convert/NodeNameNormalization.pm (_parse_float_type)
	(set_float_types), tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/XS/parsetexi/api.c (store_additional_info),
	tp/Texinfo/XS/parsetexi/end_line.c (parse_float_type): rename
	extra key type for float and listoffloats as float_type.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (debug_print_element): rename
	debug_print_element_short as debug_print_element as both functions are
	almost the same, and remove the former debug_print_element function.
	Update callers.

	* tp/Texinfo/XS/parsetexi/debug.c (debug_print_element): rename
	debug_print_element_short as debug_print_element.  Update callers.

	* tp/Texinfo/ParserNonXS.pm (_print_current): inline and remove.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (Other Customization Variables),
	tp/Texinfo/Common.pm (@variable_string_settables),
	tp/Texinfo/Convert/Plaintext.pm (converter_initialize): add
	OPEN_DOUBLE_QUOTE_SYMBOL and CLOSE_DOUBLE_QUOTE_SYMBOL to be able to
	customize double quotes used for @dfn in Info and Plaintext.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (@set_flag_index_char_ignore): use only
	one data structure for txiindex*ignore sets order and association
	with symbols.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/Makefile.onetst, tp/tests/other/list-of-tests: add a test
	of HIGHLIGHT_SYNTAX_DEFAULT_LANGUAGE.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	* tp/ext/highlight_syntax.pm (highlight_setup, highlight_process):
	handle HIGHLIGHT_SYNTAX customization option being not defined.  Can
	happen if highlight_syntax.pm is loaded as an init file and not
	as an extension.

	* tp/tests/Makefile.onetst, tp/tests/other/list-of-tests: add syntax
	highlighting tests with HIGHLIGHT_SYNTAX highlight and pygments.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	Add other commands for syntax highlighting

	* doc/texinfo.texi (Other Customization Variables)
	(Syntax Highlighting), tp/ext/highlight_syntax.pm
	(%highlight_type_languages_name_mappings, highlight_setup)
	(_convert_element, highlight_process): add the possibility to use
	the highlight command and the pygmentize command. 

	* tp/ext/highlight_syntax.pm (_get_language, highlight_process):
	return the language to be converted to warn if verbose and the
	language is not found.

2023-02-19  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo-tex-test.texi (Index and paragraphs): New section.

2023-02-19  Gavin Smith <gavinsmith0123@gmail.com>

	Reorganise test file

	* doc/texinfo-tex-test.texi (Headings and Footings): Change some
	@chapter's to @section's to simplify table of contents.
	(Test of @displaymath): Move earlier in file.
	(Index display): Move to end.

2023-02-19  Gavin Smith <gavinsmith0123@gmail.com>

	Index commands end paragraphs

	* doc/texinfo.tex (\indexpar): New macro to end open paragraphs.
	(\doindex, \docodeindex): Use \indexpar.
	(\itemzzz, \itemizeitem): Add penalty that will be recognized in
	\indexpar to make an exception immediately after @item.
	(\safewhatsit): Propagate \lastpenalty in horizontal mode.
	(\newindex): Remove obsolete comment about vms filenames.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	* tp/ext/highlight_syntax.pm (highlight_setup, highlight_process):
	determine list of languages highlighted in an handler, highlight_setup
	in order to be able to use the customization variables while doing
	this initialization.

	* tp/ext/highlight_syntax.pm (highlight_setup): silence the redundant
	warning message associated to a failure to run the command through
	open.

	* tp/ext/highlight_syntax.pm (_get_language): handle not defined language.

	* tp/tests/other/highlight_example.texi: add more @example blocks,
	including without language set.

2023-02-19  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (@variable_string_settables),
	tp/ext/highlight_syntax.pm (_get_language), tp/texi2any.pl,
	tp/Makefile.am (dist_extensions_DATA): load highlight_syntax.pm in
	main program if HIGHLIGHT_SYNTAX is set.  Rename
	HIGHLIGHT_SYNTAX_DEFAULT as HIGHLIGHT_SYNTAX_DEFAULT_LANGUAGE.  Setup
	highlight_syntax.pm as an internal extension.

	* doc/texinfo.texi (Other Customization Variables, Generating HTML)
	(Syntax Highlighting): document syntax highlighting support in
	texi2any for @example for HTML.

	* tp/tests/other/list-of-tests: use HIGHLIGHT_SYNTAX to load
	syntax highlighting for one test case.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (parser): remove a check and handling of
	user-provided state in parser.  Both codes were not active.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (%default_no_paragraph_commands, parser):
	(_parse_line_command_args), tp/Texinfo/XS/parsetexi/command_data.awk,
	tp/Texinfo/XS/parsetexi/indices.c (add_index_command),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/command_data.txt,
	tp/maintain/regenerate_commands_perl_info.pl: add no_paragraph flag.
	Put the flag explicitly for brace and nobrace commands in
	command_data.txt and add automatically for line and block commands.
	Add default index commands and add dynamically new index commands.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	remove index entry commands from the list of commands that do not
	start paragraphs in the check before calling begin_paragraph.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_end_line_def_line):
	Reorder conditional to match XS code.  No functional changes.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	Index commands close paragraphs

	* tp/Texinfo/ParserNonXS.pm (%default_close_paragraph_commands),
	(parser, _parse_line_command_args), tp/Texinfo/XS/parsetexi/commands.c
	(close_preformatted_command), tp/Texinfo/XS/parsetexi/indices.c
	(add_index_command): set index commands as close_paragraph commands,
	but do not set them to close preformatted containers.

	* tp/Texinfo/ParserNonXS.pm (_end_paragraph),
	tp/Texinfo/XS/parsetexi/parser.c (end_paragraph): remove empty
	paragraphs.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry): remove
	the number field from the index entry structure as it is not
	used, the position in the index array is directly used in api.c.

	* tp/Texinfo/ParserNonXS.pm: update POD documentation of index
	entries, add index related extra keys documentation.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	* Texinfo/Convert/HTML.pm (_convert_def_line_type) <DEF_TABLE>:
	Reorder conditional and remove one level of indentation.  No
	functional changes.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	* Texinfo/Convert/TexinfoMarkup.pm (%defcommand_name_type):
	Specfify 'defline' as documenting 'symbol' objects.
	* util/texinfo.dtd: Add <defsymbol>.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/DocBook.pm (%defcommand_name_type):
	For @defline, wrap main symbol in <varname>, which is the
	best DocBook tag I could find for this.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/LaTeX.pm (_convert): Do not treat @defline
	as "unhandled".

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command)
	(_prepare_index_entries), tp/Texinfo/Convert/IXIN.pm (output_ixin),
	tp/Texinfo/Convert/Plaintext.pm (process_printindex),
	tp/Texinfo/ParserNonXS.pm (_enter_index_entry),
	tp/Texinfo/Transformations.pm (_reassociate_to_node),
	tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry),
	tp/t/automatic_nodes.t: rename 'entry_node' as 'element_node' and
	'entry_region' as 'element_region'.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command)
	(_prepare_index_entries), tp/Texinfo/Convert/IXIN.pm (output_ixin),
	tp/Texinfo/Convert/Plaintext.pm (process_printindex),
	tp/Texinfo/ParserNonXS.pm (_enter_index_entry),
	tp/Texinfo/Structuring.pm (index_entry_sort_string),
	tp/Texinfo/Transformations.pm (_reassociate_to_node),
	tp/Texinfo/XS/parsetexi/api.c (build_single_index_data),
	tp/Texinfo/XS/parsetexi/indices.c (wipe_index, enter_index_entry),
	tp/t/automatic_nodes.t: associate 'entry_node', 'entry_region'
	and 'index_ignore_chars' to the element associated to an index entry
	rather than to the index entry.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (build_single_index_data),
	tp/Texinfo/XS/parsetexi/indices.c (wipe_index, enter_index_entry):
	store index_ignore_chars as a string already in enter_index_entry.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	Store index_ignore_chars as a string

	* tp/Texinfo/Common.pm (_substitute_references),
	tp/Texinfo/ParserNonXS.pm (@set_flag_index_char_ignore_order)
	(_enter_index_entry), tp/Texinfo/Structuring.pm
	(index_entry_sort_string), tp/Texinfo/XS/parsetexi/api.c
	(build_single_index_data): store index_ignore_chars as a string,
	by concatenating txiindex*ignore characters in a predetermined order.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/09indices.t: add index_entries_before_nodes
	test, with NODE_NAME_IN_INDEX set to get the HTML warning, as when the
	converter is called with convert, as is sthe case for html_text,
	NODE_NAME_IN_INDEX is not set based on USE_NODES.

2023-02-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command): add
	targetted warnings for index entries not associated to node or section
	that are formatted in printindex with warnings only if the index entry
	is expected to be associated with a node (NODE_NAME_IN_INDEX set) or
	a section (NODE_NAME_IN_INDEX set to 0), and if the index entry is not
	in a special region (titlepage or copying).

	* tp/t/input_files/index_special_region.texi: add a comment.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line):
	Match pure Perl code better by looking up "def_command" extra
	value.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	@defblock, @defline in XS parser

	* tp/Texinfo/XS/parsetexi/close.c (close_command_cleanup):
	Call gather_def_item for @defblock.
	* tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command):
	Handle @defline.  Allow @defline and @deflinex in @defblock.
	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line):
	No index entry for @defline.

2023-02-18  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm (%def_map): Add defline.

2023-02-17  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (index_content_element),
	tp/Texinfo/Convert/DocBook.pm (_index_entry),
	tp/Texinfo/Convert/HTML.pm (_convert_printindex_command)
	(_prepare_index_entries, output_internal_links),
	tp/Texinfo/Convert/IXIN.pm (output_ixin), tp/Texinfo/Convert/LaTeX.pm
	(_index_entry), tp/Texinfo/Convert/Plaintext.pm (process_printindex),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_index_entry),
	tp/Texinfo/ParserNonXS.pm (_enter_index_entry),
	tp/Texinfo/Structuring.pm (sort_indices),
	tp/Texinfo/Transformations.pm (_reassociate_to_node),
	tp/Texinfo/Translations.pm (complete_indices),
	tp/Texinfo/XS/parsetexi/api.c (build_single_index_data),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line),
	tp/Texinfo/XS/parsetexi/indices.c (wipe_index, enter_index_entry),
	tp/init/chm.pm (chm_init): remove 'content_normalized' and
	'entry_content' from index entry.  Instead, add 'def_index_element'
	and 'def_index_ref_element' to extra of definition lines, and use
	Texinfo::Common::index_content_element to find, in the tree, the
	element corresponding to the content of the index entry associated
	to the 'entry_element' entry element.

	* tp/Texinfo/Common.pm (_relate_index_entries_to_table_items_in),
	tp/Texinfo/Convert/HTML.pm (_convert_printindex_command)
	(_prepare_index_entries): use 'entry_associated_element' to
	re-associate index entry command to table entry, and not
	'entry_element' as it holds informations important for the index
	entry. It is not ideal, as it adds an undocumented key to the index
	entry.

	* tp/Texinfo/Convert/DocBook.pm (_convert): restrict elements
	trigerring pending_prepend text addition more than with
	Texinfo::Common::element_is_inline, allow only paragraph and
	preformatted, as containers like line_args are inline, but we do not
	want to have text prepended there.

2023-02-17  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_enter_index_entry),
	tp/Texinfo/Structuring.pm (sort_indices),
	tp/Texinfo/XS/parsetexi/api.c (build_single_index_data),
	tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry): do not
	duplicate sortas information in index entry. Change 'current' variable
	name.

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command),
	tp/Texinfo/Structuring.pm (sort_indices): use a variable for the
	element associated to the index entry.

	* tp/Texinfo/Structuring.pm: avoid autovivification.

2023-02-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_enter_index_entry),
	tp/Texinfo/XS/parsetexi/api.c (build_single_index_data),
	tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry): remove
	index_at_command and index_type_command entries from index entries.
	Remove index_at_command argument of enter_index_entry, update callers.

	* tp/Texinfo/Convert/Plaintext.pm (): determine @-command name
	associated to index entry based on the tree element.

2023-02-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (sort_indices): determine @-command name
	associated to index entry based on the tree element.

2023-02-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (_sort_index_entries)
	(_collator_sort_index_entries): use index_name as the last way to
	disambiguate index entries when sorting.

2023-02-16  Gavin Smith <gavinsmith0123@gmail.com>

	Initial @defblock, @defline in texi2any

	* tp/Texinfo/command_data.txt (defblock, defline, deflinex): Add.

	* tp/Texinfo/ParserNonXS.pm
	(_close_command_cleanup): Call _gather_def_item for @defblock.
	(_process_remaining_on_line):
	Allow any def line command in @defblock, including @defline.
	(_end_line_def_line): No index entry for @defline.

	* tp/Texinfo/Convert/Plaintext.pm (%indented_commands): Add @defblock.
	(_convert): Do not treat "defline" as an unhandled command.  Treat
	defline similarly to deffn.
	* tp/Texinfo/Convert/HTML.pm (%default_commands_conversion):
	Use _convert_def_command for @defblock.

	* doc/texinfo.tex (@defline, @deftypeline):
	Define as synonymns for @deflinex, @deftypelinex.

2023-02-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_container, _remove_empty_content)
	(_expand_macro_arguments), tp/Texinfo/XS/parsetexi/close.c
	(remove_empty_content, close_container),
	tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments): separate the
	code to remove empty content, put in remove_empty_content from the
	remaining of close_container.  Do not remove completly macro arguments
	that are empty, only remove the contents, keep a brace_command_arg to
	mark that there was an empty string argument in the Texinfo code.

2023-02-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): keep information 
	on empty ignored inline conditional arguments.

	* tp/Makefile.tres, tp/t/xml_tests.t: new test
	inlineifset_empty_second_arg.

2023-02-16  Patrice Dumas  <pertusus@free.fr>

	* util/txixml2texi.pl (BEGIN): update by adapting texi2any.pl BEGIN
	block.

2023-02-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_comma): do not open
	a brace command container if the second argument of inlinefmtifelse
	does not exist.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): comments,
	more similar code to XS parser.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/input_files/delcomment_followed_by_cpp_line.texi: remove
	(wrong) @setfilename.

	* tp/t/test_utils.pl (output_texi_file): do not add a chapter if there
	is a node with name starting by chap.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/converters_tests.t: add
	setfilename_no_extension test.

	* tp/t/30sectioning.t, tp/t/input_files/*.texi,
	tp/tests/formatting/*.texi: remove some @setfilename,
	when it is not useful for the test, for file that are used in more
	than one test.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/converters_tests.t: change node names to avoid warnings.

2023-02-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/handle_commands.c (parse_line_command_args):
	Reference regions stack correctly.  Report from Patrice.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/xml_tests.t: rename node_no_section as
	top_node_no_section and node_and_bye as top_node_and_bye.

	* tp/tests/formatting/index_entries_relate_to_item.texi,
	tp/t/input_files/all_spaces.texi,
	tp/t/input_files/chinese_mixed_with_en.texi: add chapter/node after
	Top node.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/languages.t: rename simple as
	simple_documentlanguage and multiple as multiple_documentlanguage.
	Add some chapter and node after Top to be more useful for output
	formats that do not output the Top node, and also to test for
	translation in @node.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/init_files_tests.t, tp/t/init/undef_node_file_name.init: change
	tests to be more useful for LaTeX, and more like actual manuals by
	renaming a node and adding a chapter.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/formats_encodings.t: change tests to be more useful for LaTeX by
	renaming a node.

	* tp/t/html_tests.t: add some chapters for tests to look more like
	actual manuals.

2023-02-15  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace):
	Call add_extra_string_dup instead of add_extra_string.

2023-02-15  Gavin Smith <gavinsmith0123@gmail.com>

	Put regions stack in nesting context

	* tp/Texinfo/XS/parsetexi/context_stack.h (NESTING_CONTEXT):
	Add regions_stack field.
	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf): Reset it.
	* tp/Texinfo/XS/parsetexi/context_stack.c
	(push_region, pop_region, current_region, current_region_cmd)
	(reset_region_stack): Remove.

	* tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command),
	* tp/Texinfo/XS/parsetexi/close.c (pop_block_command_contexts):
	Push and pop from new regions stack.

	* tp/Texinfo/XS/parsetexi/tree_types.h (INDEX_ENTRY):
	Type of 'region' field is now enum command_id, not ELEMENT *.
	* tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry):
	Assign 'region' from region_stack.
	* tp/Texinfo/XS/parsetexi/api.c (build_single_index_data):
	Create Perl string for 'entry_region'.
	* tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace) <@anchor>:
	Save 'region' as string rather than element reference.

	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	Check that region command does not occur inside region command.
	* tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command):
	Do not check for nested region here.

2023-02-15  Gavin Smith <gavinsmith0123@gmail.com>

	Put regions stack in nesting context

	* tp/Texinfo/ParserNonXS.pm (parser):
	Initialise 'regions_stack' on 'nesting_context'.
	(%parser_state_initialization): Remove 'regions_stack'.

	(_pop_block_command_contexts, _enter_index_entry)
	(_process_remaining_on_line, _parse_line_command_args):
	Refer to new array throughout.
	(_enter_index_entry),
	(_process_remaining_on_line) <@anchor>:
	Set 'entry_region' and 'region' to string rather than element
	reference.

	(%not_in_region_commands): New hash, initialised with region
	commands.
	(_check_valid_nesting_context): Check commands within region
	commands.
	(_process_remaining_on_line): Do not check for nested regions here.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/60macro.t, tp/t/80include.t: change tests to be more useful for
	LaTeX by adding nodes after Top node.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/57invalid_nestings.t: change ref_in_anchor test name to
	ref_to_top_in_anchor.  Change tests to be more useful for LaTeX by
	adding nodes and renaming nodes.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/50value.t, tp/t/55conditionals.t: change tests to be more
	useful for LaTeX by adding nodes after Top node.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/40moresectioning.t: add latex output for
	placed_things_before_node.  Change tests to be more useful for
	LaTeX and avoid warnings by changing node names.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/30sectioning.t: rename node test as
	node_simple.  Change tests to be more useful for LaTeX by adding a
	node after the Top node, change node names, adding an @unnumbered.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/27float.t, tp/t/28heading.t: change tests to be more useful for
	LaTeX by adding a node after the Top node.  Add latex output for all
	the float tests.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/22xtable.t, tp/t/25regions.t: change tests to be more useful
	for LaTeX by adding a node or chapter after the Top node or renaming
	the Top or other nodes.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/19def.t: change tests to be more useful for LaTeX by adding a
	node after the Top node or renaming the Top or other nodes.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/10menu.t: rename Top node as first when it is not important for
	the first node to be the Top node, for the formats in which Top node
	is not output.

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (output_texi_file): better formatting of output
	file.  Warn if it is not possible to get an output relevant output
	formats that do not output @node Top.  Node name beginning by 'chap'
	are considered to stop the Top node and allows to have a useful test
	in formats that do not output @node Top content.

	* tp/t/03coverage_braces.t, tp/t/08misc_commands.t: change tests to be
	more useful for LaTeX by adding a node after the Top node or replacing
	by an anchor.

	* tp/t/09indices.t, tp/t/input_files/*.texi: change tests to be more
	useful for LaTeX by adding a node after the Top node or renaming such
	a node to be prefixed by chap and avoid the warning in test_utils.pl..

2023-02-15  Patrice Dumas  <pertusus@free.fr>

	@thisfile in LaTeX output

	* doc/texinfo.texi (Custom Headings), tp/Texinfo/Convert/LaTeX.pm
	(%LaTeX_in_heading_commands_formatting, _latex_header)
	(_push_new_context, _set_custom_headings, _include_file_name)
	(_convert): add a context for custom heading commands.  If thisfile is
	in a custom heading, determine current include file based on source
	marks in collected_includes state stack, and reset a LaTeX macro when
	the current include file changes.  Always prepend to $result in
	_convert.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/latex_tests.t:
	add custom_heading_with_include and
	custom_heading_with_include_in_command tests.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): check
	the whole command name when checking for nested ignored @if*
	conditional block commands.

	* tp/Makefile.tres, tp/t/55conditionals.t: add
	nested_ifset_prepended_to_command_name test.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): keep
	content in ignored rawpreformatted output block commands in
	elided_rawpreformatted container as raw text.

	* tp/Texinfo/Convert/TextContent.pm (%ignored_block_commands): ignore
	@latex.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add
	macro_expansion_end_in_conditional_line and
	macro_expansion_end_in_conditional_end tests.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line)
	(_end_line_starting_block, _parse_texi), tp/Texinfo/XS/parsetexi/api.c
	(store_source_mark_list), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_starting_block, end_line_misc_line),
	tp/Texinfo/XS/parsetexi/parser.c (push_conditional_stack)
	(pop_conditional_stack, top_conditional_stack),
	tp/Texinfo/XS/parsetexi/parser.h (CONDITIONAL_STACK_ITEM),
	tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark)
	(source_marks_reset_counters): add source marks for expanded @if*
	block conditionals, associated to the @if opening line and the @end
	line.  Add the start source mark to the conditional stack.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t, tp/t/converters_tests.t: add
	macro_expansion_end_in_ignored_ifset_content,
	macro_expansion_end_in_ignored_nested_conditional,
	macro_expansion_end_in_ignored_nested_different_conditional tests in
	*macro.t and inlinefmtifelse_with_commands in converters_tests.t.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_commands, _end_line_misc_line)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/close.c
	(close_commands), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/parser.c
	(top_conditional_stack, process_remaining_on_line): process end of
	ignored conditional block in a similar way to other block commands. Do
	not change how it is detected.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/ext/latex2html.pm (l2h_process), tp/ext/tex4ht.pm
	(tex4ht_prepare): update for the changes in elided* types names.

2023-02-14  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/coverage/formatting.texi,
	tp/tests/coverage/res_parser/formatting_macro_expand/formatting.texi:
	fix conditional processing meant to avoid Texinfo invalid for TeX,
	with special cases in @example.  Use a conditional definition instead
	of ifset and ifclear nesting, as now ifclear nests in ifset.

2023-02-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/source_marks.c (relocate_source_marks):
	replace the for loop by a while to be sure that the index is
	incremented before the loop exit.  Remove one from the loop variable
	to start the check on source marks to remove.

2023-02-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/source_marks.c (relocate_source_marks):
	return immediately if there are no source marks.  Gavin report.

	* tp/Makefile.tres, tp/t/19def.t: add empty_main_def_arguments.

2023-02-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/macro.c (expand_macro_body): content in
	argument may be missing for the last argument which removal is
	attempted in expand_macro_arguments.  Gavin report.

	* tp/Makefile.tres, tp/t/60macro.t: add macro_call_empty_two_arg
	with diverse possibilities of spaces and empty args for a two
	arguments macro call.

2023-02-13  Patrice Dumas  <pertusus@free.fr>

	Use pre-set keys for index sorting

	* tp/Texinfo/Structuring.pm (_sort_string, _sort_index_entries),
	(_collator_sort_index_entries, index_entry_sort_string, sort_indices),
	tp/Texinfo/Convert/LaTeX.pm (_index_entry): add the possibility to
	preset the sort keys using getSortKey.  Distinguish sort string, which
	can be the preset binary string, from entry string which is a text
	representation of the sorted string.  Idea from Gavin.

2023-02-12  Gavin Smith <gavinsmith0123@gmail.com>

	Non-XS optimizations

	* tp/Texinfo/Convert/ParagraphNonXS.pm (_add_next, add_text):
	Add /o flag to regexes using string interpolation, in order to
	only compile each regex once.
	* tp/Texinfo/Convert/Unicode.pm (string_width):
	Sometimes call 'length' on the string.  This makes a difference
	because string_width is now called from ParagraphNonXS.pm.

2023-02-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_ignored_block_conditional)
	(_close_current, _process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/close.c (close_ignored_block_conditional),
	(close_current), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line): add close_ignored_block_conditional
	to associated a source mark to a closed ignored conditional block,
	to do it in close_current in addition to process_remaining_on_line.

2023-02-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line): avoid
	autovivification.

2023-02-12  Patrice Dumas  <pertusus@free.fr>

	Add source marks for ignored @if* conditional block commands

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark),
	(source_marks_reset_counters): add ignored_conditional_block source
	mark for ignored @if* conditional block commands.  Avoid setting empty
	contents for block commands.

	* tp/Texinfo/XS/parsetexi/end_line.c, tp/Texinfo/XS/parsetexi/input.c,
	tp/Texinfo/XS/parsetexi/macro.c: change in spacing for mark source
	related function calls.

2023-02-12  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line):
	Avoid use of goto statements to reduce program run time.

2023-02-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_starting_block), tp/Texinfo/XS/parsetexi/handle_commands.c
	(handle_block_command), tp/Texinfo/command_data.txt: do not handle
	especially conditional block commands opening in
	_process_remaining_on_line or handle_block_command, let non-specific
	code handle block command line parsing, and take care of their
	arguments in end_line_starting_block.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): put
	ignored conditional block content in the block element.

2023-02-12  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (test): use the same expanded formats in the
	conversion to text as for the parser.

2023-02-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add unpaired_backslash_in_macro_body
	test. Remove backslash in macro_end_call_in_ignored_inlineraw.

2023-02-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Text.pm: rename _code_options as _code_state and
	raw as _raw_state.

	* tp/Texinfo/Convert/Text.pm (_convert): decrease _raw_state when
	coming out of raw state.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): in ignored
	@inline* arguments, do not postpend to the line when there is no match
	with a delimiter, instead consume the line. As in the XS parser.

	* tp/Texinfo/XS/parsetexi/macro.c (expand_macro_body): keep text after
	a non paired \ in the macro body, like the perl parser.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_comma): put elided
	content of @inline* in the tree.

	* tp/Texinfo/ParserNonXS.pm (_expand_macro_body): change code to be
	clearer and more in line with XS parser code.

2023-02-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_comma): remove elided
	as elided_brace_command_arg and elided_block as elided_rawpreformatted
	to convey the similarity with the corresponding containers without
	leading elided_.

2023-02-11  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (%contain_full_line_commands):
	Remove, merged into %contain_full_text_commands.
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting):
	Update comments.

2023-02-11  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_end_line_def_line),
	* tp/Texinfo/XS/parsetexi/end_line.c (_end_line_def_line):
	Assign $current to parent element earlier in function.

2023-02-11  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_end_line_def_line): Do not call
	_isolate_last_space.
	(_end_line_misc_line, _end_line_starting_block): Move call to
	_isolate_last_space before call to _end_line_def_line.

	* tp/Texinfo/XS/parsetexi/end_line.c
	(_end_line_def_line, _end_line_misc_line, _end_line_starting_block):
	Make the same change.

2023-02-11  Gavin Smith <gavinsmith0123@gmail.com>

	Initial @newdef implementation

	* doc/texinfo.tex (@newdef): Implement @newdef.  Syntax is subject
	to change.

2023-02-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add
	macro_inlineifcond_end_in_empty_ignored and
	macro_inlineifcond_end_in_empty_set tests.

2023-02-11  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Typed Functions):
	Place R language example in @ignore block as @var uppercases
	named arguments in Info output.

2023-02-11  Gavin Smith <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (@defblock, @deflinex, @deftypelinex):
	Add commands for definitions that do not create index entries.

2023-02-11  Gavin Smith <gavinsmith0123@gmail.com>

	Revert @useindex implementation

	* doc/texinfo.tex (\useindex, \defind): Remove.  This reverts
	change on 2022-12-15.

2023-02-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add
	macro_end_call_in_ignored_inlinefmt,
	macro_end_call_in_ignored_inlineraw,
	macro_call_in_ignored_inlinefmtifelse,
	macro_end_call_in_ignored_inlinefmtifelse and
	macro_call_in_inlinefmtifelse_format with end/start of macro call in
	@inline*fmt and @inlineraw.

2023-02-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add macro_end_call_in_ignored_raw
	test with a macro call end within an ignored raw format block.

2023-02-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_expand_macro_arguments),
	tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments): only remove
	last empty argument in macro call arguments, an empty argument in the
	middle is significant.

	* tp/Makefile.tres, tp/t/60macro.t: new test
	macro_call_empty_middle_arg with an empty middle argument in a macro
	call.

2023-02-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_remove_empty_arg)
	(_expand_macro_arguments, _expand_macro_body, _handle_macro),
	tp/Texinfo/XS/parsetexi/macro.c (remove_empty_arg)
	(expand_macro_arguments, expand_macro_body, handle_macro):
	parse macro arguments in structures similar to the main elements
	tree, for consistency with the remaining of the code, and to hold
	source marks in macro arguments.

	* tp/Texinfo/ParserNonXS.pm (_merge_text): transfer source marks
	only if transfer_marks_element is defined.

	* tp/Texinfo/ParserNonXS.pm: avoid autovivification.

2023-02-10  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/command_data.txt: Remove @useindex as this
	will no longer be implemented.

2023-02-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/TODO: remove erroneous constructs that now give warnings

2023-02-09  Gavin Smith <gavinsmith0123@gmail.com>

	Better worded error messages for line context

	* tp/Texinfo/ParserNonXS.pm (_check_valid_nesting_context),
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	For line and block commands, refer to invalid command "on line" to
	avoid confusion with block contents.

2023-02-09  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block):
	Use variable for current command throughout instead of struct access.

2023-02-09  Gavin Smith <gavinsmith0123@gmail.com>

	Use nesting stacks for sectioning and def commands

	* tp/Texinfo/command_data.txt: Add contain_basic_inline flag
	for all def and sectioning_heading commands.

	* tp/Texinfo/ParserNonXS.pm
	(%in_basic_inline_with_refs_commands): Remove.
	(%default_valid_nestings):
	Do not set using %in_basic_inline_with_refs_commands.
	(%ok_in_basic_inline_with_refs_commands): New hash, with exceptions.
	(_check_valid_nesting): Eliminate special handling of ct_def context.
	(_check_valid_nesting_context):
	Use %ok_in_basic_inline_with_refs_commands as list of inclusions
	for sectioning and def commands.

	* tp/Texinfo/ParserNonXS.pm
	(_end_line_misc_line, _end_line_starting_block):
	Pop nesting contexts before calling _end_line_def_line.

	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting):
	Do not handle "basic inline with refs" commands.
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	Include CF_ref commands as allowed for sectioning and def commands.

	* tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_misc_line, end_line_starting_block):
	Pop nesting contexts before calling end_line_def_line.

2023-02-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/source_marks.c (relocate_source_marks):
	only check removal of source marks that were looked at.

2023-02-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/source_marks.c (relocate_source_marks):
	fix incorrect initialization with incorrect memset size argument.
	Gavin report.

2023-02-09  Gavin Smith <gavinsmith0123@gmail.com>

	Call def line ending code at lower level

	* tp/Texinfo/ParserNonXS.pm
	(_end_line_starting_block, _end_line_misc_line):
	Redirect to _end_line_def_line if called on a def line.
	(_end_line, _close_current):
	Remove separate cases for calling _end_line_def_line.

	* tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_starting_block, end_line_misc_line):
	Redirect to end_line_def_line if called on a def line.
	* tp/Texinfo/XS/parsetexi/end_line.c (end_line),
	* tp/Texinfo/XS/parsetexi/close.c (close_current):
	Do not call end_line_def_line.

2023-02-08  Gavin Smith <gavinsmith0123@gmail.com>

	Stop text disappearing in Info nodes with encoding conversion

	* info/util.c (text_buffer_iconv): Update text buffer length
	after error so that we do not write over the same output again.

2023-02-08  Gavin Smith <gavinsmith0123@gmail.com>

	Unify @multitable block line arg ending

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line) <@columnfractions>:
	Do not close the @multitable block line element, so that
	_end_line_starting_block will be called afterwards.  Only record
	the @columnfractions command in the 'extra' hash.
	(_end_line_starting_block): Check if columnfractions has been
	set so to avoid reading line as prototype list.

	* tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_misc_line) <@columnfractions>: Do not close multitable
	block line element: only set 'columnfractions'.
	(end_line_starting_block): Check if 'columnfractions' has been set.

2023-02-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	add $current to new_line call to register source mark after @end of
	ignored cnditional.

2023-02-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_relocate_source_marks),
	tp/Texinfo/XS/parsetexi/source_marks.c (relocate_source_marks):
	relocate source marks within a range, with the first source mark not
	necessarily in range.  Move relocate_source_marks from def.c to
	source_marks.c.

	* tp/Texinfo/ParserNonXS.pm (_isolate_last_space),
	tp/Texinfo/XS/parsetexi/parser.c (isolate_last_space_internal):
	relocate source marks corresponding to the new spaces element.

	* tp/Texinfo/XS/parsetexi/source_marks.c
	(remove_from_source_mark_list): move remove_from_source_mark_list from
	tree.c to source_marks.c.

2023-02-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_new_line, _process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/input.c (new_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command):
	pass current in new_line to get end of macro/value source marks
	in line commands where there is no macro/value expansion.  Explain
	in a comment that the location of the source mark cannot be accurate,
	as the text is not parsed as usual in the tree.

	* tp/Texinfo/ParserNonXS.pm (_next_text, _debug_show_source_mark):
	show mark source information for debugging with
	_debug_show_source_mark, add code to show ignored source marks in
	_next_text.

2023-02-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/input.c (next_text): after calling
	input_push_text for delcomment, set the input pointer again as the
	input stack may have been reallocated.

2023-02-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text),
	tp/Texinfo/XS/parsetexi/input.c (next_text): reuse input source mark
	for delcomment.  Do not pass line from input source mark to the other
	source marks.

2023-02-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (%default_commands_args)
	(_convert_value_command), tp/Texinfo/Convert/LaTeX.pm (_convert),
	tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_new_value_element)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/parser.c
	(new_value_element, process_remaining_on_line): use the same structure
	for txiinternalvalue, a value not expanded in tree and value expansion
	source mark element, setup by calling new_value_element().  Update
	formatting in converters.

2023-02-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_transfer_source_marks, _close_container)
	(_close_command_cleanup, _merge_text, _end_line): test only existence of
	source_marks key, if it exists it is necessarily non-empty.

	* tp/Texinfo/ParserNonXS.pm (_merge_text, _abort_empty_line)
	(_split_delimiters, _split_def_args): delete source_marks from the
	source element after they have been transferred.

	* tp/Texinfo/ParserNonXS.pm (_split_delimiters, _split_def_args)
	(_parse_def): check that source marks have all been transferred.

2023-02-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/html_tests.t: add the
	file_name_case_insensitive_conflict_node and
	file_name_case_insensitive_conflict_node_no_redirections test to test
	conflicts with node names differing in case only without and with
	NODE_FILES.

2023-02-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	fix beginning of line condition nesting.

2023-02-06  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/many_input_files/*.sh: add $prepended_command to the
	commands run.

2023-02-06  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/many_input_files/*.sh: use a variable for the command
	run to avoid redundant code.

2023-02-06  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/run_parser_all.sh: reindent a function.

2023-02-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c (skip_comment),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command),
	tp/Texinfo/XS/parsetexi/parser.c (read_comment): add an argument
	to read_comment, set to 1 if there is a comment.  Remove the
	comment_command argument of read_comment, the comment command is at
	the line argument location, so if there is a comment the caller can
	easily find the comment argument beginning.  Return a pointer past
	@c/@comment, whether there is indeed a comment or not.
	Update call in handle_block_command.
	Use read_comment in skip_comment (removes a valgrind error).

2023-02-06  Gavin Smith <gavinsmith0123@gmail.com>

	Reduce list of line commands that may occur other than at line start

	* tp/Texinfo/ParserNonXS.pm (%begin_line_commands):
	Include @sp, @verbatiminclude, @set, @clear, @vskip.
	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	Likewise.
	* NEWS: Mention change for @set and @value, and better validity
	checking in general.
	* doc/texinfo.texi (@set @value): Do not say that @set can
	occur at the beginning of a line.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments): fix
	arg_space, which is not the number of allocated elements in arg_list,
	but comparable to arg_number, with 1 added to obtain the allocated
	number of elements to add the null delimiter.  Change name of
	new_arg_space to new_alloc_space to make clearer that it is the
	allocated number of elements, not a space comparable to arg_number.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments): always
	allocate 2 arg_list elements, for an argument, which can be an empty
	string, and the null delimiter.  Initialize arg_space to 2
	accordingly (found through valgrind output).

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (run_all), tp/t/README: process all the tests
	given in argument.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.c (read_comment): check string
	length to avoid reading past the string end (found through valgrind
	output).

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	Source mark for value expansion

	* tp/Texinfo/ParserNonXS.pm (_next_text, _process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/input.c (next_text),
	tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark)
	(source_marks_reset_counters): register value expansion source marks.

	* tp/Texinfo/XS/parsetexi/input.c (next_text): strdup line when
	duplicating start source mark line for end source mark.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_relocate_source_marks)
	(_split_delimiters, _split_def_args), tp/Texinfo/XS/parsetexi/def.c
	(relocate_source_marks, split_delimiters, split_def_args): add
	relocate_source_marks to help relocating source marks, taken from from
	split_def_args.  Relocate source marks in split_delimiters using that
	function.

	* tp/Texinfo/XS/parsetexi/def.c (relocate_source_marks),
	tp/Texinfo/XS/parsetexi/tree.c (remove_from_source_mark_list): correct
	the source mark relcation code by starting from the first source mark,
	and add remove_from_source_mark_list to be able to remove a source
	mark from any position in the list.

	* tp/Makefile.tres, tp/t/60macro.t: add macro_in_def_delimiters
	with macro expansion in delimiters and text that tests relocation of
	source marks in split_delimiters.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add
	macro_before_specific_line_command_args test.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): remove the
	popping of contents at the end of a root command, there is nothing to
	pop, and if there was, it should be fixed directly.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_transfer_source_marks),
	tp/Texinfo/XS/parsetexi/source_marks.c (transfer_source_marks): modify
	add_source_marks to transfer source marks between two elements.  For
	the perl parser, test for source marks in transfer_source_marks.
	Empty the source element source marks in transfer_source_marks.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_pop_element_from_contents)
	(_abort_empty_line), tp/Texinfo/XS/parsetexi/parser.c
	(abort_empty_line), tp/Texinfo/XS/parsetexi/tree.c
	(pop_element_from_contents): do reparenting of source marks in
	abort_empty_line and not in pop_element_from_contents.

	* tp/Makefile.tres, tp/t/60macro.t: add an explicit test of empty
	string with a macro call source mark first in an element.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line): use merge_text argument
	to transfer source marks when reconstructing text from an aborted menu
	entry line.

	* tp/Makefile.tres, tp/t/60macro.t: add macro_in_menu_comment_like_entry
	with source marks in text finally not considered as a menu entry.

2023-02-05  Gavin Smith <gavinsmith0123@gmail.com>

	No more check for basic inline content in check_valid_nesting.

	* tp/Texinfo/ParserNonXS.pm (%default_valid_nestings):
	Do not add to from the %contain_basic_inline_commands hash.
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting):
	Do not check or use CF_contain_basic_inline flag.

2023-02-05  Gavin Smith <gavinsmith0123@gmail.com>

	Basic inline stack for block line args

	* tp/Texinfo/ParserNonXS.pm
	(parser): Initialise 'basic_inline_stack_block'  stack.
	(_process_remaining_on_line) <line arg>: Push the new stack.
	(_end_line_starting_block)
	(_end_line_misc_line) <@columnfractions>:
	Pop the new stack.

	(_check_valid_nesting_context): Use 'basic_inline_stack_on_line'.

	* tp/Texinfo/XS/parsetexi/context_stack.h (NESTING_CONTEXT):
	Add basic_inline_stack_block field.
	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf): Reset it.

	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	Use new stack.
	* tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command):
	Push.
	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block),
	(end_line_misc_line) <@columnfractions>:
	Pop.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_merge_text, _process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/menus.c (handle_menu),
	tp/Texinfo/XS/parsetexi/parser.c (merge_text): add a new argument to
	merge_text, to provide with an element to transfer source marks from.
	Update callers.

	* tp/t/60macro.t, tp/Makefile.tres: test marco expansion for dot not
	considered as a separator (not followed by a space) in menu entry
	name.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command):
	use close_container to close menu_comment or menu description
	interrupted by a menu command, to handle correctly source marks
	in closed containers.

	* tp/t/60macro.t, tp/Makefile.tres: add
	macro_in_menu_comment_closed_by_detailmenu test.

2023-02-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/menus.c (handle_menu): use close_container
	to close preformatted and menu_comment when starting a menu entry.

2023-02-05  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block):
	Place command name in a variable to avoid accessing hash every time.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/60macro.t: add test of macro expansion in
	empty line after paragraph that is reassociated to the paragraph
	container.

2023-02-04  Gavin Smith <gavinsmith0123@gmail.com>

	Basic inline stack for index commands

	* tp/Texinfo/ParserNonXS.pm (%default_basic_inline_commands):
	Initialise from %contain_basic_inline_commands and add index commands.
	(parser): Initialise $parser->{'basic_inline_commands'} therefrom.
	This hash is already mentioned in comment at top of file.
	(_close_brace_command, _end_line_misc_line)
	(_process_remaining_on_line): Use 'basic_inline_commands' hash.
	(_parse_line_command_args) <new index command>: Add to hash.

	* tp/Texinfo/XS/parsetexi/indices.c (add_index_command):
	Set CF_contain_basic_inline flag.
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting):
	Eliminate check for CF_index_entry_command.
	(check_valid_nesting_context): Reorder a couple of conditionals.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line): transfer source marks
	from the empty line after menu description.

	* tp/Makefile.tres, tp/t/60macro.t: add focused test of empty string
	macro expansion in empty line after menu description.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (import): never load the abort_empty_line
	XS override as the function is not up to date with the changes needed
	for source marks.  Do not load the merge_text override either, as it
	uses the abort_empty_line XS override.

2023-02-04  Gavin Smith <gavinsmith0123@gmail.com>

	Eliminate duplicate warning messages

	* tp/Texinfo/ParserNonXS.pm (%default_valid_nestings):
	Do not add line commands with basic inline content.
	Do not add 'in_heading_spec' commands to the hashes for
	'heading_spec' commands because these are currently included
	as basic inline content.
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting):
	Do not check any line commands for basic inline content.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo): remove
	menu_entry and menu_comment from types with args.

	* tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi):
	use common code for the different types of commands.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Text.pm (_convert): do not handle menu entry
	differently from other contents.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): do not handle
	menu entry differently from other contents.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_container),
	tp/Texinfo/XS/parsetexi/close.c (close_container): keep before_item
	type even if it contains only source marks, as a before_item signals
	in gather_previous_item that there is no need to add an empty table
	definition.

	* tp/Texinfo/ParserNonXS.pm (_close_command_cleanup),
	tp/Texinfo/XS/parsetexi/close.c (close_command_cleanup): keep a
	before_item even if it is empty if it contains a source mark.

	* tp/Texinfo/ParserNonXS.pm (_gather_previous_item): check the
	length of added contents for table definition and for table term
	and add contents only if there is some.

	* tp/Texinfo/ParserNonXS.pm (_close_command_cleanup): do not
	autovivify an empty contents for before_item.

	* tp/t/22xtable.t, tp/Makefile.tres: add empty_table for a regular
	empty @table.

	* tp/t/60macro.t, tp/Makefile.tres: add tests with macro expansion in
	empty before_item, for @table and @multitable, and with empty
	table/multitable and not empty.

2023-02-04  Gavin Smith <gavinsmith0123@gmail.com>

	Basic inline context for line args

	* tp/Texinfo/ParserNonXS.pm (%default_valid_nestings) <heading specs>:
	Duplicate hashes to avoid modifying shared structure.
	(%in_full_text_commands): Add all %in_heading_spec_commands.

	(parser): Initialise 'basic_inline_stack_on_line' in addition to
	'basic_inline_stack'.  Using a separate stack for line arguments
	from that for braced arguments means we can push and pop in exactly
	one place in the code from each stack, which will be more reliable
	and easy to debug.
	(_process_remaining_on_line) <line arg>: Push the new stack.
	(_end_line_misc_line) <line arg>: Pop the new stack.

	(_check_valid_nesting_context): Use 'basic_inline_stack_on_line'.

	* tp/Texinfo/XS/parsetexi/context_stack.h (NESTING_CONTEXT):
	Add basic_inline_stack_on_line field.
	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf): Reset it.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line):
	Pop.
	* tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command):
	Push.
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	Use new stack.  Update conditional for what counts as
	basic inline content.

2023-02-04  Gavin Smith <gavinsmith0123@gmail.com>

	* README-hacking: refer to some other text files in sources
	* tp/t/README: advise to rebuild after git pull
	* tp/tests/README: update test results with "make -k check copy-tests".

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_is_container_empty, _close_container)
	(_end_preformatted, _close_current), tp/Texinfo/XS/parsetexi/close.c
	(is_container_empty, close_container, close_current),
	tp/Texinfo/XS/parsetexi/parser.c (end_preformatted): pass the source
	marks of an element without any information except for source marks to
	the parent.  Add is_container_empty that returns if a container
	contains information.  Put closing empty type code in close_container
	and use it in end_preformatted too.

	* tp/Texinfo/ParserNonXS.pm (_pop_element_from_contents),
	tp/Texinfo/XS/parsetexi/tree.c (pop_element_from_contents): replace
	reparented source marks from popped element to the preceding element
	by using place_source_mark on the parent instead of add_source_marks.
	Remove the popped element earlier, in XS parser such that the replaced
	source marks are placed on preceding elements.

	* tp/Texinfo/ParserNonXS.pm (_gather_def_item)
	(_close_command_cleanup, _end_line_misc_line)
	(_end_line_starting_block, _process_remaining_on_line): use
	_pop_element_from_contents.  Avoid empty contents.

2023-02-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_current),
	tp/Texinfo/XS/parsetexi/close.c (close_current): more precise comment
	on why it is needed to check that the potentially removed empty type
	needs to be cheked to be contents, to avoid args.  Improve debug
	message.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line): improve debug
	message.

2023-02-03  Gavin Smith <gavinsmith0123@gmail.com>

	Eliminate duplicate nesting warning messages

	* tp/Texinfo/ParserNonXS.pm (%default_valid_nestings) <brace commands>,
	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting):
	Use the same nesting for contain_basic_inline_commands as for other
	brace commands.

2023-02-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_current),
	tp/Texinfo/XS/parsetexi/close.c (close_current): do not treat
	especially types in menu_entry now that there are not in extra
	anymore.

2023-02-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_register_extra_menu_entry_information)
	tp/Texinfo/Structuring.pm (new_node_menu_entry),
	tp/Texinfo/XS/parsetexi/menus.c
	(register_extra_menu_entry_information): do not register
	'menu_entry_description' and 'menu_entry_name' in menu_entry 'extra',
	they are easy to get from menu_entry contents.

2023-02-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_substitute_references),
	tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type),
	tp/Texinfo/ParserNonXS.pm (_register_extra_menu_entry_information),
	tp/Texinfo/Structuring.pm (_check_menu_entry)
	(set_menus_node_directions, associate_internal_references)
	(new_node_menu_entry), tp/Texinfo/Transformations.pm
	(_normalized_entry_associated_internal_node),
	tp/Texinfo/XS/parsetexi/menus.c
	(register_extra_menu_entry_information): rename menu entry
	'extra' 'menu_entry_node' as 'menu_entry_node_label'.

	* tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type):
	determine menu entry components in case of preformatted and
	non-preformatted menu entry using the same code, avoiding
	to use 'extra' information if not useful.

2023-02-03  Gavin Smith <gavinsmith0123@gmail.com>

	Use nesting context basic inline stack more generally

	* tp/Texinfo/ParserNonXS.pm
	(_process_remaining_on_line) <contain basic inline>:
	Push command on stack.
	(_close_brace_command) <contain basic inline>:
	Pop command from stack.
	(_process_remaining_on_line) <ref commands>:
	No longer push and pop basic_inline_stack.

	* tp/Texinfo/XS/parsetexi/separator.c
	(handle_open_brace) <CF_contain_basic_inline>:
	Push nesting_context.basic_inline_stack.
	* tp/Texinfo/XS/parsetexi/close.c
	(close_brace_command) <CF_contain_basic_line>:
	Pop nesting_context.basic_inline_stack.
	* tp/Texinfo/XS/parsetexi/separator.c
	(handle_open_brace, handle_close_brace) <ref command>:
	No longer call push_command or pop_command on stack.

2023-02-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): use
	_pop_element_from_contents for menu separator.

2023-02-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type),
	tp/Texinfo/Convert/Plaintext.pm (_convert),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/Convert/Text.pm (_convert), tp/Texinfo/ParserNonXS.pm
	(_close_current, _end_line, _register_extra_menu_entry_information)
	(_enter_menu_entry_node, _process_remaining_on_line),
	tp/Texinfo/Structuring.pm (new_node_menu_entry),
	tp/Texinfo/Transformations.pm (menu_to_simple_menu),
	tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line),
	tp/Texinfo/XS/parsetexi/menus.c
	(register_extra_menu_entry_information, enter_menu_entry_node)
	(handle_menu), tp/Texinfo/XS/parsetexi/separator.c (handle_separator):
	use 'contents' for menu_entry contents, and not 'args'.

	* tp/Texinfo/Convert/Converter.pm, tp/Texinfo/Convert/HTML.pm,
	tp/Texinfo/Convert/LaTeX.pm, tp/Texinfo/Convert/Texinfo.pm,
	tp/Texinfo/Convert/TexinfoMarkup.pm, tp/Texinfo/ParserNonXS.pm,
	tp/Texinfo/Structuring.pm, tp/Texinfo/Transformations.pm:
	avoid autovivification in any case.

2023-02-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_place_source_mark),
	tp/Texinfo/XS/parsetexi/source_marks.c (place_source_mark): initialize
	text for an element added for source marks, such that merge_text can
	merge it with text following.

2023-02-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_close_current, _end_line_misc_line),
	tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): close all the
	type elements without content nor information associated in one place
	only, in close_current.

2023-02-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/menus.c (handle_menu): transfer source marks
	from popped menu star element to menu leading text.

2023-02-01  Patrice Dumas  <pertusus@free.fr>

	* tp/DebugTexinfo/DebugTree.pm (_print_tree),
	tp/Texinfo/Convert/Converter.pm (format_comment_or_return_end_line),
	tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo)
	(_expand_cmd_args_to_texi), tp/Texinfo/Convert/TexinfoMarkup.pm
	(_leading_spaces_arg, _end_line_spaces, _trailing_spaces_arg)
	(_convert), tp/Texinfo/Convert/TextContent.pm (_convert),
	tp/Texinfo/ParserNonXS.pm (_abort_empty_line, _isolate_last_space)
	(_process_remaining_on_line), tp/Texinfo/Structuring.pm
	(new_block_command), tp/Texinfo/Transformations.pm
	(fill_gaps_in_sectioning, _new_node),
	tp/Texinfo/XS/parsetexi/convert.c (expand_cmd_args_to_texi)
	(convert_to_texinfo_internal),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command),
	tp/Texinfo/XS/parsetexi/parser.c (abort_empty_line)
	(isolate_last_space_internal): add "spaces_before_argument" and
	"spaces_after_argument" as elements with text such that they can hold
	source marks too.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): reassociate
	source marks in accent with following arg to the following_arg type.

	* tp/Texinfo/ParserNonXS.pm (_place_source_mark),
	tp/Texinfo/XS/parsetexi/source_marks.c (place_source_mark): separate
	placing a source mark and registering a source mark.

	* tp/Texinfo/ParserNonXS.pm (_pop_element_from_contents): add $self
	as argument.  Update callers.

2023-01-31  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm
	(%plain_text_commands, %contain_plain_text_commands)
	(%basic_inline_commands, %contain_basic_inline_commands)
	(%full_line_commands, %contain_full_line_commands)
	(%full_text_commands, %contain_full_text_commands):
	Rename to make it clear that these are lists of containing
	commands, not of contained commands.

2023-01-31  Gavin Smith <gavinsmith0123@gmail.com>

	Nesting context basic inline stack

	* tp/Texinfo/XS/parsetexi/context_stack.h
	(COMMAND_STACK): New type.
	* tp/Texinfo/XS/parsetexi/context_stack.c
	(reset_command_stack, push_command, pop_command):
	New functions to operate on COMMAND_STACK.
	(reset_context_stack, push_context, pop_context)
	(current_context_command):
	Use COMMAND_STACK for the command part of the context stack.

	* tp/Texinfo/XS/parsetexi/context_stack.h (NESTING_CONTEXT):
	Replace xref counter with basic_inline_stack, which can be used
	more generally for any command that should only contain basic
	inline content.
	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf):
	Call reset_command_stack on nesting_context.basic_inline_stack.
	* tp/Texinfo/XS/parsetexi/separator.c
	(handle_open_brace, handle_close_brace) <ref command>:
	Call push_command and pop_command respectively on
	nesting_context.basic_inline_stack

	* tp/Texinfo/ParserNonXS.pm: Corresponding changes.
	(parser): Initialise basic_inline_stack.
	(_process_remaining_on_line) <ref commands>:
	Push and pop basic_inline_stack.
	(_check_valid_nesting_context): Check basic_inline_stack.

2023-01-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_register_source_mark),
	tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
	tp/Texinfo/XS/parsetexi/source_marks. (register_source_mark):
	remove the source mark location information, it is not useful.
	Do not set the position if the element text is the empty string.

2023-01-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list): use the
	STORE macro everywhere.

2023-01-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/def.c (split_def_args): count UTF-8 encoded
	Unicode characters for source marks locations.

	* tp/t/19def.t: do not skip end_of_lines_protected_non_ascii test.

	* tp/Texinfo/XS/parsetexi/source_marks.c,
	tp/Texinfo/XS/parsetexi/parser.c (count_convert_u8): move
	count_convert_u8 to parser.c.

2023-01-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/source_marks.c (count_convert_u8)
	(register_source_mark): set the mark source position in text
	as an index in characters, not bytes.

2023-01-30  Patrice Dumas  <pertusus@free.fr>

	in tp/Texinfo/XS gnulib-tool --add-import uniconv/u8-strconv-from-enc unistr/u8-mbsnlen.

2023-01-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments): do not
	allocate more space than the number of macro arguments.

2023-01-29  Patrice Dumas  <pertusus@free.fr>

	Source mark for macro expansion

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line)
	(_handle_macro): use a separate function to handle a macro call, as in
	the XS parser.  Get a new line right after handling the macro.  Note
	that it leads to somewhat better output than simply waiting for the
	next text to come in parse_texi.

	* tp/Texinfo/ParserNonXS.pm (_handle_macro, _next_text),
	tp/Texinfo/XS/parsetexi/input.c (next_text),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark)
	(source_marks_reset_counters): handle macro expansion source marks.

	* tp/Texinfo/ParserNonXS.pm (_next_text),
	tp/Texinfo/XS/parsetexi/input.c (next_text): do not register a source
	mark if the current element is not defined.

	* tp/Texinfo/XS/parsetexi/macro.c (expand_macro_arguments): if macro
	call is missing a close brace, register the unterminated argument,
	as the perl parser does.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): remove
	contents of accent commands when the next character is used as
	argument in the perl parser. It matters to have the contents removed
	here when there are source marks, though it is not completly clear why
	and what would be the best to do. Add comments for the XS parser.

	* tp/Texinfo/ParserNonXS.pm (_parse_texi): handle undefined lines
	getting out of _process_remaining_on_line.  Can now happen with
	next_text after macro expansion handling in case the macro expansion
	happens right before the end of a text fragment.

	* tp/Texinfo/XS/parsetexi/debug.c (debug_print_element_short),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark): add a
	debugging function that prints the element information in a similar
	way as Texinfo::Common::debug_print_element_short.

2023-01-29  Gavin Smith <gavinsmith0123@gmail.com>

	Rename "simple text" commands as "basic inline" commands

	* tp/Texinfo/commmand_data.txt:
	Replace contain_simple_text flag with contain_basic_inline.
	* tp/Texinfo/XS/parsetexi/commands.h:
	Replace CF_contain_simple_text flag with CF_contain_basic_inline.
	* tp/Texinfo/ParserNonXS.pm
	(%contain_simple_text_commands, %contain_basic_inline_commands)
	(%in_simple_text_with_refs_commands)
	(%in_basic_inline_with_refs_commands)
	(%in_simple_text_commands,  %in_basic_inline_commands)
	(%simple_text_commands, %basic_inline_commands)
	(%simple_text_with_refs_commands, %basic_inline_with_refs_commands):
	Rename.

2023-01-29  Gavin Smith <gavinsmith0123@gmail.com>

	Fix 'info (manual)slash/in/node'

	* info/info.c (main, get_initial_file): Move code checking for
	slash in argument to get_initial_file, and don't check for argument
	as a file if it begins with '('.
	(main): Move code adding user provided directory to INFOPATH
	after call to get_initial_code.
	(get_initial_file): Decrement argc as intended.

	Arash Esbati <arash@gnu.org> reported that
	"info '(latex2e)\indent & \noindent'" didn't work on Msys2.

2023-01-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text),
	tp/Texinfo/XS/parsetexi/input.c (next_text): move code related to
	end of text input to the same place as end of file input.

	* tp/Texinfo/ParserNonXS.pm (_next_text),
	tp/Texinfo/XS/parsetexi/input.c (next_text): rename $previous_input
	as $input, and i as input, and use input consistently in the XS parser.

2023-01-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (@variable_string_settables): remove
	TEXINFO_DTD_VERSION' which is also in
	%default_converter_customization.

	Change in comments in various files.

2023-01-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_item_command)
	(_get_copiable_anchor): use double quote for HTML attributes instead
	of single quote for consistency.

2023-01-26  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Basic Formatting Customization): separate
	information about API and result in the default case for
	format_heading_text.

2023-01-26  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (test): if generating reference results,
	do not process skipped tests at all, to avoid increasing the
	number of tests, as the number of tests is 1.

2023-01-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/Makefile.am (test_files), t/19def.t:
	add the end_of_lines_protected_non_ascii test with non-ASCII
	character counted in source marks.  Skipped for now as the
	XS parser counts bytes and not characters.

2023-01-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_register_source_mark),
	tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
	tp/Texinfo/XS/parsetexi/source_marks.c (new_source_mark)
	(register_source_mark): always associate source mark to the
	previous element, and create an empty element if there is
	none.  The index in contents is unreliable as the tree may
	be modified, for example when adding a preamble.

2023-01-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_split_def_args),
	tp/Texinfo/XS/parsetexi/def.c (split_def_args): keep track of
	source marks when splitting @def* arguments.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark)
	(source_marks_reset_counters): add source mark for definition line
	continuation.

2023-01-24  Gavin Smith <gavinsmith0123@gmail.com>

	Simplify context brace command closing

	* tp/Texinfo/XS/parsetexi/close.c (close_brace_command): Add
	argument to control printing of error messages and make non-static
	function.  Pop context stack for BRACE_context commands and
	decrement nesting context counters.
	(close_all_style_commands): Remove FIXME about nesting context.
	(close_current): Do not update context stack or context counters
	as it is now done in close_brace_command.
	* tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace):
	Always call close_brace_command, so it is no longer just called for
	erroneous input.

	* tp/Texinfo/ParserNonXS.pm (_close_brace_command): Add
	argument to control printing of error messages.  Pop context stack
	for context brace commands and decrement nesting context counters.
	(_close_all_style_commands): Remove FIXME about nesting context.
	(_close_current): Do not update context stack or context counters
	as it is now done in close_brace_command.
	(_process_remaining_on_line) <close brace>:
	Always call _close_brace_command, so it is no longer just called for
	erroneous input.

2023-01-26  Arsen Arsenović  <arsen@aarsen.me>

	HTML: Enable generating copiable anchors on heading commands
	* doc/texi2any_api.texi (Basic Formatting Customization): Document
	the new $target argument of format_heading_text.
	* tp/Texinfo/Convert/HTML.pm (_default_format_heading_text): Add
	optional target argument, for generating a copiable pilcrow.
	(_convert_heading_command): Pass the element_id of the current
	heading, so that a pilcrow is generated.
	* tp/tests/customization/list-of-tests: Add
	sectioning_without_anchors test, to check getting existing codegen
	with COPIABLE_LINKS=0.

2023-01-25  Arsen Arsenović  <arsen@aarsen.me>

	ParserNonXS: Fix minor Perl error

	* tp/Texinfo/ParserNonXS.pm (_check_valid_nesting_context): Escape
	invalid uses of @.

2023-01-23  Gavin Smith <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line) <close brace>,
	tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace):
	If inside brace_command_context element, call end_paragraph before
	checking what brace command we are closing.  This allows the
	elimination of a duplicate block of code for closing a context
	brace command.

2023-01-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text),
	tp/Texinfo/XS/parsetexi/input.c (next_text): use a common code for
	input file and input text source marks.

2023-01-23  Patrice Dumas  <pertusus@free.fr>

	Source mark for DEL comments

	* tp/Texinfo/ParserNonXS.pm (_next_text, tp/Texinfo/XS/parsetexi/api.c
	(store_source_mark_list), tp/Texinfo/XS/parsetexi/input.c (INPUT)
	(next_text), tp/Texinfo/XS/parsetexi/source_marks.c
	(register_source_mark): add a source mark for DEL comment.  Push an empty text
	line with a source mark to process it at the end of the line.  Rename
	file_source_mark as input_source_mark and use it both for files and
	text input.  Update functions using file_source_mark.  Store the
	comment line in a 'line' in the source mark.

	* tp/Texinfo/XS/parsetexi/source_marks.c (register_source_mark): use
	element text.space > 0 and not text.end to associate source mark to
	a string that is set but empty.

	* tp/Texinfo/ParserNonXS.pm (_close_current),
	tp/Texinfo/XS/parsetexi/close.c (close_current): move nesting code
	with context commands code.

2023-01-22  Patrice Dumas  <pertusus@free.fr>

	Nesting context, @*ref, @footnote, @*caption checking perl parser

	* tp/Texinfo/ParserNonXS.pm (_check_valid_nesting_context)
	(_process_remaining_on_line): new function to check nesting_context.
	Call it together with _check_valid_nesting.

	* tp/Texinfo/ParserNonXS.pm (parser, simple_parser): initialize
	nesting context.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line)
	(_close_current): increment/decrement nesting context.

2023-01-21  Patrice Dumas  <pertusus@free.fr>

	Keep removed elements with source marks and transfer source marks

	* tp/Texinfo/ParserNonXS.pm (_add_source_marks)
	(_pop_element_from_contents), tp/Texinfo/XS/parsetexi/source_marks.c
	(add_source_mark, add_source_marks, register_source_mark),
	tp/Texinfo/XS/parsetexi/tree.c (pop_element_from_contents): transfer
	source marks from a popped element to the parent element in
	pop_element_from_contents(), using a second argument to signal if
	source marks should be transferred.  Update pop_element_from_contents
	callers.  Use more _pop_element_from_contents in pure perl parser, and
	check better contents key hash not being defined.

	* tp/Texinfo/ParserNonXS.pm (_register_source_mark, _next_text),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/XS/parsetexi/input.c (INPUT, set_input_source_mark)
	(next_text), tp/Texinfo/XS/parsetexi/source_marks.c
	(register_source_mark): do not increment counter for the end of
	@include.  add a second argument to next_text to pass an element that
	can be used to register the end of an @include.  Associate @include
	start source mark to the input stack corresponding to the @include
	file.  Update callers.

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line),
	tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list),
	tp/Texinfo/XS/parsetexi/source_marks.c (source_marks_reset_counters),
	tp/Texinfo/XS/parsetexi/tree.c (destroy_source_mark): add a source
	mark for ignored @setfilename.  Associate removed element, @include or
	@setfilename, to source mark, to keep source marks that are in those
	elements and also for the XS parser to keep source marks associated to
	their elements to simplify management of memory.

	* tp/Texinfo/XS/parsetexi/api.c (store_source_mark_list): fix
	setting up the array of source marks that was mixed up with
	type setting.

	* tp/Texinfo/Common.pm (modify_tree): recurse in source marks.

2023-01-22  Gavin Smith  <gavinsmith0123@gmail.com>

	* NEWS: Add 7.0.2 news.
	* README-hacking: minor updates for release instructions

2023-01-22  Gavin Smith  <gavinsmith0123@gmail.com>

	@ref, @xref, @pxref nesting checking.

	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	Check if one cross-reference command is used inside another.

	* tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace)
	Increment nesting_context.xref for cross-reference command.
	* tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace),
	Decrement nesting_context.xref for cross-reference command.

	* tp/Texinfo/XS/parsetexi/close.c (close_all_style_commands):
	Add a FIXME comment saying that nesting_context is not touched.

2023-01-22  Gavin Smith  <gavinsmith0123@gmail.com>

	@caption, @shortcaption nesting checking

	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	Check if @caption or @shortcaption is called in caption context.

	* tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace)
	Increment nesting_context.caption for @caption, @shortcaption.
	* tp/Texinfo/XS/parsetexi/close.c (close_current),
	* tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace),
	Decrement nesting_context.caption for @caption, @shortcaption.

2023-01-21  Gavin Smith <gavinsmith0123@gmail.com>

	Indent goto labels

	* tp/Texinfo/XS/parsetexi/close.c,
	* tp/Texinfo/XS/parsetexi/def.c,
	* tp/Texinfo/XS/parsetexi/end_line.c,
	* tp/Texinfo/XS/parsetexi/parser.c,
	* tp/Texinfo/XS/parsetexi/separator.c:
	Indent goto labels so that they do not appear as the function
	in git diff.

2023-01-21  Gavin Smith  <gavinsmith0123@gmail.com>

	Nesting context for XS parser

	* tp/Texinfo/XS/parsetexi/context_stack.h (NESTING_CONTEXT):
	Define new structure.
	* tp/Texinfo/XS/parsetexi/context_stack.c (nesting_context): Define.
	* tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf):
	Wipe nesting_context.

	* tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting_context):
	New function to check nesting_context.
	(process_remaining_on_line) <@-command>:
	Call it together with check_valid_nesting.

	* tp/Texinfo/XS/parsetexi/separator.c (handle_open_brace)
	Increment nesting_context.footnote for @footnote.
	* tp/Texinfo/XS/parsetexi/close.c (close_current),
	* tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace),
	Decrement nesting_context.footnote for @footnote.

2023-01-19  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/parsetexi/commands.h: Remove unused flags
	CF_item_container, CF_item_line and CF_inline.

2023-01-17  Patrice Dumas  <pertusus@free.fr>

	Source marks for @include included file start

	* tp/Texinfo/ParserNonXS.pm (_register_source_mark)
	(_end_line_misc_line), tp/Texinfo/XS/Makefile.am
	(Parsetexi_la_SOURCES), tp/Texinfo/XS/parsetexi/api.c
	(reset_parser_except_conf, store_source_mark_list)
	(element_to_perl_hash), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_misc_line), tp/Texinfo/XS/parsetexi/source_marks.c
	(new_source_mark, register_source_mark, source_marks_reset_counters),
	tp/Texinfo/XS/parsetexi/tree.c (destroy_source_mark_list)
	(destroy_element), tp/Texinfo/XS/parsetexi/tree_types.h: add source
	mark to locate the place where an @include file is expanded.

	* tp/Texinfo/ParserNonXS.pm (_input_push_file): pass include file
	source mark.

2023-01-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (@useindex): Use \global in assignment to
	escape the group in \defunargs added 2022-12-29.

2023-01-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/command_data.txt: Add @useindex.  Don't do anything
	with it yet.

2023-01-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_misc_line): remove
	setfilename or include from tree before starting a new preformatted,
	in preformatted context.

	* tp/t/80include.t, tp/Makefile.tres: add test
	include_with_setfilename_in_preformatted that tests @include in
	@example, with a @setfilename in the included file.

2023-01-15  Gavin Smith  <gavinsmith0123@gmail.com>

	* system.h (DEFAULT_TMPDIR): Remove all uses, eliminating
	check for VMS.
	(xexit): Remove declaration; the function itself apparently was
	removed 2012-06-11.

2023-01-15  Gavin Smith  <gavinsmith0123@gmail.com>

	* system.h (MIN, MAX): Remove.
	* info/pcterm.h (MIN): Move MIN to here, the only use site.

2023-01-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_new_document_context): Add the
	_new_document_context function to push a new documeent context.

	* tp/Texinfo/Convert/DocBook.pm (_convert): add 'no_break'
	in document context for @w, and protect text with non-breakable spaces
	in that context.  Report from Gavin.

2023-01-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_text): in space_protected,
	protect spaces in 'line_break_element' before prepending and
	replacing spaces with 'non_breaking_space'.  The unprotection is
	already implemented.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/html_tests.t:
	add the spaces_in_line_break_in_verb_w test testing space in
	line_break_element.  There is no API to modify line_break_element,
	so $self->{'line_break_element'} is directly set in an init file.

2023-01-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_texi),
	tp/Texinfo/XS/parsetexi/parser.c (parse_texi): revert change from
	2023-01-08, do not ignore empty line early such that line after
	a DEL character is joined with the next line.

2023-01-13  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (Comments): add that the line after the DEL
	comment is merged.

2023-01-13  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\setupverb): Set \parindent to 0pt to avoid
	paragraph indent on newline inside @verb.

2023-01-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (output): normalize node redirection
	name before comparing with existing file names, in case case of file
	name needs to be normalized.  Report from Torbjörn Svensson.

	* tp/t/html_tests.t, tp/Makefile.tres: add
	file_name_case_insensitive_conflict_redirections, from Torbjörn
	Svensson.

2023-01-11  Gavin Smith  <gavinsmith0123@gmail.com>

	Hypenation in @code

	* doc/texinfo.tex (\code, \codedash): Set internal \codedashprev
	macro differently when \code starts to avoid hyphenation being
	always turned off for the first hyphen in code.  \codedashprev
	does not actually refer to the previous character, as it is
	only set when a dash is seen, not at every single character
	within @code, so rename it to \codedashnobreak to be less
	confusing.

	Report from Werner.

2023-01-11  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Invoking Info): Say what happens if Info's
	standard output is not a terminal.

2023-01-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/html_tests.t:
	add filenameconflictwithspecialelement demonstrating conflict of
	redirection file with special element, which needs customizing the
	special element file_string.

2023-01-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (output): add context for node
	and section names for redirection files conflicts for translation.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/html_tests.t:
	add tests for different possibilities for file conflict with
	redirection files, file_name_conflict_with_section,
	filenameconflictwithnonsplit (which actually shows that there cannot
	be a conflict), file_name_conflict_with_user_defined.

2023-01-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm: reindent, cut at 80 columns, remove
	unused code.

2023-01-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands):
	Some edits for style and brevity.

2023-01-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Node Commands): Move immediately after
	introductory chapter so that we can immediately introduce the
	important commands 'n', 'p' and 'u'.

2023-01-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (MS-DOS/Windows keybindings):
	Collect MS-DOS/Windows alternative keybindings in this node to
	avoid obscuring the documentation in the rest of the manual.

2023-01-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Scrolling Commands, Miscellaneous Commands):
	Move documentation of redraw-display and toggle-wrap to
	Miscellaneous Commands as these aren't scrolling commands.
	Do not describe show-footnotes command as "convenient".

2023-01-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Invoking Info): Move later in the
	manual so that a user reading through the manual from
	start to finish gets information on interactive use first.

2023-01-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Invoking Info): Relegate list of supported
	compression programs to a footnote.

2023-01-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/info-stnd.texi (Invoking Info), NEWS:
	Remove "/index" as possible info file extension, as the
	purpose of this is obscure, it is not a proper file extension
	and looks like a mistake, even though it isn't one.
	Originally added 1997-08-06 by Matthew Wilcox to put split info
	files in subdirectories in infodir.
	* doc/filesys.c (info_suffixes): Remove "/index".

2023-01-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (register_normalize_case_filename),
	tp/Texinfo/Convert/HTML.pm (_html_set_pages_files, output): associate
	file names to the source of the name, an element, a special file or a
	stand in file (in case nothing good was found as file name).  Keep
	the information on redirection pages created.  Warn using both the
	redirected node information and the information on file source.
	Rename _normalize_filename_case as register_normalize_case_filename in
	Texinfo::Convert::Converter such that it can be used directly.

	* tp/Texinfo/Report.pm (line_warn, line_error, document_warn)
	(document_error): add a continuation optional argument to convey
	that the line is a continuation line for a warning or error message.

	* tp/Texinfo/Convert/Converter.pm (registered_filename): new function
	to return the normalized file names for file that were registered.  A
	file registered may nt be created.  Not used for now.

2023-01-10  Patrice Dumas  <pertusus@free.fr>

	* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm
	(_normalize_texinfo_name, _prepare_anchor): update
	Texinfo::Convert::Texinfo::convert_to_texinfo call which has no
	second argument anymore.

2023-01-09  Gavin Smith  <gavinsmith0123@gmail.com>

	* install-info/install-info.c (split_entry):
	Rewrite in slightly more inefficient way to silence obnoxious gcc
	warning about use of strncat.

2023-01-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/html_tests.t:
	add a test with the same transliterated file names for a node, an
	anchor and a float label.

2023-01-09  Patrice Dumas  <pertusus@free.fr>

	* tp/t/input_files/delcomment_followed_by_cpp_line.texi: add more
	cases of del comment followed by cpp directives.

2023-01-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (initialize_tree_units_files)
	(_normalize_filename_case): set $self->{'filenames'} independently
	of CASE_INSENSITIVE_FILENAMES being set.

2023-01-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_texi),
	tp/Texinfo/XS/parsetexi/parser.c (parse_texi): ignore empty line
	early such that it does not go through process_remaining_on_line
	where an empty line leads to next_text being called.  Indeed, we want
	the next line to come from the parse_texi next_text.

2023-01-08  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/LaTeX.pm (_convert) <@verb>:
	Output line break for newline in @verb argument.

2023-01-08  Gavin Smith  <gavinsmith0123@gmail.com>

	@set txicodequoteundirected and @set txicodequotebacktick by default

	* doc/texinfo.tex: Turn on "@set txicodequoteundirected" and
	"@set txicodequotebacktick" by default.
	(\codequoteleft, \codequoteright): Access glyphs by hexadecimal
	index rather than octal so to match comment.
	* doc/texinfo.tex (Inserting Quote Characters): Update.  Make
	text appropriate for all output formats by limiting sample output.
	* NEWS: Mention.

2023-01-08  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\indexnofonts): Remove obsolete comment
	claiming that makeinfo doesn't expand macros in the argument
	to @deffn.

2023-01-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): do not treat
	especially macro expansion to the empty string.

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/separator.c (handle_comma): decrease remaining
	args counter when correct and only in that case.

	* tp/t/60macro.t, tp/t/02coverage.t, tp/Makefile.am, tp/Makefile.tres:
	add tests showing that cpp line directives are ignored in some setups
	(in macro definition, after a del comment at the beginning of the
	line, after an empty macro expansion).

2023-01-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_input_push_file, parse_texi_file)
	(_end_line_misc_line): use _input_push_file to both open and put
	input file information in $self->{'input'} (as in the XS Parser),
	reusing _open_in code.  Remove _open_in.

2023-01-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_misc_line),
	tp/Texinfo/Convert/Texinfo.pm (convert_to_texinfo)
	(_expand_cmd_args_to_texi), tp/Texinfo/Convert/TexinfoMarkup.pm
	(%ignored_types, %ignored_types): do not set replaced type on included
	files element, use a variable set it a file was included.  Remove
	completely the replaced type.

	* tp/Texinfo/ParserNonXS.pm (_input_push_text),
	tp/Texinfo/XS/parsetexi/input.c (input_push_text): rename input_push as
	input_push_text.  Update the callers.

2023-01-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/input.c (input_push),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): pass
	expanded value and put in value_flag in input structure.  Update
	callers.
	* tp/Texinfo/XS/parsetexi/input.c (macro_expansion_nr)
	(value_expansion_nr, next_text), tp/Texinfo/XS/parsetexi/macro.c
	(handle_macro), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line): use separate counters for values and
	macros expansions.

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): error
	out on value expansion number higher than MAX_MACRO_CALL_NESTING.

	* tp/Texinfo/ParserNonXS.pm (_input_push, _process_remaining_on_line):
	put expanded value in iput.  Use 'value_flag' for value flag key name
	in input.

	* tp/Texinfo/ParserNonXS.pm (_input_push, _next_text): fix conditions
	on macro being set.

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): free
	value flag even if there was no value expansion.

	* tp/t/50value.t: add recursive_expansion_in_set for a test of infinite
	recursion with @value.

2023-01-07  Gavin Smith  <gavinsmith0123@gmail.com>

	Treat spaces in @verb and @w differently in HTML

	* tp/Texinfo/Convert/HTML.pm (_convert): Only use 'space_protected'
	stack for @verb.  Use new 'no_break' stack for @w.

	(_convert_text): Handle 'space_protected' and 'no_break' differently.
	For 'space_protected', convert newlines to <br> or <br/> and keep
	multiple spaces.  For 'no_break', treat newline as space and
	condense multiple spaces to one non-breaking space.

	(in_non_breakable_space): Check 'no_break' stack instead of
	'space_protected' stack.
	(in_space_protected): New function to check 'space_protected' stack.

	* doc/texi2any_api.texi (Text Formatting Context): Add documentation
	of in_space_protected.
	* tp/init/html32.pm (html32_convert_text): Call in_space_protected
	as well as in_non_breakable_space API functions.

2023-01-07  Gavin Smith  <gavinsmith0123@gmail.com>

	@backslashchar{} as \ in PDF bookmarks

	* doc/texinfo.tex (\definedummies): Give @backslashchar an
	\indexnofonts definition of \realbackslash so that a backslash
	will be displayed in PDF bookmarks if used in a section title.

2023-01-07  Gavin Smith  <gavinsmith0123@gmail.com>

	@headings does not reset page number

	* doc/texinfo.tex (\HEADINGSsingle, \HEADINGSdouble:
	(\HEADINGSsinglechapoff): Do not call \pageone.  This appears to
	be unnecessary, and does not interact well with PDF page
	labels generation when a @headings or @setchapternewpage
	command is issued later in a document, as in
	doc/texinfo-tex-test.texi.

2023-01-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_input_push),
	tp/Texinfo/XS/parsetexi/api.c,
	tp/Texinfo/XS/parsetexi/handle_commands.c,
	tp/Texinfo/XS/parsetexi/input.c (input_push),
	tp/Texinfo/XS/parsetexi/parser.c: change the order of
	input_push arguments.  Get the filename from the input stack in
	input_push.  Remove input_push_text and input_push_text_with_line_nos,
	call directly input_push.  Update callers.

	* tp/Texinfo/XS/parsetexi/Parsetexi.pm: simplify arguments passing
	to parse_texi_*.  Change variable name, remove comments.

2023-01-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text, _new_line): do not get a
	source_info as _next_text argument.  Keep the first input level to
	have a source for source_info even after the file is closed and the
	filehandle deleted from the input.  Update callers.

2023-01-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_new_text_input, _input_push)
	(_input_push_text_with_line_nos, _input_pushback_text)
	(_input_push_text, parse_texi_piece, parse_texi_line, parse_texi_text)
	(parse_texi_file, _parse_texi_document, _register_global_command)
	(_save_line_directive, _next_text, _in_include, _end_line_misc_line)
	(_process_remaining_on_line): instead of preprocessing text and
	splitting in an array, push a whole text on input and get line by line
	in _next_text.  Do not associate a file with pending text, instead
	put pending text on its own on self->{'input'}.
	remove _text_to_lines and _complete_line_nr.
	More similar code to XS parser.

2023-01-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_next_text, _process_remaining_on_line):
	simplify the information passed to determine the end of macro or value
	expansion.

2023-01-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_prepare_input_from_text)
	(parse_texi_piece, parse_texi_line, parse_texi_text): remove arguments
	not consistent with XS parser.  The input should only be a simple
	string.

2023-01-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization, _next_text)
	(_process_remaining_on_line): add a value_stack to put expanded
	@value.  Use a sourcemark structure put in source_info to mark
	the end of @value expansion.  Also use such a structure for
	@macro, replacing 'end_macro'.
	Check number of values expansion number and error out if
	there is more than MAX_MACRO_CALL_NESTING.
	correct MAX_MACRO_CALL_NESTING name in warning message.

	* tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser),
	tp/Texinfo/XS/parsetexi/Parsetexi.xs
	(conf_set_MAX_MACRO_CALL_NESTING), tp/Texinfo/XS/parsetexi/conf.c
	(conf_set_MAX_MACRO_CALL_NESTING, reset_conf),
	tp/Texinfo/XS/parsetexi/macro.c (handle_macro): pass
	MAX_MACRO_CALL_NESTING to the XS parser.  Use that value for the
	number of macro call nesting allowed.
	correct MAX_MACRO_CALL_NESTING name in warning message.

	* tp/t/60macro.t: add recursive_call_in_rmacro to test for an infinite
	recursion.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* .gitignore: replace tp/tests/included_lat*n1.texi by
	tp/tests/built_input.

2023-01-04  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/tests/Makefile.am:
	Call maintain/copy_change_file_name_encoding.pl to create files
	in built_input subdirectory.  This stops make program on
	OpenIndiana 11 gagging immediately in a UTF-8 locale.
	* tp/tests/run_parser_all.sh: Pass -I built_input to texi2any.

2023-01-04  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Multitable Column Widths): State that
	prototype rows have no effect in HTML output.  Report from
	Raymond Toy.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_default_format_special_body_about):
	show the button desciption if the button specification is an array
	reference of length 2.  Do not show a button, only the description and
	explanation, as we do not know what the button text could look like.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (%defaults): add About to the default
	header buttons.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/ext/epub3.pm (epub_convert_special_element_type, epub_setup)
	(epub_finish): collect special elements and add them after the
	normal tree unit elements.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/layout/list-of-tests: set separate footnotestyle for
	formatting_epub_nodes test.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_prepare_conversion_tree_units, output):
	set special elements net and prev in _prepare_conversion_tree_units
	and not in output, in order to do it if called through convert().

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/layout/Makefile.am (EXTRA_DIST): remove Texinfo files not
	used anymore in tests/ (they are in tp/t/input_files/).

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/tex_html/list-of-tests: update path of formatting.texi
	for formatting_singular test.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/coverage/list-of-tests: add Info and Plaintext.  Rename
	formatting_html_no_texi2html as formatting_html_no_split.

	* tp/tests/layout/list-of-tests: remove useless FORMAT_MENU=nomenu for
	a plaintext format test.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/layout/list-of-tests: rename formatting_html to
	formatting_texi2html and formatting_html_nodes to
	formatting_texi2html_nodes and add --internal-links options.  Rename
	other tests that look like the defaults for an output format and are
	not.
	Remove formatting_nodes and formatting tests that are redundant with
	other tests.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/*/list-of-tests, tp/tests/*/Makefile.am, autogen.sh,
	configure.ac, tp/tests/Makefile.am (base_tests_dirs): move init file
	customization related tests from 'contents' and 'formatting' to a new
	'customization' tests directory.  Move remaining 'contents' and
	'indices' tests to 'formatting'.  Move encodings related 'formatting'
	tests to a new tests directory named 'encoded'.  Split 'coverage'
	tests directory with each output format coverage test out of 'layout'.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/other/list-of-tests: use the default format and not html.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/*/list-of-tests: remove '-c TEXI2HTML=undef' which is not
	needed anymore.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/ext/epub3.pm: set USE_NODES to 0 in order to have section names
	used in printindex output.

	* tp/tests/README, tp/tests/run_parser_all.sh: do not set texi2html
	style for the default empty format.

	* tp/tests/tex_html/math_not_closed.texi: remove @setfilename.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/tex_html/list-of-tests: add explicit options when texi2html
	style is not necessary, and explicitly set TEXI2HTML when needed.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/30sectioning.t, tp/t/html_tests.t,
	tp/tests/contents/Makefile.am (EXTRA_DIST),
	tp/tests/contents/list-of-tests: move contents_and_parts out of
	tp/tests/contents/list-of-tests to tp/t/30sectioning.t and inline,
	remove the Texinfo file.
	Add no_content tests in tp/tests/contents/list-of-tests to test also
	the default case for contents location and unset the texi2html style.
	Duplicate the no_content tests in tp/t/html_tests.t.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (convert_to_plaintext): set OUTFILE to undef
	if SPLIT and SUBDIR is set, such that SUBDIR is used to determine the
	destination directory.

2023-01-04  Patrice Dumas  <pertusus@free.fr>

	* tp/maintain/regenerate_file_lists.pl, tp/Makefile.tres: list res_*
	directories only and not the files within to avoid an
	"Argument list too long" error for the shell in make dist.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/html_tests.t,
	tp/tests/contents/Makefile.am (EXTRA_DIST),
	tp/tests/contents/list-of-tests: remove contents_in_middle_section*,
	contents_in_middle_chapter*, contents_at_end* and most of tests
	involving double_contents.texi from tp/tests/contents/list-of-tests,
	put similar tests in tp/t/html_tests.t and move the Texinfo file
	accordingly.
	Tests using the book.init init file need to stay in
	tp/tests/contents/list-of-tests, for those tests, do not use the
	texi2html style anymore.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/Makefile.am: remove reference to res_parser_info.

	* tp/tests/nested_formats/Makefile.am: replace *_parser_info by
	*_parser_html.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/contents/list-of-tests: remove no_content_setcatpage* tests
	that are redundant with no_content tests.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/contents/*.texi: remove @setfilename.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/t/40moresectioning.t: inline the
	contents_at_end_document_after_node, contents_at_end_document and
	contents_in_document tests.  Remove the Texinfo files.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (output, _html_set_pages_files): set
	element units next and prev in output and not in
	_html_set_pages_files, in order to do it even if the file is not set.

	* tp/t/40moresectioning.t, tp/Makefile.tres, tp/t/converters_tests.t,
	tp/tests/contents/list-of-tests: inline contents_at_document_begin.texi
	test in tp/t/40moresectioning.t.  Replace
	contents_at_document_begin.texi contents with the
	tests/contents/contents_at_begin.texi file contents, without
	@setfilename.  Add contents_at_document_begin,
	contents_at_document_begin_inline and
	contents_at_document_begin_separate_element tests in
	tp/t/converters_tests.t and remove the contents_at_begin,
	contents_at_begin_inline and contents_at_begin_info tests from
	tp/tests/contents/list-of-tests, since the tests in
	tp/t/converters_tests.t now test for much more.

2023-01-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* Makefile.am (EXTRA_DIST): Distribute more recent ChangeLog.65
	and ChangeLog.70 as well as ChangeLog.46.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/40moresectioning.t: remove
	contents_no_section from 40moresectioning.t and the associated Texinfo
	file, as the test is redundant with contents_with_only_top_node in
	tp/t/30sectioning.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/30sectioning.t, tp/t/40moresectioning.t:
	move some tests from tp/t/30sectioning.t to tp/t/40moresectioning.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/30sectioning.t, tp/t/40moresectioning.t:
	move some tests from tp/t/30sectioning.t to tp/t/40moresectioning.t
	as part of an effort to reduce the size of 30sectioning.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/t/30sectioning.t: use files for the
	longuest codes and code needing escaping of ' or \, leading to three
	files, character_and_spaces_in_refs_text.texi,
	complex_sectioning_case.texi and section_in_unnumbered_text.texi.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/layout/list-of-tests: explicitly set TEXI2HTML style when
	needed, otherwise unset TEXI2HTML and set relevant customization
	variables explicitly.

	* tp/tests/layout/formatting_regions.texi: remove @setfilename

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/nested_formats/list-of-tests: use the default format and
	the html format, and unset TEXI2HTML such that the default format
	produces Info.  The html format des not use the texi2html style
	either.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/formatting/list-of-tests,
	tp/tests/nested_formats/list-of-tests,
	tp/tests/sectioning/list-of-tests: more explicit imprtant
	customization variables or options for the test.  Unset texi2html
	style for some tests.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/htmlxref.t: rename tp/t/94htmlxref.t as tp/t/htmlxref.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/94htmlxref.t: set 'FORMAT_MENU' once for all the tests, do not
	set explicitly 'NODE_FILES'.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/94htmlxref.t: do not use texi2html style,
	set explicitly the relevant customization variables.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Customizing Output File Names):
	tree_unit_file_name is only used for normal element units.

	* doc/texi2any_api.texi: other minor edits.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Customizing Special Elements Output Names):
	add a separate section for Special Elements Output Names.

	* doc/texi2any_api.texi (Customizing Special Elements Output Names)
	(Customizing Footnotes@comma{} Tables of Contents and About): document
	that the special elements element variety is available as 'extra'
	'special_element_variety' key.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/layout.t: rename tp/t/93layout.t as tp/t/layout.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/93layout.t, tp/tests/layout/list-of-tests:
	move navigation_test_misc_file_collision test to tp/t/93layout.t.
	Remove no_monolithic_only_toc_out test from
	tp/tests/layout/list-of-tests, it is in tp/t/93layout.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/init/only_toc_out.init: use the correct special element variety
	name.

	* tp/Makefile.tres, tp/t/93layout.t: add no_monolithic_only_toc_out
	test.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/30sectioning.t, tp/Makefile.tres, tp/t/92formatting.t:
	move split_for_format_not_split to 30sectioning.t.  Remove
	now empty tp/t/92formatting.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/92formatting.t, tp/Makefile.tres, tp/t/55conditionals.t:
	move cnd.texi related tests to 55conditionals.t.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/92formatting.t: explicit output format for all cond.texi
	tests.

	* tp/t/92formatting.t, tp/Makefile.tres, tp/t/converters_tests.t,
	tp/t/html_tests.t: move simplest_test_prefix* to converters_tests.t
	and move simplest_test_date_in_header and float_copying to
	html_tests.t

	* tp/Makefile.am (test_file), tp/t/02coverage.t: rename
	t/input_files/one_line_no_content.texi as
	t/input_files/minimal_only_input_line.texi.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/92formatting.t: remove texi2html style, and set corresponding
	customization instead.

2023-01-03  Patrice Dumas  <pertusus@free.fr>

	* tp/t/92formatting.t: remove texi2html style for cond.texi related
	tests, and remove some custmization variables set.

	* tp/t/input_files/cond.texi: add @top, move @node Top lower to have
	a preamble to test.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/92formatting.t,
	tp/t/info_tests.t: move direntry_dircategory, split_nocopying and
	split_nocopying_split to info_tests.t.  Use only
	tests/formatting/split_nocopying.texi and remove
	t/input_files/split_nocopying.texi.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/02coverage.t, tp/t/92formatting.t: move
	one_line_no_content and one_line tests from 92formatting.t to
	02coverage.t.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/80include.t:
	add test_two_include test in 80include.t which is an inlining of the
	t/input_files/test_two_include.texi file.  Remove
	t/input_files/test_two_include.texi.  Move version.texi from
	t/input_files/ to t/include/.
	Remove the t/input_files/unknown_nodes_renamed.texi and
	t/input_files/unknown_nodes_renamed-noderename.cnf unused files.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/92formatting.t:
	remove the documentlanguage_set_* tests and the
	documentlanguage_set.texi file.

	* tp/t/languages.t, tp/Makefile.tres: add tests of setting
	documentlanguage similar with tests removed from tp/t/92formatting.t
	but using ../../tests/formatting/documentlanguage.texi, which
	is more relevant.

2023-01-02  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (@shorttitlepage): Call \headingsoff
	within a group and reset page number with \pageone, as
	is done in @titlepage.  This stops page numbers appearing
	on the bastard titlepage or the verso.  Report from Arnold Robbins.

2023-01-02  Gavin Smith  <gavinsmith0123@gmail.com>

	* info/man.c (check_manpage_node): Revert to using "man -w"
	instead of "man --where" to work on FreeBSD and macOS.
	Disable this code if __sun is defined.  From Bruno Haible.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres,
	tp/t/55conditionals.t, tp/t/92formatting.t,
	tp/tests/formatting/Makefile.am (EXTRA_DIST),
	tp/tests/formatting/list-of-tests: move defcondx_Dbar and
	defcondx_Ubar tests to tp/t/55conditionals.t.  Add also similar tests
	in tp/tests/formatting/list-of-tests to test the command line.  Move
	defxcond.texi to tp/tests/formatting/.

	* tp/Makefile.tres, tp/t/60macro.t, tp/t/92formatting.t:
	move glossary and texi_bib_example tests to 60macro.t, renaming
	texi_bib_example as bib_example.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (raw_block_stack_top)
	(process_remaining_on_line): use the stack of raw block commands to
	determine the matching end of nested raw block command.

	* tp/Makefile.tres, tp/t/60macro.t: add simple_imbricated_macro_rmacro
	test.

	* tp/t/input_files/glossary.texi: use empty braces for calls of macros
	without arguments.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres,
	tp/tests/layout/list-of-tests, tp/t/91morecoverage.t: move
	formatting_fr tests from tp/t/91morecoverage.t to
	tp/tests/layout/list-of-tests.  Remove the associated file, remove
	tp/t/91morecoverage.t.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (from_element_direction): use
	TOP_NODE_UP_URL in priority, even if the Up/NodeUp direction
	is set.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/html_tests.t,
	t/96moresectioning.t: inline top_node_up_implicit and
	top_node_up_explicit tests from 96moresectioning.t in t/html_tests.t,
	adding variants with USE_NODES set to 0.  Remove the corresponding
	files.  Remove the now empty 96moresectioning.t file.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/96moresectioning.t, tp/t/html_tests.t:
	move node_footnote_use_node* tests and sectioning_frames from
	96moresectioning.t to html_tests.t.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres,
	tp/t/96moresectioning.t: remove two_footnotes_in_nodes and
	two_footnotes_in_nodes_separated that are redundant with tests in
	03coverage_braces.t, and remove the associated Texinfo file.

	* tp/t/03coverage_braces.t: only do html_text output format test if
	not already doing html output format test.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm, tp/Texinfo/Convert/Converter.pm,
	tp/Texinfo/Convert/HTML.pm, tp/Texinfo/Convert/Utils.pm,
	tp/Texinfo/Structuring.pm, tp/Texinfo/Transformations.pm: avoid
	autovivification of extra key.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/30sectioning.t,
	tp/t/96moresectioning.t: remove more_sections_than_nodes and
	placed_things_before_element from 96moresectioning.t as these tests
	are redundant with tests in 30sectioning.t.  Remove associated
	Texinfo files.
	In 30sectioning.t, set FORMAT_MENU to menu for
	placed_things_before_element, move more_sections_than_nodes to
	@info_tests and test texi2html style.

2023-01-02  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (unsplit, test): unsplit() returns if unsplitting
	was needed.  Rename $split as $test_split.  Add comments on
	re-splitting in tests.

	Add comments in other files.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/Makefile.am (EXTRA_DIST, distclean-local): remove
	references to *_parser_info.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (converter_defaults)
	(_set_variables_texi2html): copy %defaults and modify the copy in
	_set_variables_texi2html() instead of changing the file global
	variable.

	* tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type): menu entry
	node 'normalized' may be undefined if it consists in spaces only.

	* tp/Makefile.tres, tp/t/30sectioning.t: new tests
	in_menu_only_special_ascii_spaces_node_menu and
	in_menu_only_special_spaces_node_menu with 'FORMAT_MENU' => 'menu'
	based on tests with menu entry nodes consisting only in spaces.

	* tp/Makefile.tres, tp/t/96moresectioning.t, tp/Makefile.am
	(test_files), tp/t/30sectioning.t: move
	nodes_after_top_before_chapter* and nodes_after_top_before_section*
	tests from t/96moresectioning.t to t/30sectioning.t, use the inline
	texts and remove the Texinfo files, and rename the tests with
	_texi2html added.

	* tp/Makefile.am (test_files), tp/t/96moresectioning.t: remove
	t/input_files/sectioning.texi, use only
	tests/sectioning/sectioning.texi.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/96moresectioning.t: do not use the texi2html
	style for node_footnote.texi related tests, instead set only the
	relevant customization variables.  Add a test with node_footnote.texi,
	split at node with separate footnotestyle.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/30sectioning.t,
	tp/t/96moresectioning.t: inline equivalent_nodes.texi in
	tp/t/30sectioning.t, renaming the corresponding test as
	equivalent_nodes_defined_linked.  Remove equivalent_nodes.texi and
	the tests in tp/t/96moresectioning.t.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/t/input_files/equivalent_nodes.texi: do not use a node before Top
	for this test, but, more simply a regular node.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/t/96moresectioning.t: remove specific variables set for PROGRAM,
	PACKAGE_URL and TEST.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/t/09indices.t: move $encoding_index_text near the associated
	tests.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/95moreindices.t, tp/t/09indices.t: merge
	tp/t/95moreindices.t with tp/t/09indices.t putting html file
	95moreindices.t tests in @test_html_file.

2023-01-01  Gavin Smith  <gavinsmith0123@gmail.com>

	* info/man.c (check_manpage_node): Use man --where instead of
	man -w to avoid clash with man program on Solaris, where -w
	means to update the whatis database.  Test failure on
	OpenSolaris 2022.10 reported by Bruno Haible.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/95moreindices.t:
	remove double_index_entry from t/95moreindices.t as there is a
	redundant test in tp/t/09indices.t.
	Rename tests such that the defaults are without suffix.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): use only
	one place in code to add the raw line in nested raw blocks.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization),
	(_process_remaining_on_line, _end_line_misc_line, _parse_texi):
	rename conditionals_stack as conditional_stack to match XS parser.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (%parser_state_initialization)
	(_process_remaining_on_line, _parse_texi),
	tp/Texinfo/XS/parsetexi/parser.c (raw_block_stack)
	(push_raw_block_stack, pop_raw_block_stack, process_remaining_on_line)
	(parse_texi): use a stack, raw_block_stack for nested raw block
	commands instead of putting them in the tree.

2023-01-01  Patrice Dumas  <pertusus@free.fr>

	* tp/t/09indices.t, tp/Makefile.tres: add test with index_table with
	default customization, rename former index_table as
	index_table_chapter_no_node.  Add explicit split nodes for Plaintext
	testing for index_nodes.  Split @file_encodings_tests out of
	@file_tests.  In @file_tests, do only testing of Info if it is
	expected to be different from the base case.  Keep spaces at end of
	line in test text only.

2022-12-31  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/list-of-tests: remove _info format tests as they
	are redundant with tests in t/*.t.

	* tp/tests/indices/list-of-tests: do not use the TEXI2HTML style
	for index_entries_relate_to_item test.

2022-12-31  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (test): read 'FORMAT_MENU' as a structuring
	option.  Only call Texinfo::Structuring::complete_node_tree_with_menus
	and Texinfo::Structuring::check_nodes_are_referenced if 'FORMAT_MENU'
	is set to menu.

	* tp/Makefile.tres, tp/t/30sectioning.t: add
	chapter_between_nodes_with_appendix and
	chapter_between_nodes_with_appendix_nomenu tests, in particular to
	have a case with Top next node automatic direction being determined 
	by the menu.

	* tp/t/10menu.t: remove 'FORMAT_MENU' => 'nomenu' from the
	converter/structuring options of simple_no_menu test, as it does not
	change the output.

2022-12-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/t/09indices.t,
	tp/tests/indices/Makefile.am (EXTRA_DIST),
	tp/tests/indices/list-of-tests: move
	index_special_region_no_insertcopying_html tests to tp/t/09indices.t.

2022-12-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm (process_footnotes): handle the case
	of footnotes not associated with nodes.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/09indices.t,
	tp/tests/indices/Makefile.am (EXTRA_DIST),
	tp/tests/indices/list-of-tests: move index_special_region tests to
	tp/t/09indices.t.

2022-12-31  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/Makefile.am (EXTRA_DIST),
	tp/tests/indices/list-of-tests: remove index_special_region_no_region
	and index_special_region_no_region_html and the Texinfo file, as these
	are the same as index_special_region_no_insertcopying tests.

	* tp/tests/indices/index_special_region_no_insertcopying.texi:
	remove @setfilename.

2022-12-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (get_element_root_command_element)
	(_convert_printindex_command), doc/texi2any_api.texi (Target Commands
	Links@comma{} Texts and Associated Commands): add
	get_element_root_command_element to the API to return the element and
	root command associated to a tree element.  Use
	get_element_root_command_element in printindex conversion to determine
	the printindex root command target when there are no directions.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/09indices.t,
	tp/tests/indices/Makefile.am (EXTRA_DIST),
	tp/tests/indices/list-of-tests: move index_no_node_no_top test to
	tp/t/09indices.t, add test with USE_NODES to the default value.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/converters_tests.t,
	tp/tests/indices/list-of-tests: add tests based on
	indices_in_begin_tables_lists.texi to tp/t/converters_tests.t to test
	no tree transformation and tree transformation separately.  Change
	HTML indices_in_begin_tables_lists.texi in tp/tests/indices/list-of-tests
	not to use the texi2html style.

	* tp/Makefile.tres, tp/t/info_tests.t, tp/tests/indices/Makefile.am
	(EXTRA_DIST), tp/tests/indices/list-of-tests: move index_one_node test
	to tp/t/info_tests.t and inline it.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/layout/list-of-tests: add 'Need collation compatibility'
	for two more tests.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (sort_indices): add comments on
	how to test compatibility of Unicode::Collate with tests.

	* configure.ac, tp/defs.in (PERL_UNICODE_COLLATE_OK), tp/t/09indices.t,
	tp/tests/run_parser_all.sh (check_unicode_collate_ok),
	tp/tests/layout/list-of-tests, tp/tests/tex_html/list-of-tests:
	Add a configure.ac test for perl 5.18.1 which seems to be the
	first compatible version with the tests results for test using Unicode
	collation.  Use that test result in run_parser_all.sh to skip tests
	with 'Need collation compatibility' put on their command line.
	Skip similarly tests in tp/t/09indices.t based on perl version too.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (sort_indices): give the 'UCA' => 22
	argument to Unicode::Collate to have a stable collation.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/09indices.t,
	tp/tests/indices/Makefile.am (EXTRA_DIST),
	tp/tests/indices/list-of-tests: move index_table test to
	tp/t/09indices.t, move the texinfo file too.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/09indices.t, tp/tests/indices/Makefile.am
	(EXTRA_DIST), tp/tests/indices/list-of-tests: move interesting
	index_and_node_same_name.texi and index_entry_in_footnote.texi
	related tests to tp/t/09indices.t and inline them, renaming
	index_entry_in_footnote as index_entry_in_footnote_sections, as
	already the index_entry_in_footnote very similar test.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/09indices.t, tp/tests/indices/Makefile.am
	(EXTRA_DIST), tp/tests/indices/list-of-tests: move
	printindex_between_node_section and printindex_between_part_chapter
	tests out of tp/tests/indices/list-of-tests to tp/t/09indices.t and
	inline them instead of using Texinfo files.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/09indices.t,
	tp/tests/indices/Makefile.am (EXTRA_DIST),
	tp/tests/indices/list-of-tests: move index_nodes.texi and related
	tests from tests/indices/list-of-tests to tp/t/09indices.t.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/Makefile.am (EXTRA_DIST): remove the
	index_split.texi file in tp/tests/indices/, which is unused, and
	redundant with the one in tp/t/input_files/.  Also remove
	same_doc_nr_split_index_and_element.texi which does not seems to be
	used anywhere.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/Makefile.am (EXTRA_DIST): remove the
	nodes_before_top_and_sections.texi file in tp/tests/indices/, which is
	now unused, and redundant with the one in tp/t/input_files/.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/95moreindices.t,
	tp/tests/indices/list-of-tests: add
	nodes_before_top_and_sections_chapter and
	nodes_before_top_and_sections_chapter_no_node tests to
	95moreindices.t, and remove the equivalent tests (which also used the
	texi2html style) from indices/list-of-tests.

2022-12-30  Gavin Smith  <gavinsmith0123@gmail.com>

	* README-hacking: mention help2man as a program the version of
	which is important for making a release.

2022-12-30  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi, doc/info-stnd.texi, doc/texi2any_api.texi:
	Adjust copyright notice slightly to match recommended wording.
	From Hilmar Preuße.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (HTML Customization Variables),
	tp/Texinfo/Convert/HTML.pm (%default, output)
	(_set_variables_texi2html), tp/t/95moreindices.t: set
	NODE_NAME_IN_INDEX based on USE_NODES is undef.  Move
	NODE_NAME_IN_INDEX documentation to HTML Customization Variables.

2022-12-30  Patrice Dumas  <pertusus@free.fr>

	* tp/t/95moreindices.t: do not set TEXI2HTML, instead set specific
	customization variable relevant for the test.

	* tp/tests/indices/nodes_before_top_and_sections.texi: correct
	@setfilename.
2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (test): update tree transformation names
	for relate_index_entries_to_items.

	* tp/t/transformations.t, tp/Makefile.tres: add tests using
	tests/indices/index_entries_relate_to_item.texi without and
	with the relate_index_entries_to_items transformation.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/index_entries_relate_to_item.texi: add a
	@printindex.

	* tp/tests/indices/list-of-tests: remove --html from
	index_entries_relate_to_item such that there are both HTML and Info
	generated (even though we are mainly interested in HTML output).

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/index_entries_relate_to_item.texi: remove
	@setfilename, and @node Top and @top.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/indices/index_entries_relate_to_item.texi:
	add file on behalf of Arsen Arsenović, corresponding to
	the 2022-12-27  Arsen Arsenović entry.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* doc/Makefile.am (TEXI2DVI_ENVIRONMENT): use braces instead of
	parentheses for variable names to ease cut and pasting to shell.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2oldapi.texi: add information in comments on how to
	process in source.  Fix to be processable.  More prominently
	state that the API description is obsolete and dates from 2010/2012.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (@command{texi2html}): remove reference to
	util/texi2html, as it has been removed.

2022-12-29  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (\defunargs): Wrap in a group to limit
	@var redefinition.

2022-12-29  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Makefile.am (dist-hook): Do not distribute architecture-
	dependent gettext_xs.o file.  Report from Hilmar Preuße.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_informative_command_output)
	(_latex_begin_output, _convert): add _informative_command_output
	that returns LaTeX output code for informative @-commands based
	on code in _convert, use it in _convert.  In _latex_begin_output
	also call _informative_command_output for informative commands
	that have a different customization option value from the LaTeX
	default.

	* tp/t/latex_tests.t, Makefile.tres: add
	customize_informative_commands test to test customization options for
	informative @-commands.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (%document_settable_multiple_at_commands):
	change some defaults, set utf-8 for documentencoding and set
	documentlanguage and micrtype undef.

2022-12-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_informative_command_value): get information
	for line commands of type line, using the first args contents if it is
	text.

	* tp/Texinfo/Common.pm (set_informative_command_value),
	tp/Texinfo/Convert/LaTeX.pm (_convert): add a return
	status from set_informative_command_value(), true if the customization
	variable was set.  Output code related to a command associated to a
	customization variable in LaTeX only if the customization variable
	was set.

	* tp/Texinfo/Config.pm (set_conf), tp/Texinfo/Convert/Text.pm
	(set_conf): add a return status for consistency with
	Texinfo::Convert:Converter set_conf.

	* tp/t/latex_tests.t: add
	setchapternewpage_on_odd_titlepage_set_headings test, with headings
	customization variable set.

2022-12-29  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (@cartouche): Do not use @emph inside
	@cartouche argument as font styles do not accumulate in TeX output.

2022-12-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_begin_document): do not set
	$self->{'titlepage_done'}, it is not used anymore.

2022-12-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_latex_begin_output, _begin_document)
	(_set_chapter_new_page): initialize based on setchapternewpage and
	headings customization variables values.  Set headings off just before
	the titlepage, and reset afterwards to headings customization
	variables values.  Return headings set together with setchapternewpage
	to avoid setting headings again when initializing.
	Set headings each time after setting setchapternewpage.

2022-12-28  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (@code{@@headings}): Update now that @titlepage
	does not do "@headings on".

2022-12-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_begin_document): add a special page
	style for Table of Contents which only shows the page number, to avoid
	an ugly Chapter 0.  Set mainmatter after the Table of Contents.

2022-12-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (output, convert, _convert):
	do not use element units, simply convert the tree.  Sections closed by
	root commands do not span following nodes.

2022-12-28  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): check
	that a nested @macro is followed by space or at end of string.

	* tp/t/60macro.t, tp/Makefile.tres: add
	macro_imbricated_with_beginning_command_name test with an @-command
	beginning with @macro imbricated in @macro.

2022-12-28  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex, NEWS: Turn microtype off by default, for speed.

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	update po files

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line): add end of
	line if needed for nested @ignore with comment.

	* tp/Texinfo/XS/parsetexi/parser.c (read_comment): fix offset with
	@comment.  Skip the @ in comment command name.

	* tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	put the correct string in @ignore comment.  Advance instead of exiting
	when there is a @ that is not a comment.

	* tp/Makefile.tres, tp/t/55conditionals.t: do not skip
	nested_ignore_with_comments.  Add comment without
	argument in @ignore line examples.  Add nested_ignore_comment_no_eol
	to test a very specific case of no end of line after nested @ignore
	and comment.

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XSLoader.pm (init): show the DynaLoader error message
	if dl_load_file failed.

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/end_line.c: defined floats lists related
	symbols to avoid non-defined symbols linking errors, even if there
	is no code run that uses those symbols.

	* tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block):
	fix check of variadic flag and negation precedence.

	* tp/Texinfo/XS/parsetexi/parser.c (parse_texi): wipe input stack
	after getting the text after @bye.

	* tp/Texinfo/XS/parsetexi/api.c (build_global_info2),
	tp/Texinfo/XS/parsetexi/parser.c (register_global_command)
	(wipe_global_info): really register float as a global command.  Use
	floats for global_info for float as using float breaks, most likely
	because it is a type.

	* tp/Texinfo/Convert/NodeNameNormalization.pm (set_float_types):
	initialize $self->{'floats'}.

	* tp/Texinfo/XS/parsetexi/parser.c (read_comment),
	tp/Texinfo/XS/parsetexi/parser.c  (process_remaining_on_line):
	fix a one off string length error in read_comment.  Fix a typo
	in comments searching on nested @ignore line.  Avoid an infinite loop
	when there is a comment.

	* t/55conditionals.t: add nested_ignore_with_comments, skipped for now
	as the results are incorrect.

2022-12-27  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\indexnofonts): Remove superfluous space
	token recently added to definition by accident.

2022-12-27  Gavin Smith  <gavinsmith0123@gmail.com>

	No colour change for black links

	* doc/texinfo.tex (\setcolor) [pdfTeX]: Keep track of the current
	colour so that in the default case, when everything is black, there
	is no \mark output or pdf output, which is faster when the document
	contains many links.

2022-12-27  Arsen Arsenović  <arsen@aarsen.me>

	Re-enable copyable anchors in HTML output

	* tp/Texinfo/Common.pm (relate_index_entries_to_table_items_in_tree)
	(%valid_tree_transformations): Implement
	relate_index_entries_to_table_items, a transform that finds all
	table terms and associates their indices with them, so that the
	HTML backend generates a copyable anchor.

	* tp/texi2any.pl: Invoke the new
	relate_index_entries_to_table_items transform.
	(%formats_table): Enable the relate_index_entries_to_table_items
	transformation on HTML.
	* tp/tests/indices/list-of-tests (index_entries_relate_to_item):
	New test case.
	* tp/tests/indices/index_entries_relate_to_item.texi: New test file.

2022-12-27  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\definedummies, \indexnofonts):
	Extend dummy definitions in \definedummies to include the
	\indexnofonts expansions.  Always remove braces from
	arguments for dummied control words.
	
	(\atdummies, \indexnofonts):
	Give a suitable definition before using \macrolist to avoid
	user-defined @macro's repeatedly being given longer and longer
	definitions.

2022-12-27  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\definedummies): Remove dummies for
	internal commands to avoid need for redirection.
	(\atdummies): Call \turnoffactive rather than
	\normalturnoffactive followed by \otherbackslash, as this should
	do the same thing and is shorter.

2022-12-27  Gavin Smith  <gavinsmith0123@gmail.com>

	Switch for dummies

	* doc/texinfo.tex (\definedummies):
	Give control sequences alternate expansions depending on
	whether they are being expanded when being written to an
	auxiliary file, using \ifdummies and \ifindexnofonts
	conditionals.  Use @ as the escape character for dummy
	expansions.  Call \definedummies at the end of the file.
	This may make processing files faster due to less redefinitions
	being made.

	(\commondummiesnofonts): All redefinitions moved to \definedummies
	and macro removed.
	(\atdummies): Set \dummiestrue and inline what is left of
	the old definition of \definedummies.
	(\indexnofonts): Set \indexnofontstrue.  Definitions in
	\indexnofonts still override those from \definedummies.

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command),
	tp/Texinfo/XS/parsetexi/parser.c (read_comment)
	(process_remaining_on_line): handle nested @ignore.  Gavin report.
	Add read_comment() to get a comment, taken mainly from
	handle_block_command.

	* tp/t/55conditionals.t, tp/Makefile.tres: add test
	ignore_spaces_and_comments with comments and spaces on @ignore lines.

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_latex_header), doc/texinfo.texi
	(@LaTeX{} Customization Variables), tp/Texinfo/Common.pm
	(@variable_string_settables): add experimental LaTeX documentclass and
	packages customization, using two customization variables,
	CLASS_BEGIN_USEPACKAGE and END_USEPACKAGE. 

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): format @bye line
	similarly to other skipline @-commands.

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (%type_elements, _convert),
	tp/Texinfo/ParserNonXS.pm (_parse_texi),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/parser.c (parse_texi),
	tp/Texinfo/Convert/*.pm, util/texinfo.dtd: keep text appearing after
	@bye in the Texinfo Tree, as text_after_end in postamble_after_end
	container.  Add postamble_after_end as ignorable type in converters.

2022-12-27  Patrice Dumas  <pertusus@free.fr>

	* t/html_tests.t: fix incorrect braces nesting.

	* t/test_utils.pl: with -c do not add @bye even if it is not at
	the beginning of the line and if followed by @.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (sort_indices): when splitting at letters,
	determine letters by removing diacritics to associate accented letters
	to the main letter.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (setup_index_entry_keys_formatting): set
	sort_string option for conversion to text only if ENABLE_ENCODING is
	unset or encoding is not UTF-8.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (Conditional Nesting): comment out text on @ignore
	line.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	Obey --disable-encoding/ENABLE_ENCODING for some conversions to text

	* doc/texi2any_api.texi (Command Tree Element Conversion Functions),
	tp/Texinfo/Convert/HTML.pm (%default_commands_args, _convert),
	tp/ext/epub3.pm (epub_convert_image_command): do not set
	copy_options_for_convert_text second argument for monospacetext, add
	filenametext for which the second argument of
	copy_options_for_convert_text is set and ENABLE_ENCODING is ignored.
	Update code to use filenametext if the output is a file name.

	* tp/Texinfo/Convert/LaTeX.pm (converter_initialize, _convert),
	tp/init/highlight_syntax.pm (highlight_process),
	tp/Texinfo/Convert/HTML.pm (_convert_def_line_type)
	(_external_node_href, output_internal_links, output): do not set the
	second argument of copy_options_for_convert_text to obey
	ENABLE_ENCODING for some conversions to plain text.

	* doc/texinfo.texi (Invoking @command{texi2any}),
	tp/Texinfo/Convert/Text.pm, tp/texi2any.pl: document that
	ENABLE_ENCODING is obeyed for some conversions to plain text and
	for index sorting.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.tres, tp/t/latex_tests.t: add a new test,
	indices_disable_encoding with the same text as indices, but with
	ENABLE_ENCODING set to 0.

	* t/include/text_only_image.txt: add to git.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	Set --enable-encoding to be the default for all output formats

	* tp/Texinfo/Common.pm (%default_converter_command_line_options),
	tp/Texinfo/Convert/TexinfoXML.pm (%defaults): set ENABLE_ENCODING
	to 1 in the default case for all the formats.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	* tp/t/latex_tests.t: in indices test, add simple entry with
	accented letters.

2022-12-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_latex_header): do not use noclearpage
	imakeidx option, as the index may not appear in that case, if at the
	end of the document.

2022-12-26  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex: Move more macros to be defined while \ is
	still the escape character, as this is easier to read.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex: Provide \ a definition again when Texinfo
	is not a preloaded format.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex: Use \everyjob to redefine backslash in
	case of preloaded Texinfo only.
	(\enablebackslashhack, \newlineloadsconf): Rename.
	Do not provide backslash with a definition here.  Capture end
	of line as an argument to avoid need for two-stage redefinition
	of newline.

	(\fixbackslash, \loadconf): Rename to \loadconf, as it is not
	used to fix backslash in the usual case where Texinfo is not
	preloaded.  Begin with \relax rather than space token to terminate
	filename.

2022-12-25  Patrice Dumas  <pertusus@free.fr>

	Use OUTPUT_CHARACTERS instead of --enable-encoding for XML-based and
	LaTeX

	* NEWS, doc/texinfo.texi (@code{@@documentencoding})
	(Other Customization Variables), tp/Texinfo/Common.pm
	(@variable_string_settables), tp/Texinfo/Convert/Converter.pm
	(xml_accents), tp/Texinfo/Convert/HTML.pm (_convert_accent_command)
	(_css_string_convert_accent_command, _convert_text)
	(converter_initialize), tp/Texinfo/Convert/LaTeX.pm
	(converter_initialize, copy_options_for_convert_to_latex_math)
	(_convert), /tp/Texinfo/Convert/TexinfoMarkup.pm (_convert):
	use the OUTPUT_CHARACTERS customization variable for HTML, XML,
	DocBook and LaTeX to determine if encoded characters are output
	instead of entities or macros.

	* t/09indices.t, tp/t/formats_encodings.t, tp/t/html_tests.t,
	tp/tests/layout/list-of-tests,
	tp/tests/many_input_files/different_encodings.sh: set
	OUTPUT_CHARACTERS in addition to ENABLE_ENCODING/--enable-encoding.

2022-12-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (convert_accents, xml_accents),
	tp/Texinfo/Convert/HTML.pm (_convert_accent_command)
	(_css_string_convert_accent_command),
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): convert accents
	to encoded characters in convert_accents based on the third
	argument, instead of checking ENABLE_ENCODING.  Update callers.

2022-12-25  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (sort_indices): set variable collation
	elements to 'Non-Ignorable' such as to have spaces and punctuation
	marks sort before letters.

2022-12-25  Patrice Dumas  <pertusus@free.fr>

	Sort index entries using Unicode Collation in texi2any

	* tp/Texinfo/Structuring.pm (_collator_sort_string)
	(_sort_index_entries, sort_indices): use Unicode::Collate comparison
	for strings.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	Attempt to fix pre-dumped Texinfo

	* doc/texinfo.tex: Remove blank line from end of file.
	(\enablebackslashhack): Comment out ends-of-line.  This should
	stop \fixbackslash being run too early.
	(\fixbackslash): Start definition with a space token.

	This has been broken since at least 2017-04-17 when extra
	lines were added to \fixbackslash, so its likely that nobody
	is using Texinfo as a pre-dumped format.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex: Move definitions of \normaldot, \normalquest
	and \normalslash.  Call \setregularquotes near definition.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex: At end of file, move more definitions before
	the change from \ to @ as the escape character.
	(\normalturnoffactive, \turnoffactive): Define \normalturnoffactive
	in terms of \turnoffactive instead of vice versa.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	Reduce scope of catcode changes throughout texinfo.tex

	* doc/texinfo.tex: Surround character encoding definition macros
	in a group, define with \gdef and limit the catcode changes
	for non-ASCII characters to the group.  Move the use of
	@documentencoding to the very end of the file.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex: Remove "emacs-page" delimiter from the one
	place it occurs.  Remove vim shiftwidth definition from end of file.

2022-12-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex: Use definition of @documentencoding to
	fully set UTF-8 as the default encoding, including for XeTeX
	and LuaTeX.  Report from Werner.

2022-12-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_in_paragraph),
	tp/Texinfo/XS/parsetexi/handle_commands.c (in_paragraph):
	go to the container of the parent command when going through
	parent brace commands.

	* tp/t/08misc_commands.t: add indent_in_command_in_paragraph
	test with @indent and @noindent in an @-command in a paragraph.

2022-12-24  Patrice Dumas  <pertusus@free.fr>

	Warn that @indent and @noindent are useless inside paragraphs

	* tp/Texinfo/ParserNonXS.pm (_in_paragraph)
	(_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/handle_commands.c (in_paragraph)
	(handle_other_command): add in_paragraph that returns true if
	in a paragraph, including in a brace @-command except for a context
	brace command.  Use that function to warn if @indent or @noindent
	are in a pragraph.

2022-12-24  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm: cut at 80 columns, reindent.

2022-12-24  Patrice Dumas  <pertusus@free.fr>

	Warning for block commands without argument with an argument

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block):
	warn if a block command with 0 argument, and not a variadic command
	has arguments on the line.

2022-12-24  Patrice Dumas  <pertusus@free.fr>

	* doc/Makefile.am (TEXINFO_TEX): use in-source texinfo.tex.

2022-12-24  Patrice Dumas  <pertusus@free.fr>

	* NEWS: add title for @cartouche.

2022-12-23  Gavin Smith  <gavinsmith0123@gmail.com>

	Title for cartouche

	* doc/texinfo.tex (\cartouche): Define with \envparseargdef so
	to take an argument.  If argument is given, use it as a title for
	the box.
	(\envparseargdef): Define with \long.

	Feature request from Arnold Robbins.

2022-12-23  Patrice Dumas  <pertusus@free.fr>

	* .gitattributes: set tp/t/results/*/*.pl file always diff-able.

2022-12-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Info.pm (format_image): fix count of lines
	returned when there is an image text file.

2022-12-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Info.pm (format_image): avoid warnings about
	undefined values with @image with alt and text but no image file.

	* tp/Makefile.am (test_files), tp/Makefile.tres, tp/t/info_tests.t,
	tp/t/include/text_only_image.txt: new test
	image_text_file_only_and_alt with alt and text file but no image file.

2022-12-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm
	(normalize_transliterate_texinfo, transliterate_texinfo): modify
	transliterate_texinfo such that it only transliterates but does not
	protect characters, and add normalize_transliterate_texinfo for the
	previous behaviour.  Update callers.

	* tp/Texinfo/Convert/LaTeX.pm (_prepare_floats): transliterate the
	first float element type of a float type to set up the LaTeX float
	name to get more different categories when float type expands to
	non-ASCII characters.

	* tp/t/27float.t: expand LaTeX output for the float_with_at_commands
	test.

2022-12-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_prepare_floats): fix type filtering
	regex.

2022-12-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (_parse_float_type):
	convert float type using NodeNameNormalization.pm
	convert_to_normalized().

	* tp/t/27float.t: new test special_characters_in_float_type.

2022-12-23  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/NodeNameNormalization.pm (_parse_float_type)
	(set_float_types), tp/Texinfo/ParserNonXS.pm (_end_line_misc_line)
	(_end_line_starting_block, _parse_texi),
	tp/Texinfo/XS/parsetexi/Parsetexi.pm (get_parser_info)
	(_set_errors_node_lists_labels_indices),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block)
	(end_line_misc_line), tp/Texinfo/command_data.txt: make float a global
	commmand. Move normalization of float type out of parsers to
	NodeNameNormalization.pm for future normalization using functions
	there.

2022-12-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm: cut at 80 columns better.

2022-12-22  Patrice Dumas  <pertusus@free.fr>

	Handle @float in @cartouche in LaTeX, where it cannot float

	* tp/Texinfo/Convert/LaTeX.pm
	(%LaTeX_non_floating_environment_commands, _latex_header)
	(_push_new_context, _convert): add a stack of commands in which
	there cannot be floats, non_floating_commands, for cartouche which
	uses mdframed.  In this context, use a no-op environment for float
	and \captionof of the caption package.

2022-12-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_push_new_context, _convert): carry
	formatted context over to float.

	* tp/Makefile.tres, tp/t/27float.t: add float_in_block_commands
	test.

2022-12-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm: reindent, cut at 80 columns,
	use scalar() explicitely.

2022-12-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Plaintext.pm (_convert): do not consider the
	cartouche title to be a paragraph, reset paragraph count to the value
	before the title.
	Do not set the text_element_context counter, as the title is on its
	own line.  Do not increase redundantly lines count.

	* tp/Makefile.tres, tp/t/02coverage.t: add cartouche_title_and_content
	new test with cartouche title and some content in the cartouche.

2022-12-21  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (@code{@@cartouche}): document the title argument
	of @cartouche.
	Describe that @cartouche can be used for to isolate a portion of the
	manual from the main flow, corresponding to the sidebar explanation in
	DocBook.

2022-12-20  Patrice Dumas  <pertusus@free.fr>

	Use @cartouche argument as cartouche title in texi2any

	* tp/Texinfo/Convert/DocBook.pm (_convert), tp/Texinfo/Convert/HTML.pm
	(_convert_cartouche_command, _convert), tp/Texinfo/Convert/LaTeX.pm
	(_set_environment_options), tp/Texinfo/Convert/Plaintext.pm
	(_convert), tp/Texinfo/Convert/TexinfoMarkup.pm
	(%commands_args_elements), tp/Texinfo/Convert/Text.pm (_convert),
	tp/Texinfo/command_data.txt, util/texinfo.dtd: add an argument to
	@cartouche.  Format the @cartouche argument as the cartouche title.
	Based on a report from Arnold Robbins.

	* tp/t/02coverage.t: add @cartouche argument in cartouche and
	comment_on_cartouche_line tests.

	* tp/tests/coverage_macro.texi: add @cartouche with argument.

2022-12-19  Werner Lemberg  <wl@gnu.org>

	* doc/texinfo.tex (\code, \dashnobreak): Use a \penalty to disable
	hyphenation for LuaTeX.

2022-12-19  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert): use <sidebar> for
	@cartouche. Based on a report from Arnold Robbins.

2022-12-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\-): Provide definition of @- to allow
	a hyphen to be printed for optional line breaks.  From Werner.

2022-12-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\code, \tclose): Comments changed.

2022-12-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\printdefunline): Call \defcharsdefault
	before creating the index entry in case it contains an ampersand
	or bracket.

2022-12-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\defindex, \defidx): Rename to
	\defidx to avoid clash with @defindex command.

2022-12-17  Gavin Smith  <gavinsmith0123@gmail.com>

	Turn off hyphenation for tt fonts completely.

	* doc/texinfo.tex (\setfont): Set \hyphenchar to -1 for
	font styles tt, ttb and ttsl.
	(\nohyphenation): Remove.
	(\key, \tclose, \verb): Do not call \nohyphenation.

	Werner reported that the restoration of \hyphenchar in
	\nohyphenation was wrong as it affected the wrong font.

2022-12-15  Gavin Smith  <gavinsmith0123@gmail.com>

	Configurable index for @def* command

	* doc/texinfo.tex (\defindex, \deftext): Define with \newtoks.
	(\defind): New macro to set \defindex and \deftext.  Call it
	instead of \doind throughout the definitions with \makedefun.
	(\printdefunline): Call \doind using the values that were set
	in \defindex and \deftext.
	(\useindex): Command to overrwrite \defindex value.

2022-12-15  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\dodefunx): Inline into use site in definition
	of \deffoox in \makedefun.  Do not reuse the definition of
	\deffoo manipulating its expansion with the \gobbledefun macro,
	as this was confusing and unnecessary.  No functional changes
	intended.

2022-12-14  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (PARAGRAPH):
	Rename 'protect_spaces' to 'no_break'.

2022-12-14  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/ParagraphNonXS.pm
	(set_space_protection, add_text): Rename 'space_protection' flag
	'no_break' to reflect its function.

2022-12-14  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/texi2any.pl <.info filename check>: Do not use /r flag
	for regex to work with older versions of Perl.

2022-12-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): add end of line
	for multitable with prototype interrupted by another @-command.

2022-12-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* info/util.c (text_buffer_iconv): Correctly update arguments
	for iconv in loop.  Crash for "info groff" reported by Jakub Wilk
	via Hilmar Preuße <hille42@web.de>.

2022-12-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): add end of line
	for block commands with missing args key, except for @def*, which have
	a special processing of their line.

2022-12-12  Patrice Dumas  <pertusus@free.fr>

	* tp/t/converters_tests.t: in form_feeds test, add more form feeds for
	@deffn command and add @deffnx command.

2022-12-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): use
	_leading_spaces_arg for def_line type.

2022-12-12  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert), util/txixml2texi.pl:
	always add end of line for the block command lines.

	* t/57invalid_nestings.t (@formatted_cases): add
	section_on_cartouche_line.

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert), util/texinfo.dtd: if
	the @itemize or @*table command as argument was added, add a
	automaticcommandarg attribute set to on.

	* util/txixml2texi.pl: add a space after @*table and before the
	formatting command if there is not already one.

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): do not add an
	entry for erroneous @itemx/@item/@tab constructs.

	* tp/t/57invalid_nestings.t: put itemx_in_itemize_enumerate_in_table
	in @formatted_cases, in particular to check XML output.

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* util/txixml2texi.pl: handle infoenclose.

2022-12-11  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/HTML.pm (%css_element_class_styles),
	(_convert_text) <in non breakable space>: Do not output
	<span class="w-nolinebreak-text"> element as it is not clear
	that it is needed to prevent breaking at - or _.

2022-12-11  Gavin Smith  <gavinsmith0123@gmail.com>

	Do not copy spaces exactly for @w

	* tp/Texinfo/XS/xspara.c (xspara_add_text) <protect_spaces>
	* tp/Texinfo/Convert/ParagraphNonXS.pm (add_text) <protect_spaces>:
	Change the meaning of this flag to match what @w does in
	texinfo.tex, which simply uses an \hbox for the content, but does
	not protect the spaces.  Do not use exactly the same spaces that
	were given in the input.  Accumulate spaces onto the end of the
	current word so that all spaces and words will be stuck together
	while in the mode and output together in the same line.
	* tp/t/paragraph.t: Manually update reference test results.

	The 'protect_spaces' flag is probably now misnamed.

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): add multitable
	space after argument.

2022-12-11  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_add_text) <space>,
	* tp/Texinfo/Convert/ParagraphNonXS.pm (add_text) <space>:
	Remove extra call to _add_pending_word or xspara__add_pending_word.

2022-12-11  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/XS/xspara.c (xspara_add_text): Make the same change
	so to mirror the structure of the Perl code.

2022-12-11  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/ParagraphNonXS.pm (add_text) <spaces>:
	Separate out code for 'unfilled' to make the rest of the code
	easier to understand.

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): add a newline
	at the end of block command lines if there is none (case of another
	command interrupting the block command line).

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* tp/maintain/check_back_xml_forth_texi_t.sh: handle 3 digits in
	front of .t test file name.

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): use directly
	the @node direction explicit args, reconstitute node and manual name
	only for automatic directions.

	* tp/t/57invalid_nestings.t: move on_node_line to @formatted_cases
	to output XML.

2022-12-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block):
	more generic message when @*table argument is incorrect, separating
	missing and bad argument, and showing the argument in case of bad
	argument.

	* tp/Texinfo/XS/parsetexi/convert.c (expand_cmd_args_to_texi):
	add spaces_after_cmd_before_arg expansion.

2022-12-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/Plaintext.pm (_convert) <@tie>:
	Use add_next instead of add_text to add space, and do not
	use 'w' formatter stack or call set_space_protection.

2022-12-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_isolate_last_space),
	tp/Texinfo/XS/parsetexi/parser.c (isolate_last_space): do not set
	comment_at_end for brace commands.

2022-12-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert_argument_and_end_line)
	(_convert): convert comment_at_end from brace commands.

	* tp/t/30sectioning.t: output XML for empty_ref_arg test.

2022-12-10  Gavin Smith  <gavinsmith0123@gmail.com>

	&nbsp; for @verb

	* tp/Texinfo/Convert/HTML.pm
	(_convert): Use 'space_protected' context for @verb as
	well as for @w.  Do not use 'verbatim' context for @verb.
	This means that in _convert_text, spaces in the argument
	to @verb will be converted to &nbsp;.

2022-12-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\verb): Revert recent change, so that
	line breaks at spaces are not possible, for agreement with
	LaTeX \verb command and so that spaces in argument will always be
	apparent to the reader.

2022-12-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert), util/texinfo.dtd,
	util/txixml2texi.pl: add trailing spaces in block commands arguments.

	* tp/t/converters_tests.t (@test_cases):  add form feeds on @float
	line in form_feeds test.

	* tp/t/16raw.t: move spurious_arg_on_line, beginning_and_end_on_line
	and space_before_end from @test_invalid to @test_cases.  Output
	XML in @test_cases.

	* tp/t/08misc_commands.t: add XML output for
	codequoteundirected_codequotebacktick and
	comment_space_command_on_line tests.

	* tp/t/57invalid_nestings.t: move ignored_text from @test_cases
	to @formatted_cases.

	* tp/t/30sectioning.t: add XML output for node_up_external_node,
	space_in_node and next_no_prev_to_node.

2022-12-10  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): associate end
	space to the last empty argument if possible.

	* tp/t/27float.t: add XML output format to the tests.

2022-12-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* install-info/install-info.c (error): Declare as static to
	avoid clash with error function from glibc, called from gnulib.
	Report from Sam James <sam@gentoo.org> and suggested solution
	from Arsen Arsenović <arsen@aarsen.me>.

2022-12-09  Patrice Dumas  <pertusus@free.fr>

	* tp/t/18itemize.t (@test_cases): add more tests of accents
	on @itemize lines in empty_accent_argument and accent_argument.

	* tp/t/22xtable.t (@test_cases): add more tests of accents
	on @table line in accent_on_table_line.

2022-12-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line):
	do not consider accent commands to be associated to @itemize
	or @*table.  End the line if there is an accent followed by
	end of line on a block command or line command.

2022-12-07  Patrice Dumas  <pertusus@free.fr>

	* tp/t/input_files/bib-example.texi: use @w{} to avoid mark command
	for @itemize.

	* tp/t/18itemize.t: add xml output for @test_cases.

2022-12-07  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (%no_arg_commands_formatting),
	util/texinfo.dtd: use &ampsymbol; for @& to avoid using the &amp;
	entity already used for & in text in XML.  &ampsymbol; ultimately maps
	to &amp; in DTD.

	* tp/tests/coverage_macro.texi: add @&.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/t/19def.t: move all_empty_def to @test_info and format to xml
	@test_info tests.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_def_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line): do not call
	abort_empty_line when processing the @def* line, there is no empty
	line to abort.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_merge_text): use explicitely scalar()
	for clearer code.

	(_isolate_last_space, _end_line_def_line): better debugging output.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/t/01use.t: update tree.  Do not use 'use vars'.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_parse_def),
	tp/Texinfo/XS/parsetexi/def.c (next_bracketed_or_word_agg)
	(split_def_args, parse_def): remove code setting spaces_at_end on
	@def* lines, as it cannot happen anymore.  Remove use of spaces_at_end
	def line type.

	* tp/Texinfo/XS/parsetexi/def.c: remove unused next_bracketed_or_word
	function.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Transformations.pm (fill_gaps_in_sectioning): tree
	element added for new section more in line with current tree elements.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_starting_block): allow only
	one letter as @enumerate argument (same as XS parser).

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_end_line_def_line),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line)
	tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/Convert/TextContent.pm (_convert): isolate last space
	on @def* command line similarly to other formats with
	isolate_last_space.

	* tp/Texinfo/ParserNonXS.pm (_isolate_last_space): check that there
	is content before trying to isolate last space.

	* tp/Texinfo/ParserNonXS.pm (_merge_text, _end_line_def_line)
	(_end_line_starting_block, _process_remaining_on_line): improve/add
	debug messages.

2022-12-06  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (_parent_string, debug_print_element_short)
	(debug_print_element): add an optional argument to
	debug_print_element_short to show the parent element name or type.

2022-12-05  Patrice Dumas  <pertusus@free.fr>

	* layout/list-of-tests: add layout formatting_info_disable_encoding
	test, testing Info output coverage with --disable-encoding.

2022-12-05  Patrice Dumas  <pertusus@free.fr>

	* doc/Makefile.am (TEXI2DVI, TEXI2DVI_ENVIRONMENT),
	doc/tp_api/Makefile.am (TEXI2DVI, TEXI2DVI_ENVIRONMENT): use in-source
	texindex and texi2dvi.

	* tp/Makefile.tres: update.

2022-12-04  Patrice Dumas  <pertusus@free.fr>

	* tp/t/57invalid_nestings.t: add tests of section command interrupting
	block command lines that requires gathering tree information,
	section_on_multitable_line, section_on_float_line,
	section_on_enumerate_line, section_on_xtable_line,
	and section_on_itemize_line.

2022-12-04  Patrice Dumas  <pertusus@free.fr>

	Gather tree information when closing incorrectly nested block command line

	* tp/Texinfo/ParserNonXS.pm (_close_current, _end_line_starting_block)
	(_end_line), tp/Texinfo/XS/parsetexi/close.c (close_current): when
	closing block_line_arg in close_current, use the same code as when
	closing at end of line, such as to gather all the information in the
	tree.

2022-12-04  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/tests/coverage,
	* tp/tests/coverage/list-of-tests,
	* tp/tests/coverage/formatting_utf8.texi: Remove.  list-of-tests
	only had one commented-out line.  formatting_utf8.texi was an
	old copy of layout/formatting.texi with an added
	"@documentencoding utf8" line.

2022-12-04  Patrice Dumas  <pertusus@free.fr>

	* util/texinfo.dtd: allow mixing *caption within float contents.  Fix
	email spaces attributes.

2022-12-04  Patrice Dumas  <pertusus@free.fr>

	* tp/t/converters_tests.t: add inlinefmtspaces, inlinerawspaces
	and inlineifsetifclearspaces, similar with other formatted tests but
	with soaces around arguments.

	* util/texinfo.dtd: fix the type of spaces attributes, @inline*
	arguments are optional.

2022-12-04  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (\pdflink) <XeTeX>: Fix definition.

2022-12-04  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/LaTeX.pm (_convert) <@verb>:
	Check \verb delimiter character is not used in contents,
	and change newlines to spaces.
	* tp/t/latex_tests.t (verb): New test.

2022-12-04  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\verb): Turn off hyphenation as this can
	introduce spurious hyphen glyphs in the output.  Allow breaking
	at spaces by using \obeyspaces rather than \sepspaces.  Do not
	obey line breaks, for consistency with HTML output.  Report from
	Werner.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* TODO: add @node and HTML splitting

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	Atomic dir update

	* install-info/install-info.c (output_dirfile):
	If rename to dir file failed, try deleting target file
	and try again.  From Eli.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	Clickable section title in @contents for PDF

	* doc/texinfo.tex
	(\pdflinkpage): Generalise definition of \pdflink to take
	a link contents as well as a page number.
	(\iflinkentrytext): New conditional.
	(\startcontents): Set it.
	(\finishentry) [pdfTeX, XeTeX]: Use \pdflinkpage if \iflinkentrytext
	is true to allow clicking on the section title as well as the page
	number.

	(\shortchapentry, \shortunnchapentry, \dochapentry, \dosecentry,
	(\dosubsecentry, \dosubsubsecentry): Do not call \dopageno or
	\doshortpageno, as these surround the page number with TeX commands
	that get in the way in \pdflinkpage and appear to be unnecessary.
	(\dopageno, \doshortpageno): Remove.

2022-12-03  Patrice Dumas  <pertusus@free.fr>

	Gather tree information when closing incorrectly nested @def* lines

	* tp/Texinfo/ParserNonXS.pm (_close_current, _end_line_def_line)
	(_end_line), tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_def_line, end_line):
	when ending a @def*x? command line because it was interrupted or
	at the end of the file, use the same code as the code used at the
	end of line, put in the end_line_def_line() function to gather
	information on the line and separate arguments with roles.

	* tp/t/57invalid_nestings.t: move section_on_defx_line to
	@formatted_cases.

2022-12-03  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): ignore @def*
	arguments that have not been split off with a role added from the @def
	line args.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	Run gnulib-tool --add-import mkstemp.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	Atomic dir update

	* install-info/install-info.c (output_dirfile): Write to
	file created by mkstemp first, then rename this to the real
	output file. 
	* TODO: Remove item.

	Report from Pedrum Mohageri, bug-texinfo, November 2015.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Directory Category), TODO: Do not refer
	to Free Software Directory categories.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* configure.ac: Do not add js/node_modules/.bin/ to program
	search path if the directory does not exist.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/maintain/regenerate_file_lists.pl: Hardcode script name
	to be placed in Makefile.tres, so it will not change depending
	on where it was run from, e.g. from autogen.sh.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* configure.ac, util/texi2pdf, js/info.js: bump version to 7.0dev.
	* README-hacking: remove duplicate instruction

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/tests/run_parser_all.sh (post_process_output): Strip
	line with missing file error from logs for predictable results.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/texi2any.pl: Strip directories from filename in warning for
	predicatable results in test suite.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* configure.ac (AM_INIT_AUTOMAKE): Remove dist-xz option for
	development as it is too slow.

2022-12-03  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/texi2any.pl: Give a warning if input filename ends in '.info'.
	* NEWS, TODO: Update.
	* tp/tests/formatting/list-of-tests (info_extension_warning):
	New test.

2022-12-02  Gavin Smith  <gavinsmith0123@gmail.com>

	* NEWS, doc/texinfo.texi (Heading Generation, @headings)
	(Custom Headings): Update now that @titlepage does not do
	"@headings on".

2022-12-02  Gavin Smith  <gavinsmith0123@gmail.com>

	Make texi2dvi -t '@headings double' work

	* doc/texinfo.tex (\setchapternewpage): Call \HEADINGSon as
	we are not relying on it being called inside @titlepage any more.

2022-12-02  Gavin Smith  <gavinsmith0123@gmail.com>

	Make texi2dvi -t '@headings double' work

	* doc/texinfo.tex: Call \HEADINGSon to set headings from very start
	of file.
	(\titlepage): Call \headingsoff to turn off headings temporarily.
	Do not call \HEADINGSon as this may override a
	texi2dvi -t '@headings double' setting.  Reset page number with
	\pageone.

2022-12-02  Gavin Smith  <gavinsmith0123@gmail.com>

	* info/window.h: Eliminate #define used to use the same three fields
	in two different structures, as the comment explaining it took
	more space up than it would have taken simply to write the lines
	twice.

2022-12-02  Gavin Smith  <gavinsmith0123@gmail.com>

	* info/session.c (info_beginning_of_line): Avoid freezing
	at beginning of a file when 'nodeline' is set to 'pointers' (the
	default).  Report from Justin Anthony LaPolla <justin.lapolla@hpe.com>.

2022-12-02  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_format_columnfractions)
	(_convert): add a separate function to format columnfractions command,
	_format_columnfractions().  Use that function to format a bogus
	@columnfractions out of @multitable.

2022-12-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert), util/txixml2texi.pl,
	util/texinfo.dtd: use spacesaftercmd attribute for
	spaces_after_cmd_before_arg for accent commands too.

	* util/texinfo.dtd: add two-letter based index entries index commands.
	Add microtype.  Allow formfeed and verticaltab in menuleadingtext.
	Allow headingmark in style commands.  Add diverse space attributes in
	associated elements, in particular in brace commands.

2022-12-01  Patrice Dumas  <pertusus@free.fr>

	Protect spaces in space attributes in XML specific code

	* tp/Texinfo/Convert/TexinfoMarkup.pm,
	tp/Texinfo/Convert/TexinfoXML.pm (_xml_attributes): protect spaces
	in space attributes in format specific code.

2022-11-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert),
	tp/Texinfo/Convert/TexinfoXML.pm (_xml_attributes),
	util/txixml2texi.pl (unprotect_spaces): add attribute for
	spaces_after_cmd_before_arg info, protect special spaces in it
	and unprotect in txixml2texi.pl.

2022-11-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): add end lines
	after the closing markup element when @end is missing.

2022-11-30  Patrice Dumas  <pertusus@free.fr>

	Gather tree information when closing incorrectly nested line command

	* tp/Texinfo/ParserNonXS.pm (_close_current, _end_line_misc_line)
	(_end_line), tp/Texinfo/XS/parsetexi/close.c (close_current),
	tp/Texinfo/XS/parsetexi/end_line.c: when closing line_arg in
	close_current, use the same code as when closing at end of line,
	such as to gather all the information in the tree, in particular
	rearranging @end in block command and output all the error messages.

2022-11-30  Gavin Smith  <gavinsmith0123@gmail.com>

	* configure.ac (AM_INIT_AUTOMAKE): Remove 'readme-alpha' option,
	as we are using three-part version numbers that do not signify
	alpha releases.

2022-11-30  Gavin Smith  <gavinsmith0123@gmail.com>

	* NEWS: Add 7.0.1 news.

2022-11-29  Per Bothner  <per@bothner.com>

	* js/info.css (cache_index_links): Fix index entry processing.
	Also implement subentry handling.
	(init_iframe - on_load): Change search and call of cache_index_links.

2022-11-29  Per Bothner  <per@bothner.com>

	* js/info.css (.tex-input): Make input element a bit wider.
	This works better for longer index or menu names.

2022-11-29  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (output_texi_file): always add a newline in the
	end of the test Texinfo code.

2022-11-29  Patrice Dumas  <pertusus@free.fr>

	* util/txixml2texi.pl: avoid double comment for line specific command.

2022-11-28  Patrice Dumas  <pertusus@free.fr>

	Protect vertical tab in XML

	* tp/Texinfo/Convert/TexinfoMarkup.pm
	(_protect_in_spaces_attribute_text), tp/Texinfo/Convert/TexinfoXML.pm
	(_xml_attributes, _protect_text), util/txixml2texi.pl,
	util/texinfo.dtd: protect vertical tab U+000B as \v in attributes and
	with verticaltab added entities in other contexts.

2022-11-28  Patrice Dumas  <pertusus@free.fr>

	XML menu leading text and menu separator in elements instead of attributes

	* tp/Texinfo/Convert/TexinfoMarkup.pm (%type_elements, _convert),
	util/texinfo.dtd: put menu_entry_leading_text and menu_entry_separator
	types text in element rather than in attributes.  It is better to keep
	the structure and protect spaces more naturally.

	* util/texinfo.dtd: add endspace attribute for macro and rmacro.


2022-11-27  Per Bothner  <per@bothner.com>

	* js/info.js (on_link): Change query pattern for links.
	Use class printindex-index-section instead of printindex-index-entry
	to get the correct node URL.

2022-11-27  Per Bothner  <per@bothner.com>

	* js/info.js (set_current)url): Don't set parameter default.
	It's not needed, and it triggers an eslint complaint,
	because parameter default values were new in EcmaScript 6 (2015).

2022-11-27  Patrice Dumas  <pertusus@free.fr>

	* maintain/check_back_xml_forth_texi_t.sh: script to test conversion
	of tp/t/*.t Texinfo code to Texinfo XML and back to Texinfo to detect
	issues with Texinfo XML conversion and conversion back to Texinfo.

2022-11-27  Patrice Dumas  <pertusus@free.fr>

	* util/txixml2texi.pl: skip a comment after <columnfractions> as
	the comment is already in the line attribute.

2022-11-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): do not have
	an empty columnprototypes when there is an empty columnfraction,
	but only have a columnfraction.
	Avoid autovivification of extra columnfraction in case of empty
	columnfraction.

2022-11-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/TexinfoMarkup.pm (_convert): correctly use
	_leading_spaces_arg return in case there is no space after @end
	command line and something else on the line.

2022-11-27  Patrice Dumas  <pertusus@free.fr>

	* tp/t/test_utils.pl (output_texi_file): encode to UTF-8 the resulting
	Texinfo file.  Only when the test texinfo comes from perl code and not
	when reading from a file as when reading from a file there is no
	decoding.

2022-11-27  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm (_gather_previous_item),
	tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item):
	Reparent trailing comments from before_item to table_term.

2022-11-27  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/tests/coverage_macro.texi: Readd removed content.  From
	Patrice.

2022-11-27  Gavin Smith  <gavinsmith0123@gmail.com>

	@itemx at beginning of table is an error

	* tp/Texinfo/ParserNonXS.pm (gather_previous_item),
	* tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item),
	NEWS: @itemx at beginning of table is an error, not a warning,
	as with recent changes this gives invalid HTML and DocBook output.
	Suggestion from Patrice.

2022-11-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (%default_converter_customization): update
	TEXINFO_DTD_VERSION to 7.1 to check more easily that tests are
	valid.

2022-11-26  Patrice Dumas  <pertusus@free.fr>

	* util/texinfo.dtd, configure.ac (TEXINFO_DTD_VERSION): add the
	index entries in tableterm before the @item.

2022-11-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert): output <term> when
	table_term container is seen and not for @item, to also enclose
	index entries in table_term before the @item (same as in html).

2022-11-26  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi: Move index commands before @item in @table
	throughout.

2022-11-26  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (gather_previous_item),
	* tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item):
	Reparent trailing index commands from before_item to table_term.

2022-11-26  Gavin Smith  <gavinsmith0123@gmail.com>

	Remove relate_index_entries_to_table_entries_in_tree

	* tp/Texinfo/Common.pm (texinfo_special_joint_transformation)
	(relate_index_entries_to_table_entries_in_tree): Remove.
	* tp/texi2any.pl: Do not use relate_index_entries_to_table_entries
	transformation for HTML or LaTeX.

2022-11-26  Patrice Dumas  <pertusus@free.fr>

	* doc/tp_api/Makefile.am (MAKEINFO): add -I $(top_builddir)/tp/
	to find Texinfo::ModulePath in out-of-source builds.  Report
	from Arsen Arsenović.

2022-11-26  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_table_term_type): add the
	<dt> in front in _convert_table_term_type.  Remove
	_open_table_term_type.

2022-11-26  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (gather_previous_item),
	* tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item):
	Leave trailing index entries if no command follows.
	* tp/t/22xtable.t (index_command_before_end_table): New test.

2022-11-26  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/t/22xtable.t (inter_item_commands_in_table): Move test
	here of @cindex directly between @item and @itemx.
	* tp/tests/coverage_macro.texi: Remove cases tested in t/22xtable.t.

2022-11-26  Gavin Smith  <gavinsmith0123@gmail.com>

	Output index anchors inside <dt>

	* tp/Texinfo/ParserNonXS.pm (gather_previous_item),
	* tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item):
	Do not absorb trailing index entries into a table_definition element.

	* tp/Texinfo/Convert/HTML.pm
	(_open_table_term_type): New function simply to output <dt>.  Add
	it to %default_types_open for 'table_term'.
	(_convert_table_term_type): Dummy function to enable
	_open_table_term_type.
	(_convert) <open type>: Concatenate any result from an "open type"
	handler rather than overwriting it.
	(_convert_item_command): Do not output '<dt>' for @item, as
	_open_table_term_type did this.  Output any index anchor immediately
	after the <dt> as an <a> element rather than setting an 'id' attribute
	on the <dt> tag.

2022-11-26  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (gather_previous_item):
	Use splice operation instead of moving items one by one when
	creating table_term element.  No functional changes intended.

2022-11-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (gather_previous_item),
	* tp/Texindo/XS/parsetexi/element_types.txt:
	Rename 'table_item' to 'table_definition'.

2022-11-25  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_gather_previous_item),
	* tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item).
	* tp/Texinfo/Common.pm (_relate_index_entry_to_table_entry):
	Revert last change.

2022-11-22  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_gather_previous_item),
	* tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item):
	Include index entries in table_term element.
	* tp/Texinfo/Common.pm (_relate_index_entry_to_table_entry):
	Look for index command in table_term rather than table_item.

2022-11-22  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (command_text, _convert_xref_commands)
	(_initialize_output_state): add 'referred_command_stack' to put
	commands that can be referred to being expanded, to catch if an @*ref
	refers to that command during the expansion, leading to an infinite
	recursion.  In that case, use the node instead of the section, as with
	nodes only it is not possible to construct a an infinite recursion
	as the node must both be a reference target and refer to a specific
	target at the same time, which is not possible.  Report from David
	Bacon.

2022-11-21  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command): do not add
	an empty cell on the letter row.  That way it is possible to add
	a colspan or have only one cell.

2022-11-21  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/ParserNonXS.pm (_gather_previous_item):
	Splice end of contents array instead of unshifting items from
	end one at a time.  No functional changes intended.  This should
	make it simpler to work forwards and find index commands
	immediately following @item and/or @itemx.

2022-11-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command): remove
	span element used for index-entry-level-*, instead add the class to
	the td element.
	Remove classes for empty sectioning cells.
	Report from Per Bothner.

2022-11-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (output): create empty js files for
	tests.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/tests/layout/list-of-tests (formatting_epub_nodes):
	Set INFO_JS_DIR in order to exercise code.  From Patrice.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/HTML.pm (output) <INFO_JS_DIR>:
	Do not copy js files for tests.

2022-11-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (%css_element_class_styles): increase
	index subentries indenting.  Suggestion from Raymond Toy.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* js/info.js (on_load): Update version number.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* README-hacking: info.js needs version update

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/tests/layout/list-of-tests (formatting_epub_nodes):
	Do not set INFO_JS_DIR to avoid test result having to be
	updated every time one of the js files changes.

2022-11-20  Patrice Dumas  <pertusus@free.fr>

	* tp/DebugTexinfo/DebugTree.pm (_print_tree): use info element key
	instead of extra for information now associated to that key.

2022-11-20  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (output_internal_links): add subentries
	to index entries text.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	info.js improvements

	* js/info.css: No underlining for sidebar links.
	* js/info.js: Remove "Hide sidebar" text as it takes up too much
	space.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* js/info.js (add_header): Check for h1.top after h1.settitle
	for text to put at top of sidebar.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* js/info.js (init_iframe): Change selector for index entries
	to match new HTML output.  From Per and Patrice.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* README-hacking: say to test JS interface manually before a release
	* README: list js/ directory here.

2022-11-20  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Convert/HTML.pm (%defaults): Change INDEX_ENTRY_COLON
	from ':' to ''.  Suggestion from Patrice.

2022-11-18  Gavin Smith  <gavinsmith0123@gmail.com>

	* contrib/my-bib-macros.texi: Move here from web pages.

2022-11-19  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command): use
	padding in CSS instead of non breaking space in a column to add
	a space between index entry and section or node in printindex HTML
	formatting.  Report from Per Bothner.

2022-11-19  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (comma_index_subentries_tree),
	tp/Texinfo/Convert/HTML.pm (_prepare_index_entries): use subentries
	to determine the identifier of an index entry.  Add an optional
	separator argument to comma_index_subentries_tree() to be able to
	use something else than a comma.  Use a space separator to determine
	the identifier to keep it shorter.

2022-11-19  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (%css_element_class_styles): use
	padding-left instead of margin-left for index-entry-level-*, it
	is more appropriate.  Report from Per Bothner.

2022-11-19  Patrice Dumas  <pertusus@free.fr>

	* po_document/Makevars (XGETTEXT_OPTIONS): add --from-code=UTF-8
	for an non-ASCII encoded character in a comment in tp/ext/epub3.pm.
	Update po files.

2022-11-19  Patrice Dumas  <pertusus@free.fr>

	Add Pod/Simple/Texinfo.pm HTML output to wwwdoc

	* doc/Makefile.am (wwwdoc-build, wwwdoc-install): add
	Pod/Simple/Texinfo.pm HTML output, link Pod/Simple/Texinfo.pm and call
	pod2html such that a relative link to Pod/Simple/Texinfo.html is
	actually output.

2022-11-19  Patrice Dumas  <pertusus@free.fr>

	* doc/Makefile.am (po-check, po_document-check), README-hacking,
	po_document/POTFILES.in, tp/Texinfo/ParserNonXS.pm: add __p to
	po-check regexp, remove gdt.  Add po_document-check target similar
	to po-check for po_document/POTFILES.in.  Update po_document/POTFILES.in
	with the files found.
	In ParserNonXS.pm, add a useless $self argument to gdt( in comment to
	avoid getting caught in po_document-check.

2022-11-18  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/Makefile.am (wwwdoc-build): Pass --quiet flag to pod2html.

2022-11-18  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm, tp/Texinfo/Convert/Texinfo.pm,
	tp/Texinfo/Convert/TexinfoMarkup.pm, tp/Texinfo/ParserNonXS.pm
	(_isolate_last_space), tp/Texinfo/Transformations.pm,
	tp/Texinfo/XS/parsetexi/extra.c (add_info_element_oot),
	tp/Texinfo/XS/parsetexi/parser.c (isolate_last_space): move
	comment_at_end from extra to info in element.

2022-11-17  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm, tp/Texinfo/Convert/TexinfoMarkup.pm,
	tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/element_types.txt,
	tp/Texinfo/XS/parsetexi/extra.c (add_info_string),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): rename
	spaces type used for spaces after command before argument or opening
	brace as spaces_after_cmd_before_arg and move it to info in element.

2022-11-17  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi): remove
	redundant conditions.

2022-11-17  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm, tp/Texinfo/Convert/Texinfo.pm,
	tp/Texinfo/Convert/TexinfoMarkup.pm, tp/Texinfo/ParserNonXS.pm
	(_parse_macro_command_line, _close_brace_command)
	(_process_remaining_on_line), tp/Texinfo/XS/parsetexi/close.c
	(close_brace_command), tp/Texinfo/XS/parsetexi/convert.c
	(expand_cmd_args_to_texi), tp/Texinfo/XS/parsetexi/handle_commands.c
	(handle_line_command), tp/Texinfo/XS/parsetexi/macro.c
	(parse_macro_command_line), tp/Texinfo/XS/parsetexi/parser.c
	(process_remaining_on_line), tp/Texinfo/XS/parsetexi/separator.c
	(handle_open_brace): move arg_line and @verb delimiter from extra to
	info in element.

2022-11-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* info/t/recode-C-locale.sh: New test.

2022-11-17  Gavin Smith  <gavinsmith0123@gmail.com>

	* info/util.c (text_buffer_iconv): Avoid infinite loop
	by updating space left argument passed to iconv, and by
	continually expanding the allocated space in the output buffer
	if iconv continues to return E2BIG.
	Hang on UTF-8 encoded file with LC_ALL=C reported by
	Hilmar Preuße <hille42@web.de>.

2022-11-16  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm, tp/Texinfo/Convert/Texinfo.pm,
	tp/Texinfo/Convert/TexinfoMarkup.pm,
	tp/Texinfo/Convert/TextContent.pm, tp/Texinfo/ParserNonXS.pm,
	tp/Texinfo/Structuring.pm, tp/Texinfo/XS/misc.c (xs_abort_empty_line),
	tp/Texinfo/XS/parsetexi/convert.c (expand_cmd_args_to_texi)
	(convert_to_texinfo_internal),
	tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command),
	tp/Texinfo/XS/parsetexi/parser.c (abort_empty_line)
	(isolate_last_space_internal): move spaces_before_argument and
	spaces_after_argument from extra to info key element hash.

	* tp/Texinfo/XS/parsetexi/extra.c (lookup_associated_info)
	(lookup_extra, lookup_info): add lookup_associated_info to lookup in
	an associated information structure.  Add wrappers for the info and
	extra structures.

	* tp/Texinfo/Convert/DocBook.pm (_convert): check 'args' and not
	'extra' to determine if there is a @quotation argument.

	* tp/Texinfo/ParserNonXS.pm (_end_line): remove extra element key if
	empty after removing incorrect command_as_argument.  Avoid
	autovivification.

2022-11-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm, tp/Texinfo/Convert/LaTeX.pm,
	tp/Texinfo/Convert/Plaintext.pm, tp/Texinfo/Convert/Plaintext.pm,
	tp/Texinfo/ParserNonXS.pm (_process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash),
	tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block),
	tp/Texinfo/XS/parsetexi/extra.c (add_info_string_dup),
	tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line),
	tp/Texinfo/XS/parsetexi/tree.c (new_element, destroy_element):
	add an info hash to the tree elements, for information that can not
	be retrieved from the tree.  As a first information moved from
	extra to info, put the @value flag name for @value with unset flag.

2022-11-15  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/api.c (store_additional_info)
	(element_to_perl_hash), tp/Texinfo/XS/parsetexi/end_line.c
	(end_line_starting_block), tp/Texinfo/XS/parsetexi/extra.c
	(add_associated_info_key, lookup_extra),
	tp/Texinfo/XS/parsetexi/tree.c (new_associated_info, new_element)
	(destroy_associated_info, destroy_element),
	tp/Texinfo/XS/parsetexi/tree_types.h (ASSOCIATED_INFO): instead of
	putting the extra array, the number and space directly in the
	element, use a specific structure, ASSOCIATED_INFO to hold those
	three fields.  Replace add_extra_key by add_associated_info_key
	to associate information.  Add initialization, destruction,
	lookup based on the previous code associated to extra.

2022-11-15  Gavin Smith  <gavinsmith0123@gmail.com>

	* configure.ac: Use absolute path for checking for
	npm commands so that rules in js/Makefile.am work.

2022-11-15  Gavin Smith  <gavinsmith0123@gmail.com>

	* js/yarn.lock, js/server.js: Remove files.

2022-11-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Texinfo.pm (root_heading_command_to_texinfo):
	show node name as it appeared in the document.

2022-11-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (special_element_info)
	(_set_root_commands_targets_node_files)
	(_prepare_conversion_tree_units), tp/Texinfo/Translations.pm
	(complete_indices): sort for reproducible function returns
	and messages.

	* tp/Texinfo/Convert/Converter.pm, tp/Texinfo/Convert/HTML.pm,
	tp/Texinfo/Structuring.pm: avoid perl objects in debug messages,
	keeping the perl object name output messages in comments.

	* tp/Texinfo/Convert/HTML.pm (converter_initialize): avoid
	autovivification.

2022-11-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/XS/parsetexi/command_data.awk: remove code for
	compatibility with old format.

2022-11-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Commands.pod, tp/Texinfo/Common.pm
	(_add_preamble_before_content),
	tp/Texinfo/XS/parsetexi/command_data.awk, tp/Texinfo/command_data.txt:
	add preamble flag in command_data.txt instead of determining the hash
	in Texinfo::Common.

2022-11-14  Patrice Dumas  <pertusus@free.fr>

	* Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm
	(_texinfo_handle_element_start, _texinfo_handle_element_end): use
	Texinfo::Commands::brace_code_commands.

2022-11-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/ParserNonXS.pm: do not reset simple_text_commands and
	plain_text_commands to full_text_commands.

	Add a check (not enabled) that all the commands that should have
	nesting checks do.

2022-11-14  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Commands.pod, tp/Texinfo/Common.pm,
	tp/Texinfo/XS/parsetexi/command_data.awk, tp/Texinfo/command_data.txt:
	move command classification out of Texinfo::Common to
	command_data.txt.  Filter out flags not relevant for the XS parser
	when generating command_data.c.
	Update callers.

2022-11-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (EXTRA_DIST), tp/Texinfo/XS/Makefile.am,
	tp/Texinfo/command_data.txt: move command_data.txt from
	tp/Texinfo/XS/ to tp/Texinfo/ since it is now used both in perl
	modules and in the XS parser.

2022-11-13  Patrice Dumas  <pertusus@free.fr>

	* tp/Makefile.am (test_files): add t/init/*.pm files.

2022-11-13  Patrice Dumas  <pertusus@free.fr>

	* util/texi2dvi (--expand): add --iftex and --no-ifinfo to
	makeinfo call.  Use -c TEXINFO_OUTPUT_FORMAT=plaintexinfo
	instead of --macro-expand=- to avoid the conversion to Info
	that could lead to irrelevant messages.

	* doc/texinfo.texi (Format with @command{texi2dvi} or
	@command{texi2pdf}): no more comments set by texi2dvi.

2022-11-13  Gavin Smith  <gavinsmith0123@gmail.com>

	* util/texi2dvi (--expand): Remove lengthy block of code
	using sed to comment out @tex blocks.  Suggestion from Patrice.
	* NEWS, TODO, README-hacking: update

2022-11-12  Werner Lemberg  <wl@gnu.org>

	* doc/texinfo.tex (\unicodechardefs): Add missing % after }.

2022-11-12  Werner Lemberg  <wl@gnu.org>

	* doc/texinfo.tex (\textdegree): Define using \tcfont to
	enable copying the right character from a PDF reader.

2022-11-12  Patrice Dumas  <pertusus@free.fr>

	* util/htmlxref.cnf: add manuals, in particular mono manuals
	and fix some issues with existing manuals. Report from Tzvetelin
	Katchov.
	Rename mairix manual as mairix-el, and smalltalk* manuals as
	gst*.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (\defmacro): Use \begingroup and
	\endgroup around code reading macro arguments, instead
	of \bgroup and \egroup, as the former do not form a
	"subformula" when used in math mode, which affects the
	spacing.  Suggestion from Vincent Lefèvre.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/gendocs.chapter/gendocs_template: New file.
	* doc/Makefile.am (wwwdoc-build): Use it for texi2any_internals
	manual, as default template does not handle chapter-split
	manuals.

2022-11-12  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (HTML Xref 8-bit Character Expansion):
	update codepoint in example of Xref with @point.

2022-11-12  Patrice Dumas  <pertusus@free.fr>

	Use U+22C6 for @point to get a smaller and more pointy star

	* NEWS, doc/texinfo.texi (HTML Xref Command Expansion),
	tp/Texinfo/Convert/Unicode.pm (%extra_unicode_map),
	tp/tests/coverage_macro.texi: use U+22C6 for @point both
	to get a star more in line with the star obtained with TeX
	also more similar to the asterisk also used, more pointy.
	This changes the HTML corss-references to nodes with @point.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* util/htmlxref.cnf (texi2any_internals): Remove node line
	to prefer split-by-chapter.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/Makefile.am (wwwdoc-build): Split texi2any_internals
	by chapter.  Report from Patrice.  Suppress Info node name
	warnings for texi2any_api and texi2any_internals.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* util/htmlxref.cnf (texi2any_internals): Add split-by-chapter
	line.  Report from Patrice.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* README-hacking: remove to-do item

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* README-hacking: collect info on version update.  texi2dvi
	and texi2pdf uploads needed after version update.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* README-hacking, texindex/ti.twjr: Update year reported
	by texindex --version.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\textdegree, \unicodechardefs): Supply definition
	that looks better in a tt font.  Also work inside math.  Report from
	Werner.

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* NEWS: correct spelling of "@definfoenclose" in most
	recent release announcement

2022-11-12  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Macro Details): Add problem with macro
	expansion inside of @math.  Report from Vincent Lefèvre.

2022-11-11  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.tex (\unicodechardefs): Use \arrow instead of
	\expansion for U+2192.  From Patrice.

2022-11-11  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/coverage_macro.texi: add UTF-8 encoded characters near to
	accented characters obtained with @-commands.

2022-11-11  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (%preamble_commands): fix typo on direntry
	command name.

	* tp/tests/layout/formatting.texi: add @latex \DeclareUnicodeCharacter
	for characters not in the default inputenc/fontenc.

2022-11-11  Patrice Dumas  <pertusus@free.fr>

	* tp/tests/coverage_macro.texi: add UTF-8 encoded characters near to
	@-commands to be able to check visually the difference in formatting.

2022-11-10  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/Texinfo/Common.pm, tp/Texinfo/Convert/HTML.pm,
	tp/Texinfo/Convert/Utils.pm, tp/Texinfo/Translations.pm: edits
	translation comments for grammar.

	Update po files.

2022-11-10  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Translation Contexts): edit.

2022-11-10  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Translations Output and Customization):
	translated strings can also be specified for specific elements
	headings customization, refer to the node.

2022-11-10  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Customizing Footnotes@comma{} Tables of
	Contents and About, Special Element Body Formatting Functions):
	merge 'Common Customization of Special Elements' in 'Customizing
	Footnotes@comma{} Tables of Contents and About'.

2022-11-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command): put
	hyperlink within span used for indentation of subentries.

2022-11-09  Gavin Smith  <gavinsmith0123@gmail.com>

	* configure.ac (AM_INIT_AUTOMAKE): Increase required automake
	version to 1.16.2.  From Patrice.

2022-11-09  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Translation Contexts),
	tp/Texinfo/Convert/HTML.pm (%direction_type_translation_context)
	(direction_string, special_element_info): add translation contexts
	for direction strings and special elements headings.

	* tp/Texinfo/Translations.pm (pgdt): find gdt() through the
	first argument object.

2022-11-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm, tp/Texinfo/Convert/LaTeX.pm,
	tp/Texinfo/Convert/Plaintext.pm, tp/Texinfo/Convert/Utils.pm: add
	comments for translators.

	Update po files.

2022-11-09  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (float_name_caption): remove useless
	end of lines in translated strings.  Add comments for translators.

	Update po files.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* po_document/Makevars (XGETTEXT_OPTIONS): update pgdt order.

	* tp/Texinfo/Translations.pm (complete_indices): use '{name} of {class}'
	for index entry for @defcv too.

	Update po files.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* po_document/Makevars (XGETTEXT_OPTIONS): add -cTRANSLATORS

	* tp/Texinfo/Common.pm (%def_map): add either a # TRANSLATORS:
	comment, or use pgdt to give context.  Use pgdt when the same string
	is used for different @-commands.
	Update test results as some translations are missing after getting
	a context.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Report.pm (line_warn, document_warn), tp/texi2any.pl
	(document_warn): remove \n from translated string marked for
	translation with __p.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/IXIN.pm, tp/Texinfo/Convert/TexinfoMarkup.pm,
	tp/Texinfo/Convert/Utils.pm: convert only if contents are defined,
	initialize contents if needed.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (_prepare_conversion, _title_font)
	(_convert): convert only if contents are defined.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Converter.pm (sort_element_counts): use
	node name only if set.
	Add a space between sectioning command and @-command and name.

	* tp/texi2any.pl: fix SORT_ELEMENT_COUNT by requiring the correct
	module.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/DocBook.pm (_convert): avoid formatting when
	contents is not set.

	* tp/Texinfo/Convert/Converter.pm (table_item_content_tree):
	explicitely handle undef $contents argument.

2022-11-08  Gavin Smith  <gavinsmith0123@gmail.com>

	* doc/texinfo.texi (Adding Output Formats): Update name of
	texi2any_internals manual.
	* util/htmlxref.cnf: Add texi2any_api, texi2any_internals.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm: avoid formatting when contents
	is not set, avoiding a crash with empty @titlefont as title.

	* tp/Texinfo/Convert/Plaintext.pm (_convert): do not format
	author if there is no contents, this cannot happen for now but is more
	robust.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Info.pm (_convert): avoid crashes in case
	of empty arguments.

2022-11-08  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/Info.pm (format_image): avoid crash on empty
	@image extension.  Report from Werner Lemberg.

2022-11-08  Gavin Smith  <gavinsmith0123@gmail.com>

	* tp/texi2any.pl: Call _encode_message on messages passed to
	"die" to avoid "Wide character in die" warning.  Report from
	Werner.

2022-11-05  Patrice Dumas  <pertusus@free.fr>

	Do not use FirstInFile in direction strings, document FirstInFile

	* tp/Texinfo/Convert/HTML.pm (direction_string): strip leading
	FirstInFile from direction when looking for the associated strings.

	* doc/texi2any_api.texi (Directions, Direction Strings): document
	directions with FirstInFile prepended.

2022-11-05  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Structuring.pm (check_nodes_are_referenced): consider
	that a node is referenced if it appears in a manu that would be
	setup automatically.  That is if a node has automatic direction,
	no menu, all the children determined by automatic directions are
	considered to be referenced.
	(get_node_node_childs_from_sectioning): avoid spurious
	auto-vivification.

2022-11-04  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Common.pm (pgdt): add pgdt that does nothing to
	be able to marks translated strings with a translation context.

2022-11-04  Patrice Dumas  <pertusus@free.fr>

	* NEWS: update with @subentry, @seealso and @seeentry formatting
	in HTML.

2022-11-04  Patrice Dumas  <pertusus@free.fr>

	Format index entry with @seealso or @seeentry in HTML

	* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command):
	format entry with @seealso or @seeentry similarly with Texinfo
	TeX.

2022-11-04  Patrice Dumas  <pertusus@free.fr>

	Format @subentry in HTML similarly as in printed output

	* tp/Texinfo/Convert/Converter.pm (comma_index_subentries_tree),
	tp/Texinfo/Convert/HTML.pm (_convert_printindex_command):
	pass directly the first element with a possible subentry to
	comma_index_subentries_tree to be able to start frmo a subentry, not
	only from the main entry.
	Format subentries in HTML by indenting and not redoing the formatting
	of previous lines first levels, similar with Texinfo TeX.

2022-11-03  Patrice Dumas  <pertusus@free.fr>

	Also use subentries for index entries sorting in texi2any

	* tp/Texinfo/Structuring.pm (_sort_index_entries, sort_indices):
	collect subentries sorting keys and use them to sort the index
	entries.

2022-11-03  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Simple Customization for Commands Without
	Arguments), tp/Texinfo/Config.pm
	(texinfo_register_no_arg_command_formatting),
	tp/Texinfo/Convert/HTML.pm (_translate_names): allow to set
	a Texinfo code to be translated and converted as command without
	arguments output.

2022-11-02  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Simple Navigation Panel Customization):
	describe ACTIVE_ICONS and PASSIVE_ICONS more explicitely.

2022-11-02  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Simple Navigation Panel Customization):
	add CHAPTER_FOOTER_BUTTONS, update explanations.

2022-11-01  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/LaTeX.pm (%LaTeX_encoding_names_map)
	(_latex_header): associate both a fontenc and an inputenc to
	an encoding.
	Separate the 'fixed' part of the LaTeX use package part of preamble at
	the beginning, including inputenc and fontenc and the usepackage
	lines determined by the use of Texinfo commands.

2022-11-01  Patrice Dumas  <pertusus@free.fr>

	* doc/texinfo.texi (@command{texi2html}): update now that translated
	strings customization is done.

	* doc/texi2oldapi.texi: update to expand history to the point where
	the texi2html implementation was abandonned.  Mark that the part on
	the early texi2any API has been obsoleted by texi2any_api.

2022-11-01  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Common Customization of Special Elements)
	(Special Elements Information Customization)
	(Special Element Body Formatting Functions), tp/Texinfo/Common.pm
	(@variable_other_settables), tp/Texinfo/Config.pm
	(_GNUT_initialize_special_element_info)
	(texinfo_register_special_element_info,
	GNUT_get_special_element_info), tp/Texinfo/Convert/HTML.pm
	(special_element_info, _translate_names, converter_initialize):
	change information on special elements to be set with a function,
	texinfo_register_special_element_info in Texinfo::Config, retrieved in
	the Converter with GNUT_get_special_element_info, instead of using
	customization variables.  Add the special_element_info function to
	retrieve the special elements information in the HTML Converter,
	translating special element headings only when needed.  Allow special
	element headings and targets to be undef.
	Remove SPECIAL_ELEMENTS_HEADING, SPECIAL_ELEMENTS_CLASS,
	SPECIAL_ELEMENTS_DIRECTIONS, special_elements_targets,
	special_elements_file_string and special_elements_order customization
	variables.

2022-10-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_prepare_special_elements): for
	special elements order, use a hash with indices to be used to order
	the special elements instead of an array.  More code, but much easier
	to customize/modify.

2022-10-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm: remove 'Top' from %defaults
	'special_elements_targets', instead hardcode the empty @top target in
	the code.

2022-10-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_load_htmlxref_files): do not
	set htmlxref_files converter state, use a regular array.

	* tp/Texinfo/Convert/HTML.pm (_external_node_href): remove
	_htmlxref, access directly the 'htmlxref' converter state.

2022-10-31  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Translated Strings Customization),
	tp/init/documentation_examples.pm (my_format_translate_string):
	add translation strings customization example in
	documentation_examples.pm and fix in manual.

2022-10-31  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Config.pm (texinfo_register_direction_string_info):
	set converted string structure only if the argument is defined.

2022-10-30  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Direction Strings Customization)
	(Getting Direction Strings), tp/Texinfo/Config.pm
	(texinfo_register_direction_string_info), tp/Texinfo/Convert/HTML.pm
	(direction_string, converter_initialize): add context information to
	direction strings customization to be able to convert in string
	and in normal context.  Update calls of direction_string() to use the
	string context for strings that end up in attributes.

2022-10-30  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Translations.pm (gdt, replace_convert_substrings):
	Split replace_convert_substrings out of gdt, corresponding to the
	substitution of replaced_substrings and conversion to Texinfo
	tree.

	* doc/texi2any_api.texi (Internationalization of Strings Function)
	(Translations Output and Customization)
	(Translated Strings Customization): add a whole chapter on
	strings internationalization, grouping Internationalization of Strings
	Function and information formerly in Basic Formatting Customization.

	* tp/t/test_utils.pl (test), tp/Texinfo/Config.pm
	(_GNUT_initialize_stage_handlers)
	(_GNUT_initialize_no_arg_commands_formatting_strings)
	(_GNUT_initialize_style_commands_formatting_info)
	(GNUT_reinitialize_init_files): add initialization of init files
	information in Texinfo::Config to isolate tests.

2022-10-29  Patrice Dumas  <pertusus@free.fr>

	Add customization of translated strings

	* doc/texi2any_api.texi (Internationalization of Strings Function)
	(Basic Formatting Customization), tp/Texinfo/Convert/HTML.pm (gdt):
	override Texinfo::Translations gdt to call format_translate_string
	user-defined formatting reference if the formatting reference is
	defined.
	Document more arguments of gdt, as they are also used for
	format_translate_string.

2022-10-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (direction_string, _translate_names):
	translate direction strings only when needed and cache them
	afterwards.  Remove the contents of the translated direction
	string types in _translate_names such that they will be re-translated
	in the next direction_string call.

2022-10-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_convert_informative_command, _convert):
	call _translate_names() after documentlanguage conversion in converter
	code instead of calling in conversion function.

2022-10-29  Patrice Dumas  <pertusus@free.fr>

	* tp/Texinfo/Convert/HTML.pm (_translate_names): update gdt call.

2022-10-29  Patrice Dumas  <pertusus@free.fr>

	* doc/texi2any_api.texi (Element Direction Information Type)
	(Direction Strings, Getting Direction Strings), tp/Texinfo/Common.pm
	(@variable_other_settables), tp/Texinfo/Config.pm
	(texinfo_register_direction_string_info)
	(GNUT_get_direction_string_info), tp/Texinfo/Convert/HTML.pm
	(direction_string, _translate_names, converter_initialize)
	(_initialize_output_state): change customization of direction strings
	to be set with texinfo_register_direction_string_info, retrieved in
	the converter by GNUT_get_direction_string_info, translated when
	needed and retrieved in formatting code with direction_string, instead
	of using curtomization variables.  Remove the customization variables
	BUTTONS_TEXT, BUTTONS_NAME, BUTTONS_GOTO, BUTTONS_REL,
	BUTTONS_ACCESSKEY, BUTTONS_EXAMPLE.  Update functions that used the
	BUTTONS_* customization variables.

	* tp/Texinfo/Convert/HTML.pm (ACTIVE_ICONS, PASSIVE_ICONS): do not
	initialize ACTIVE_ICONS and PASSIVE_ICONS to empty strings, instead
	set to undef the customization variables as a whole.

2022-10-27  Patrice Dumas  <pertusus@free.fr>

	Add optional translation context for in-document string translations

	* doc/texi2any_api.texi (Internationalization of Strings Function),
	tp/Texinfo/Translations.pm (gdt, pgdt), po_document/Makevars
	(XGETTEXT_OPTIONS), tp/Texinfo/Convert/HTML.pm (_translate_names):
	add a translation context argument to gdt() and add pgdt() which
	has the translation context as first argument.
	Update po_document/Makevars to have pgdt arguments in the correct
	order.

2022-11-07  Gavin Smith  <gavinsmith0123@gmail.com>

	* README-hacking: new ChangeLog file done


Copyright 2022-2023 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.


texindex originally had its own ChangeLog, the contents whereof are moved here:

2019-05-19         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Prose updates.

2019-05-14         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Typo fixes in main menu.

2019-05-12         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Add escape function and call, fixes things when
	backslash is the command character.  Remove @code around the
	names of the nodes for the helper functions.
	* jrweave: Merge with latest version in TexiWeb Jr. (This
	version use @subentry.)

2019-04-11         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Update about testing - works on 5 different awks!

2019-04-10         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Simplify comparison algorithm.

2019-04-09         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Final polish.

2019-04-08         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Lots of polish.

2019-04-07         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Improve commentary on sorting. Index TRUE and FALSE.
	Make fatal() function more portable.

2019-04-05         Arnold D. Robbins     <arnold@skeeve.com>

	* jrweave: Use @sortas for chunk index entries to avoid < and >.
	Use @subentry also.
	* ti.twjr: Print see also after page numbers. Adjust logic and
	sorting.

2019-04-03         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Revise sorting to use the subkeys.
	Add `@set txiindexlessthanignore'.

2019-04-01         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Finish adding indexing of program variables etc.
	* jrweave: Fix 'do not edit' banner.
	* ti.twjr: Bug fixes in page numbers, seealso mixed with multilevel
	entries.

2019-03-28         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Lots of polish to code and doc. Almost done.
	* ti.twjr: Make sure all chunk names start with an upper case
	letter.

2019-03-27         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Finish up new code. Some initial testing.
	* jrweave, jrtangle: Update to latest versions.

2019-03-25         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Rearrange, start on line parsing.

2019-03-18         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Finish up printing code.

2019-03-17         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Reformat code.

2019-03-15         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Outline algorithm for printing entries.

2019-03-14         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Very initial start at printing entries.

2019-03-13         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Pretty much finish off the requirements chapter.

2019-03-12         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Started expansion of requirements chapter.

2019-03-08         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Fix "the the", http --> https, remove unnecessary
	semicolons, add History section. Remove references to unimplemented
	-o option.

2019-03-06         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Add Command_char to list of special characters.

2015-02-27         Arnold D. Robbins     <arnold@skeeve.com>

	* jrweave, jrtangle: Updated to current version. In particular,
	jrtangle should work out of the box on Windows, thanks to
	Eli Zaretskii.

2015-01-08  Karl Berry  <karl@gnu.org>

	* version.texi: remove, no easy way to automatically update it.
	* ti.twjr,
	* Makefile.am (do_subst, texindex.awk, ti.texi): use substitutions
	for @VERSION@ and @UPDATED@ instead.

	* texindex.in: also look for ../share/texinfo/texindex.awk,
	relative to dirname $0.

	* ti.twjr (Invocation_name): new global, renamed from Prgname.
	(usage): use it, a la coreutils.
	* texindex.in: pass it (value $0), with -v.
	
	* Makefile.am (EXTRA_DIST): dek_idx.png rename.

2015-01-06  Karl Berry  <karl@gnu.org>

	first merge into automake:
	* texindex/Makefile.am: new file.
	* texindex/texindex.in: new file.
	* texindex/README: update.
	(see also ../ChangeLog.)

2014-12-30         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Remove `@xrefautomaticsectiontitle on'. It's now
	supplied by jrweave.
	* jrweave: Updated.

2014-12-26         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Restore use of `@xrefautomaticsectiontitle on'.
	And restore support for vim editing.

2014-12-15  Karl Berry  <karl@gnu.org>

	* ti.twjr: convert to minimal Texinfo conventions
	instead of Arnold's published-book conventions.

2014-12-13         Arnold D. Robbins     <arnold@skeeve.com>

	* jrtangle, jrweave: Updated with versions that include
	github location.

2014-08-07         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Typo fix in an index entry. Change the update month
	and increase version to 0.95.

2014-05-30         Arnold D. Robbins     <arnold@skeeve.com>

	* README: New file.
	* tests: New directory with some regression tests.
	* jrtangle, jrweave: Copied from TexiWebJr to have standalone.

	*****

	* All: Pushed to https://github.com/arnoldrobbins/texindex.

2014-04-26         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Remove summaries appendix. Not needed with better
	formatting from jrweave.  Bump version to 0.94.

2014-04-16         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Bug fix. Multiple files had junk in second and
	subsequent output files. Needed to clear out more data between
	files. Bump version to 0.93.

2014-03-21         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: General cleanup and finalizatio of the text. Bump
	version to 0.92.

2014-03-17         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Fix case in chunk names.

2014-03-14         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Add a few commands to make the PDF nicer.

2014-03-04         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Polished up. Add an XKCD cartoon. Bump version to 0.9.
	* donald_knuth.jpg: New file.

2014-03-03         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Rework where initial extraction is done. Set up to
	produce \{ and \}. Works when used with itself to sort the
	index!  Woo hoo!

2014-02-27         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Revise extraction of the initial as per Karl.
	Still needs more documentation but I think we've hit
	functionally complete.

2014-02-26         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Sorting in and seems to work well. Still need to add
	more descriptive prose.  Did some cleanup and added menus.

2014-02-25         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr: Just about done, except for sorting.

2014-02-24         Arnold D. Robbins     <arnold@skeeve.com>

	* ti.twjr, texinfo.tex, Makefile: Initial check-in.

Copyright 2014, 2015 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.

