2019-09-23 Gavin Smith 6.7. * configure.ac, NEWS, util/texi2dvi, util/texi2pdf, doc/refcard/txirefcard.tex: version 2019-09-23 Gavin Smith Avoid gcc warnings about strncat. * install-info/install-info.c (split_entry, format_entry): Replace some calls to strncat with strcat. This avoids a "'strncat' specified bound 2 equals source length [-Wstringop-overflow=]" warning with gcc 8. 2019-09-21 YOKOTA Hiroshi (tiny change) Japanese language support changes. * doc/short-sample-ja.texi: Include version.texi. * doc/Makefile.am: Install texinfo-ja.tex. * doc/texinfo.tex: Support Lua 5.3+ number syntax Lua 5.3 and newer supports floating point number. But some old code doesn't know that Lua supports floating point numbers. This patch avoids some unexpected floating point numbers in Lua code. * doc/txi-ja.tex: Update LuaTeX hack "comment" command is now unified to "c" command. Origin of this hack: https://ja.osdn.net/projects/luatex-ja/ticket/36096 * doc/info-fr.texi: Change encoding to UTF-8. * doc/info-fr.texi, doc/info-stnd.texi, doc/short-sample-ja.texi: Do not wrap @top node in @ifnottex. 2019-09-19 Gavin Smith pretest 6.6.92 * configure.ac: version 2019-09-17 Gavin Smith pretest 6.6.91 * configure.ac: version 2019-09-08 Gavin Smith Fix LuaTeX errors in anchors. * doc/texinfo.tex (\pdfescstr) [LuaTeX]: Change definition of PDFescstr so to only output tokens of catcode 10 or 12 back into TeX. This is intended to prevent errors when using @-commands inside anchors, reported by Didier Verna. 2019-08-26 Gavin Smith * tp/Texinfo/Convert/Plaintext.pm (_convert) : Put a pending space in the output so it is not included in the node name when INFO_SPECIAL_CHARS_QUOTE is set. Faulty menu in output reported by Didier Verna. 2019-08-25 Gavin Smith * doc/texinfo.tex (\atdummies, \definedummies): Define \& and \ampchar as dummies so they are written properly to the index files. Report from Didier Verna. 2019-08-19 Eli Zaretskii * info/pcterm.c (kill): Don't use RETSIGTYPE, it is no longer defined by config.h. 2019-08-18 Gavin Smith Fix @value in index entry. * doc/texinfo.tex (\dummyvalue): Use \string\value instead of \noexpand\value. This means that a backslash is correctly used as the escape character in the output, rather than an at sign. 2019-08-18 Gavin Smith * doc/texinfo-tex-test.texi (Test of macros with @ in index): Comment out, as it doesn't work with \ as the index file escape character. 2019-08-18 gettextize * gnulib/m4/gettext.m4: Upgrade to gettext-0.20.1. * gnulib/m4/intlmacosx.m4: Upgrade to gettext-0.20.1. * gnulib/m4/nls.m4: Upgrade to gettext-0.20.1. * gnulib/m4/po.m4: Upgrade to gettext-0.20.1. * gnulib/m4/progtest.m4: Upgrade to gettext-0.20.1. * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.20. 2019-08-18 Gavin Smith * tp/Texinfo/Convert/HTML.pm (default_contents): Use for links to index nodes. * NEWS: Mention change. 2019-08-18 Gavin Smith * NEWS: Remove announcement of use of @ as escape character in index files. 2019-08-16 Gavin Smith Use "rel" attribute to indicate index nodes. * tp/Texinfo/Convert/HTML.pm (_convert_menu_entry_type): If the target node in a menu entry is an index node, then set the "rel" attribute on the element to "index". Remove commented-out code. * NEWS: Mention change. 2019-08-16 Gavin Smith Mark index nodes. * tp/Texinfo/ParserNonXS.pm (_parse_texi) , * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command): If @printindex is seen, record that the current node is an index node by setting the "isindex" extra value. 2019-08-16 Gavin Smith * doc/texinfo.texi (Minimum): Put .texi first in the list and remove footnote about preferring the "longer extensions". Automake warns if .texi is not used. Report from Дилян Палаузов . 2019-08-16 Gavin Smith * doc/texinfo.texi (GNU Sample Texts): Mention UPDATED-MONTH variable in version.texi. Report from Дилян Палаузов . 2019-08-16 Gavin Smith * doc/texinfo.texi (GNU Sample Texts): Link to "Texinfo" node of Automake manual directly. Report from Дилян Палаузов . 2019-08-16 Gavin Smith * doc/texinfo.texi (Beginning and Ending a File): Minor grammar fix. Report from TonyMc . 2019-07-26 Gavin Smith * doc/texinfo.texi (Node Menu Illustration): Minor grammar fix. Report from Дилян Палаузов . 2019-07-11 Gavin Smith * util/texi2html: Remove file. It has not worked for a long time due to invoking texi2any incorrectly. Report from Adam Spiers. 2019-06-14 Patrice Dumas Do not output HTML target when there is only one element in file * tp/Texinfo/Convert/HTML.pm (count_elements_in_filename, command_href, output): add 'elements_in_file_count' to converter object, set equal to 'file_counters' to record and keep the information of the number of elements in files. Add count_elements_in_filename() to return this number. Do not output an HTML target for hrefs to elements (elements are nodes in most cases) when there is only one element in the href destination file. 2019-06-01 Gavin Smith * doc/texinfo.tex (\printindex): Remove \message printing informative statement. Report from Karl Berry. 2019-05-18 Gavin Smith * doc/texinfo.tex: Specify "@set txiindexescapeisbackslash" in order to use backslashes in index files by default. 2019-05-18 Arnold D. Robbins * doc/texinfo.tex (\definedummies): Define \subentry as a dummy. (\indexwriteseealso, \indexwriteseeentry): Fix writing 'seeentry' and 'seealso' commands for when backslash is the escape. 2019-05-13 Gavin Smith * tp/tests/run_parser_all.sh: Do not use a staging directory to remove CVS and .svn directories, as we don't use CVN or SVN. 2019-05-09 Gavin Smith * util/htmlxref.cnf: Add eww. From Tsuyoshi Kitamoto . 2019-05-06 Gavin Smith Fix finding translation files in out-of-source build. * tp/Texinfo/ModulePath.pm.in ($builddir, $srcdir): Save builddir instead of srcdir. * tp/Texinfo/XSLoader.pm: Pass on $Texinfo::ModulePath::builddir to XS modules. * tp/Texinfo/XS/parsetexi/api.c (init), * tp/texi2any.pl: When looking for the directory containing the translation files, check in $Texinfo::ModulePath::builddir and nowhere else. 2019-05-06 Gavin Smith * tp/tests/t/stdout.sh, * tp/tests/t/stdout_split.sh: Remove tests. 2019-05-06 Gavin Smith * tp/tests/Makefile.am (copy-tests): Do not try to make target in subdirectory. 2019-05-06 Gavin Smith * tp/t/94htmlxref.t: Remove a ".texi" suffix given as the manual argument to an xref command. 2019-05-06 Gavin Smith * tp/t/30sectioning.t: Remove a ".texi" suffix given as the manual argument to an xref command. 2019-05-05 Gavin Smith * tp/Texinfo/Convert/HTML.pm (_external_node_href): Do not strip off an arbitrary extension from the name of an external manual - only strip of ".info". Ludovico Courtès reported that extensions were being used to distinguish translations of manuals into other languages. 2019-04-28 Gavin Smith * tp/Texinfo/XS/Makefile.am (XSParagraph_la_LDFLAGS, Parsetexi_la_LDFLAGS): Put $(LTLIBINTL) and $(LTLIBICONV) in here. Remove $(TERMLIBS) which was not used. Attempt to fix building under Cygwin, which Hans-Bernhard Bröker reported was broken. 2019-04-28 Gavin Smith Set TEXI2DVI in Makefile. * doc/Makefile.am: Set TEXI2DVI to use the texi2dvi in the Texinfo sources rather than an installed one. 2019-04-27 Gavin Smith Ignore spaces before @seeentry, @seealso and @sortas. * tp/Texinfo/ParserNonXS.pm (_parse_texi): Split off an ignored spaces element if one of these commands is seen. * tp/Texinfo/XS/parsetexi/parser.c (isolate_last_space_menu_entry_node, isolate_trailing_space): Rename and add a parameter. (process_remaining_on_line): After these commands are seen, call isolate_trailing_space. * tp/t/09indices.t (subentry_and_sortas): New test. This allows these commands to occur at the end of index commands without trailing spaces being present in the output. 2019-04-27 Gavin Smith "See also" index entries for DocBook output. * tp/Texinfo/Convert/DocBook.pm (_index_entry): Output or elements if @seeentry or @seealso directives were given for the index entry. 2019-04-27 Gavin Smith * tp/Texinfo/ParserNonXS.pm (_enter_index_entry), * tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry), * tp/Texinfo/XS/parsetexi/api.c (build_single_index_data): Always create index entry object but do not add it to array of entries for the index if there was a @seeentry or @seealso. 2019-04-27 Gavin Smith * tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry): Skip if 'seeentry' or 'seealso' was recorded. * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): Record values of 'seeentry' and 'seealso' the same way as for 'sortas'. Ignore spaces following these commands. * tp/Texinfo/XS/parsetexi/command_data.txt: Add 'seeentry', 'seealso'. Remove comments referring to line numbers in Common.pm. 2019-04-27 Gavin Smith * tp/Texinfo/Common.pm (%in_index_commands, %brace_commands): Add 'seeentry', 'seealso'. These are handled the same way as 'sortas'. * tp/Texinfo/ParserNonXS.pm (%command_ignore_space_after): Add 'seeentry', 'seealso'. (_parse_texi) : Record values of 'seeentry' and 'seealso' in extra hash the same way as for 'sortas'. (_enter_index_entry): Skip the index entry if there is a 'seeentry' or 'seealso' directive. * tp/Texinfo/Convert/Plaintext.pm (_convert): Do not warn about unhandled commands if a 'seeentry' or 'seealso' directive is present. * tp/t/09indices.t (seeentry): Add test. 2019-04-21 Gavin Smith Remove TOP_NODE_FILE. * doc/texinfo.texi (HTML Customization Variables): Remove TOP_NODE_FILE. * tp/Texinfo/Common.pm (@variable_string_settables): Remove TOP_NODE_FILE. * tp/Texinfo/Convert/Converter.pm (_top_node_filename): Do not look at TOP_NODE_FILE. * tp/Texinfo/Convert/HTML.pm (%defaults): Use TOP_FILE instead of TOP_NODE_FILE. (_set_variables_texi2html): Do not override value of TOP_FILE to an empty string. * tp/init/chm.pm: Do not try to set TOP_NODE_FILE. 2019-04-03 Patrice Dumas Use EXTENSION instead of hardcoding html and add extension to TOP_NODE_FILE_TARGET * tp/Texinfo/Convert/Converter.pm (_top_node_filename), tp/Texinfo/Convert/HTML.pm (_set_root_commands_targets_node_files): use EXTENSION instead of .html. * tp/Texinfo/Convert/HTML.pm (%defaults, _external_node_href), doc/texinfo.texi (TOP_NODE_FILE_TARGET): default is now index.html. * tp/Texinfo/Convert/HTML.pm (_external_node_href): use $external_file_extension instead of $extension to make clear that it is not the same as EXTENSION. * tp/t/init/t2h_singular.init (t2h_node_file_name): add that function to replace .htm with .html for node files. * tp/tests/tex_html/list-of-tests: update to match SHORTEXTN removal. 2019-04-12 Gavin Smith Remove some customization variables. * tp/texi2any.pl (HTML Customization Variables): Remove NODE_FILE_EXTENSION, SHORTEXTN. (Other Customization Variables): Remove NODE_FILENAMES. Remove mention of INPUT_ENCODING_NAME * NEWS: Mention removal. 2019-04-12 Gavin Smith Remove NODE_FILE_EXTENSION. * tp/Texinfo/Convert/HTML.pm (%defaults): (_set_root_commands_targets_node_files, _set_pages_files) (_external_node_href, output), * tp/Texinfo/Convert/Converter.pm (_set_pages_files, output) (_top_node_filename) Do not set or refer to NODE_FILE_EXTENSION. The extension for html files will always be '.html'. Remove some commented-out code. 2019-04-12 Gavin Smith Remove SHORTEXTN. * tp/Texinfo/Convert/HTML.pm (converter_initialize): Do not check SHORTEXTN customization variable. 2019-04-12 Gavin Smith Remove NODE_FILENAMES. * tp/Texinfo/Convert/HTML.pm (output, %defaults, _set_pages_files), * tp/Texinfo/Convert/Converter.pm (output, _top_node_filename) (_set_pages_files): Do not set or refer to NODE_FILENAMES. * tp/Texinfo/Convert/HTML.pm (_set_pages_files), * tp/Texinfo/Convert/Converter.pm (_set_pages_files): Remove code for naming output files with a number suffix (this was the old texi2html behaviour). 2019-04-12 Gavin Smith * doc/texinfo.tex (\defsl): Declare with OT1 encoding instead of OT1TT to avoid pdftex warning about conflicting CMap's. 2019-04-12 Gavin Smith * doc/texinfo.texi (Preparing for TeX): Clearer wording about where TeX finds input files. Report from Alan Mackenzie. Update link to texinfo.tex. Do not discuss how to set environment variables in csh. 2019-04-11 Arnold D. Robbins * doc/texinfo.texi: Update chapter on Indexing to cover new @seeentry, @seealso and @subentry commands. General smaller revisions to that chapter. 2019-04-08 Gavin Smith Make texi2dvi --tidy more reliable. * util/texi2dvi (xref_files_save) [--tidy]: Check for auxiliary files in the same directory as the input file, and remove them. (cd_dir): Possibly make $in_dir absolute. * NEWS: Mention texi2dvi changes. 2019-04-08 Gavin Smith Do not change directory variables when changing directory. * util/texi2dvi (cd_dir, cd_orig): Do not change variables containing pathnames. Store a prefix to use with these variables in $rel. If either the new directory or in_input is absolute, change all the pathname variables to be absolute. (xref_files_save, xref_files_changed): Prefix $work_bak with $rel. (run_tex, run_hevea): Prefix $in_input with $rel. No functional changes intended. The code to add and remove the prefix from all of the variables had tricky quoting. $rel is only needed in a small number of places in functions called from run_tex_suite. 2019-04-08 Gavin Smith * util/texi2dvi (make_openout_test): Call make_tex_cmd before cd_dir. This means that no calls to ensure_dir are called between cd_dir and cd_orig. 2019-04-08 Gavin Smith * util/texi2dvi (run_tex): Remove use of make_tex_cmd. I could find nothing in make_tex_cmd that would change the result between uses of run_tex. (run_tex_suite): Move use of make_tex_cmd here. 2019-04-07 Gavin Smith * doc/texinfo.texi (HTML Customization Variables): Remove text "For HTML" from the description of each variable, as it is clear that these variables are all for HTML. 2019-04-07 Gavin Smith * doc/texinfo.texi (latex2html Customization Variables): New node, split from 'HTML Customization Variables'. 2019-04-07 Gavin Smith Remove @math and @tex as 'global commands.' * tp/Texinfo/ParserNonXS.pm (%global_multiple_commands), * tp/Texinfo/XS/parsetexi/api.c (build_global_info2), * tp/Texinfo/XS/parsetexi/parser.c (register_global_command), * tp/Texinfo/XS/parsetexi/parser.h (GLOBAL_INFO): Remove 'math' and 'tex'. Reverts change on 2019-04-01. Suggestion from Patrice. 2019-04-06 Gavin Smith * doc/texinfo.tex (\printindex): Give an error message with \errmessage, instead of putting a message in the output document, in order to give a hard failure in case an index file has a backslash. Suggestion from Karl. Old index files will still be upgraded by texi2dvi due to the previous change. 2019-04-06 Gavin Smith * util/texi2dvi: If TeX exits with a bad status, do not quit immediately: check if the xref files have changed. If they have, the error might be corrected on subsequent runs. This is intended to help with moving index files to use @ as the escape character instead of \. 2019-04-03 Patrice Dumas use tree in HTML handlers to collect @-command to be processed * tp/Texinfo/Convert/HTML.pm (run_stage_handlers): pass document tree root. * tp/Texinfo/Common.pm (collect_commands_in_tree): add. * tp/init/tex4ht.pm (tex4ht_prepare), tp/init/latex2html.pm (l2h_process): find the math and tex command using Texinfo::Common::collect_commands_in_tree instead of relying on having those commands collected by the parser. 2019-04-03 Gavin Smith Optionally use backslash as index escape character. * doc/texinfo.tex (\doindwrite): If the user gave '@set txiindexescapeisbackslash', then use \ as the escape character in the index file. (\splitindexentry): Use \string to output \indexlbrace etc. (\printindex): Under the same condition, read the sorted index file with backslash as an escape character. Expand the advice on how to print the indices properly. 2019-04-03 Gavin Smith Do not output literal backslash character in index files. * doc/texinfo.tex (\splitindexentry): In the sort key, use '{@indexbackslash }' for a backslash, instead of a backslash character. (\initialglyphs): Recognize \indexbackslash. (\doindwrite): Output a backslash character as '@backslashchar {}'. (\definedummies): Define \backslashchar as a dummy. * doc/texinfo-tex-test.texi (Test of certain characters in index): Add more examples. This is intended to make it more reliable for either backslash or at sign to be used as the escape character in index files, for use with old versions of texi2dvi. (This also allows reading in old index files that used the \indexbackslash sequence, although that is not very important.) 2019-04-03 Gavin Smith * js/info.js (scan_toc): Use getElementById instead of querySelector, as id's are unique. From Mathieu. 2019-04-02 Gavin Smith * doc/texinfo.tex (\urefallowbreak): Reduce stretch from 1fil to 4em. This discourages breaking too early in the line. 2019-04-02 Gavin Smith Support links between locally-installed manuals. * js/info.js (external_manual_url_p): New function. (fix_links): If a link to an external manual, open link in the same browser tab. (on_click): No special handling of links to external manuals. This is intended to support links between locally-installed HTML manuals. For this to work, links to other manuals must begin with "../", so htmlxref.cnf would need to be overridden. 2019-04-02 Patrice Dumas Avoid side effects in HTML formatting fonctions that can be overriden * tp/Texinfo/Convert/HTML.pm (_convert_heading_command, _convert_menu_command, _convert): move code with side effects (setting 'seenmenus' and using 'seemenus' to add automatically a menu) out of formatting functions that can be overriden by a user to main converter function. * tests/tex_html: regenerate formatting_singular tests that overrides the menu formatting function. 2019-04-01 Patrice Dumas In _element_direction() output TOP_NODE_UP related infos even if element is not defined * tp/Texinfo/HTML.pl (_element_direction): output TOP_NODE_UP related infos even if element is not defined. Explain in a comment when element is undef. 2019-04-01 Gavin Smith Add @math and @tex as 'global commands.' * tp/Texinfo/ParserNonXS.pm (%global_multiple_commands), * tp/Texinfo/XS/parsetexi/api.c (build_global_info2), * tp/Texinfo/XS/parsetexi/parser.c (register_global_command), * tp/Texinfo/XS/parsetexi/parser.h (GLOBAL_INFO): Add 'math' and 'tex'. * tp/init/latex2html.pm, tp/init/tex4ht.pm: Do not add values to GLOBAL_COMMANDS. Patrice Dumas reported that tex4ht.pm and latex2html.pm were broken since the GLOBAL_COMMANDS array was removed as a customization value for init files (on 2018-10-13). 2019-04-01 Gavin Smith Make search-next and search-previous work for tree search. * info/session.c (info_search_next, info_search_previous): If there is an active tree search, carry on with it. This means that the '}' and '{' keys can be used to go through the results from a tree search (instead of 'M-}' and 'M-{'). (info_search_1): Disable any active tree search. * NEWS: Mention change. 2019-03-31 Gavin Smith Remove XS po directory. * tp/Texinfo/XS/po: Remove. * tp/Texinfo/XS/configure.ac (AC_CONFIG_FILES): Remove po/Makefile.in. This keeps AM_GNU_GETTEXT in the XS subdirectory. Apparently AM_PO_SUBDIRS is also still used, even there is no po subdirectory. 2019-03-31 Gavin Smith Only use a single po directory. * po/POTFILES.in: List parsetexi input files. * po/Makevars (XGETTEXT_OPTIONS): Move options from tp/Texinfo/XS/po/Makevars. 2019-03-31 Gavin Smith Find translation directory for parsetexi. * tp/Texinfo/XS/parsetexi/api.c (find_locales_dir): New function. (init): Call it. * NEWS: Mention change. 2019-03-31 Gavin Smith Pass on srcdir to XS modules. * tp/Texinfo/ModulePath.pm.in ($srcdir): New variable. (init) [uninstalled]: Set it. * tp/Texinfo/XSLoader.pm: Pass on $Texinfo::ModulePath::srcdir to XS modules. * tp/Texinfo/XS/parsetexi/api.c (init): Save value of srcdir. 2019-03-31 Gavin Smith Output message if file ended inside Top node. * doc/texinfo.tex (\omittopnode): Redefine @bye and put a message in the output file to say the Top node was omitted. This is most likely for short test files that consist only of a Top node. 2019-03-31 Gavin Smith * NEWS: Add some news items. 2019-03-31 Gavin Smith Make texi2dvi --batch the default. * util/texi2dvi: (batch): Remove variable. (usage): Do not mention --batch. (make_tex_command): Unconditionally run in batch mode. (make_openout_test): Do not save and restore $batch. (input_file_name_decode): Do not set $batch for AUC-Tex input. (usage): Remove a comment about 'echo' compatibility. 2019-03-31 Gavin Smith * doc/texinfo.texi (Inserting Unicode): Include the IJ ligature in the output. Do not say that a UTF-8 encoding must be explicitly requested. 2019-03-30 Gavin Smith Module search path changes (no functional changes intended). * tp/texi2any.pl: Only check if one variable has been substituted by the Makefile to create this file. Do not set environment variables: only add a directory to @INC so that Texinfo:ModulePath might be found. Pass an 'updirs' argument into Texinfo::ModulePath. * tp/Texinfo/ModulePath.pm.in (init): Change argument from 'uninstalled' to 'installed', so that the uninstalled case is the default. Place code for using uninstalled files and checking environment variables inside a conditional so it is clearer when this code is used. Do not set any environment variables: use them for input only. 2019-03-30 Gavin Smith Introduce blank lines in test case. * tp/t/converter_tests.t ($at_commands_in_refs_text): Introduce blank lines in input Texinfo to avoid problems with varying line break decisions due to different wcwidth implementations. * tp/t/converters_tests.t (at_commands_in_refs): Do not skip. (at_commands_in_refs_utf8): Do not skip this one either, since we are now counting combining accents in the XS code as having width. 2019-03-30 Gavin Smith Skip tests instead of marking them as expected failures. * tp/t/test_utils (test): If a test case is marked as 'todo', always skip the test with 'skip' from Test::More, instead of putting it inside a 'TODO' block. Remove some commented-out code. 2019-03-30 Gavin Smith Skip a test. * tp/t/converters_tests.t (at_commands_in_refs): Skip plaintext output until we can get consistent results on Solaris 10 and Solaris 11. 2019-03-30 Gavin Smith * tp/t/test_utils.pl: Do not print errors from conversions. 2019-03-29 Gavin Smith Use 'utf-8' instead of 'utf-8-strict' as name of encoding. * tp/Texinfo/Common.pm (%default_parser_state_configuration) (open_out, count_out): Use 'utf-8' instead of 'utf-8-strict' as the name of the perl encoding. * tp/Texinfo/ParserNonXS.pm (_open_in): Check for 'utf-8' instead of 'utf-8-strict'. Add a missing closing parenthesis in input filter declaration. * tp/Texinfo/XS/parsetexi/parser.c (wipe_global_info): Use 'utf-8' instead of 'utf-8-strict'. On perl v5.8.4, there was an error 'Cannot find encoding "utf-8-strict"'. (This version is used on the OpenCSW buildfarm.) 2019-03-28 Arnold D. Robbins * texinfo.tex: @see is now @seentry, per Gavin. Removed spurious definition of \putwordSee. 2019-03-27 Patrice Dumas Set Top node Up per format and not in Structuring. * tp/Texinfo/Common.pm, tp/Texinfo/Convert/Converter.pm: set TOP_NODE_UP in converter defaults. * tp/Texinfo/Structuring.pm, tp/Texinfo/Convert/HTML.pm, tp/Texinfo/Convert/Info.pm, doc/texinfo.texi: do not set the Top node Up in Structuring but in converters. Only use TOP_NODE_UP and set an Up URL/name in HTML when TOP_NODE_UP_URL is set and do not modify all the links of the TOP_NODE_UP, only the Top node Up links. 2019-03-27 Patrice Dumas * tp/init/chm.pm, tp/init/latex2html.pm, tp/init/tex4ht.pm: use __() from Texinfo::Common 2019-03-27 Gavin Smith Fix test of XS modules. * tp/Texinfo/XS/TestXS.pm: Declare init function as having a single argument, and return a true value. Otherwise the test for XS modules fails. Report from Patrice Dumas. 2019-03-27 Gavin Smith Small changes. * tp/Texinfo/XS/xspara.c (xspara_add_text): Add a comment. * tp/tests/sectioning/Makefile.am: Do not try to distribute a removed file. * tp/Texinfo/XS/po/texinfo.pot: Untrack in git. 2019-03-27 Gavin Smith Make test results consistent for older versions of perl. * tp/Texinfo/Convert/Plaintext.pm (@U): Check argument to @U before attempting to output the character. The check inside eval doesn't work for old versions of perl. Trim down some comments. 2019-03-25 Gavin Smith Make test results consistent between XS and non-XS modules. * tp/Texinfo/XS/xspara.c (xspara_add_text): Treat characters with wcwidth 0 the same as those with wcwidth 1. This is wrong, but gives consistency for the test results. 2019-03-24 Arnold D. Robbins @see in index entries (experimental). * doc/texinfo.tex (\see, \putwordSee): Add default definitions for reading in a sorted index file. (\splitindexentry): Record value of any @see directive in the index entry inside \pagenumbertext. Make @see expansion empty when getting the sort key. 2019-03-24 Gavin Smith * util/htmlxref.cnf: Update 'mit-scheme-imail'. From Thérèse Godefroy. 2019-03-24 Gavin Smith * tp/Texinfo/XS/parsetexi/parser.c (wipe_global_info): Set input_encoding_name as well as input_perl_encoding. 2019-03-24 Gavin Smith Remove INPUT_PERL_ENCODING and INPUT_ENCODING_NAME as customization variables. * tp/Texinfo/Common.pm (%default_customization_values) (@variable_string_settables): Remove INPUT_PERL_ENCODING and INPUT_ENCODING_NAME. * tp/Texinfo/Convert/Converter.pm (converter), * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parse_texi_file), Remove code propagating INPUT_PERL_ENCODING and INPUT_ENCODING_NAME. * tp/Texinfo/ParserNonXS.pm (%initialization_overrides): Remove 'INPUT_ENCODING_NAME'. * tp/Texinfo/ParserNonXS.pm (_open_in, _end_line, _parse_texi), * tp/Texinfo/Convert/Converter.pm (converter), * tp/Texinfo/Convert/IXIN.pm (output_ixin), * tp/Texinfo/Structuring.pm (do_index_keys): Do not use INPUT_PERL_ENCODING or INPUT_ENCODING_NAME: use the 'info' hash instead. * tp/Texinfo/Common.pm (_convert_text_options), * tp/Texinfo/Report.pm (gdt), * tp/texi2any.pl: Do not look use INPUT_ENCODING_NAME or INPUT_PERL_ENCODING. * doc/texinfo.texi (Other Customization Variables): Remove INPUT_PERL_ENCODING and INPUT_ENCODING_NAME. Remove @ifnottex block around Top node. This is an attempt at simplifying a complicated picture around character encoding. These customization variables had little use as the encoding is given as @documentencoding in the input. 2019-03-24 Gavin Smith Use UTF-8 more consistently in test suite. * tp/Texinfo/ParserNonXS.pm (parse_texi_file): Do not set 'input_encoding_name' and 'input_perl_encoding' here. * tp/Texinfo/Common.pm (%default_parser_state_configuration): Set 'input_encoding_name' and 'input_perl_encoding' here. 2019-03-23 Gavin Smith Make UTF-8 default input encoding for parsetexi. * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parse_texi_file): Propagate values of INPUT_PERL_ENCODING and INPUT_ENCODING_NAME. * tp/Texinfo/XS/parsetexi/api.c (reset_parser_except_conf): Call 'set_input_encoding' to use "utf-8" as the default. * tp/Texinfo/XS/parsetexi/parser.c (wipe_global_info): Set global_info.input_perl_encoding to "utf-8-strict". This replicates changes made on 2019-02-23 and 2019-02-26. 2019-03-23 Gavin Smith @subentry in parsetexi. * tp/Texinfo/XS/parsetexi/command_data.txt: Add subentry. * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_commands) <@subentry>: Add section. (handle_brace_commands) <@sortas>: Allow to occur inside @subentry. * tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting): Allow @subentry to occur inside most commands. (process_remaining_on_line) <@-command>: Allow @subentry to occur other than at the beginning of a line. * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace) <@sortas>: Record sort key on @subentry element. 2019-03-23 Gavin Smith Fix sort key for undefined @value. * doc/texinfo.tex (\indexnofontsvalue): Place a % comment character after the text for an undefined @value. If this comment character isn't present and the @value is followed by a space, the rest of the index sort key will be discarded inside @eatspaces called from @splitindexentry. It appears that @eatspaces does not cope with several spaces in a row in its argument. 2019-03-23 Gavin Smith Add more tests of @value in index. * doc/texinfo-tex-test.texi (Test of auxiliary files): Add test of values in index entries containing underscores and nested Texinfo commands. Add test of a @value that changes. * doc/texinfo.tex (\expandablevalue): Remove obsolete comment. @value in index entries is more reliable now that we use @ as the escape character in index entries. 2019-03-23 Gavin Smith Remove apparently unused code. * doc/texinfo.tex (\begindoublecolumns): Remove code that is supposed to account for the output routine in \begindoublecolumns being called twice in a row. It checks whether \partialpage is void, but it appears that \partialpage will always be void. \doublecolumnout, \balancecolumns and \pagesofar all clear \partialpage with \unvbox, which I believe covers all the cases. I was unable to get this code to run with various tests. Remove references to long-lost test files. (Removed code introduced on Jan 14 16:53:43 1999 according to ChangeLog entry.) 2019-03-23 Gavin Smith Ignore Top node a different way. (\omittopnode): Change implementation so as to work when the next node is hidden inside an included file. (\nwnode, \up, \down): Remove these useless synonyms. 2019-03-22 Gavin Smith Ignore Top node in texinfo.tex even without @ifnottex. * doc/texinfo.tex (\omittopnode): New macro. (\node): Call it. 2019-03-22 Gavin Smith * doc/texinfo.tex (\texinfoc): Remove. (\scanmacro): Use \comment instead of \texinfoc. \comment has the same meaning inside math mode as outside. (\argremovecomment): Don't bother about @texinfoc. 2019-03-18 Gavin Smith Pass on to XS modules whether uninstalled files should be used. * tp/Texinfo/ModulePath.pm.in ($texinfo_uninstalled): New variable. (init): Set it if passed the right argument. * tp/texi2any.pl: Pass on to Texinfo::ModulePath::init whether uninstalled files should be used. Use the value of $texinfo_uninstalled to decide where to look for locale files. Remove some commented-out code and move a variable declaration into a smaller block. * tp/Texinfo/XSLoader.pm: Pass on $Texinfo::ModulePath::texinfo_uninstalled to XS modules. 2019-03-17 Gavin Smith Find translatable strings in parsetexi. * tp/Texinfo/XS/po/Makevars (XGETTEXT_OPTIONS): Use line_error and similar functions to mark translatable strings. (This should maybe be done in the top-level po/Makevars instead.) * tp/Texinfo/XS/parsetexi/errors.c (line_error_internal): Pass message string to gettext function. * tp/Texinfo/XS/po/POTFILES.in: List files containing translatable strings. 2019-03-17 Gavin Smith Add gettext to XS modules. * tp/Texinfo/XS/parsetexi/Parsetexi.xs, * tp/Texinfo/XS/parsetexi/api.c (init): Add, to be called from Texinfo::XSLoader. Initialize gettext. * tp/Texinfo/XS/parsetexi/api.c: Include libintl.h. * tp/Texinfo/XS/configure.ac: Add AM_GNU_GETTEXT([external]). * tp/Texinfo/XS/Makefile.am (AM_CPPFLAGS): Define DATADIR. * tp/Texinfo/XS: Run 'gettextize'. I do not know if '--po-dir=../../../po -f' should have been used here - should we share the po directory with the top-level project? * tp/Texinfo/XS: Run 'aclocal -I gnulib/m4'. * tp/Texinfo/XS/po/Makevars: Copy from Makevars.template. I'm not sure if this will be used. Changes made by gettextize: * tp/Texinfo/XS/Makefile.am (SUBDIRS): Add po. * tp/Texinfo/XS/configure.ac (AC_CONFIG_FILES): Add po/Makefile.in. * tp/Texinfo/XS/gnulib/m4/gettext.m4: New file, from gettext-0.19.8. * tp/Texinfo/XS/gnulib/m4/iconv.m4: Upgrade to gettext-0.19.8. * tp/Texinfo/XS/gnulib/m4/lib-ld.m4: Upgrade to gettext-0.19.8. * tp/Texinfo/XS/gnulib/m4/lib-link.m4: Upgrade to gettext-0.19.8. * tp/Texinfo/XS/gnulib/m4/lib-prefix.m4: Upgrade to gettext-0.19.8. * tp/Texinfo/XS/gnulib/m4/nls.m4: New file, from gettext-0.19.8. * tp/Texinfo/XS/gnulib/m4/po.m4: New file, from gettext-0.19.8. * tp/Texinfo/XS/gnulib/m4/progtest.m4: New file, from gettext-0.19.8. 2019-03-16 Gavin Smith @seealso in index entries (experimental). * doc/texinfo.tex (\seealso, \putwordSeeAlso): Add default definitions for reading in a sorted index file. (\splitindexentry): Record value of any @seealso directive in the index entry inside \pagenumbertext. Make @seealso expansion empty when getting the sort key. (\doindwrite): If \pagenumbertext set, use its contents instead of \folio in the page number field. 2019-03-16 Gavin Smith * doc/texinfo-tex-test.texi (Index subentries): New section. 2019-03-16 Gavin Smith Combine pdftex and XeTeX conditionals. * doc/texinfo.tex (\ifpdforxetex): New conditional. Use it in several places. This removes some code duplication. 2019-03-16 Gavin Smith Support @tertiary in sorted index file. * doc/texinfo.tex (\indententry): New. (\secondary, \tertiary): Use it. (\entry): Fix case when there are no page numbers and no leaders are being printed. Indent code that is outputting inside a box. 2019-03-16 Gavin Smith * doc/texinfo.tex (\printindex): Fix detection of backslash in sorted index file. 2019-03-16 Gavin Smith Make @subentry the same level as index command in tree. * tp/Texinfo/ParserNonXS.pm (_parse_texi) <@subentry>: Call _end_line to avoid @subentry becoming a child of an index command or another @subentry command. This means that we convert back to Texinfo correctly without misplacing spaces before the @subentry command. 2019-03-16 Gavin Smith Remove unused function. * tp/Texinfo/Convert/Converter.pm (_register_command_arg): Remove. 2019-03-16 Gavin Smith Test of @subentry. * tp/t/09indices.t (subentries): New test. 2019-03-16 Gavin Smith @subentry in DocBook output. * tp/Texinfo/Convert/DocBook.pm (_index_entry): Possibly output index subentries inside or elements. 2019-03-16 Gavin Smith @subentry in HTML output. * tp/Texinfo/Convert/Converter.pm (convert_index_subentries): New. * tp/Texinfo/Convert/HTML.pm (_convert_printindex_command): Use it. * tp/Texinfo/Convert/Plaintext.pm (_printindex_formatted): Inline code from convert_line and call convert_index_subentries. 2019-03-16 Gavin Smith Start on supporting @subentry in parser and Info output. * tp/Texinfo/Common.pm (%line_commands): Add 'subentry'. * tp/Texinfo/ParserNonXS.pm (%in_full_text_commands): Include 'subentry' so that @subentry can appear inside an index command. (%begin_line_commands): Allow @subentry to occur other than at the beginning of a line. (_is_index_element): New. (_parse_texi): Use _is_index_element to check if we are in an index command. (_parse_texi) : Handle @subentry. Check valid nesting. Keep track of how many @subentry's have been used. * tp/Texinfo/Convert/Plaintext.pm (_printindex_formatted): If there are index subentries, add them to the end of the text of the index entry, separated by commas. This represents index subentries as a line command at the end of the index entry. A second @subentry is nested inside the first. 2019-03-14 Gavin Smith * tp/t/18itemize.t (table_in_itemize): New test. 2019-03-13 Gavin Smith Examples of special characters in PDF destinations. * doc/texinfo-tex-test.texi (Test of characters in node names for PDF): New test. 2019-03-12 Gavin Smith Only load lcircle10 if @cartouche is used. * doc/texinfo.tex (\cartouchefontdefs): New macro. Put loading lcircle10 font in here. (\cartouche): Use it. This is a similar approach to that used for @euro{}. 2019-03-11 Gavin Smith Active backslash in \setupdatafile. * doc/texinfo.tex (\setupdatafile): Make backslash active rather than other. This means that a section title is printed correctly with input like the following: \input texinfo @xrefautomaticsectiontitle on @node One @chapter One One. @xref{Two}. @node Two @chapter Two \ @bye Without this, the backslash typesets as quotation marks. Delete an old comment stating that catcode other is needed for \csname to work in \xrdef. Currently, \turnoffactive called in \xrdef gives backslash the needed definition. In any case, backslashes in node names appear to produce buggy PDF files in many cases. * doc/texinfo.tex (\setupdatafile): Remove out-of-date comment about why we do not support ^^ notation in auxiliary files. 2019-03-10 Gavin Smith * doc/texinfo-tex-test.texi (Test of index widow elimination): Comment out. (No page number in index): New section. 2019-03-10 Gavin Smith Remove code for preventing widowed index entries. * doc/texinfo.tex (\finishentry): Output the index entry directly to the current vertical list instead of storing it in a box and then calling \dotheinsertentrybox. (\insertentrybox, \dotheinsertentrybox) (\dotheinsertentryboxwithpenalty, \ourunvbox): Remove. (\entry): No redefinition of \domark. (\printindex): Do not redefine \dotheinsertentrybox. Read file with \input instead of line-by-line with \read. (\indexinputprocessing, \loopdo): Remove. This code added an awful lot of complexity for not much benefit. It is better to use the processes provided in TeX (\input and \unvbox) where possible, instead of creating a separate version. 2019-03-10 Gavin Smith Use
for footnote labels. * tp/Texinfo/Convert/HTML.pm (_convert_footnote_command): Use
instead of

for the numbered footnote labels. Jean-Christophe Helary reported that the

level being used was greater than that for the main footnotes heading, which was only

. 2019-03-10 Gavin Smith Fix indentation of @table within @itemize. * tp/Texinfo/Convert/Plaintext.pm (ensure_end_of_line): Set 'counter' on top-most 'text_element_context' to zero. This makes a @table be indented correctly within an @itemize and also means an @item immediately following the @table is indented properly. Report from Alan Mackenzie. 2019-03-09 Gavin Smith Remove unused backslash macros. * doc/texinfo.tex (\rawbackslash): Remove. It appears to be unnecessary as @t and @code work fine without it. (\t, \tclose): Do not call \rawbackslash. (\rawbackslashxx, \doublebackslash): Remove. 2019-03-09 Gavin Smith * doc/texinfo-tex-test.texi (Index display): Use @ as the escape character. (@,c in macro argument): @, doesn't work any more in macro argument due to changing the catcode of @. 2019-03-09 Gavin Smith * doc/texinfo.tex (\macroargctxt, \macrolineargctxt): Set catcode of @ to other. 2019-03-09 Gavin Smith Remove description of a bug fixed by the last change. * doc/texinfo-tex-test.texi: Remove description of why a Texinfo command inside an @example inside a macro didn't work. It works now that @ is no longer an escape character when a macro body is read. This means that \scantokens no longer sees any control sequences in the macro body and does not insert extra spaces. 2019-03-09 Gavin Smith No catcode changes in \scanmacro. * doc/texinfo.tex (\scanmacro): Do not change catcode of @ or \. 2019-03-09 Gavin Smith Fix marginindex flag. (\doindwrite, \maybemarginindex): Move code to put index entry in the margin to a new macro, and make it work again. 2019-03-09 Gavin Smith Remove \indexdummies. * doc/texinfo.tex (\indexdummies): Remove. (\doindwrite): Call \atdummies instead of \indexdummies and move the special definitions of \{ and \} here. (\onepageout): Call \atdummies instead of \indexdummies. 2019-03-03 Gavin Smith Use @ as escape character in index files. * doc/texinfo.tex (\indexdummies): Do not change \escapechar to backslash. Call \otherbackslash in order to keep backslash as it is. (\doindwrite, \indexnonalnumreappear): Do not call \useindexbackslash or change the definition of \@. (\indexbackslash, \useindexbackslash): Remove. (\splitindexentry): Convert @@ and @atchar{} to {@indexatchar}. texindex does not currently output given a sort key beginning with @ as @initial{@@}, outputting @initial{@} instead. (\onepageout): Remove comment about backslash in index files. Call \turnoffactive instead of \normalturnoffactive in order to output backslash as itself in index files. (\printindex): Do not change catcode of \ or @. (\printindex, \initialglyphs): Move setting \indexlbrace and \indexrbrace to \initialglyphs, and add \indexatchar too. Do not set \indexbackslash. (\atdummies): Comment changed so as no longer to imply that the aux and toc files are the only auxiliary files using @. (\printindex): Cheeck first character of index file, and if it is a backslash, skip reading the file. * doc/texinfo-tex-test.texi (Test of certain characters in index): New section. * util/texi2dvi (index_file_p): Check for a @entry in index files as well as \entry. 2019-03-03 Gavin Smith Reset output routine correctly. * doc/texinfo.tex (\defaultoutput): New token list, to contain default output routine. (\enddoublecolumns): Use it to correctly use \savetopmark in the output routine after the output of an index is finished. * doc/texinfo-tex-test.texi: Remove @bye line ending file by mistake. 2019-03-03 Gavin Smith No stretch around breakable characters in URL's. * doc/texinfo.tex (\urefprestretchamount, \urefpoststretchamount): Remove. (\urefprestretch, \urefpoststretch): Remove. Replace calls with \urefprebreak and \urefpostbreak. (\urefallowbreak): New macro, to allow a ragged right break within a URL. * doc/texinfo-tex-test.texi (URL line breaking): New section. This could lead to too much space being inserted, for example around the two slashes in "http://". The ragged right break prevents under-full or over-full boxes. (bug-texinfo, July 2018.) 2019-03-03 Gavin Smith Tidy up index writing. * doc/texinfo.tex (\dosubindwrite, \doindwrite): Rename. (\doind, \dosubind): Make \dosubind call \doind, not vice versa. Move definition of \dosubind nearer where it is used. (\deffngeneral): Remove a comment. 2019-03-02 Gavin Smith Implement index subentries in texinfo.tex. * doc/texinfo.tex (\splitindexentry): New macro. (\dosubindwrite): Call it to get the index text split up into primary entry and possible secondary and further entries separated by @subentry, as well as the index sort key. For one subentry only, this is the same format as was output in the past and recognized by the C implementation of texindex. This feature is experimental. 2019-03-02 Gavin Smith Change how marks are preserved. * doc/texinfo.tex (\savemarks, \restoremarks): Remove. No longer propagate marks by running an output routine. This could lead to whatsits being thrown away in \restoremarks. (\savedtopmark, \savetopmark, \iftopmarksaved): New. Save \topmark only in \savedtopmark, a token list register. (\gettopheadingmarks, \getcolormarks, \onepageout) (\begindoublecolumns, \doublecolumnout): Use \savetopmark instead. The old behaviour made texinfo.tex less hackable, as simple input like: \input texinfo @cindex dddddd @cindex fff @printindex cp @bye could lead to an empty *.cp file, which was confusing, even if this kind of problem would never occur in real documents. 2019-03-02 Gavin Smith Add test material for headings and footings. * doc/texinfo-tex-test.texi (Headings and footings): New section. 2019-03-02 Gavin Smith Rename \lastchapterdefs. * doc/texinfo.tex: (\lastchapterdefs, \currentchapterdefs) (\lastsectiondefs, \currentsectiondefs) (\lastcolordefs, \currentcolordefs) (\lastsection, \currentsection): Rename, as it is confusing to have both \lastchapterdefs and \prevchapterdefs: both "last" and "previous" mean the same thing. 2019-03-02 Gavin Smith Fix @everyheadingmarks top. * doc/texinfo.tex (\onepageout): Separate the code for setting \headlinebox and \footlinebox. Otherwise, the definitions for the footline would overwrite those for the headline, rendering '@everyheadingmarks top' ineffective. 2019-03-02 Gavin Smith * doc/texinfo.tex (\chapmacro): Remove obsolete comment about \setcontentsaftertitlepage. 2019-02-28 Gavin Smith Remove obsolete and unused code. * doc/texinfo.tex (\cindexsub): Remove. It has been in texinfo.tex for a very long time but is not documented or implemented in makeinfo. 2019-02-28 Gavin Smith Better support for @sortas at end of index entry. * doc/texinfo.tex (\dosubindwrite): Use \eatspaces to trim leading and trailing spaces from the index entry. This means a @sortas command can occur at the end of the index entry with a space before it, and the space will be removed when writing to the index file. (\sortas): Expand to empty. (\dosubind): Do not set \toks0: use a \def instead to store the index entry text. 2019-02-26 Gavin Smith Use UTF-8 input and output by default for Info. * tp/Texinfo/ParserNonXS.pm (_open_in): New function. (parse_texi_file), (_end_line) <@include>: Use it. (parse_texi_file): Set the input encoding on $self->{'info'}. * tp/Texinfo/Convert/Unicode.pm (%extra_unicode_map): New hash, to contain a subset of %unicode_map. * tp/Texinfo/Convert/Plaintext.pm (converter_initialize): If @documentencoding were not given and we are converting to UTF-8, set 'no_extra_unicode' on the 'convert_text_options' hash, and do not use any curly quotes for style commands. * tp/Texinfo/Convert/Plaintext.pm (_process_text): Do not convert `` into “, etc unless @documentencoding was in the document. * tp/Texinfo/Convert/Text.pm (brace_no_arg_command): Check 'no_extra_unicode' in the options and if it is set, exclude commands in %extra_unicode_map being output as non-ASCII UTF-8 sequences. 2019-02-23 Gavin Smith * doc/texinfo.texi (@titlepage): Remove documentation of @setcontentsaftertitlepage. 2019-02-23 Gavin Smith Remove unused code. * tp/Texinfo/Parser.pm (%tree_informations, duplicate_parser), * tp/Texinfo/XS/parsetexi/Parsetexi.pm (duplicate_parser): Remove unused. 2019-02-23 Gavin Smith Make UTF-8 default input encoding. * doc/texinfo.tex: Remove line setting catcodes of non-ASCII characters to "other". Change a comment. * tp/t/test_sort.t: Update results. * tp/Texinfo/Common.pm (%default_customization_values) : Use UTF-8 by default. * NEWS: Mention change. 2019-02-23 Gavin Smith Avoid unnecessary change in test results. * tp/Texinfo/Convert/HTML.pm: Add 'return undef' to end of function. This stops an empty string being returned from the sub for some reason. This led to a change in the results for 'file_html' tests. 2019-02-23 Gavin Smith Load more modules on demand. * tp/Texinfo/Convert/Converter.pm: Use fewer "use" declarations. (converter, sort_element_count): Use "require" statements to load modules on demand. This cuts down the run time of 'texi2any --help' as it stops Texinfo::Parser being loaded (about 0.6 sec -> 0.4 sec on my computer). This change depends on the previous change for module namespaces; otherwise, the Texinfo::Parser::parser subroutine can't be called in texi2any.pl, as the wrong hash is being referenced for %Texinfo::Parser::. This could be worked around by putting the call within an 'eval' statement to delay the choice of which namespace hash to use; however, this would be too distracting if done too much. 2019-02-23 Gavin Smith Avoid package typeglob assignment. * tp/Texinfo/ParserNonXS.pm: Use "package Texinfo::Parser" instead of "package Texinfo::ParserNonXS" and then aliasing the package namespace hash with a typeglob assignment. Move "use Texinfo::Report" earlier in file and remove lengthy comment. * tp/Texinfo/XS/parsetexi/Parsetexi.xs: Use "Texinfo::Parser" instead of "Parsetexi" in MODULE and PACAKGE declarations. Package typeglob assignment is not recommended in the Perl documentation anywhere, and has confusing effects. It appears that when a Perl source file is read, the symbols are interpreted in terms of a particular package namespace hash. This hash does not change if the package hash is later reassigned, which can lead to undefined symbols, especially with complicated situations when files "use" one another. 2019-02-19 Gavin Smith Prefer @url in the documentation. * doc/texinfo.texi (@url, @url Examples): Use @url consistently and say that @uref is a synonym. Akim Demaille reported that a confusing mixture of the two was being used. 2019-02-19 Gavin Smith @documentencoding is not file-specific. * tp/Texinfo/XS/parsetexi/input.c (input_encoding): New variable. (set_input_encoding, next_text): Use that encoding instead of an encoding on the input stack. (INPUT): Remove field 'encoding'. (input_push, input_push_file): Update. Eli Zaretskii reported that a @documentencoding command in an @include'd file would not take effect outside of that file, which was wrong for the Emacs manuals. 2019-02-17 Gavin Smith Remove noderename.cnf feature. * tp/Texinfo/Common.pm (@variable_string_settables): Remove 'RENAMED_NODES_DIRECTIONS', 'RENAMED_NODES_FILE'. (collect_renamed_nodes, parse_renamed_nodes_file): Remove. * tp/Texinfo/Convert/HTML.pm (converter_initialize): Do not check Texinfo::Config::renamed_nodes. (_file_header_informations): Change a comment. (output): Do not call Texinfo::Common::collect_renamed_nodes. Remove code dealing with renamed nodes. (_parse_node_and_warn_external): Remove unused. This eliminates the dependecy of Texinfo::Convert::HTML on Texinfo::Parser. * tp/tests/Makefile.am: Remove code dealing with copying renamednodes.cnf-ref. * tp/tests/sectioning/renamednodes.cnf-ref: Remove. * tp/tests/sectioning (equivalent_nodes_test_renamed_nodes): Remove. * tp/tests/README: Update instructions for git. * tp/t/92formatting.t (unknown_nodes_renamed): Remove. * doc/texinfo.texi (Other Customization Variables) : Remove. RENAMED_NODES_REDIRECTIONS was not actually used anywhere. (HTML Xref Link Preservation): Remove node. 2019-02-17 Gavin Smith * tp/test_utils.pl: Check if errors were output properly. 2019-02-17 Gavin Smith Remove some function checks. * configure.ac: Remove AC_FUNC_STRCOLL. (AC_CHECK_FUNCS): Do not check for bzero, getcwd, memset, setvbuf or strchr. * system.h: Never declare strcoll. * info/dribble.c (open_dribble_file): Do not check HAVE_SETVBUF or SETVBUF_REVERSED. 2019-02-17 Gavin Smith Do not check for some header files. * configure.ac (AC_CHECK_HEADERS): Do not check for limits.h, string.h, strings.h, sys/file.h, sys/stream.h or sys/ttold.h. * system.h: Unconditionally include limits.h. Never include sys/file.h. * info/termdep.h: Do not try to include sys/ttold.h. 2019-02-17 Gavin Smith Do not check for fcntl.h or sys/fcntl.h. * configure.ac (AC_CHECK_HEADERS): Do not check for fcntl.h or sys/fcntl.h. * system.h: Include fcntl.h unconditionally. 2019-02-17 Gavin Smith Remove BSD signals support. * configure.ac: Do not check for sigblock or sigsetmask. * info/signals.c: Do not check HAVE_SIGSETMASK. (sigprocmask): Remove this replacement function. 2019-02-17 Gavin Smith Remove AC_REPLACE_FUNCS. * configure.ac: Remove AC_REPLACE_FUNCS. This has likely been unused since gnulib was integrated into the sources. 2019-02-17 Gavin Smith Remove 'termio' support. * configure.ac: Do not check for termio.h or sys/ptem.h. * info/termdep.h, info/terminal.c: Remove all code for when termios.h is not present. 2019-02-17 Gavin Smith Remove obsolete configure checks. * configure.ac: Remove AC_HEADER_STAT, AC_HEADER_STDC, AC_TYPE_SIGNAL, AC_C_CONST, AC_STRUCT_TM, AC_FUNC_VPRINTF. Remove commented-out use of AC_FUNC_SETVBUF_REVERSED. * info/signals.c, info/terminal.c: Remove use of RETSIGTYPE for signal handlers. Some of these are noted in the autoconf or gnulib manuals as being unnecessary. 2019-02-17 Gavin Smith Remove customization value OUT. * tp/Texinfo/Common.pm (@command_line_settables), * doc/texinfo.texi (Customization Variables and Options): Remove 'OUT'. * tp/texi2any.pl: Do not use 'OUT' as a customization variable and use 'OUTFILE' instead to check if the name of the output file has been given. 2019-02-17 Gavin Smith Re-use open file descriptor. * info/t/Init-test.inc: Change a comment. * info/t: All tests: Use a file descriptor that is already open to pass bytes to pseudotty instead of opening the FIFO again every time. 2019-02-16 Gavin Smith * configure.ac: Bump version to 6.6dev. 2019-02-16 Gavin Smith 6.6. * configure.ac, NEWS, util/texi2dvi, util/texi2pdf, doc/refcard/txirefcard.tex. 2019-02-16 Gavin Smith * README-hacking: Update for git, no keyword expansion. 2019-02-16 Gavin Smith Tweak index formatting. * doc/texinfo.tex (\balancecolumns): Increase length that the final column of an index can be without being split. Move some code and add a comment. (\doublecolumnout, \begindoublecolumns): Move a comment to where it was supposed to be. Add another comment. 2019-02-16 Gavin Smith * doc/texinfo-tex-test.texi (Multi-line macro argument): Add note on how a bug might be fixed. 2019-02-16 Gavin Smith Do not end a sentence after an inserted '.'. * tp/Texinfo/Convert/Plaintext.pm (_convert) : Do not end a sentence after an inserted '.' after @xref. @xref can easily constitute only the first part of a sentence. 2019-02-16 Gavin Smith Documentation of @pxref. * doc/texinfo.texi (@pxref): Do not encourage using @pxref outside of parentheses. "see @ref" is often preferable to "@pxref". 2019-02-16 Gavin Smith Minor changes to info-stnd.texi. * doc/info-stnd.texi (Invoking Info): Use a consistent name for menu arguments. (Moving the Cursor): Change 'imprinted on' to 'printed on'. Move a footnote reference to the end of a sentence. (Node Commands): Correct key used in description. (The Echo Area) : Do not mention this command, as self-inserting characters are inserted with a different part of the code. Do not mention about checking whether a Meta key is bound, as this only applies if ISO-Latin is 'Off'. : SPC is not bound to this command any more. : Merge text with documentation of 'echo-area-complete'. '?' does not run this command any more. (Colors and Styles): Privilege American spelling of "color". Fix typo ("a cross-references"). (Variables): Privilege American spelling of "behavior". 2019-02-11 Gavin Smith pretest 6.5.93. * configure.ac: version 2019-02-11 Gavin Smith Be less optimistic about HTML 3.2 compatibility. * doc/texinfo.texi (HTML Translation): Mention that is used. Mention that 'id' atttibute is used. Say that html32.pm hasn't been tested recently. 2019-02-11 Gavin Smith Fix make update-po in out-of-source build. * Makefile.am (update-po): Remove reference to $srcdir. 2019-02-11 Gavin Smith Use a single include directory in test suite. * tp/t/include_reference: Move all files to tp/t/include. * tp/Makefile.am, * tp/t/test_utils.pl (test), * tp/t/nodenormalization.t: Do not refer to tp/t/include_reference. 2019-02-11 Gavin Smith Use section names in generated HTML menus. * tp/Texinfo/Structuring.pm (new_node_menu_entry): Add argument saying whether to use the section name in the menu entry. (menu_of_node, _menu_of_node): Rename. (node_menu_of_node, section_menu_of_node): Two new functions wrapping _menu_of_node. * tp/Texinfo/Convert/HTML.pm (_convert_heading_command): Call section_menu_of_node instead of menu_of_node. * tp/Texinfo/Convert/Plaintext.pm (_convert): Call node_menu_of_node instead of menu_of_node. This is the existing behaviour. * NEWS: Mention change. * tp/Texinfo/Transformations.pm (complete_node_menu): Update. 2019-02-11 Gavin Smith Advice on node names. * doc/texinfo.texi (Node Names): Mention that HTML filenames are based on the node names. Do not link to 'HTML Xref Link Preservation' node. (@anchor): Remove link to the same node. 2019-02-10 Robert Pluim * doc/texinfo.texi (Inserting): Document 'M-x texinfo-insert-dwim-@ref'. 2019-02-10 Gavin Smith Deprecate MANUAL-noderename.cnf. * tp/Texinfo/Common.pm (collect_renamed_nodes): Give a warning if a renamed nodes file is being used. * doc/texinfo.texi (HTML Xref Link Preservation), * NEWS: Document deprecation. 2019-02-10 Gavin Smith No special CSS for @small* commands. * tp/Texinfo/Convert/HTML.pm (%css_map): Remove css for @smallexample etc. (%small_alias): New hash. (_convert): Use %small_alias to treat e.g. @smallexample exactly the same as @example, so that no extra CSS is needed. (%default_commands_conversion): Do not add entries for some @small* commands. (_convert_quotation_command): Do not check if the passed command name is different to 'quotation', as it will not be. * doc/texinfo.texi (@small...): Do not say that @small... commands produce a smaller font in HTML output. * NEWS: Mention change. 2019-02-10 Gavin Smith * doc/texinfo.texi: Wrap introductory comment in @ifinfo block. 2019-02-10 Gavin Smith No colon in HTML menus. * tp/Texinfo/Convert/HTML.pm (%defaults) : Set to ''. * doc/texinfo.texi (Other Customization Variables): Update. * NEWS: Mention change. 2019-02-04 Gavin Smith Do not install useless static libraries. * tp/Texinfo/XS/Makefile.am (LT_INIT): Use option 'disable-static'. * NEWS: Mention change. Report from Eli Zaretskii. 2019-02-04 Gavin Smith Remove parsetexi typemap. * tp/Texinfo/XS/parsetexi/Parsetexi.xs, * tp/Texinfo/XS/parsetexi/api.c (get_root): Remove, as it is unused and relies on casting a pointer to an integer. * tp/Texinfo/XS/parsetexi/typemap: Remove. * tp/Texinfo/XS/Makefile.am (XSUBPPARGS): Remove reference to typemap file. (EXTRA_DIST): Distribute Parsetexi.xs. Eli Zaretskii reported a warning "cast from pointer to integer of different size" when compiling on MS-Windows. 2019-02-04 Gavin Smith Fixes for MS-Windows. * tp/Texinfo/XS/misc.c (xs_process_text): Add dTHX at start so that realloc will work. * tp/Texinfo/XS/parsetexi/command_data.awk: Output "#undef CM_NONE" in command_ids.h. * tp/Texinfo/XS/parsetexi/input.c (convert_to_utf8): Use ICONV_CONST in a variable declaration. All reported by Eli Zaretskii. 2019-02-01 Gavin Smith pretest 6.5.92. * configure.ac: version 2019-02-01 Gavin Smith Improve txicmdcheck. * doc/refcard/txicmdcheck: Special case for @& and @ampchar{}. * doc/refcard/txirefcard.tex: Add commands we deliberately ignored at the end of the file. * doc/texinfo.texi (Command List): Add @&, @ampchar{}. 2019-02-01 Gavin Smith Automatically build pod2texi.1 man page. * man/Makefile.am (pod2texi.1): Add rule. * configure.ac: Check for pod2man with AM_MISSING_PROG. * README-hacking: Remove instruction. 2019-02-01 Gavin Smith * README-hacking: Update. 2019-02-01 Werner Lemberg * doc/texinfo.tex (\setupverbatim): Fix a comment. 2019-02-01 Gavin Smith Fix too wide space in @verbatiminclude. * doc/texinfo.tex (\verbatiminclude): Confine the effect of \indexnofonts to a group where the filename is read, as is done in \include. Otherwise, there is an inappropriate definition of '\ ' while the file is being input. Werner Lemberg reported that a wider space would be output after a colon in a file input with @verbatiminclude. 2019-02-01 Gavin Smith Use 'id' instead of 'name'. * js/info.js (add_header, scan_toc): Use 'id' instead of 'name' attribute. 2019-01-31 Gavin Smith Inline test script. * configure.ac: Load test module with "perl -e" instead of running a separate script. * tp/Texinfo/XS/fail.pl: Remove this short file. 2019-01-31 Gavin Smith Unify AM_CFLAGS for XS modules. * tp/Texinfo/XS/Makefile.am (AM_CFLAGS): Put flags for C compiler in here, rather than in target-specific variables. 2019-01-31 Gavin Smith Fix loading of XS module. * tp/Texinfo/Conver/Paragraph.pm: Use 0 as the XS interface version number instead of 1. 2019-01-31 Gavin Smith Reorganize parsetexi header files. * tp/Texinfo/XS/parsetexi/tree_types.h, * tp/Texinfo/XS/parsetexi/parser.h (GLOBAL_INFO): Move to parser.h. * tp/Texinfo/XS/parsetexi/extra.c (add_extra_index_entry): Comment out function with preprocessor. * tp/Texinfo/XS/parsetexi/indices.c (enter_index_entry): Don't call add_extra_index_entry. * tp/Texinfo/XS/parsetexi/tree_types.h, * tp/Texinfo/XS/parsetexi/indices.c (INDEX_ENTRY_REF): Move to indices.c. 2019-01-31 Gavin Smith Avoid a warning. * tp/Texinfo/XS/configure.ac: Get perl conf value 'optimize'. * tp/Texinfo/XS/Makefile.am (AM_CFLAGS): Add it. This can avoid a preprocessor warning about -DFORTIFY_SOURCE. 2019-01-31 Gavin Smith Remove ununused output variable. * tp/Texinfo/XS/configure.ac (XSPARAGRAPH_INTERFACE_VERSION): Do not set with AC_SUBST. This was intended to be used when building XSParagraph as a stand-alone module. 2019-01-31 Gavin Smith Use an m4 loop. * tp/Texinfo/XS/configure.ac (lookup_perl_conf_values): New macro, to use m4_foreach (from autoconf m4sugar) to look up several values with lookup_perl_conf. 2019-01-31 Gavin Smith Do not require xsubpp. * tp/Texinfo/XS/configure.ac: Check for xsubpp with AM_MISSING_PROG instead of AC_PATH_PROG, as xsubpp is not required unless a *.xs file is modified. 2019-01-31 Gavin Smith Remove unused type. * tp/Texinfo/XS/parsetexi/tree_types.h (DEF_ARGS_EXTRA): Remove. (Suggestion from Hans-Bernhard Bröker.) (INDEX_ENTRY_REF): Update comment. 2019-01-31 Gavin Smith Centralise parser configuration values. * tp/texi2any.pl: Refer to %default_customization_values in Texinfo::Common instead of Texinfo::Parser. Continues change made on 2019-01-29. 2019-01-31 Gavin Smith perldoc-all Makefile change * contrib/perldoc-all/GNUmakefile: Change distclean target to dist-hook to avoid deleting inappropriate files with distclean. 2019-01-29 Gavin Smith Continue search after a node wasn't found. * info/session.c (info_search_internal): If a node couldn't be found, go onto the next node. This could happen if there was a comma in a node name. 2019-01-29 Gavin Smith Remove duplicate sub definition. * Pod-Simple-Texinfo/pod2texi.pl (__): Remove definition as there is already one exported by Texinfo::Common (for translated strings). 2019-01-29 Gavin Smith Try to fix contrib/perldoc-all. * contrib/perldoc-all/gendocs-sh: Add, from gendocs.sh in gnulib project. * contrib/perldoc-all/Makefile.am: Access it instead of relying on gendocs.sh being in path. Do not remove *.?? (intending to remove auxiliary index files) as this may delete the *.tar.gz file the user has just downloaded. Keith Thompson reported problems with building Perl manuals with this system. 2019-01-29 Gavin Smith Centralise parser configuration values. * tp/Texinfo/ParserNonXS.pm, * tp/Texinfo/Common.pm (%default_customization_values): Move to Common.pm. * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Use this hash instead of having a separate copy for this module. 2019-01-29 Gavin Smith Remove 'parent_type' field. * tp/Texinfo/XS/parsetexi/tree_types.h (ELEMENT): Remove field 'parent_type'. (enum route_element_type): Remove. * tp/Texinfo/XS/parsetexi/end_line.c (end_line_starting_block) (end_line), * tp/Texinfo/XS/parsetexi/indices.c (wipe_index), * tp/Texinfo/XS/parsetexi/api.c (build_perl_array) (build_single_index_data): Check whether 'parent' is null to see if an element is in tree. This should work for all elements except the root of the tree. 2019-01-29 Gavin Smith Remove reference line numbers in parsetexi. * tp/Texinfo/XS/parsetexi: Remove most of the comments with what the line numbers were of the corresponding Perl code at the time that parsetexi was first started. Leave some where more work might be needed. * tp/Texinfo/XS/parsetexi/main.c: Remove. * tp/Texinfo/XS/parsetexi/Common.pm: Remove. 2019-01-29 Gavin Smith Remove old files from parsetexi subdirectory. * tp/Texinfo/XS/parsetexi/complete_tree.pl, * tp/Texinfo/XS/parsetexi/debug_perl.txt, * tp/Texinfo/XS/parsetexi/makeinfo-debug.txt: Remove. 2019-01-29 Gavin Smith Remove relics of ExtUtils::MakeMaker build system. * tp/Texinfo/XS/Makefile.PL, * tp/Texinfo/XS/MANIFEST, * tp/Texinfo/XS/prepare_standalone_perl_module.sh: Remove. * tp/Texinfo/XS/Makefile.am (perl_specific_files): Remove. 2019-01-29 Gavin Smith Remove relics of ExtUtils::MakeMaker build system. * tp/Makefile.PL, tp/MANIFEST: Remove. * tp/maintain/MANIFEST_generated_files: Remove. * tp/maintain/MANIFEST_perl_po: Remove. * tp/maintain/prepare_perl_module_files.sh, * tp/maintain/prepare_perl_standalone_module_archive.sh, * tp/maintain/clean_perl_module_files.sh: Remove. * tp/Makefile.am (MANIFEST, perl_specific_files): Remove. This was for creating "standalone modules", but it is out-of-date, doesn't work and has never been used. 2019-01-29 Gavin Smith Remove test from 'many_input_files' subdirectory. * tp/tests/many_input_files/indices.sh: Remove. * tp/tests/indices/list_of_tests (index_table): New test to partially replace indices.sh. Only one input file is tested. This test tested that texi2any would work with several manuals to process given to it on the command line. I suspect this feature is rarely used. The extra complexity this gave to the test suite is not worth it IMHO. Now the many_input_files subdirectory only contains the latex2html and tex4ht tests, which are not run by default. I checks that the output for the index_table.texi file was the same by checking the same files were output and that the contents were the same, with a command like for f in * ; do echo DIFF $f ; diff $f ../../../many_input_files/indices_res/$f ; done 2019-01-28 Gavin Smith Use 'id' instead of 'name' attribute. * tp/Texinfo/Convert/HTML.pm (_convert_footnote_command), (_default_contents): Use 'id' instead of 'name' attribute on tag. 2019-01-27 Gavin Smith Comments in parsetexi header files. * tp/Texinfo/XS/parsetexi: Add a brief comment at the start of each header file. * tp/Texinfo/XS/parsetexi/tree_types.h, * tp/Texinfo/XS/parsetexi/conf.h (CONF): Move to conf.h. * tp/Texinfo/XS/parsetexi/errors.c: Remove #define _GNU_SOURCE. 2019-01-27 Gavin Smith Header file changes and small fixes for parsetexi. * tp/Texinfo/XS/parsetexi/tree_types.h, * tp/Texinfo/XS/parsetexi/macro.h (INFO_ENCLOSE, MACRO): Move to text.h. * tp/Texinfo/XS/parsetexi/close.c (close_command_cleanup): Fix incorrect comparison of enum values. * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): Remove an unused variable. * tp/Texinfo/XS/parsetexi/tree_types.h, * tp/Texinfo/XS/parsetexi/errors.h (enum error_type): Move to text.h. 2019-01-26 Bruno Haible Fix test failures on HP-UX. Reported by Richard Lloyd in . * install-info/tests/ii-0041-test: Simulate zdiff. * install-info/tests/ii-0050-test: Likewise. 2019-01-25 Gavin Smith Make "texi2dvi --command" work without @setfilename in file. * util/texi2dvi (insert_commands, usage): Insert commands given with --command even if no @setfilename line is present. * doc/texinfo.texi (Format with texi2dvi) <--command>: Remove mention of @setfilename. 2019-01-25 Gavin Smith Attempt to make test suite parallel safe. * tp/maintain/regenerate_cmd_tests.sh: Use 'mkdir -p' instead of testing whether directory exists. * tp/tests/run_parser_all.sh: Use 'mkdir -p' instead of testing if a directory exists. Do not delete a temporary directory at the end. Redirect stdin with "exec" instead of just redirecting a "while" loop in order to avoid problem with redirecting output under Solaris 10 shell. Andreas Schwab reported that the test suite was not parallel safe. 2019-01-24 Gavin Smith Pass on -D flags to texi2dvi. * tp/texi2any.pl: If calling texi2dvi, only pass along the values of flags before the file is parsed: not the values after the file is parsed. These values might be wrong for the start of the file. Stefan Husmann found that the Tramp manual wouldn't build with pretest texinfo-6.5.91 2019-01-20 Gavin Smith Check for gawk version for rebuilding texindex.awk. * configure.ac: Use AM_MISSING_PROG to look for gawk. * texindex/Makefile.am (texindex.awk, ti.twjr): Use $(GAWK) instead of $(AWK). * texindex/jrtangle: Add a check for the version number of gawk and, if too old, exit with status 63 in order to let the "missing" script know it is too old. Bruno Haible reported that the rule to regenerate texindex.awk was being run on OpenBSD 6.3 where there was no gawk. 2019-01-16 Gavin Smith Documentation of colons in index entries. * doc/texinfo.texi (Index Commands): Water down the proscription of colons in an index entry, as this works with some Info readers. 2019-01-14 Gavin Smith Split code into separate file. * tp/Texinfo/XS/parsetexi/conf.c: New file, along with header. This helps us to avoid declaring the 'conf' variable in two different header files. 2019-01-14 Gavin Smith Rearrange header files. * tp/Texinfo/XS/parsetexi/debug.c: Include header file containing declarations of functions in this file. * tp/Texinfo/XS/parsetexi/end_line.c, * tp/Texinfo/XS/parsetexi/separator.c: Remove an unnecessary #include. 2019-01-14 Gavin Smith Remove unused API functions. * tp/Texinfo/XS/parsetexi/Parsetexi.xs (element_type_name) (num_contents_children, num_args_children, contents_child_by_index): Remove ununused XSUB's. * tp/Texinfo/XS/parsetexi/api.c (num_contents_children) (num_args_children): Remove unused. 2019-01-14 Gavin Smith * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Remove a generated comment. 2019-01-14 Gavin Smith Move function declarations to header file. * tp/Texinfo/XS/parsetexi/Parsetexi.xs: Move function declarations to header file, api.h. This means the compiler can check the declarations are consistent with the definitions in api.c. 2019-01-14 Gavin Smith Remove an unnecessary #include. * tp/Texinfo/XS/parsetexi/input.c, * tp/Texinfo/XS/parsetexi/parser.c: Remove an unnecessary #include "api.h". 2019-01-14 Gavin Smith Move a function between files. * tp/Texinfo/XS/parsetexi/api.c, * tp/Texinfo/XS/parsetexi/parser.c (element_type_name): Move to parser.c. 2019-01-13 Gavin Smith Remove some unused variables. * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): Remove some unused variables. 2019-01-13 Gavin Smith pretest 6.5.91. * configure.ac: version 2019-01-13 Gavin Smith * info/man.c: Include stdio.h. 2019-01-12 Hans-Bernhard Bröker (tiny change) Fix some warnings. * tp/Texinfo/XS/parsetexi/close.c: Initialize a variable. 2019-01-12 Hans-Bernhard Bröker (tiny change) Fix some warnings. * tp/Texinfo/XS/parsetexi/end_line.c: Fix an unterminated comment. (check_empty_node): Avoid reaching end of undefined function. * tp/Texinfo/XS/parsetexi/parser.c (register_global_command): Add default cases. * tp/Texinfo/XS/parsetexi/multitable.c (gather_previous_item): Correct enum type in variable declaration. 2019-01-12 Gavin Smith Remove unused variables. * tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash), * tp/Texinfo/XS/parsetexi/parser.c (register_global_command) (process_remaining_on_line), * tp/Texinfo/XS/parsetexi/convert.c (expand_cmd_args_to_texi), * tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args) (end_line_starting_block, end_line_misc_line), * tp/Texinfo/XS/parsetexi/macro.c (expand_macro_body), * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_other_command), * tp/Texinfo/XS/parsetexi/def.c (split_delimiters, split_def_args) (parse_def): Remove declarations of unused variables. 2019-01-12 Gavin Smith Remove an unused variable. * tp/Texinfo/ParserNonXS.pm (_parse_texi): Remove an unused variable. 2019-01-12 Gavin Smith Add a default case. * tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): Add an empty default clause in switch block. 2019-01-12 Gavin Smith * tp/Texinfo/XS/parsetexi: Fix implicit function declarations. 2019-01-07 Gavin Smith Make Parsetexi XS module conditional on iconv. * tp/Texinfo/XS/configure.ac: Add an AM_CONDITIONAL checking whether gnulib found that iconv worked. * tp/Texinfo/XS/Makefile.am: Make building Parsetexi module conditional. 2019-01-07 Gavin Smith Set PERL_EXT_var in configure.ac. * tp/Texinfo/XS/configure.ac, * tp/Texinfo/XS/Makefile.am: Move setting of CFLAGS, CPPFLAGS and LDFLAGS from PERL_EXT_CFLAGS, PERL_EXT_CPPFLAGS and PERL_EXT_LDFLAGS from Makefile.am to configure.ac in order that they are used during the Gnulib checks. Report from Bruno Haible. 2019-01-07 Gavin Smith No buffering for pseudotty output. * info/pseudotty.c: Set VMIN value on the c_cc array in the termios structure to 1, meaning 'read' can return with a single byte. (The default value on Solaris 10 was found to be 4, which may be C-d for end-of-file.) Also set VTIME to 0. 2019-01-07 Gavin Smith Turn off canonical input processing in pseudotty. * info/pseudotty.c [HAVE_TERMIOS_H]: Clear the ICANON and ECHO flags. In the test suite, if bytes were passed through the pseudotty program before ginfo could make this change, they could be subject to undesired processing. This was not apparent as info treated '\n' the same as '\r'. This could be shown by using a "dribble" file and inserting a "sleep" in one of the test scripts. Tests were failing on Solaris 10 and Solaris 11 because bytes that were supposed to be sent to ginfo were being buffered, awaiting a newline. 2019-01-07 Gavin Smith Do not send debug output to infodebug file. * info/session.c (vinfo_debug): Always sent debugging output to stderr. (close_debugfile, debug_file): Remove. * doc/info-stnd.texi (Invoking Info): Update. * NEWS: Mention change. This is to make all the debugging output from info appear together in a log files when output is diverted from a test script. 2019-01-07 Gavin Smith Avoid possible infinite loop in info test suite. * info/t/replace-viewed.sh: Replace a loop that waits for ginfo to create a file with a "sleep" statement. If the file weren't created, this would be an infinte loop. 2019-01-07 Gavin Smith Remove useless code in info test suite. * info/t/replace-viewed.sh, * info/t/resize-in-completions: Do not check for a variable having a value that no code sets it to. This has been the case since the way the PID of the process was found changed. 2019-01-06 Gavin Smith Fix info tests under Solaris. * info/pseudotty.c [__sun]: Additionally perform a "ttycompat" ioctl on the slave fd. This is what is done in the gnulib openpty module. Since these ioctls were no longer guarded by isatty, it would lead to some of the info tests failing. I don't know under what conditions the ioctls are actually needed under Solaris: possibly they aren't needed at all. 2019-01-05 Gavin Smith Include iconv.h unconditionally. * tp/Texinfo/XS/parsetexi/input.c: Do not depend on HAVE_ICONV for #include . Use of iconv_t, iconv_open etc. later on in the file is not conditional, and we don't have a way to avoid using these. It's possible that gnulib set HAVE_ICONV to 0 because it found that iconv.h was buggy, even if it existed. 2019-01-05 Gavin Smith Don't use variable in SOURCES in Makefile.am. * tp/Texinfo/XS/Makefile.am (Parsetexi_la_SOURCES, BUILT_SOURCES): Write out "parsetexi" explicitly instead of hiding it inside $p. Although the latter works with automake 1.16 (which we are using), the OpenCSW buildbot still uses automake 1.15.1, leading to build failures. 2019-01-05 Gavin Smith Integrate parsetexi with gnulib. * tp/Texinfo/XS/parsetexi/input.c: Do not define ICONV_CONST. 2019-01-05 Gavin Smith Fall back to pure Perl module when TEXINFO_XS_PARSER is set. * tp/Texinfo/Parser.pm, tp/Texinfo/ParserNonXS.pm: Rename file. * tp/Texinfo/ParserNonXS.pm: Make module symbols available under both Texinfo::Parser and Texinfo::ParserNonXS. * tp/Texinfo/ModulePath.pm.in: If TEXINFO_XS_PARSER is not set, load Texinfo/ParserNonXS.pm instead of Texinfo/Parser.pm. * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Pass Texinfo::ParserNonXS as a fallback module to Texinfo::XSLoader::init. Comment out line to reset_parser in END block, as this won't work if Texinfo::ParserNonXS is loaded. 2019-01-05 Gavin Smith Fix info test suite hang under HP-UX 11.31. * info/pseudotty.c [HAVE_STROPTS_H]: Do not call isatty on pseudoterminal file descriptor. Bruno Haible reported that this made a test hang. Do not use HAVE_STROPTS_H condition: replace with "#if defined(__hpux) || defined(__sun)", as is done in gnulib. Remove some commented-out code. * configure.ac (AC_CHECK_HEADERS): Do not check for stropts.h. 2019-01-05 Gavin Smith Improve XS loading error message. * tp/Texinfo/XSLoader.pm: Improve error message in the case that a module couldn't be loaded. 2019-01-05 Bruno Haible Fix build errors on AIX 7.1. * info/Makefile.am (LDADD), * install-info/Makefile.am (LDADD): Add $(LIBTHREAD). 2019-01-05 Gavin Smith Check for Data::Dumper. * configure.ac: Check for Data::Dumper as well as Encode. Bruno Haible reported that Data::Dumper was missing on CentOS 7.3. 2019-01-05 Gavin Smith Combine Makefiles for XS modules. * tp/Texinfo/XS/configure.ac (AC_CONFIG_FILES): Remove Makefile in parsetexi subdirectory. * tp/Texinfo/XS/Makefile.am: Merge in contents of tp/Texinfo/XS/parsetexi/Makefile.am. * tp/Texinfo/XS/parsetexi/Makefile.am: Remove file. This means that passing -lperl when linking will always be conditional on HOST_NEEDS_NO_UNDEFINED. 2019-01-04 Gavin Smith pretest 6.5.90. * configure.ac: version 2019-01-04 Gavin Smith * tp/Texinfo/XS/parsetexi: Include config.h in all files. 2019-01-04 Gavin Smith Update texinfo-tex-test.texi. * doc/texinfo-tex-test.texi (Final page of index hard to balance): Update the description of what the output should look like. (Changed on 2017-11-16). 2019-01-04 Gavin Smith * doc/Makefile.am (EXTRA_DIST): List texinfo-tex-test.WIDOWs. 2019-01-04 Gavin Smith Update copyright years. * info/info.c (main), * texindex/ti.twjr: 2019. 2019-01-04 Gavin Smith Prepare for pretest release. * util/srclist-txi: Remove EMACSSRC. Add a per-user override. * util/srclist.txt: Remove info.texi, as this is not distributed with Texinfo any more. Update to three-column format used now by gnulib srclist-update. Update locations of automake files. * README-hacking: Update instructions for git. * configure.ac (TEXINFO_DTD_VERSION): Increase to 6.6. * doc/refcard/txirefcard.tex: Update version and copyright year. Document @& and @ampchar. 2019-01-04 Gavin Smith * NEWS: automake 1.16. 2019-01-03 Gavin Smith * README-hacking: Remove some obsolete or personal instructions. 2019-01-03 Gavin Smith * info/t/multiple-completions.sh: New test. 2019-01-03 Gavin Smith Fix unclosed @inlinefmtifelse. * tp/Texinfo/XS/parsetexi/separator.c (handle_comma): If we run out of input inside @inlinefmtifelse, exit the function. This matches change to Perl code made on 2018-10-29. 2019-01-03 Gavin Smith * README-hacking: Update instructions to use git. 2019-01-03 Gavin Smith Update gnulib. * (top-level), tp/Texinfo/XS: Run gnulib-tool --add-import. 2019-01-03 Gavin Smith Remove documentation of \ifusebracesinindexes conditional. * doc/texinfo.tex: Add a comment at definition of \ifusebracesinindexes. * doc/texinfo.texi: Remove use of \usebracesinindexestrue. (Details of texindex): Remove the documentation of it. * NEWS: Mention that this is not required any more. 2019-01-03 Gavin Smith Update refcard. * doc/refcard/txirefcard.tex: @setfilename is no longer mandatory. Do not mention @validatemenus or explicitly giving @node pointers, as these are not very important features. 2019-01-03 Gavin Smith * tp/tests/sectioning/Makefile.am: Update file list. 2019-01-03 Gavin Smith Finish removing 'FIX_TEXINFO'. * tp/Texinfo/Common.pm (@variable_string_settables): Remove 'FIX_TEXINFO'. 2019-01-03 Gavin Smith Update NEWS. * NEWS: Mention change to use 'id' attribute. Mention that texi2any can pass flags set with -D on to TeX. 2019-01-03 Gavin Smith Remove SVN keyword. * util/texi2dvi (version): Do not use '$Revision$' keyword as this doesn't work with git. 2019-01-03 Gavin Smith * README-hacking: Update instructions for git. 2019-01-03 Gavin Smith Ignore .git directories in dist-hook. * Makefile.am (dist-hook), * tp/Makefile.am (dist-hook), * tp/tests/Makefile.am (dist-hook), * tp/tests/contents/Makefile.am (dist-hook), * tp/tests/coverage/Makefile.am (dist-hook), * tp/tests/formatting/Makefile.am (dist-hook), * tp/tests/indices/Makefile.am (dist-hook), * tp/tests/layout/Makefile.am (dist-hook), * tp/tests/many_input_files/Makefile.am (dist-hook), * tp/tests/nested_formats/Makefile.am (dist-hook), * tp/tests/sectioning/Makefile.am (dist-hook), * tp/tests/tex_html/Makefile.am (dist-hook): Remove .git directories instead of removing .svn directories. 2019-01-03 Gavin Smith Remove obsolete comment. * util/texi2dvi: Remove comment about use of file descriptors 3 and 4. (See info node '(autoconf)File Descriptors'.) Remove comment about EGREP variable alluding to the fact that the 'egrep' command is not in Posix. 2019-01-03 Gavin Smith Remove texi2html and C makeinfo. * makeinfo, texi2html: Remove subdirectories. * Makefile.am (po-check): Update list of skipped subdirectories. * README-hacking: Remove mention of these subdirectories. 2019-01-02 Gavin Smith Remove unused variable in test suite. * tp/maintain/regenerate_cmd_tests.sh: Do not set 'srcdir_test' in generated test scripts, as this variable is no longer used anywhere. * tp/tests/run_parser_all.sh: Remove commented-out code. 2019-01-02 Gavin Smith Remove commented-out code. * tp/tests/parser-tests.sh: Remove commented-out code. 2019-01-02 Gavin Smith Fix Makefile rule for out-of-source builds. * tp/tests/many_input_files/Makefile.am (copy-tests, copy-tex-html): Work properly in out-of-source builds. 2019-01-02 Per Bother Use 'id' attribute instead of 'name' on . * tp/Texinfo/Convert/HTML.pm: (_convert_float_command, _convert_item_command) (_convert_index_command, _contents_inline_element) (_convert_element_type, _convert_heading_command): Use '' instead of ''. (_convert_printindex_command, _convert_def_line_type): Add 'id' attribute to and
elements, and remove . The 'name' attribute of to define a hyperlink target is deprecated in the HTML 5 standards. 'id' for this purpose was specified by HTML 4 (in 1997) and can be expected to be supported by all browsers. 2019-01-01 Gavin Smith Document SECTION_NAME_IN_TITLE. * doc/texinfo.texi (HTML Customization Variables), * NEWS: Document SECTION_NAME_IN_TITLE. 2019-01-01 Gavin Smith New customization variable SECTION_NAME_IN_TITLE. * tp/Texinfo/Common.pm (@variable_string_settables), * tp/Texinfo/Convert/HTML.pm (%defaults): Add SECTION_NAME_IN_TITLE. * tp/Texinfo/Convert/HTML.pm (_file_header_information): For split output, if SECTION_NAME_IN_TITLE is set, try to use the argument of the chapter structuring command instead of @node for the contents of . Feature suggestion from Akim Demaille (help-texinfo, Nov. 2018). 2019-01-01 Gavin Smith <gavinsmith0123@gmail.com> Fix error message from texinfo-js. * js/texinfo-js.in: Remove extra `-' from an error message. Report from Stefan Husmann. 2018-12-31 Gavin Smith <gavinsmith0123@gmail.com> Document 'TEXINFO_XS_PARSER'. * NEWS: Mention the XS parser implementation. * tp/Texinfo/Parser.pm: Note that this module can be overridden. * doc/texinfo.texi (texi2any Environment Variables): Add TEXINFO_XS_PARSER. 2018-12-29 Gavin Smith <gavinsmith0123@gmail.com> Pass on -D to texi2dvi. * tp/texi2any.pl: If calling texi2dvi, pass along the values of any flags set with -D on the command line. Suggestion from Olivier Dion. 2018-12-28 Gavin Smith <gavinsmith0123@gmail.com> Remove implementation of @cropmarks in texi2any. * tp/Texinfo/Common.pm (%line_commands): Remove 'cropmarks'. * tp/Texinfo/XS/parsetexi/command_data.txt: Remove cropmarks. * tp/t/xml_tests.t (commands_and_spaces), * tp/t/08misc_commands.t (also_not_line), * tp/t/50value.t (value_in_misc_commands), * tp/t/60macro.t (macro_in_misc_commands): Remove @cropmarks from tests. 2018-12-28 Gavin Smith <gavinsmith0123@gmail.com> Remove documentation of @cropmarks command. * doc/texinfo.texi (Cropmarks and Magnification, Magnification): Rename and remove mention of @cropmarks. 2018-12-28 Gavin Smith <gavinsmith0123@gmail.com> Remove @cropmarks command. * doc/texinfo.tex (\cropmarks, \ifcropmarks, \onepageout): Remove implementation of @cropmarks. * NEWS: Mention @cropmarks removal. This command has hardly ever been used and it is questionable whether it has worked correctly for many years. See bug-texinfo discussion November 2018. The code was introduced in 1986 by Pierre MacKay for use by "Near East Publications". 2018-12-28 Gavin Smith <gavinsmith0123@gmail.com> Tidy up info test suite infrastructure. * info/t/Init-test.inc: Do not set GINFO_NAME variable as it is not used. Do not set infodir variable. Do not try to set srcdir, as it is already set. Change some shell variables to be lower-case, to avoid confusion with variables exported to the environment. Remove unused variable GINFO_OPTIONS. 2018-12-28 Gavin Smith <gavinsmith0123@gmail.com> Select correct cross-reference. * info/session.c (info_menu_or_ref_item): If there is more than one cross-reference in the line after the point and no cross-reference contains the point, use the first cross-reference after the point, not the last one in the line. This means that the cross-reference that is highlighted as "active" will be the one that is used. 2018-12-28 Gavin Smith <gavinsmith0123@gmail.com> Avoid memory leak for malformed files. * info/nodes.c (info_load_file): Free 'contents' and 'encoding' fields of file structure in case the node table couldn't be built. 2018-12-28 Gavin Smith <gavinsmith0123@gmail.com> Fix call to info_find_file. * info/nodes.c (info_get_nodes_with_defaults): Restore the value of the 'fullpath' field of a file structure before calling info_find_file. Otherwise, info_find_file will not recognize that a file has been loaded, and load it again. This can lead to a file buffer being freed incorrectly in gc_file_buffers_and_nodes, leading to a segmentation fault. Segmentation fault reported by Keith Thompson. 2018-12-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Makefile.am (Makefile.docstr): Fix to work out-of-source. 2018-12-01 Gavin Smith <gavinsmith0123@gmail.com> Fix info/t/all-only.sh test in out-of-source builds. * info/dir.c (dir_entry_of_infodir): Prefix a non-absolute path with "./" so that other parts of the code recognize it is the full path. 2018-12-01 Gavin Smith <gavinsmith0123@gmail.com> * NEWS: Development now uses git. 2018-10-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <inline conditionals>: Avoid an infinite loop when skipping an unexpanded conditional in case we run out of input. * tp/t/55conditionals.t (inlineifset_false_not_closed): New test. 2018-10-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <@inlinefmtifelse>: Avoid an infinite loop if there is no more input. * tp/t/55conditionals.t (inlineiffmtifelse_not_closed, inlineiffmtifelse_not_closed_two_arg) (inlineiffmtifelse_not_closed_three_arg): New tests. 2018-10-28 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_check_line_directive): Fix code for checking if input is coming from a file. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_next_text, _new_line): Do not pass $current as an argument, as it is not used any more now the check for the #line directive has been moved out. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/80include.t (cpp_lines): Add test of macro where a line that looks like a #line directive is not the very first line, as these may be treated differently by Parser.pm. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_check_line_directive, _save_line_directive) (_next_text): Split out sub from _next_text. (_parse_texi) <BEGIN LINE>: Call _check_line_directive and _save_line_directive. The condition for #line being meaningful is the same as what was in _next_text. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (#line directive) <CPP_LINE_DIRECTIVES>: Add a missing ). 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (@obsolete_variables): Remove. (obsolete_option): Remove. (%customization_variable_classes): Remove 'obsolete_variables'. * tp/texi2any.pl (set_from_init_file, set_from_cmdline), * tp/Texinfo/Convert/Converter.pm (set_conf, force_conf): Do not call Texinfo::Common::obsolete_option. * NEWS: Mention that obsolete customization variables are no longer recognized. * tp/Texinfo/Parser.pm (_setup_parser): Do not look at 'INLINE_INSERTCOPYING'. If more variables are deprecated, then it may be worth reinstating some of this code. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_command_with_command_as_argument): Remove code checking for a case where the command has two elements in 'args', the first all whitespace, as this case never seems to happen. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (@titlefont @center @sp): Do not mention the possibility of using these outside of a title page. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%in_index_commands): New hash, containing only 'sortas'. * tp/Texinfo/Parser.pm (%in_full_text_commands): Do not specially remove 'sortas'. (_setup_parser, _parse_command_line_args): Use %in_simple_text_commands for the commands that may appear in index commands. This was done until 2017-04-01. (_parse_texi) <brace commands>: Move check for valid nesting of @sortas here. Change error message to mention index entry. 2018-10-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <in heading commands>: Do not set an 'invalid_nesting' value. 2018-10-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_check_valid_nesting): New sub, split out from _parse_texi. (_parser_texi): Call it. (%in_full_line_commands): Remove useless variable, as the same as %in_full_text_commands. 2018-10-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (%in_full_text_commands): Do not allow @indent, @noindent. (%in_full_line_commands): No exception for @indent, @noindent. * NEWS: Mention change in allowed nesting. 2018-10-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (%simple_text_commands): Add all the commands that have a number >= 1 as their argument type in %brace_commands, except for inline conditional commands. This includes @inforef which wasn't included before. This leaves only @shortcaption and @math as explicitly listed commands. 2018-10-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (%no_command_commands): Remove this list of commands that shouldn't contain any other commands. Although it is valid, it makes the picture of which commands can contain others more complicated for the sake of only a few commands. Introduced on 2016-07-09 for @errormsg and @U. 2018-10-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%brace_commands): Change meaning of 1 as a value. Now only commands that were in %simple_text_commands in Parser.pm have 1. Use words as well as numbers, as is done for %line_commands. Accent commands get 'accent'. Style commands get 'style'. Context brace commands get 'context'. Various other brace commands get 'other'. (_parse_line_command_args): Commands defined by @definfoenclose get 'style'. * tp/Texinfo/Parser.pm (%simple_text_commands): Change initialising code to use %brace_commands for some brace commands. This shortens a seemingly arbitrary list. (%full_text_commands): Update initialising code for new meaning of %brace_commands. (_parse_texi): Change two conditions to compare values of %brace_commands hash, without needing to look at %simple_text_commands. Remove an unnecessary conditional. * tp/Texinfo/Parser.pm (_parse_texi), * tp/Texinfo/Convert/Plaintext.pm (%brace_no_arg_commands): Use "eq '0'" instead of "== 0" for %brace_commands values. No functional changes intended. This brings the implementation closer to the C version under tp/Texinfo/XS/parsetexi. 2018-10-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (%simple_text_commands): Add 'sortas'. (%full_text_commands): No special case for 'sortas'. (_parse_texi) <@copying in @insertcopying>: Undefine a variable. 2018-10-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_isolate_last_space): Set 'comment_at_end' value on element instead of parent. As well as gaining consistency with 'spaces_after_argument', this means that a comment at the end of a brace command argument is not lost or output at the wrong place. Add a comment noting that comments should not be inside brace commands anyway. * tp/Texinfo/Convert/TexinfoXML.pm (_convert_argument_and_end_line), * tp/Texinfo/Convert/Texinfo.pm (convert, _expand_cmd_args_to_texi): * tp/Texinfo/Convert/Converter.pm _expand_cmd_args_to_texi): Access 'comment_at_end' in the new place. 2018-10-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm: Change 'same than' to 'same as' in comments. 2018-10-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (%simple_text_commands): Remove @ctrl. (_end_line): Change a comment. 2018-10-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm, * tp/Texinfo/Structuring.pm, * tp/Texinfo/Transformations.pm, * tp/Texinfo/Convert/Converter.pm, * tp/Texinfo/Convert/DocBook.pm, * tp/Texinfo/Convert/NodeNameNormalization.pm, * tp/Texinfo/Convert/Plaintext.pm, * tp/Texinfo/Convert/TexinfoXML.pm, * tp/Texinfo/Convert/Text.pm, * tp/Texinfo/Convert/TextContent.pm: Change 'misc_line_arg' to 'line_arg'. * tp/Texinfo/Parser.pm (%begin_line_commands, %in_full_text_commands): Initialising code changed. * tp/Texinfo/Convert/Common.pm (@inline_types): Remove 'misc_command_arg', as no such element type is used anywhere. The reason for this change is that "line command" is more descriptive than "miscellaneous command". No functional changes intended. 2018-10-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi): Check for unknown command right after reading the command. 2018-10-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/sectioning/list-of-tests (node_footnote_end, node_footnote_use_node, node_footnote_separated) (equivalent_nodes, equivalent_nodes_no_node) (nodes_after_top_before_chapter) (nodes_after_top_before_chapter_use_nodes_chapter) (nodes_after_top_before_section) (nodes_after_top_before_section_use_nodes) (nodes_after_top_before_section_use_nodes_chapter) (sectioning_frames, placed_things_before_element) (more_sections_than_nodes, two_footnotes_in_nodes) (two_footnotes_in_nodes_separated, top_node_up_implicit) (top_node_up_explicit): Remove tests. * tp/t/96moresectioning.t: New test file. Add equivalent tests. I checked the results were the same by running: for T in \ node_footnote_end \ node_footnote_use_node \ node_footnote_separated \ equivalent_nodes \ equivalent_nodes_no_node \ nodes_after_top_before_chapter \ nodes_after_top_before_chapter_use_nodes_chapter \ nodes_after_top_before_section \ nodes_after_top_before_section_use_nodes \ nodes_after_top_before_section_use_nodes_chapter \ sectioning_frames \ placed_things_before_element \ more_sections_than_nodes \ two_footnotes_in_nodes \ two_footnotes_in_nodes_separated \ top_node_up_implicit \ top_node_up_explicit do echo TEST $T (cd t/results/moresectioning/$T/res_html for f in * ; do echo diff $f diff $f ../../../../../tests/sectioning/res_parser/$T/$f done) done 2018-10-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi): Issue an error message right after checking for an invalid nesting. This produces little functional change but is intended to make the code easier to understand. (_mark_and_warn_invalid): Remove. 2018-10-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_mark_and_warn_invalid): Do not set 'invalid_nesting'. 2018-10-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (find_innermost_accent_command): Do not check for invalid nesting. * tp/Texinfo/Convert/HTML.pm (_convert): Remove some commented-out code. * tp/t/accents.t (command in accent): Remove test. 2018-10-21 Gavin Smith <gavinsmith0123@gmail.com> * NEWS: @ctrl removed. * tp/Texinfo/Common.pm (%brace_commands, %deprecated_commands): Remove @ctrl. * tp/Texinfo/Convert/HTML.pm (_convert_ctrl_command): Remove. * tp/Texinfo/Convert/Plaintext.pm (@asis_commands): Remove @ctrl. * tp/t/03coverage_braces.t (ctrl): Remove test. * tp/tests/coverage_macro.texi: Remove test of @ctrl. (Karl, bug-texinfo 2012-04-01). 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%line_commands): Change a comment. (%other_commands): Set from %in_heading_commands. 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%other_commands): Remove 'itemx'. @itemx is always a line command. * tp/Texinfo/Parser.pm (_parse_texi) <misc commands>: Only @item can sometimes be an 'other' command', not @itemx. Error message for incorrectly nested @item or @itemx. (_end_line): Add a check for an undefined value. 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%line_commands): Add all the sectioning, index and def commands. * tp/Texinfo/Parser.pm (%misc_commands): Remove. (%line_commands): Add. (_setup_parser, simple_parser): Set 'line_commands' on parser rather than 'misc_commands'. (_end_line, _parse_texi, _parse): Update. 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <misc commands>: Deal with the commands that do not take a whole line as an argument separately from those that do, using %other_commands hash from Common.pm. Reinstate error message for @insertcopying inside @copying. 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_item_line_parent): If current element is an @item or @itemx, do not check the parent of the parent of the current element. This leads to a false positive for a @table nested within an @enumerate. It is possible that this was intended to account for the parent element being a 'table_term' element, but the condition is not met in the entire test suite. (The false positive was not hit in practice due to _item_container_parent being called before _item_line_parent.) 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%line_commands, %deprecated_commands): Remove @quote-arg and @allow-recursion. * NEWS: Mention this change. 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%misc_commands) (%line_commands, %other_commands): Split %misc_commands into two hashes. 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%misc_commands): Change @insertcopying argument type from 'noarg' to 'skipline'. * NEWS: Mention this change and the warning for @multitable. 2018-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line) <@multitable>: Give a warning messaage for any @-command appearing on the multitable line outside of a braced prototype. 2018-10-19 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/sectioning/list-of-tests: Do not run every test twice, once with '--html', once with '-c TEXI2HTML'. Only use the latter. 2018-10-19 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Do not substitute a "@PATH_SEPARATOR@" sequence in the list-of-tests files. It is only used in one test so is not worth the complication. * tp/tests/sectioning/list-of-tests (test_two_include): Remove this test. * tp/defs.in: Do not set PATH_SEPARATOR. 2018-10-19 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/sectioning/list-of-tests: (no_section_no_top, no_section_no_top_no_node) (more_nodes_than_sections, one_node_no_node, one_node) (no_node_chapter_split): Remove. Similar tests exist under tp/t/30sectioning.t. 2018-10-19 Gavin Smith <gavinsmith0123@gmail.com> * tp/defs.in: Do not set srcdir if it is already set. "make distcheck" works again now. 2018-10-19 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/sectioning/list-of-tests (test_two_include): Move an input file to this directory. 2018-10-19 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/test_utils.pl: Create the output directory for the test before running the conversion. This means that if the test needs to create output files, the directory to contain them will exist. It didn't exist the first time a test file was run when the very first test in the file needed to create output. If there are conversion errors from texi2any, print them instead of just printing a message "Warning: output generated". 2018-10-18 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (documentlanguage_set_option, documentlanguage_set_unknown): (formatting_documentlanguage_set_option_info) (formatting_split_for_format_not_split) Remove. * tp/t/92formatting.t: Add the same tests. * tp/tests/formatting/list-of-tests (simple_with_menu_docbook_info): Remove. This tested the combination of "--docbook --info" which is equivalent to just "--info". 2018-10-18 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Source 'defs' before setting srcdir. 2018-10-18 Gavin Smith <gavinsmith0123@gmail.com> * README: State that we may use a range like 2008-2010 in listing copyright years. (The GNU maintainers guide requires such a statement.) 2018-10-18 Gavin Smith <gavinsmith0123@gmail.com> * tp/defs.in: Add srcdir. * tp/maintain/all_tests.sh (generate): Run test scripts in srcdir. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (parse_node_manual): Don't lose a leading ( in the case of incorrectly nested parentheses. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (parse_node_manual): Set parent fields on new elements. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (parse_node_manual): Overwrite the contents array of the element in the main tree. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/06columnfractions.t (invalid): New test. * tp/Texinfo/Parser.pm (_parse_line_command_args) <@columnfractions>: Change regex for a valid column fraction. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_line_command_args) <@definfoenclose>: Add new command to %brace_commands. This avoids having to check whether a command has been added with @definfoenclose in several places. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/09indices.t (def_existing_index): New test. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/55conditionals.t (false_format_not_closed): New test. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_expand_macro_arguments): Avoid using a regex. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/60macro.t (empty_macro_argument): New test. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <@titlepage>: Do not save '@author' as a global command. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_register_global_command): Remove an argument. Callers updated. 2018-10-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (labels_information): Avoiding creating 'extra' hash by mistake. 2018-10-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm, * tp/Texinfo/Common.pm (labels_information): Move to Common.pm so that it can be called from tp/Texinfo/XS/parsetexi/Parsetexi.pm. 2018-10-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm, * tp/Texinfo/Encoding.pm, * tp/Texinfo/Parser.pm, * tp/Texinfo/Report.pm, * tp/Texinfo/Structuring.pm, * tp/Texinfo/Transformations.pm, * tp/Texinfo/Convert/Converter.pm * tp/Texinfo/Convert/DocBook.pm, * tp/Texinfo/Convert/HTML.pm, * tp/Texinfo/Convert/IXIN.pm, * tp/Texinfo/Convert/NodeNameNormalization.pm, * tp/Texinfo/Convert/Plaintext.pm, * tp/Texinfo/Convert/Texinfo.pm, * tp/Texinfo/Convert/TexinfoSXML.pm, * tp/Texinfo/Convert/TexinfoXML.pm, * tp/Texinfo/Convert/Text.pm, * tp/Texinfo/Convert/Unicode.pm: Remove generated content such as "Mention other useful documentation" and "Items to export into callers namespace by default" (presumably from h2xs). Remove copyright and license from POD section at ends of files, as the copyright statement is at the beginning of each file. Update copyright years. 2018-10-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (%global_multiple_commands): Remove 'author'. (_register_global_command): No exception for 'author'. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/sectioning/list-of-tests, * tp/tests/contents/list-of-tests, * tp/tests/indices/list-of-tests, * tp/tests/tex_htmlindices/list-of-tests, Use -c instead of --set-customization-variable, for brevity. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/indices/list-of-tests (split_chapter_index, index_split, index_split_nodes) (index_no_node, nodes_before_top, nodes_before_top_nodes) (nodes_before_top_no_nodes, nodes_before_top_and_sections_monolithic): Remove tests. * tp/t/95moreindices.t: Add the same tests. I checked test results were unchanged by running commands like: T=split_chapter_index (cd t/results/moreindices/$T/res_html ; for f in * ; do \ echo diff $f ; \ diff $f ../../../../../tests/indices/res_parser/$T/$f ; \ done ) 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/95moreindices.t: New test file. * tp/t/95moreindices.t (double_index_entry): Add. * tp/tests/indices/list-of-tests (double_index_entry): Remove. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (simplest_test_prefix, simplest_test_prefix_info) (simplest_test_date_in_header, float_copying): Remove. * tp/t/92formatting.t: Add the same tests here. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (split_nocopying, split_nocopying_split): Remove. * tp/t/92formatting.t (split_nocopying, split_nocopying_split): Add. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/README: Add advice about out-of-source builds. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/test_utils.pl: If -g flag is given to regenerate reference test results, do so in srcdir rather than builddir. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (direntry_dircategory_info_split): Remove. * tp/t/92formatting.t (direntry_dircategory_info_split): Add. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/Makefile.am (Makefile.onetst): Fix rule to work in out-of-source builds. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (defcondx_Dbar, defcondx_Ubar): Remove. * tp/t/92formatting.t (defcondx_Dbar, defcondx_Ubar): Add. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (%default_customization_values): Remove 'GLOBAL_COMMANDS' array as it is not used anywhere. (_setup_parser): Do not access 'GLOBAL_COMMANDS' conf value. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/Makefile.am: List files under tp/t/include_reference. * tp/maintain/regenerate_file_lists.pl: Do not automatically generate a list of these files. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/regenerate_file_lists.pl: Do not generate the variable 'test_copied_include_files'. Remove copyright notice from generated file as the year is out-of-date. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/test_utils.pl: Remove code copying 't/include_reference' to build directory. Do not include any directories in the current directory in the include path. * tp/Makefile.am (all-local): Do not depend upon these copied files. 2018-10-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/test_utils.pl, tp/t/nodenormalisation.t: Put tp/t/include_reference in srcdir in include path. * tp/t/80include.t (test_paths, test_include_directories): Remove tests. * tp/t/converters_tests.t (verbatiminclude_paths): test_include_directories): Remove tests. * tp/t/info_tests.t (image_file_search): Remove test. test_include_directories): Remove tests. * tp/maintain/regenerate_file_lists.pl: Do not generate rules to copy files to tp/t/include_dir in build directory. This avoids the hassle of copying all the include files to the build directory for out-of-source builds and avoids the confusion of which of "t/include", "t/include_dir" or "t/include_reference" a test file is to be added to. This feature of the test suite is not used enough IMHO to be worth the complexity. 2018-10-09 Gavin Smith <gavinsmith0123@gmail.com> * configure.ac: Remove AM_CONDITIONAL for TEXI2HTML. * Makefile.am (dist-local): Remove reult for updating translations for texi2html. 2018-10-08 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_parse_htmlxref_files) [TEST]: Strip leading directories from file name in order to have reliable reference test results for out-of-source builds. 2018-10-06 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line) <@columnfractions>: Set the 'columnfractions' extra value to the element for the @columnfractions command, rather than to the 'misc_args' array of that element. This is to make a 'misc_args' array only referenced by one element, which makes it possible to free the memory properly in the C rewrite. * tp/Texinfo/Convert/DocBook.pm (_convert), * tp/Texinfo/Convert/HTML.pm (_convert_tab_command), * tp/Texinfo/Convert/Plaintext.pm (_convert), * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Update. 2018-10-06 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/README: Add more advice. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/test_utils.pl: Set 'TEST' to 1 for converters. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/htmlxref * tp/tests/htmlxref-only_mono, * tp/tests/htmlxref-only_split: Remove. * tp/tests/Makefile.am: Remove rules for copying htmlxref.cnf to the build directory. * configure.ac (AC_CONFIG_FILES): Don't list Makefiles in removed directories. * autogen.sh: Excise htmlxref and coverage subdirectories. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/94htmlxref.t (htmlxref_only_mono, htmlxref_only_mono_nodes) (htmlxref_only_split, htmlxref_only_split_nodes): Add. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/94htmlxref.t (htmlxref_nodes): Add test. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/94htmlxref.t: New file. * tp/t/94htmlxref.t (htmlxref): New test. * tp/Texinfo/Convert/HTML.pm [TEST]: If HTMLXREF is set, look for file in various directories. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Converter/Converter.pm (%all_converter_defaults): Remove 'htmlxref_files' and 'FIX_TEXINFO'. Add 'language_config_dirs'. * tp/texi2any.pl: Do not set an 'htmlxref_files' configuration value. Save the 'language_config_dirs' array in the converter options. * tp/Texinfo/Convert/HTML.pm (_load_htmlxref_files): Move code here from texi2any.pl. * tp/texi2any.pl, tp/Texinfo/Common.pm (locate_init_file): Move to Common.pm. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Get class of converter from string value, rather than calling ref on a subroutine. This subroutine would actually be called, which is not the intention. 2018-09-30 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/layout/list-of-tests, tp/t/93layout.t (navigation_section_no_header navigation_node_no_header) (navigation_chapter_vertical navigation_section_vertical) (navigation_node_vertical navigation_chapter_no_header_vertical) (navigation_section_no_header_vertical) (navigation_node_no_header_vertical): Move tests to 93layout.t. 2018-09-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/93/layout.t: (navigation, navigation_no_header) (navigation_vertical, navigation_no_header_vertical) (navigation_chapter, navigation_section, navigation_node) (navigation_chapter_no_header): New tests. * tp/tests/layout/list-of-tests: Remove the same tests. I checked the results were the same with a script like the following: OTHER=../../../../../tests/layout/res_parser (for d in *[^.][^.][^.]? ; do echo "CHANGING TO $d" ; pushd \ $d/res_html ; for f in * ; do echo DIFFING $f ; diff $f \ $OTHER/$d/$f ; done ; popd ; done ) |& less 2018-09-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/93layout.t: New file. * tp/t/93layout.t (no_monolithic): New test. * tp/tests/layout/list-of-tests (no_monolithic): Remove test. I checked the results were the same by running the following in the results directory: OTHER=../../../../../tests/layout/res_parser/no_monolithic for f in * ; do diff $f $OTHER/$f ; done 2018-09-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (parse_node_manual): Do not call trim_spaces_comment_from_content. 2018-09-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/layout/list-of-tests: Use -c instead of --set-customization-variable in the interests of concision. 2018-09-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/init/chm.pm (chm_init): Do not refer to a 'misc_content' array. 2018-09-28 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/nested_formats/generate_all_texi.pl: Refer to list-of-tests rather than tests-parser.txt. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line): Do not set 'misc_content'. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/Makefile.am (base_tests): Remove 'coverage'. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/coverage/formatting.texi * tp/tests/coverage/simplest.texi * tp/tests/coverage/f--ile.e--xt, * tp/tests/coverage/f--ile.jpg: Move to t/tests/layout. * tp/tests/layout/list-of-tests, * tp/tests/tex_html/list-of-tests: Reference formatting.texi in new location. * tp/tests/layout/f--ile.gif, * tp/tests/layout/f--ile.jpeg: Remove. * tp/tests/coverage/list-of-tests (formatting): Test moved from here, to: * tp/tests/layout/list-of-tests (formatting): Here. This leads to "simplest.texi" being included in the output of some the 'formatting_regions' test, and different image files being referenced in 'formatting_regions' and 'formatting_docbook'. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/coverage/list-of-tests (formatting): Test moved from here, to: * tp/tests/layout/list-of-tests (formatting): Here. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/Makefile.am: Do not generate 'coverage_macro-cr.texi'. It doesn't appear to be used for anything. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (_copy_tree): Change a comment. * tp/Texinfo/Structuring.pm (_print_root_command_texi), * tp/Texinfo/Transformations.pm (insert_nodes_for_sectioning_commands) (print_down_menus): Use 'args' instead of 'misc_content'. * tp/Texinfo/Transformations.pm (fill_gaps_in_sectioning): Do not set 'misc_content'. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Converter.pm (_sectioning_command_normalized_filename), * tp/Texinfo/Convert/DocBook.pm (_convert), * tp/Texinfo/Convert/HTML.pm (command_text _convert_quotation_command, output), * tp/Texinfo/Convert/Info.pm (_info_header), * tp/Texinfo/Convert/Plaintext.pm (_contents, _convert): Use 'args' instead of 'misc_content'. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line) <misc command>: Do not call _trim_spaces_comment_from_content. This leads to a change in the 'misc_args' in a few cases of invalid nesting of line commands. (_trim_spaces_comment_from_content): Remove wrapper for Texinfo::Common::trim_spaces_comment_from_content. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi): Remove a comment. (_merge_text, _abort_empty_line, _parse_texi_regex): Add a comment noting these subs have XS overrides. (_gather_def_item, _close_commands, _end_line, _parse_texi) (_gather_previous_item): Remove commented-out debugging statements. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Delete 'staging_res' directories once finished. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Don't store string "raw_out_parser" in a variable. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Only use flags for latex2html in the latex2html tests. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Put flags for latex2html inside a variable so they are less distracting when reading the code. Use -c instead of --set-customization-variable in the interests of concision. Put code post-processing the output files in a separate shell function. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line) <misc command with text argument>: Do not call _trim_spaces_comment_from_content. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Remove some commented-out code. 2018-09-24 Gavin Smith <gavinsmith0123@gmail.com> * NEWS: Mention changes for newer versions of Perl. 2018-09-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list_of_tests (texi_glossary, texi_bib_example, texi_cond, cond, cond_xml): (cond_no-ifhtml_no-ifinfo_no-iftex, cond_ifhtml_ifinfo_iftex) (cond_info, cond_info_no-ifhtml_no-ifinfo_no-iftex) (cond_info_ifhtml_ifinfo_iftex): Removed. * t/92formatting.t (texi_glossary, texi_bib_example, texi_cond, cond, cond_xml): (cond_no-ifhtml_no-ifinfo_no-iftex, cond_ifhtml_ifinfo_iftex) (cond_info, cond_info_no-ifhtml_no-ifinfo_no-iftex) (cond_info_ifhtml_ifinfo_iftex): Added. 2018-09-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (parse_texi_file): Save name of subdirectory containing input file. * tp/Texinfo/Common.pm (parse_renamed_nodes_file): Check for noderename.cnf in subdirectory containing input file first. * t/92formatting.t (unknown_nodes_renamed): Output a file for the test and use a renamed nodes file. This restores an error message that was present in the test this one replaced. 2018-09-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (unknown_nodes_renamed, one_line, empty): Remove. * tp/t/92formatting.t (unknown_nodes_renamed, one_line, empty): New tests. * tp/maintain/regenerate_cmd_tests.sh: Wipe tests directory. * tp/tests/README: Do not mention wiping tests directory. Explain which other files to delete. 2018-09-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/92formatting.t: New file. * tp/t/92formatting.t (one_line_no_content): New test. * tp/tests/formatting/list-of-tests (one_line_no_content): Remove test. 2018-09-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/regenerate_cmd_tests.sh: Remove code dealing with "texi" as a special test case name. Do not use separate '$arg' and '$name' variables in the test scripts. 2018-09-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/PlainTexinfo.pm: Do not pass a 'FIX_TEXINFO' value into Texinfo.pm. * tp/Texinfo/Convert/Texinfo.pm (convert, _expand_cmd_args_to_texi): Remove '$fix' argument. * tp/t/fix_texinfo.t: Remove test. * doc/texinfo.texi (Other Customization Variables): Remove 'FIX_TEXINFO'. * NEWS: 'FIX_TEXINFO' customization variable has been removed. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line): Reparent an empty argument of a block command to the contents before possibly processing a float command, instead of after. (_parse_float_type): Allow args to be undefined. Do not use _trim_spaces_comment_from_content. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_line_command_args): Do not call _trim_spaces_comment_from_content. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_isolate_last_space): Isolate the last space on a misc_line_arg if it has a 'type' set, including 'empty_line_after_command'. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_isolate_last_space): Simplify code by taking out conditionals that are common to two blocks. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <@sortas>: Don't call _trim_spaces_comment_from_content. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <@U>: Don't call _trim_spaces_comment_from_content. * t/02coverage.t (invalid_U): Add use of @U with whitespace surrounding argument. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <@errormsg>: Don't call _trim_spaces_comment_from_content. * t/02coverage.t (test_errormsg): Add use of @errormsg with whitespace surrounding error message. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <',' seen for inline commands>: Use text in 'args' directly instead of calling _trim_spaces_comment_from_content. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Remove all code dealing with a test case specially if its name was 'texi'. * tp/tests/README: Don't mention a 'texi' special case. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (texi_glossary): Define test using '-c TEXINFO_OUTPUT_FORMAT=plaintexinfo'. This leads to an extra error message due to more processing taking place after '-c DUMP_TEXI=1' would have been processed. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/README: Explain how to run tests with run-parser-all.sh. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/formatting/list-of-tests (texi_bib-example, texi_cond, texi_ignore_and_comments): Define tests using '-c TEXINFO_OUTPUT_FORMAT=plaintexinfo'. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/nested_formats/list-of-tests (texi, texi_nested_formats): Rename test and use '-c TEXINFO_OUTPUT_FORMAT=plaintexinfo' to get a macro-expanded Texinfo output instead of using the special test name "texi". This means that the output will have the ".txi" extension instead of "texi", and in the out_parser_info directory, the output format will be info instead of texi. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Allow '-c TEXINFO_OUTPUT_FORMAT' to override '-c TEXI2HTML'. 2018-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/README: Update to mention list-of-tests file. 2018-09-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%no_brace_commands): Add '&'. (%brace_commands): Add 'ampchar'. * tp/Texinfo/Convert/Converter.pm (%defaul_xml_commands_formatting): Add 'ampchar'. * tp/Texinfo/Convert/TexinfoXML.pm (%commands_formatting): Add '&', 'ampchar'. * tp/Texinfo/Convert/Text.pm (%text_brace_no_arg_commands): Add 'ampchar'. * tp/Texinfo/Convert/Unicode.pm (%unicode_map): Add 'ampchar'. * tp/Texinfo/XS/misc.c (xs_parse_texi_regex), * tp/Texinfo/Parser.pm (_parse_texi_regex): Include & as a single letter command. * tp/t/19def.t (ampchar): New test. * util/texinfo.dtd: Add 'ampchar'. * configure.ac (TEXINFO_DTD_VERSION): Increase to '6.4dev'. * doc/texinfo.tex (\ampchar): Define. * doc/texinfo.texi (Inserting an Ampersand): New section. * NEWS: Mention @&, @ampchar{}. 2018-09-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi): Do not set a 'spaces_after_command_elt' value. (_abort_empty_line): Do not clear a 'spaces_before_argument_elt' value. * tp/Texinfo/XS/misc.c (xs_abort_empty_line): Make the same change. 2018-09-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_start_empty_line_after_command): Do not set a 'spaces_after_command_elt' value. (_abort_empty_line): Do not clear a 'spaces_after_command_elt' value. * tp/Texinfo/XS/misc.c (xs_abort_empty_line): Make the same change. 2018-09-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/regenerate_cmd_tests.sh: Less indirection in test scripts. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_remove_empty_content_arguments): Remove function. (_register_command_arg): Remove function. (module documentation section): Remove mention of 'block_command_line_contents'. (_end_line): Do not set or access 'block_command_line_contents' extra value. This is intended to simplify the parse tree. Reducing duplication of information makes it easier to track what data leads to output at later stages of processing. It reduces memory use and may increase speed. It makes it easier to inspect data structures that are "dumped" to a text stream. It is also easier to handle memory allocation in a rewrite in another programming language if the data structures are less cyclic. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/91morecoverage.t: New file. * tp/t/91morecoverage.t (texi_formatting, formatting_fr): New tests. * tp/tests/coverage/list-of_tests (texi, formatting_fr): Remove. Moving some tests into the test framework under tp/t is intended to reduce the running time for the tests. * tp/tests/README: Add advice on deleting a test. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/README: Add a note about how to check test results. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/regenerate_cmd_tests.sh, * tp/tests/run_parser_all.sh: Rename file with the specifications of tests to be run from 'tests-parser.txt' to 'list-of-tests'. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/DocBook.pm (_convert): Do not use the 'block_command_line_contents' array: use the 'args' array directly. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Plaintext.pm (_convert) <@quotation, @item, @listoffloats>: Do not use the 'block_command_line_contents' array: use the 'args' array directly. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_quotation_arg_to_prepend): Do not use the 'block_command_line_contents' array: use the 'args' array directly. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_convert_item_line_command), * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Do not use the 'block_command_line_contents' array: use the 'args' array directly. * tp/Texinfo/Parser.pm (_end_line): Include an inserted 'command_as_argument' element in the 'args' with the type 'command_as_argument_inserted'. * tp/Texinfo/Convert/Texinfo.pm (@ignored_types): Ignore 'command_as_argument_inserted'. (_expand_cmd_args_to_texi): Avoid outputing a comma after an ignored element. * tp/Texinfo/Common.pm: Remove mention of 'block_command_line_contents' from a comment. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_isolate_last_space): Remove useless argument. Callers updated. (module documentation section): Remove mention of 'space_at_end_block_command'. * tp/Texinfo/Convert/TexinfoXML.pm (_index_entry): Remove code stripping final whitespace. (_convert): Remove a commented-out statement for debugging. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_isolate_last_space): For all element types except 'menu_entry_node', store trailing spaces as a 'spaces_after_argument' value. This was already done for 'brace_command_arg'. * tp/Texinfo/Convert/Texinfo.pm (convert, _expand_cmd_args_to_texi): Check for and output these spaces. * tp/Texinfo/Convert/Converter.pm (_end_line_or_comment): Look for these spaces in new location. * tp/Texinfo/Convert/Converter.pm (_convert_argument_and_end_line): Replace with two new subroutines, one in DocBook.pm, one in TexinfoXML.pm. This allows end-of-line spaces to continue to be ignored in DocBook output. * tp/Texinfo/Convert/TexinfoXML.pm (_end_line_spaces): Check for end-of-line spaces in new location. (_convert): Check for and output 'spaces_after_argument' in a few places. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_index_entry): Remove trailing spaces from the text of an index entry. 2018-09-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_convert) <def line>: Remove trailing spaces from bracketed terms. 2018-09-12 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Converter.pm (_end_line_or_comment): Do not call _tree_without_comment. * tp/Texinfo/Convert/TexinfoXML.pm (_texinfo_line): Do not call _tree_without_comment. * tp/Texinfo/Convert/Converter.pm (tree_without_comment): Remove. 2018-09-11 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_isolate_last_space): If @c or @comment is the last in the line, remove it from the 'args' and store it as 'comment_at_end' extra value. * tp/Texinfo/Convert/TexinfoXML.pm (): (_end_line_spaces): Do not handle the case of a comment being in the 'args'. (_convert) <@item or @itemx in @table>: Check for and output a comment. * tp/Texinfo/Convert/Converter.pm (_end_line_or_comment) (_tree_without_comment, _convert_argument_and_end_line): Meaning of arguments changed. Check for a comment in the new location. Callers updated. * tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi): Check for and output a comment. 2018-09-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line) <@multitable>: Call _isolate_last_space. 2018-09-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_abort_empty_line): Always get the element that refers to the space element through the 'command' value. This saves the trouble of looking at $current, $current->{'parent'}, $current->{'parent'}->{'parent'} etc. Delete the 'spaces_after_command_elt' value properly. (_parse_texi): Set 'command' on created 'empty_spaces_before_argument' elements. * tp/Texinfo/XS/misc.c (xs_abort_empty_line): Make the same change. 2018-09-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_start_empty_line_after_command): Refer to spaces element at start of line as 'spaces_after_command_elt' instead of 'spaces_after_command'. Refer back to the main element for the command as 'command'. (_abort_empty_line): Use 'command' extra value to find an element that refers to the spaces element as 'spaces_after_command'. If found, change the reference to the element to a reference to a simple string. This was already done for 'spaces_before_argument_elt' but is now done for 'spaces_after_command_elt' too. * tp/Texinfo/XS/misc.c (xs_abort_empty_line): Make the same change. * tp/Texinfo/Structuring.pm (new_block_command), * tp/Texinfo/Transformations (fill_gaps_sectioning): Update to store spaces after the command in 'spaces_before_argument'. * tp/Texinfo/Convert/TexinfoXML.pm (_leading_spaces, _convert): Update to access 'spaces_after_command'. * tp/Texinfo/Common.pm (move_index_entries_after_item): Insert a newline in the 'spaces_before_argument' value if it is present. * tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi): Output a space in 'spaces_before_argument' if it is present. * tp/t/collect_spaces.t: Test removed. 2018-09-02 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi, _close_brace_command), * tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi), * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Save the delimiter character of @verb as the 'delimiter' extra value, instead of putting in 'type'. 2018-09-02 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (module documentation): Update. 2018-09-02 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_convert), * tp/Texinfo/Convert/DocBook.pm (_convert): Leave an 'empty_line_after_command' element alone just as 'empty_spaces_after_command' is left alone. 2018-09-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/regenerate_cmd_tests.sh: Do not print diffs if perl exited with a non-zero exit status, as the diffs will be out of date and this could hide a syntax error. 2018-09-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Update 'parent' on elements of a 'def_aggregate'. 2018-09-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Leave an 'empty_line_after_command' element alone just as 'empty_spaces_after_command' is left alone. 2018-09-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/all_tests.sh <generate>: Use "set -e" to make script stop if a test script stops. 2018-09-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Set 'parent' on 'def_aggregate' element. 2018-09-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def, _split_def_args) (_split_delimiters): Set 'parent' on new elements. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line): Do not set 'def_args' extra value. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_convert), * tp/Texinfo/Convert/DocBook.pm (_convert): Use the def args in the main tree instead of the 'def_args' extra array. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Include inserted content on def line in main tree. * tp/Texinfo/Convert/Texinfo.pm (convert): Ignore this inserted content when converting back to Texinfo. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def, _split_def_args), * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Give inserted elements at front of def line the types 'bracketed_inserted' and 'spaces_inserted' instead of 'bracketed_def_content' and 'spaces'. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Text.pm (_convert), * tp/Texinfo/Convert/Plaintext.pm (_convert), * tp/Texinfo/Convert/HTML.pm (_convert_def_line_type): Refer to 'def_parsed_hash' instead of 'def_args'. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (definition_arguments_content) (definition_category): Refer to 'def_parsed_hash' instead of 'def_args'. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Copy the element label in a 'def_args' pair into the 'def_role' extra value on the element. 2018-08-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Collect adjacent non-whitespace elements into a 'def_aggregate' element and make this change in the main tree as well as in the 'def_args' array. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Use the same hashes in the main tree as in the def_args array for the arguments on a @def* line. This means that delimiter characters are in their own elements now. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Change the type of final spaces elements to 'spaces_at_end'. This leads to the spaces being ignored in some output formats. (_next_bracketed_or_word): Remove unused. * tp/Texinfo/Convert/TexinfoXML.pm (_convert) <def commands>: Strip off a final newline. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_split_delimiters): New function. (_parse_def): Do not produce def_args array via an intermediate array of a similar format. Use "map" with _split_delimiters to place [](), in separate elements, before processing the arguments on the line. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_def): Reorder some code. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_split_def_args): New function. (_parse_def): Use "map" with _split_def_args to create the array of def line contents. This does all at once what _next_bracketed_or_word did across all the times it was called. (_next_bracketed_or_word): Collect elements from the array that has already been processed. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Structuring.pm (new_block_command) * tp/Texinfo/Parser.pm (_parse_texi, _end_line): Do not set 'command' extra value on 'empty_line_after_command' or 'empty_spaces_after_command'. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Remove conditional block that checks for a raw formatting command (e.g. @html if --html is given to texi2any) that is being expanded. It appears that this code is never executed as an earlier clause of the "if" statement is executed if this format is being expanded. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <CLOSED raw>: Do not add a 'command' extra value on the 'empty_line_after_command'. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_end_line) <after @end verbatim>: Do not use 'command' extra value to check if we are after @end verbatim. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Set top_srcdir as well as top_builddir in case these are not defined. This compensates for a recent change in Texinfo::ModulePath. 2018-08-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (parse_def): Split up text elements in the main tree into separate elements. This means in most cases, the elements in the 'def_args' hash and the elements in the main tree will be the same. (The exceptions are when "(" or ")" is split into a "delimiter" element in def_args, and when there is trailing whitespace on a line before the LF.) (next_bracketed_or_word): Include any trailing newline in the returned values. (parse_def): Avoid adding elements with a trailing newline to 'def_args'. This change should only affect the main tree, not the value of the 'def_args' hash, or the output from any of the converters. It is intended to reduce duplication of information in the parse tree, and to make handling of allocated memory simpler in the C replacement for this module. 2018-08-23 Gavin Smith <gavinsmith0123@gmail.com> * util/htmlxref.cnf: Remove gcj, info. Add cvs. Report from Ineiev <ineiev@gnu.org> and Thérèse Godefroy <godef.th@free.fr>. 2018-08-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/xspara.c (xs_unicode_text, xs_process_text): Use static buffers to avoid memory leaks. 2018-08-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/xspara.c (xspara_get_pending, xspara_add_pending_word) xspara_end, xspara_add_next, xspara_add_text): Save storage for text buffers in static variables to avoid memory leak. * tp/Texinfo/XS/text.c (text_reset): New function. 2018-08-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/misc.c (xs_parse_texi_regex): Retain all memory allocated on the heap in static pointers. Perl does not free them, as when SV's are initialized with sv_setpv, the data pointed to is copied, not the pointer itself. This memory leak is visible with valgrind, e.g. run TEXINFO_XS=debug PERL_DESTRUCT_LEVEL=2 valgrind --log-file=val.log --leak-check=full perl -w t/02coverage.t commands 2018-08-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Makefile.am (EXTRA_DIST) Do not distribute tp/Makefile.PL or tp/MANIFEST. * tp/Texinfo/XS/Makefile.am: Do not distribute Makefile.PL, MANIFEST or prepare_standalone_perl_module.sh. This is to reduce confusion about whether these files are needed for "make dist". 2018-08-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/README: Clarify purpose of regenerate_file_lists.pl. Do not mention prepare_perl_module_files.sh. 2018-08-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS: Run "gnulib --add-import strndup". 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS: Run "gnulib --add-import iconv". * tp/Texinfo/XS: Run "gnulib --add-import strchrnul". 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS: Put subdirectories 'lib' and 'm4' inside new subdirectory 'gnulib' (as is done in the top-level gnulib import). * tp/Texinfo/XS/Makefile.am (AM_CPPFLAGS, ACLOCAL_AMFLAGS, SUBDIRS) (EXTRA_DIST), * tp/Texinfo/XS/configure.ac (AC_CONFIG_MACRO_DIR, AC_CONFIG_FILES): Update. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Makefile.am (AM_LOG_T_FLAGS): Remove -I flags. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XSLoader.pm (_find_file): Skip @INC hooks. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/configure.ac (AC_CONFIG_FILES): Add parsetexi/Makefile. * tp/Texinfo/XS/Makefile.am (SUBDIRS): Add parsetexi. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/ModulePath.pm.in: Add 'parsetexi' directory to @INC. <TEXINFO_XS_PARSER environment variable set>: Add a subroutine to @INC to override Texinfo::Parser with Parsetexi.pm. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl <finding version number>: Refer to Texinfo::Common instead of Texinfo::Parser. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Do not check for module files relative to the installed location. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/ModulePath.pm.in: Do not account for the case of one of $top_builddir and $top_srcdir being set but not the other. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/Makefile.am: Do not install TestXS.pm, as this is useless. 2018-08-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Only call fileparse once (used for both finding modules and translation files). Do not add a directory to @INC that Texinfo::ModulePath takes care of adding. Add a comment. 2018-08-14 Gavin Smith <gavinsmith0123@gmail.com> * autogen.sh: Initialise tp/Texinfo/XS directory. 2018-08-14 Gavin Smith <gavinsmith0123@gmail.com> * configure.ac (xs_srcdir): Update path from XS builddir to srcdir. * tp/Texinfo/XS/fail.pl: update path to TestXS module. 2018-08-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/Makefile.am (modulesdir): Change to new location. (CLEANFILES, EXTRA_DIST, xs_LTLIBRARIES): Add MiscXS files. (MiscXS_la_CFLAGS): Define. * tp/Texinfo/MiscXS/MiscXS.pm, * tp/Texinfo/MiscXS/miscxs.h, * tp/Texinfo/MiscXS/misc.c: Move to tp/Texinfo/XS. * tp/Texinfo/MiscXS: Remove subdirectory. * tp/Texinfo/ModulePath.pm.in: Refer to Texinfo/XS instead of Texinfo/MiscXS. * tp/Makefile.am (SUBDIRS, DIST_SUBDIRS): Remove Texinfo/MiscXS. * configure.ac: Do not configure in tp/Texinfo/MiscXS. 2018-08-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/XSParagraph, tp/Texinfo/XS: Move subdirectory. This is intended to be a subdirectory for all XS modules and to remove the duplication that exists between tp/Texinfo/Convert/XSParagraph and tp/Texinfo/MiscXS. * configure.ac, * tp/Makefile.am, * tp/Texinfo/Convert/Paragraph.pm, * tp/Texinfo/ModulePath.pm.in, * tp/Texinfo/XS/XSParagraph.xs, * tp/Texinfo/XS/TestXS.pm: Refer to Texinfo/XS subdirectory instead of Texinfo/Convert/XSParagraph and namespaces beginning "Texinfo::XS" instead of "Texinfo::Convert::XSParagraph". 2018-08-14 Gavin Smith <gavinsmith0123@gmail.com> * info/t/Init-test.inc: Do not check whether the terminal needs to be reset with stty, because the command that caused this problem ("read -t") is not being used any more. 2018-08-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/01use.t: Inline file tp/t/manual_tree.pl. 2018-08-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/ModulePath.pm.in (init): Remove subroutine prototype. * tp/Texinfo/ModulePath.pm.in (import): Wrap 'init' to allow using module with "use Texinfo::ModulePath". 2018-08-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/01use.t, tp/t/02coverage.t, tp/t/03coverage_braces.t, tp/t/04verb.t, tp/t/05paragraph.t, tp/t/06columnfractions.t, tp/t/08misc_commands.t, tp/t/09indices.t, tp/t/10menu.t, tp/t/16raw.t, tp/t/181quotation.t, tp/t/18itemize.t, tp/t/19def.t, tp/t/20preformatted.t, tp/t/21multitable.t, tp/t/22xtable.t, tp/t/25regions.t, tp/t/27float.t, tp/t/28heading.t, tp/t/30sectioning.t, tp/t/50value.t, tp/t/55conditionals.t, tp/t/57invalid_nestings.t, tp/t/58alias.t, tp/t/60macro.t, tp/t/70value_and_macro.t, tp/t/80include.t, tp/t/accents.t, tp/t/automatic_menus.t, tp/t/automatic_nodes.t, tp/t/collect_spaces.t, tp/t/converters_tests.t, tp/t/do_master_menu.t, tp/t/docbook_tests.t, tp/t/fix_texinfo.t, tp/t/html_tests.t, tp/t/index_before_item.t, tp/t/info_tests.t, tp/t/languages.t, tp/t/nodenormalization.t, tp/t/paragraph.t, tp/t/plaintext_tests.t, tp/t/protect_character_in_texinfo.t, tp/t/reference_to_text_in_tree.t, tp/t/test_brace_count.t, tp/t/test_fill_gaps_in_sectioning.t, tp/t/test_is_content_empty.t, tp/t/test_protect_hashchar_at_line_beginning.t, tp/t/test_sort.t, tp/t/test_tree_copy.t, tp/t/xml_tests.t: Add "use lib '.'" to add current working directory to @INC, the Perl module include path. This directory is not present in @INC in recent versions of Perl, which makes running tests from the command-line (like "perl -w t/02coverage.t") difficult. Require Texinfo::ModulePath to add all the other required directories to @INC. As tp/Texinfo/ModulePath.pm is generated in the builddir, this should work for out-of-source builds. 2018-08-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/01use.t: Use Texinfo::ModulePath. 2018-08-12 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (parser): Remove code allowing calling this function in an object-oriented way. 2018-08-12 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (parser, duplicate_parser): Move code out for duplicating an existing parser to a new function. * tp/Texinfo/Convert/HTML.pm (output) <renamed nodes>: Call 'duplicate_parser'. 2018-08-12 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%default_parser_state_configuration): Remove 'gettext' and 'pgettext'. * tp/texi2any.pl ($parser_default_options): Remove 'gettext' and 'pgettext'. * tp/Texinfo/Parser.pm (%parser_default_configration_subs): (%parser_default_configration_no_subs): Remove. There are no subroutines in the parser configuration any more. (_setup_parser_default_configuration): Remove. (parser, simple_parser): Call dclone directly instead of _setup_parser_default_configuration. Do not check for CODE values on the parser hash object when duplicating a parser. (_setup_conf): Do not check for CODE values on the parser hash object when copying a parser configuration. (MODULE DOCUMENTATION SECTION): Remove mention of 'gettext' configuration. * tp/Texinfo/Common.pm (warn_unknown_language, warn_unknown_split): Do not take a 'gettext' argument. Callers updated. * tp/Texinfo/Report.pm (new): Do not set 'gettext' or 'pgettext' on object. * tp/Texinfo/Convert/Converter.pm (converter): Do not set 'gettext' or 'pgettext' on object. 2018-08-12 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (__, __p): Copy functions from texi2any.pl. Place these in @EXPORT. (%default_parser_state_configuration): Refer to __ and __p for 'gettext' and 'pgettext' instead of stub functions. * t/test_utils.pl: Call Locale::Messages::bindtextdomain for 'texinfo' domain as well as 'texinfo_document'. * tp/texi2any.pl (__, __p): Remove definitions. * tp/Texinfo/Report.pm (__, __p): Do not take a first argument that is a parser object. Do not look at 'gettext' and 'pgettext' configuration values: call the functions in Locale::Messages directly. * tp/Texinfo/Common.pm, * tp/Texinfo/Structuring.pm, * tp/Texinfo/Parser.pm, * tp/Texinfo/Convert/Converter.pm, * tp/Texinfo/Convert/Docbook.pm, * tp/Texinfo/Convert/HTML.pm, * tp/Texinfo/Convert/IXIN.pm, * tp/Texinfo/Convert/Info.pm, * tp/Texinfo/Convert/Plaintext.pm, * tp/Texinfo/Convert/TexinfoXML.pm: Do not call __ or __p as methods on a parser object: use the functions exported from Common.pm instead. The only effect of this change should be in the test suite where the default stub values for 'gettext' and 'pgettext' were used for Texinfo. This should have no user-visible effect. The name of the translation domain ("texinfo") is no longer set from the name of the package in texi2any.pl, but this was already hard-coded in Texinfo/Report.pm. 2018-08-10 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/test_utils.pl (test): Avoid method call syntax for calling Texinfo::Parser::parser. 2018-08-10 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Customization Variables for @-Commands): Mention that these variables are not passed on to TeX. Comment out commands that only do anything for TeX. Report from Karl. 2018-08-10 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_parse_node_and_warn_external): Call 'parse_node_manual' from Texinfo::Common instead of Texinfo::Parser. 2018-08-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Report.pm (gdt): Remove unused call to pgettext. 2018-08-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/60macro.t (line_after_recursive_call): New test. 2018-08-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Transformations.pm (_new_node): Call 'parse_node_manual' from Texinfo::Common instead of Texinfo::Parser, and do not call Texinfo::Parser::register_label. 2018-08-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Common.pm (%default_parser_state_configuration): Do not allow customizing the root parser context. * tp/Texinfo/Parser.pm (parser, simple_parser, _parse_texi): Hard-code '_root' as the root context. * tp/t/accents.t (test_accent_stack, test_enable_encoding): Do not set 'context' on created parser. Allow for an extra level of element nesting on the tree returned from the parser. 2018-08-09 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_register_label): Remove a useless variable assignment. Remove an unused argument. Do not return a value. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/t/Infokey-config: Use C-x for aborting in echo area in test suite. * info/t/echo-area-no-completions.sh, * info/t/index-apropos.sh: Update. 2018-08-07 Vitezslav Crhonek <vcrhonek@redhat.com> (tiny change) * info/info.c (get_initial_file) <man page fallback>: Avoid leaking memory. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/t/Init-test.inc (run_ginfo, timeout_test): Record process ID of background process that does the timing out, and kill this process if ginfo exited first. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/infomap.c (default_emacs_like_ea_keys) (default_vi_like_ea_keys): Remove ineffectual key bindings. Remove key bindings for sequences beginning with ESC, as these have not worked since ESC was made an abort key. Remove binding for "C-x o" as it is not possible to escape the echo area any more. Remove bindings for SPC and ? which are self-inserting. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/t/Init-inter.inc: File removed. All contents moved into Init-test.inc. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/t/Init-inter.inc (init_interactive_test): New function, containing commands that were at the top-level of this file. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/t/Init-inter.inc (run_ginfo): Run ginfo inside a subshell with parentheses instead of using "sh -c". This enables the use of "$@" and avoids the need for an extra level of quoting when calling run_ginfo. Time out the process outside of the subshell. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/t/echo-area-no-completions.sh: New test. 2018-08-07 Gavin Smith <gavinsmith0123@gmail.com> * info/echo-area.c, info/session.c (pause_or_input): Move to session.c. Do not pause if there is already buffered input waiting. 2018-08-07 Vitezslav Crhonek <vcrhonek@redhat.com> (tiny change) * info/echo-area.c (info_read_completing_internal): Avoid memory leak. 2018-07-13 Niko Tyni <ntyni@debian.org> (tiny change) Perl 5.28 introduced thread-safe locales, where 'setlocale' only affects the locale of the current thread. External code like 'mbrtowc' isn't aware of this thread specific locale, so we need to explicitly modify the global one instead. Without this we could enter a busy loop in xspara__add_next (Texinfo::Convert::XSParagraph) for UTF-8 documents when mbrtowc returned -1. * tp/Texinfo/Convert/XSParagraph/xspara.c (xspara_init) [Perl version >= 5.28]: Call 'switch_to_global_locale' and 'sync_locale'. 2018-07-13 Niko Tyni <ntyni@debian.org> (tiny change) * tp/Texinfo/Parser.pm (_parse_special_misc_command) <@clickstyle>: Escape braces in regex to be compatible with recent Perl versions. 2018-06-04 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Transformations.pm (_reference_to_arg): Refer to 'args' array instead of 'brace_command_contents'. (Makes a couple of tests failing since 2017-10-29 pass.) 2018-06-04 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Plaintext.pm (_convert): When checking if a node name in a cross-reference includes a `.', do not include in the check any manual name that may have already been stored inside the paragraph formatter. Rical Jasan reported that an error message mentioning the "node name" would be given for output like "(gcc.info)Debugging Options" which is confusing as the `.' is not in the node name "Debugging Options". (bug-texinfo 2018-02-09) 2018-06-02 Gavin Smith <gavinsmith0123@gmail.com> * info/nodes.c (info_node_of_tag_ext): Always call node_set_body_start regardless of the value of preprocess_nodes_p. Benno Schulenberg reported that searching commands could find matches in the node information line if the use set "hide-note-references=On". 2018-06-02 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\pdfgettoks): Add a comment. 2018-03-10 Paul Eggert <eggert@cs.ucla.edu> * doc/texinfo.tex, contrib/psfonts-bronger.tex: Replace "write-file-hooks" with "before-save-hook". See https://lists.gnu.org/r/bug-gnulib/2018-03/msg00008.html. 2018-01-15 Gavin Smith <gavinsmith0123@gmail.com> * README-hacking: Mention js/ subdirectory. * js/README: Explain how to get git history of this project and refer to some background info on the web. 2018-01-09 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\definefontsizexi, \definefontsizex): Add new set of fonts \sevenrm, \seventt, \sevenbf, \sevenit, \sevensl, \sevensf \sevensc, \seventtsl, \seveni, \sevensy. (\resetmathfonts): Use them for math mode superscript. Vincent Lefevre reported that @var didn't work in superscript in math mode (bug-texinfo, 2017-11-27). 2018-01-09 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\assignfonts): Add a comment explaining purpose of \ifont and \syfont. 2017-12-26 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\setupmarkupstyle): Remove conditionals used for checking "markup styles in effect". They are not used anywhere. 2017-12-26 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\codequoteright, \codequoteleft): Check if we are still in a monospace font in case we are inside @r, like @code{@r{`}}. Report from rms. 2017-12-18 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\resetmathfonts): Revert last change. Wrong font used in footnote superscripts reported by Mohammad Akhlaghi. 2017-12-18 Bruno Haible <bruno@clisp.org> * util/htmlxref.cnf: Use https for sourceware.org, puszcza.gnu.org.ua, gcc.gnu.org, www.complang.tuwien.ac.at, www.gmplib.org, www.gnupg.org, ftp.gwdg.de, www.nano-editor.org, cran.r-project.org, tug.org. Update info for avl, flex, myserver, readline. 2017-12-11 Gavin Smith <gavinsmith0123@gmail.com> * util/htmlxref.cnf: Use https instead of http for links to manuals on gnu.org. Report from Bruno Haible. 2017-12-02 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\resetmathfonts): Define \scriptfont and \scriptscriptfont in addition to \textfont. Vincent Lefevre reported that @var didn't work in superscript in math mode (bug-texinfo, 2017-11-27). 2017-11-17 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\enddoublecolums): Correct a conditional checking \pagetotal. 2017-11-16 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\balancecolumns): If it appears that we have been called on to balance too much material for the final page of the double column material, output some of it using \doublecolumnout and leave remainder on current page. Otherwise, two problems occurred with the output: first, that the material on the last page of the index extended too low on the page (see "Final page of index hard to balance" case in texinfo-tex-test.texi); and second, a blank page could occur before the final page of the index (report from Arnold Robbins) (this happened because of marks output in \savemarks and \restoremarks). (\enddoublecolumns): Only change the output routine back to the usual one and reset all the formatting variables if no extra material has been added to the current page. Otherwise, repeat. 2017-11-09 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\pagesizes): Add one inch to height and width so that text will still fit on the page if @pagesizes is used with a small width. Report from Christopher Diemech 2017-10-12. 2017-10-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi): Remove all calls to _register_command_arg that added elements to 'brace_command_contents' array. Look at 'args' instead of 'brace_command_contents'. (_remove_empty_content_arguments): Do not check for a 'brace_command_contents' array. (module documentation section): Remove mention of brace_command_contents. * tp/Texinfo/Report.pm (_substitute): Do not look at 'brace_command_contents' array. * tp/Texinfo/Convert/Converter.pm (_table_item_content_tree): Do not call _register_command_arg. The effect of this change is to make the parse tree less cyclic, which should make it easier to understand, for example when it is printed. It may also reduce memory use. 2017-10-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/DocBook.pm (_convert): Use 'args' array instead of 'brace_command_contents' array. 2017-10-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Plaintext.pm (_image), * tp/Texinfo/Convert/IXIN.pm (output_ixin), * tp/Texinfo/Convert/HTML.pm (_convert_explained_command, output): Use 'args' array instead of 'brace_command_contents' array. 2017-10-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Plaintext.pm (_convert) (_image_formatted_text, _image): Use 'args' array instead of 'brace_command_contents' array. 2017-10-28 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Check if array elements are defined to avoid creating them accidentally. 2017-10-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Replace use of 'brace_command_contents' array in the 'extra' hash with the 'args' in the main tree. 2017-10-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_isolate_last_space): For 'brace_command_arg' only, save trailing spaces in 'spaces_after_argument' extra value instead of adding a 'spaces_at_end' element to the main tree. * tp/Texinfo/Convert/TexinfoXML.pm (_convert), * tp/Texinfo/Convert/Texinfo.pm (_expand_cmd_args_to_texi): Update to look at 'spaces_after_argument' after an argument to a brace command. * tp/Texinfo/Convert/Converter.pm (_collect_leading_trailing_spaces_arg): Check for a 'spaces_after_argument' record to find trailing spaces. 2017-10-26 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/TexinfoXML.pm (_leading_spaces_arg): Remove unused. 2017-10-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/MiscXS/misc.c (xs_abort_empty_line): Update to match Perl implementation. * tp/Texinfo/Parser.pm (import): Re-enable XS overrides. 2017-10-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi): Rename reference to spaces element from 'spaces_before_argument' to 'spaces_before_argument_elt'. (_abort_empty_line): Replace 'spaces_before_argument_elt' value with 'spaces_before_argument', a simple string value. (_close_current), (_parse_texi) <new line>: Call '_abort_empty_line' to remove spaces element. * tp/Texinfo/Convert/Converter.pm (_collect_leading_trailing_spaces_arg), * tp/Texinfo/Convert/Texinfo.pm (convert, _expand_cmd_args_to_texi), * tp/Texinfo/Convert/TexinfoXML.pm (_leading_spaces_before_argument): Access 'spaces_before_argument' as a string value. 2017-09-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_abort_empty_line): Change code to keep track of which element refers to space element in its 'extra' hash. No functional change intended. 2017-09-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_abort_empty_line): Change the name of a variable. Use a variable to simplify the code. 2017-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_abort_empty_line): Remove 'empty_spaces_before_argument' element from main tree. (import): Temporarily disable XS overrides. (_parse_texi) <new line>: Remove an 'empty_spaces_before_argument' element. Otherwise it will not be removed in '_abort_empty_line' because a 'new_line' element is in the way. Do not call '_abort_empty_line' for a continuation with @ inside a def command, as this leads to an 'empty_spaces_before_argument' element being removed when it was not before. (close_current) <bracketed>: Remove an 'empty_spaces_before_argument' element. This happens for some cases of malformed input. * tp/Texinfo/Convert/Texinfo.pm (convert, _expand_cmd_args_to_texi): Check for a 'spaces_before_argument' extra value, and output the spaces in it. * tp/Texinfo/Convert/TexinfoXML.pm (_leading_trailing_spaces_arg): Call _leading_spaces_before_argument to check for 'spaces_before_argument' extra value. * tp/t/test_tree_copy.t: Disable all tests, temporarily. * tp/Texinfo/Convert/Converter.pm (_collect_leading_trailing_spaces_arg): Check for 'spaces_before_argument' extra value. The effect of this change is to make the parse tree less cyclic, which should make it easier to understand. 2017-09-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <after ',' separating arguments>: Save 'spaces_before_argument' on element corresponding to argument. * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Call _leading_spaces_before_argument instead of _leading_spaces_arg. This uses the 'spaces_before_argument' element we saved in '_parse_texi'. 2017-09-22 Mathieu Lirzin <mthl@gnu.org> * Makefile.am (CLEANFILES): Remove $(noinst_SCRIPTS) to keep 'pre-inst-env' when doing 'make clean'. 2017-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Parser.pm (_parse_texi) <'{' seen>: Set spaces_before_argument on element for the argument itself, not for the element corresponding to the command, which is the parent element. * tp/Texinfo/Convert/TexinfoXML.pm (_convert): Allow 'spaces' attribute to be set for the element output for the first argument to a brace command. 2017-09-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/change_perl_modules_version.pl: Account for letters after version number. 2017-09-22 Gavin Smith <gavinsmith0123@gmail.com> * configure.ac: Increase version to 6.5dev. 2017-09-22 Mathieu Lirzin <mthl@gnu.org> * build-aux/pre-inst-env.in: New file, for launching programs from build directory. * Makefile.am (noinst_SCRIPTS, CLEANFILES): Add pre-inst-env. 2017-09-16 Paul Eggert <eggert@cs.ucla.edu> * doc/texinfo.tex: Use 'https' in preference to 'http' in comments. 2017-09-12 Gavin Smith <gavinsmith0123@gmail.com> 6.5 release. * configure.ac, NEWS, util/texi2dvi, util/texi2pdf, doc/refcard/txirefcard.tex: Version number. Copyright 2017, 2018 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.