2023-10-18 Gavin Smith <gavinsmith0123@gmail.com>
Texinfo 7.1
* configure.ac, NEWS: update
2023-10-18 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo-tex-test.texi (Line macros): Avoid checking
example with leading space on a line after an "@" continuation
character, as TeX's treatment of leading space on a line differs
from that of texi2any.
2023-10-18 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.texi (Inserting Quotation Marks): Place @code around
cindex entries for ` and `` to avoid them being changed to ' and ''
in the Info index.
2023-10-17 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking: reorder instructions slightly
2023-10-17 Gavin Smith <gavinsmith0123@gmail.com>
* po_document/adjust-translations.pl: new script.
* po_document: Run the script to adjust *.po files.
* README-hacking: update to mention this script.
2023-10-16 Patrice Dumas <pertusus@free.fr>
Update tex-html test results in tp/tests
2023-10-15 Gavin Smith <gavinsmith0123@gmail.com>
* tp/tests/coverage_macro.texi: Insert further blank lines in
blocks of glyph commands.
2023-10-15 Gavin Smith <gavinsmith0123@gmail.com>
* README-hacking: update
2023-10-15 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/XS/parsetexi/api.c (reset_parser): Update comment
re using malloc/free.
2023-10-15 Eli Zaretskii <eliz@gnu.org>
* tp/Texinfo/XS/parsetexi/api.c (reset_parser),
* tp/Texinfo/XS/xspara.c
(xspara__add_pending_word, xspara_end, xspara__add_next):
Add dTHX to allow compilation on MinGW.
[Note from Gavin: this may be needed because these functions
call fprintf.]
2023-10-14 Gavin Smith <gavinsmith0123@gmail.com>
pretest 7.0.94
2023-10-14 Patrice Dumas <pertusus@free.fr>
Update tex-html test results in tp/tests
2023-10-13 Gavin Smith <gavinsmith0123@gmail.com>
* tp/tests/coverage_macro.texi: Insert blank lines in blocks
of glyph commands in attempt at avoiding divergent test results
on MinGW, due to varying wcwidth values. Report from Eli.
2023-10-12 Patrice Dumas <pertusus@free.fr>
Update test results in tp/tests
2023-10-12 Patrice Dumas <pertusus@free.fr>
update po files
2023-10-12 Patrice Dumas <pertusus@free.fr>
Use translation context for definition aliases in converters
* tp/Texinfo/Convert/HTML.pm (_convert), tp/Texinfo/Convert/LaTeX.pm
(_convert), tp/Texinfo/Convert/Plaintext.pm (_convert),
tp/Texinfo/Convert/Text.pm (_convert): use untranslated extra
translation context if set. Report and analysis by Gavin.
2023-10-12 Patrice Dumas <pertusus@free.fr>
Add definition aliases translation context in the tree if needed
* tp/Texinfo/Common.pm (pgdt_context, %def_map),
tp/Texinfo/ParserNonXS.pm (_parse_def), tp/Texinfo/XS/parsetexi/def.c
(DEF_ALIAS, def_aliases, parse_def): add pgdt_context to mark strings,
which returns the context too. Use the context in _parse_def to
add it to the tree for untranslated type. Similarly in def_aliases in
def.c add a translation context if needed and add it to the tree in
parse_def. Report and analysis by Gavin.
* po_document/Makevars (XGETTEXT_OPTIONS): add pgdt_context.
2023-10-12 Gavin Smith <gavinsmith0123@gmail.com>
* tp/maintain/regenerate_docstr.sh: Correct path to Makefile.am.
2023-10-12 Gavin Smith <gavinsmith0123@gmail.com>
* tp/tests/coverage_macro.texi: Insert blank lines in block
of accent commands to avoid divergent test results on MinGW,
due to varying wcwidth values. Report from Eli.
2023-10-08 Eli Zaretskii <eliz@gnu.org>
* install-info/install-info.c (readfile):
Correct check for whether a compression program is being used
in order to correctly close a file.
2023-10-08 Eli Zaretskii <eliz@gnu.org>
* install-info/install-info.c (open_possibly_compressed_file):
Close stdin file description in main process after calling popen
on compression program. This allows the file to be removed or
renamed on Windows.
2023-10-08 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/XS/parsetexi/input.c (next_text):
Use positive value for getline argument. From Eli.
2023-10-08 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/XS/parsetexi/input.c (next_text):
Initialise argument to getline to 0, as per documentation.
Attempt to fix crash under MinGW, reported by Eli.
2023-10-07 Gavin Smith <gavinsmith0123@gmail.com>
* tp/Texinfo/XS/xspara.c (xspara__print_escaped_spaces):
Avoid unnecessary use of malloc/free. malloc/free would
require use of dTHX on MS-Windows. Report from Eli Zaretskii.
2023-09-30 Gavin Smith <gavinsmith0123@gmail.com>
pretest 7.0.93
2023-09-30 Gavin Smith <gavinsmith0123@gmail.com>
* po_document/fix-translations.sh: Remove file.
2023-09-27 Gavin Smith <gavinsmith0123@gmail.com>
Allow translation of @emph{See}
* tp/Texinfo/Convert/HTML.pm (_convert_printindex_command):
Change "@emph{See}" in translated string to "@emph{See@:}" in
translated string. This avoids a msgfmt error
"a format specification for argument 'See' doesn't exist in 'msgstr'"
due to {See} being seen as a placeholder for a string (with
perl-brace-format). Adding the non-alphabetic characters "@:"
inside the braces stops this. Report from Petr Pisar for Czech
translation.
2023-09-21 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/XS/configure.ac: do not reset CPPFLAGS to
user-provided PERL_EXT_CFLAGS, as CPPFLAGS is modified by
gnulib macros (specifically libunistring). Report from Bruno Haible.
2023-09-21 Patrice Dumas <pertusus@free.fr>
* configure.ac: require Unicode::Normalize. Report from Bruno on
CentOS Stream 9 where this module may not be installed.
2023-09-20 Gavin Smith <gavinsmith0123@gmail.com>
Update gnulib
* (top-level): Run "gnulib-tool --add-import"
* tp/Texinfo/XS: Run "gnulib-tool --add-import".
A gnulib update needed at top level to fix compilation on
AIX 7.3.1. Report from Bruno Haible.
2023-09-19 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo-tex-test.texi (TOC display): Add new example of
section name with @/ in it, from Karl Berry. Before the last change,
this led to an overfull hbox.
2023-09-19 Gavin Smith <gavinsmith0123@gmail.com>
Simplify toc/index entry formatting
* doc/texinfo.tex (\entry): Eliminate code allowing stretching
into the margins, as it complicates the code and was questionable
whether this was a good idea in the first place. Do not hardcode
70:30 ratio for splitting text across multiple lines.
2023-09-17 Patrice Dumas <pertusus@free.fr>
* tp/tests/many_input_files/different_encodings.sh: skip test if
$PERL_UNICODE_COLLATE_OK is no, as this test requires compatible
unicode collation. Report from Gavin based on Nelson Beebe pretest
test results.
2023-09-13 Gavin Smith <gavinsmith0123@gmail.com>
pretest 7.0.92
2023-09-13 Gavin Smith <gavinsmith0123@gmail.com>
* install-info/install-info.c (main) <--description>:
Free string when concatenating text.
2023-09-13 Gavin Smith <gavinsmith0123@gmail.com>
* install-info/install-info.c (output_dirfile):
Free string passed to popen.
2023-09-13 Gavin Smith <gavinsmith0123@gmail.com>
* install-info/install-info.c (open_possibly_compressed_file):
Free string passed to popen.
2023-09-13 Gavin Smith <gavinsmith0123@gmail.com>
* install-info/install-info.c (reformat_new_entries): Free
strings set by split_entry.
2023-09-13 Gavin Smith <gavinsmith0123@gmail.com>
* install-info/install-info.c (readfile): Do not truncate input
file at 8192 bytes. Report from Andreas Schwab.
2023-09-12 Gavin Smith <gavinsmith0123@gmail.com>
* doc/texinfo.tex (\newlineloadsconf): Hook into definitions
made with \envdef as well as ends-of-lines and commands defined
with \parsearg. Werner Lemberg reported an error when a @tex block
followed "\input texinfo" immediately.
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>
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 .
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 &symbol; for @& to avoid using the &
entity already used for & in text in XML. &symbol; ultimately maps
to & 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.