2021-07-03 Gavin Smith <gavinsmith0123@gmail.com> 6.8 * tp/Texinfo/Convert/HTML.pm: unconditionally reference MathJax code if HTML_MATH is 'mathjax' and it is non-split output. 2021-07-03 Gavin Smith <gavinsmith0123@gmail.com> 6.8 * configure.ac, NEWS, util/texi2dvi, util/texi2pdf: versionn * tp/Texinfo/Documentlanguages.pm: Regenerate. 2021-07-02 Gavin Smith <gavinsmith0123@gmail.com> * INSTALL: Refer to doc/README. From Patrice. 2021-07-01 Gavin Smith <gavinsmith0123@gmail.com> * doc/README: tweak instructions 2021-06-30 Gavin Smith <gavinsmith0123@gmail.com> pretest 6.7.92 * configure.ac, util/texi2dvi, util/texi2pdf: version * tp/texi2any.pl: 2021 * README-hacking: update 2021-06-30 Gavin Smith <gavinsmith0123@gmail.com> Remove old js files. * js/texinfo-js.in, js/texinfo-js.texi, * js/build-aux/eslint.json, js/build-aux/modernizr.json, js/build-aux/texinfo.tex: Remove. * js/README: remove out-of-date material 2021-06-24 Patrice Dumas <pertusus@free.fr> Remove SVN keyword. * util/texi2pdf (version), util/pdftexi2dvi (version): Do not use '$Revision$' keyword as this doesn't work with git. 2021-06-22 Per Bothner <per@bothner.com> * js/info.js (Remote_store): Use parent window rather than top window. The latter breaks if we're running the info browser in an iframe. 2021-06-20 Gavin Smith <gavinsmith0123@gmail.com> * NEWS: update 2021-06-17 Gavin Smith <gavinsmith0123@gmail.com> * Pod-Simple-Texinfo/pod2texi.pl: Fix some messages. Report from Benno Schulenberg. Update copyright years. 2021-06-16 Gavin Smith <gavinsmith0123@gmail.com> pretest 6.7.91 * configure.ac, util/texi2dvi, util/texi2pdf, * info/info.c (main), install-info/install-info.c (main): version, 2021. 2021-06-08 Gavin Smith <gavinsmith0123@gmail.com> Document @indent @image{} * doc/texinfo.texi (Image Syntax): Document that @image commands should sometimes be preceded by @indent or @noindent. 2021-05-06 Gavin Smith <gavinsmith0123@gmail.com> Fix afl-fuzz error * info/info-utils.c (scan_reference_label): Avoid advancing pointer if we are already at the end of the buffer, in the case of a malformed input file. Report from Nathaniel Beaver for file generated by afl-fuzz. 2021-05-06 Gavin Smith <gavinsmith0123@gmail.com> Fix afl-fuzz error * info/info-utils.c (copy_input_to_output): Avoid calling copy_converting with negative argument in case of malformed input file. Report from Nathaniel Beaver for file generated by afl-fuzz. 2021-05-04 Per Bothner <per@bothner.com> * js/info.js (updater.navigate): Relative movement without node links. For example if the current item is a @subsection without a @node, requesting the 'next' item can't use the Next link as there is none. Instead, use the nesting in the sidebar ToC. * js/info.js: Use keydown event handler instead of keyup. The former is more standard. 2021-05-02 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/HTML.pm (_convert_image_command): format @image with an <img> tag in preformatted environment. Report from Per Bothner. 2021-05-02 Per Bothner <per@bothner.com> * js/info.js: Fix sidebar-update after selecting non-section link. For example index link or @anchor are not sections, hence not in the ToC. To update the sidebar we need to find the the sectioning element surrounding the anchor. This involves some back-and-forth messaging. 2021-05-02 Vitezslav Crhonek <vcrhonek@redhat.com> * contrib/fix-info-dir: Remove unused variable 2021-05-02 Vitezslav Crhonek <vcrhonek@redhat.com> * util/texi2dvi (input_file_name_decode): Fix ShellCheck SC1083 warning https://github.com/koalaman/shellcheck/wiki/SC1083 This is only for suppresing the warning, both '{' and '}' are supposed to be literals. 2021-05-02 Gavin Smith <gavinsmith0123@gmail.com> Avoid extra newline after @titlefont * tp/Texinfo/Convert/Plaintext.pm (_convert) <@titlefont>: Remove newline from end of output as a newline following @titlefont{...} is now output separately since change on 2021-04-25. 2021-04-29 Per Bothner <per@bothner.com> * js/info.js (Text_input.keyup): At end hide sidebar if narrow. * js/info.js (Sidebar.render): Fix initial rendering. * js/info.css: Style hide-sidebar buttom vertically. 2021-04-28 Per Bothner <per@bothner.com> * js/info.js: Change auto-hide of sidebar in narrow windows. Now clicking in sidebar in narror window doesn't hide sidebar, but click in main page does - however, navigation is supressed. Also changed the show/hide-sidebar logic to work using the store/action/dispatch framework. 2021-04-27 Per Bothner <per@bothner.com> * js/info.js (config.LOCAL_HTML_PAGE_PATTERN): Handle local links. I.e. links like "#foo" on the same page. * js/info.js (cache_index_links): Fix thinko alink->link. 2021-04-27 Per Bothner <per@bothner.com> Change how "show/hide sidebar" button is displayed. Move it to upper-left and use arrows, to hopefully both make it more visible and take less space in hide mode. * js/info.js (add_header): Change DOM structure to make this work. (hide_sidebar_if_narrow): New function. * js/info.css: Styling changes for desired show/hide style. Improve determination of whether links are internal or not. * js/info.js (config.LOCAL_HTML_PAGE_PATTERN): New regex pattern (maybe_pageref_url_p): Use LOCAL_HTML_PAGE_PATTERN. 2021-04-25 Gavin Smith <gavinsmith0123@gmail.com> Avoid suppressing first paragraph indent with an @image. * doc/texinfo.tex (\imageindent): New macro. (\image): Use it. * doc/texinfo-tex-test.texi (Paragraph formatting): New section. Inconsistency between Info and TeX reported by Werner Lemberg. 2021-04-25 Gavin Smith <gavinsmith0123@gmail.com> Whitespace after @image * tp/Texinfo/Convert/Plaintext.pm (_convert): Output any top-level whitespace element. This allows a blank line of whitespace to appear after an @image that is not part of a paragraph. * tp/t/05paragraph.t (sole_image): New test. Report from Werner Lemberg. 2021-04-25 Gavin Smith <gavinsmith0123@gmail.com> * info/nodes.c (get_tags_of_indirect_tags_table): Free arrays in case of malformed Info file. Report from Vitezslav Crhonek. 2021-04-25 Gavin Smith <gavinsmith0123@gmail.com> * info/nodes.c (get_tags_of_indirect_tags_table): Reduce indentation of code. 2021-04-25 Vitezslav Crhonek <vcrhonek@redhat.com> (tiny change) Fix memory leaks. * info/nodes.c (get_nodes_of_tags_table): info_create_tag returns a pointer to a newly allocated TAG structure. Before continuing to the start of the loop it is necessary to free the current TAG structure, because the pointer will be overwritten by new value in the next iteration of the loop. 2021-04-25 Vitezslav Crhonek <vcrhonek@redhat.com> (tiny change) Fix memory leaks. * info/makedoc.c (process_one_file): The memory is freed for both pointers at the end of the loop. But there is one break that leaves the loop without freeing them. * info/session.c (info_goto_invocation_node): The value of 'default_program_name' is assigned by program_name_from_file_name() function. Its description says 'Return value should be freed by caller.' That was not done in this case. 2021-04-25 Gavin Smith <gavinsmith0123@gmail.com> Fix memory leaks. * info/m-x.c (describe_command): Always free a variable. * info/filesys.c (info_file_find_next_in_path): Do not free a string that shouldn't be freed. Reports from Vitezslav Crhonek. 2021-04-14 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\doxeteximage): Add an \hbox around \XeTeXpdffile or \XeTeXpicfile to avoid over-long line. Report from Werner Lemberg. 2021-04-08 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\end): Add % after opening brace to prevent spurious space being added to the output. Report from Werner Lemberg for "@end iftex". 2021-03-27 Gavin Smith <gavinsmith0123@gmail.com> * info/t/Init-test.inc (run_ginfo): Increase timeout for test from 3 to 5 seconds in an attempt to stop test failures. 2021-03-24 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Multitable Column Widths): Mention effect of inter-column space for @columnfractions. 2021-03-23 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\indexnofonts): Do not define any of the non-English letter glyph commands with a special definition that removes a following pair of braces, as these braces are not always present in the definitions for e.g. Unicode characters. This could lead to an error message within \setpdfdestname where \indexnofonts was called. Report from Werner Lemberg for XeTeX. 2021-03-22 Per Bothner <per@bothner.com> * js/info.js: Add tooltips for show/hide sidebar button. (SHOW_SIDEBAR_TOOLTIP, HIDE_SIDEBAR_TOOLTIP): Tooltip text. (show_sidebar): Update tooltips on show/hide of sidebar. * js/info.js (maybe_pageref_url_p): Recognize "index.html#PAGE". 2021-03-20 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\multitableparskip, \multitableparindent) (\multitablecolspace, \multitablelinespace): Try removing these and hardcoding values. \multitablelinespace was not used anyway and a comment referred to a @multitablecolmargin sequence which didn't exist. This should make the code a bit easier to understand. (\setmultitablespacing): Remove. 2021-03-20 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\multitable): Fix indendation of code. Remove useless macro \multistrut replacing it with \strut (always set to this since October 2004). Remove comment about space added by \multistrut, as no such space was added. Remove documentation of @multitable as this is in the manual. Remove comment crediting original author of macros, recorded here as Amy Hendrickson, 8/18/94, 3/6/96 (\tab): Remove comment from April 1999 saying what used to be in the code. (\alphaenumerate, \capsenumerate): Remove undocumented aliases. 2021-03-18 Gavin Smith <gavinsmith0123@gmail.com> Narrow @multitable nested within @quotation * doc/texinfo.tex (\domultitable): Subtract \leftskip before calculating column widths as fraction of \hsize. * doc/texinfo-tex-test.texi (@multitable): New section. Report of excessive width from Werner Lemberg. 2021-03-12 Gavin Smith <gavinsmith0123@gmail.com> Fix NetBSD build * tp/Texinfo/XS/parsetexi/api.c, * tp/Texinfo/XS/parsetexi/errors.c: Surround calls to gettext with #ifdef ENABLE_NLS. 2021-03-12 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/errors.c (bug): Don't call abort. 2021-03-11 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/coverage_macro.texi: Add blank lines to isolate test result differences for some glyph commands. 2021-03-10 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (@copying): Coalesce copyright years where possible. (Reporting Bugs): Refer bugs in Info mode to Emacs developers. 2021-03-05 Patrice Dumas <pertusus@free.fr> * Pod-Simple-Texinfo/pod2texi.pl (pod2texi_help): improve help message formatting by removing incorrect dots for options. Make easier to translate strings by splitting help message, splitting options, avoiding \n in translated messages. Report by Benno Schulenberg * tp/texi2any.pl (makeinfo_help): add TODO to remember to avoid \n in translated strings and split translated options messages by option. To be done when strings change. 2021-03-03 Per Bothner <per@bothner.com> * js/info.js (absolute_url_p): Replace with maybe_pageref_url_p. New function checks if URL may be cross-reference to local page. Prevents failure on links to images or stuff in sub-directories. (config.LOCAL_HTML_PAGE_PATTERN): Patternfor HTML files. 2021-03-02 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Invoking pod2texi): Remove reference to non-existent webpage. 2021-03-01 Gavin Smith <gavinsmith0123@gmail.com> GNULIB_MDA_FDOPEN=0 * tp/Texinfo/XS/configure.ac: Set GNULIB_MDA_FDOPEN=0 to prevent definition of fdopen in gnulib-provided stdio.h, which clashes with Perl header files. Report by Eli Zaretskii. Suggested fix from Bruno Haible. 2021-03-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash): Cast pointer to intptr_t before IV to prevent a compiler warning on MinGW. Suggestion from Eli Zaretskii. 2021-02-28 Gavin Smith <gavinsmith0123@gmail.com> Simplify, update, document infrastructure * util/srclist.txt: Remove all gettext lines as this should be taken care of by gettextize. * util/srclist-txi: Likewise. * README-hacking: Explain how to check that files have been updated. * INSTALL.generic: Update from gnulib. * build-aux/config.rpath: Update from gnulib. * autogen.sh: Remove obsolete comment about keeping files in CVS. 2021-02-28 Gavin Smith <gavinsmith0123@gmail.com> Run "autoreconf --verbose --force --install" to update files under build-aux. Don't commit changes to INSTALL or build-aux/texinfo.tex. 2021-02-27 Gavin Smith <gavinsmith0123@gmail.com> No raw newline in awk string constant * texindex/ti.twjr (usage, version): Avoid multi-line character string as it appears not to be supported by awk under AIX 7.1. Report by Bruno Haible. 2021-02-27 Gavin Smith <gavinsmith0123@gmail.com> Avoid cleaning generated files * tp/Texinfo/XS/Makefile.am (CLEANFILES): Remove .c files that are generated from .xs files, as these .c files are distributed in the tarball and shouldn't be cleaned. (.xs.c): Generate .c files under $(srcdir). Report from Bruno Haible. 2021-02-27 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Report.pm (gdt): Set and restore LC_ALL rather than LC_MESSAGES as the latter doesn't work on MS-Windows. Report from Eli Zaretskii. 2021-02-27 Gavin Smith <gavinsmith0123@gmail.com> * texindex/Makefile.am (bin_SCRIPTS): Remove dist_ prefix from variable to prevent distribution of the generated texindex wrapper script. Report by Bruno Haible. 2021-02-27 Eli Zaretskii <eliz@gnu.org> * info/session.c (read, _read): #undef before redefining, to avoid compilation warning due to Gnulib's unistd.h redefining them. 2021-02-24 Per Bothner <per@bothner.com> * js/info.js: Add button to show/hide sidebar. Other polishing. (Sidebar): Create show/hide button. (on_click): Handle clicks on show/hide button. Also automatically hide sidebar on click when narrow. (Sidebar): Copy _href property when copying ToC. * js/info.css: Various adjustments and tricks to make it work. 2021-02-23 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Common.pm (%default_customization_values), (%default_parser_customization_values), (%default_structure_customization_values), * tp/Texinfo/XS/parsetexi/Parsetexi.pm (%parser_default_configuration), (parser), * tp/Texinfo/ParserNonXS.pm (%parser_default_configuration), * tp/texi2any.pl: split %default_customization_values in two, as %default_parser_customization_values and %default_structure_customization_values differentiating parser options and options for Texinfo::Structuring. * tp/Texinfo/Structuring.pm (_complete_check_menus_directions), (complete_node_tree_with_menus, nodes_tree), * tp/t/test_utils.pl (test), tp/texi2any.pl: rename _complete_check_menus_directions() as complete_node_tree_with_menus(), call _check_referenced_nodes in that function and do not call _complete_check_menus_directions in nodes_tree. Call Texinfo::Structuring::set_menus_node_directions() and Texinfo::Structuring::complete_node_tree_with_menus() in texi2any.pl only if 'FORMAT_MENU' is set to 'menu'. * tp/texi2any.pl: call $converter_class->converter_defaults() with $cmdline_options argument to pass TEXI2HTML customization variable for HTML output. 2021-02-23 Patrice Dumas <pertusus@free.fr> * tp/texi2any.pl: use a special value if 'FORMAT_MENU' is set on the command line that is replaced by the output format default when the output format is known if the output format default is not nomenu, or set to 'menu'. 2021-02-23 Gavin Smith <gavinsmith0123@gmail.com> pretest 6.7.90 * configure.ac, util/texi2dvi, util/texi2pdf: Version. * info/info.c (main), install-info/install-info.c (main): 2021 * README-hacking: Edit release instructions. * info/dir.c (dir_entry_of_infodir): Do not call info_check_compressed with a null argument. 2021-02-22 Patrice Dumas <pertusus@free.fr> Remove unused code. * tp/Texinfo/XS/parsetexi/Parsetexi.pm (%tree_informations) 2021-02-22 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Structuring.pm (set_menus_node_directions) (nodes_tree, _section_direction_associated_node), (_complete_check_menus_directions): separate set_menus_node_directions() and _complete_check_menus_directions() from nodes_tree() to distinguish better code related to menus and not related to menus. Add _section_direction_associated_node() as a small helper function from node_tree too to be able to reuse the code. * tp/t/test_utils.pl, tp/texi2any.pl: call set_menus_node_directions. * tp/Texinfo/Structuring.pm (nodes_tree): set Top node next using the sectioning structure first. Avoid resetting node directions based on Top node first menu entry the direction was already set. 2021-02-21 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/HTML.pm (nodes_tree): use first non Top node for Top node next if there is no menu information. 2021-02-21 Patrice Dumas <pertusus@free.fr> use first section in file direction for footer if split at section or chapter * tp/Texinfo/Convert/HTML.pm, tp/init/book.pm: add CHAPTER_FOOTER_BUTTONS to be able to specify different customization for footer and header when split at chapter. (_translate_names, %BUTTONS_*): add FirstInFile* directions. (_default_format_element_footer) (_default_panel_button_dynamic_direction) (_default_panel_button_dynamic_direction_section_footer) (_set_variables_texi2html): reenable footer when there are more than one element in a file and use FirstInFile* directions for section and chapter footer formatting. (_default_panel_button_dynamic_direction_footer) (_default_panel_button_dynamic_direction_node_footer): rename _default_panel_button_dynamic_direction_footer() as _default_panel_button_dynamic_direction_node_footer(). Report from Per Bothner. 2021-02-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Structuring.pm (nodes_tree): Only call _check_referenced_nodes if FORMAT_MENU is not "sectiontoc". From Patrice. 2021-02-21 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Structuring.pm (_check_referenced_nodes): consider a node to be referenced if it is a target of a @*ref command. Report by Gavin. 2021-02-20 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Structuring.pm (elements_file_directions): add FirstInFile* directions for every element. 2021-02-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Structuring.pm (_check_referenced_nodes): New function to centralize code for checking referenced nodes. (nodes_tree): Call it. 2021-02-20 Gavin Smith <gavinsmith0123@gmail.com> No footer for several nodes in a file. * tp/Texinfo/Convert/HTML.pm (_default_format_element_footer): Do not output the element footer if there is more than one node in the output file, using the 'elements_in_file_count' hash. These changes lead to a few changes as to whether a rule is output at the end of a file but the output appeared acceptable in the cases I checked. Per Bothner reported that the footer would be relative to the last node output in the file for --split=section, while it would make more sense to have this relative to the first node output in the file. As this is not possible to do just now, just omit it. 2021-02-20 Gavin Smith <gavinsmith0123@gmail.com> Fix display of _ in section name. * doc/texinfo.tex (\setupdatafile): Read aux file giving _ | < and > catcode "active". * doc/texinfo-tex-test.texi (~[]"_|<>$#&%+\) Add a test of a cross-reference. Werner Lemberg reported that an underscore in a section title would be printed as a dot accent when using "@xrefautomaticsectiontitle on". 2021-02-20 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo-tex-test.texi (~[]"_|<>$#&%+\) Add example. 2021-02-20 Gavin Smith <gavinsmith0123@gmail.com> * README-hacking: Add advice on using git. 2021-02-20 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\refx): Remove useless second argument which is nearly always empty. 2021-02-20 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/HTML.pm (_convert_heading_command): add a div for sections without nodes. (_default_format_element_footer, _default_format_end_file): call close_registered_sections_level() in _default_format_element_footer() and not in _default_format_end_file(). * tp/t/init/t2h_singular.init (singular_format_footer): call close_registered_sections_level(). 2021-02-18 Gavin Smith <gavinsmith0123@gmail.com> Fix compiler warnings. * tp/Texinfo/XS/XSParagraph.xs (xspara_new): Remove code setting an unused variable. It appears that we are not blessing the return value into a class after all. * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_line_command): Parentheses around assignment in conditional. * tp/Texinfo/XS/parsetexi/input.c (text_buffer_iconv): Handle KOI8 cases in switch statement. * tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line): Remove unused label. Report from Per Bothner. 2021-02-18 Gavin Smith <gavinsmith0123@gmail.com> Reform parsetexi header files * tp/Texinfo/XS/parsetexi: Make header files include the other headers that they need. * tp/Texinfo/XS/parsetexi/command_data.awk, * tp/Texinfo/XS/parsetexi/element_types.awk: Output include guards in generated headers. * tp/Texinfo/XS/parsetexi/parser.c, * tp/Texinfo/XS/parsetexi/errors.c: (bug, fatal): Move to errors.c. 2021-02-18 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_default_format_begin_file): Add viewport declaration as was already output for node redirection pages. Report from Per Bothner. 2021-02-18 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi: Add include guards to all header files. 2021-02-17 Per Bothner <per@bothner.com> * js/info.js (scan_toc): Change to how sidebar links are matched. This fixes updating the sidebar when using a http/https URL. 2021-02-16 Per Bothner <per@bothner.com> * js/info.js: Fix [Contents] link by creating a fresh page-node for the ToC. This is done by cloning the ToC from the index.html. Cloning is needed because the same table is used for the Sidebar. 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> srclist-txi fixes * contrib/gdoc: Remove file. This saves us the trouble of working out if/how we should synchronize it with upstream. * util/srclist-txi, util/srclist.txt: Remove references to gsasl. 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> * doc/fdl.texi: Update to latest (URL change). 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> * README-hacking: Revise release instructions. 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> Fix for make po-check * po/POTFILES.in: Update * Makefile.in (po-check): check for parsetexi function calls 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> Fix for make po-check * tp/t/html_tests.t (example_class): Change test to avoid false positive with "make po-check". 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> Fix for make ccheck * doc/refcard/txirefcard.tex: Update to 6.8, 2021. Remove @setfilename line from mandatory file beginning. Add @displaymath. * doc/texinfo.texi (small): Add index entries for @smalldisplay and @smallindentedblock. 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> Pre-release fixes * configure.ac: Add dist-xz option. Change TEXINFO_DTD_VERSION to 6.8. * util/txicmdlist, util/txicustomvars: require Texinfo::ModulePath so that Locale::Messages can be found from Texinfo::Common. * tp/Texinfo/Common.pm: Make @variable_string_settables accessible outside of file. * doc/refcard/txivarcheck, util/txicustomvars: Fix to account for changes in manual and in Texinfo::Common. 2021-02-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh (check_latex2html_and_tex4ht): Do not use 'continue' inside a function inside a loop. Report from Vitezslav Crhon. 2021-02-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_convert_element_type): Always call close_registered_sections_level to close <div> element rather than adding a '</div>' string, as it's possible that the <div> was never opened. 2021-02-14 Per Bothner <per@bothner.com> * js/info.css: Adjustments to consistent margin/padding for index and other pages. 2021-02-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_convert_heading_command): Only output a <div> for a @node with an associated section. Otherwise, output a <span> as an anchor. 2021-02-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Print stderr for test error. * TODO: Remove item. 2021-02-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/maintain/regenerate_cmd_tests.sh: Remove code that was supposed to print diffs (ineffective since 2018-09-01). 2021-02-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Print diffs for test failure. 2021-02-14 Patrice Dumas <pertusus@free.fr> * Texinfo/Convert/HTML.pm (_contents_inline_element): Put inline contents elements in a <div>. Report from Per Bothner. 2021-02-14 Patrice Dumas <pertusus@free.fr> * Texinfo/Convert/HTML.pm (%default_formatting_references, converter_initialize, _default_*), init/book.pm, init/chm.pm, init/html32.pm, t/init/mini_ker_t2h.init, t/init/t2h_singular.init: use format_ in formatting functions strings and in formatting function names, to make clearer that the references called through the converter with format_ in the key point to the same functions. Report from Gavin. 2021-02-13 Patrice Dumas <pertusus@free.fr> * tp/init/book.pm (book_convert_heading_command): update with changes in HTML main converter. 2021-02-13 Per Bothner <per@bothner.com> Use the sectionning tree structure in HTML output * tp/Texinfo/Convert/HTML.pm (register_opened_section_level, close_registered_sections_level, _convert_heading_command, _convert_element_type, _default_end_file): use <div> for elements and keep the sectioning tree structure. 2021-02-10 Gavin Smith <gavinsmith0123@gmail.com> Do not call pclose on non-pipe. * install-info/install-info.c (readfile): Only call pclose if compression_program is set. Suggestion from Hans-Bernhard Bröker. Remove an incomprehensible comment. (open_possibly_compressed_file): Revise main comment for function. Only fseek back to start of stream if not reading from a pipe. Barath Aron reported that install-info hung on Threos OS. 2021-02-09 gettextize <bug-gnu-gettext@gnu.org> * gnulib/m4/gettext.m4: Upgrade to gettext-0.21. * gnulib/m4/iconv.m4: Upgrade to gettext-0.21. * gnulib/m4/intlmacosx.m4: Upgrade to gettext-0.21. * gnulib/m4/lib-link.m4: Upgrade to gettext-0.21. * gnulib/m4/nls.m4: Upgrade to gettext-0.21. * gnulib/m4/po.m4: Upgrade to gettext-0.21. * gnulib/m4/progtest.m4: Upgrade to gettext-0.21. * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.21. 2021-02-09 Gavin Smith <gavinsmith0123@gmail.com> Wrap or remove calls to abort in XS parser * tp/Texinfo/XS/parsetexi/parser.c (bug, fatal): New functions. * tp/Texinfo/XS/parsetexi: Use them throughout instead of calling abort, in order to give informative error messages. * tp/Texinfo/XS/parsetexi/end_line.c (end_line): Add code to deal with no description in menu entry. * tp/Texinfo/XS/parsetexi/macro.c (parse_macro_command_line): Do not abort on missing backslash in macro body. 2021-02-03 Gavin Smith <gavinsmith0123@gmail.com> Fix argument counting for nested @footnote. * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace) <context brace commands>: Pop the remaining args counter. * tp/t/55conditionals.t (inlinefmtifelse_nesting): New test. 2021-02-03 Gavin Smith <gavinsmith0123@gmail.com> "Inline" command nesting * tp/Texinfo/ParserNonXS.pm (%default_valid_nestings), * tp/Texinfo/XS/parsetexi/parser.c (check_valid_nesting): Allow anything inside an inline command like @inlinefmt. The ccd2cue manual nested @footnote inside of @inlinefmtifelse. 2021-02-03 Gavin Smith <gavinsmith0123@gmail.com> Copiable anchors tweaks * tp/Texinfo/Convert/HTML.pm (_convert_item_command, _convert_def_line_type, %css_map): Wrap <a> for copiable anchor in a <span> to avoid it flickering when mouse pointer moves over page. (_get_copiable_anchor, %css_map) Precede it with a space character rather than using CSS to get space before it, as this looks slightly better in Lynx. 2021-01-31 Gavin Smith <gavinsmith0123@gmail.com> Rename node to avoid . * doc/texinfo.texi (@small..., small): Rename node to "small" as periods in the node name are iffy. Update or remove references to this node. 'info texinfo smallexample' gave the error: Cannot find node '@small' 2021-01-31 Gavin Smith <gavinsmith0123@gmail.com> Encoding error message in standard format * tp/Texinfo/ParserNonXS.pm (_next_text), * tp/Texinfo/XS/parsetexi/input.c (convert_to_utf8): File name and line number in error message. 2021-01-31 Gavin Smith <gavinsmith0123@gmail.com> * info/display.c (hl_ref_rendition): Use bold for active link rather than no underline. 2021-01-31 Gavin Smith <gavinsmith0123@gmail.com> @set txiindexhyphenignore for parsetexi * tp/Texinfo/XS/parsetexi/api.c (build_global_info): Set 'txiindexhyphenignore' and others on 'info' hash. * tp/Texinfo/XS/parsetexi/Parsetexi.pm (get_parser_info): Copy settings from 'info' to 'values' hash. * tp/Texinfo/XS/parsetexi/macro.c (fetch_value): Remove out of date comment. * tp/t/09indices.t (transparent_sort_chars): New test. 2021-01-27 Patrice Dumas <pertusus@free.fr> * tp/Makefile.am (dist_init_DATA): install init/highlight_syntax.pm. 2021-01-27 Patrice Dumas <pertusus@free.fr> * tp/init/highlight_syntax.pm (highlight_process): add a postfix differing for input and output file to disambiguate files otherwise than with extension, in particular for the case of html being highlighted. 2021-01-26 Patrice Dumas <pertusus@free.fr> * Texinfo/Convert/HTML.pm (_convert_preformatted_command): no extra class based on argument expansion for @smallexample as we would prefer if users did not use that @-command. From Gavin. 2021-01-26 Patrice Dumas <pertusus@free.fr> * Texinfo/Convert/HTML.pm (%pre_class_commands, _convert_preformatted_command, _convert_indented_command, _convert_quotation_command, _convert): do not alias @small* commands in _convert() but in formatting functions, such that the information is not lost and corresponds to the parsing tree. Alias @small* in %pre_class_commands too. 2021-01-26 Patrice Dumas <pertusus@free.fr> * tp/init/highlight_syntax.pm (_get_highlighted_languages, %highlighted_languages_list, _get_language, highlight_process): In _get_highlighted_languages() call 'source-highlight --lang-list' to obtain the list of highlighted languages and highlight only languages that are in that list. 2021-01-26 Patrice Dumas <pertusus@free.fr> * tp/init/highlight_syntax.pm (highlight_process): make sure that the text fragment to be highlighted ends with a newline. 2021-01-25 Patrice Dumas <pertusus@free.fr> * Texinfo/Common.pm (add_valid_option), texi2any.pl (texinfo_add_valid_option): add Texinfo::Common::add_valid_option() to dynamically add customization options. Also add, in texi2any.pl, Texinfo::Config::texinfo_add_valid_option() as a wrapper around Texinfo::Common::add_valid_option() in the Texinfo::Config namespace. * tp/init/highlight_examples.pm: rename as tp/init/highlight_syntax.pm. Fix extraction of highlighted fragments. Use dynamically added HIGHLIGHT_SYNTAX_DEFAULT customization option to setup a default for the language of @example when not set. 2021-01-25 Patrice Dumas <pertusus@free.fr> * tp/init/highlight_examples.pm: use --out-format=html5 to be more in line with the type of HTML produced by texi2any. 2021-01-25 Eli Zaretskii <eliz@gnu.org> * info/pcterm.c (w32_kbd_read): Avoid gratuitous flickering of the MS-Windows console if screen-buffer size-change events are sent without any change in the screen dimensions. 2021-01-24 Patrice Dumas <pertusus@free.fr> * tp/init/highlight_examples.pm: add an init file that does syntax highlighting for @example with language argument using source-highlight. 2021-01-24 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/HTML.pm (_attribute_class): ignore an empty extra classes expansion result string. 2021-01-24 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/HTML.pm (_attribute_class, _convert_preformatted_command): pass extra classes as an array instead of a string. * tp/Texinfo/Convert/HTML.pm (_attribute_class, _protect_class_name): protect spaces in _attribute_class extra_classes. * tp/Texinfo/Convert/HTML.pm (_convert_preformatted_command): use Texinfo::Convert::NodeNameNormalization::convert to convert @example arguments to text. 2021-01-24 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/TexinfoXML.pm (%commands_formatting), util/texinfo.dtd: use specific entities for guillemotleft and guillemotright to be able to distinguish from guillemetleft and guillemetright and be able to come back to the @-command that generated the entity. 2021-01-23 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/TexinfoXML.pm (%commands_args_elements) (_convert), tp/t/xml_tests.t, tests/coverage_macro.texi, util/texinfo.dtd, util/txixml2texi.pl: add support for @example multiple arguments in TexinfoXML output. Update xml @example tests. * tp/Texinfo/Convert/HTML.pm (_convert_preformatted_command): always initialize $extra_class. * configure.ac (TEXINFO_DTD_VERSION): Increase to '6.7dev'. 2021-01-23 Gavin Smith <gavinsmith0123@gmail.com> KOI8 support * tp/Texinfo/XS/parsetexi/input.c (set_input_encoding) (convert_to_utf8): Support KOI8-R and KOI8-U, as these are documented to be supported. 2021-01-23 Gavin Smith <gavinsmith0123@gmail.com> Validate UTF-8 input * tp/Texinfo/XS/parsetexi/input.c (convert_to_utf8): Use iconv to validate UTF-8 input, in case for example the encoding is not declared and the input is actually Latin-1. Handle conversion errors by advancing in input stream rather than dumping core. 2021-01-23 Patrice Dumas <pertusus@free.fr> * tp/t/20preformatted.t: change name of test with example and add test with @display now that @example accepts arguments. 2021-01-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/parser.c (register_global_command): Fix equivalence of @summarycontents to @shortcontents. 2021-01-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/api.c (build_global_info2): Remove handling of @setcontentsaftertitlepage and @setshortcontentsaftertitlepage. 2021-01-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash): Create an empty contents array for an empty paragraph. * tp/t/08misc_commands.t (noindent_empty_para): New test. 2021-01-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/input.c (set_input_encoding): Save the encoding as an enum value rather than as a string. Give a warning message if the encoding is unknown. (convert_to_utf8): Use this value instead of checking the string. Return string unaltered if conversion couldn't be initialized. 2021-01-20 Gavin Smith <gavinsmith0123@gmail.com> Handle Latin-15 encoding in XS parser * tp/Texinfo/XS/parsetexi/input.c (convert_to_utf8): Support ISO-8859-15 encoding. (Used for GNU screen manual.) 2021-01-19 Gavin Smith <gavinsmith0123@gmail.com> "seeentry" and "seealso" extra elements * tp/Texinfo/ParserNonXS.pm (_parse_texi), * Texinfo/XS/parsetexi/separator.c (handle_close_brace): Do not convert @seeentry or @seealso commands to strings. Save references to them as extra elements. This allows more reliable checking of whether these commands were present. * Texinfo/Convert/DocBook.pm (_index_entry): Accomodate change. 2021-01-19 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Remove a pointless comment. 2021-01-19 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Advanced Indexing): Remove @ from @findex entries for seeentry and seealso. 2021-01-19 Gavin Smith <gavinsmith0123@gmail.com> Fix @seealso XS difference * tp/Texinfo/XS/parsetexi/parser.c (parse_texi): Isolate space before @seealso as was done for other commands that could occur in an index entry. * tp/Texinfo/Common.pm (%in_index_commands): Add 'subentry'. * tp/Texinfo/ParserNonXS.pm (_parse_texi): Do not leave an empty text element if isolating spaces from a text element that was all spaces to start with. * tp/t/09indices.t (seealso_duplicate): New test. 2021-01-17 Gavin Smith <gavinsmith0123@gmail.com> Handle malformed menu. * tp/Texinfo/ParserNonXS.pm (_close_current), * tp/Texinfo/XS/parsetexi/close.c (close_current): Do not attempt to remove an empty menu_entry_description element from the contents. It may not be in the contents but in the args instead, and also referenced elsewhere as an "extra" element. * tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash): Always create contents array for ET_menu_entry_description. * tp/t/10menu.t (menu_node_unterminated): New test. 2021-01-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command) <BLOCK_variadic>: Use a constant to represent unlimited args. * tp/Texinfo/XS/parsetexi/separator.c (handle_comma): Do not decrement counter if its value is this constant. 2021-01-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args): Give warnings if try to redefine one of the predefined indices. 2021-01-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace) <@U> Correct argument check. * tp/t/02coverage.t (invalid_U): Add another use of @U. 2021-01-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/end_line.c (parse_line_command_args) <@defindex>: No warning if index already exists (to match the Perl code). 2021-01-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command) <BLOCK_variadic>: Start counter at -2 rather than -1. 2021-01-15 Gavin Smith <gavinsmith0123@gmail.com> Attempt to recover from input encoding errors. * tp/Texinfo/ParserNonXS.pm (_next_text): Trap input errors and if caught, strip out non-ASCII bytes from input. 2021-01-15 Gavin Smith <gavinsmith0123@gmail.com> Simply end-of-sentence handling. * Texinfo/XS/xspara.c (xspara_add_text): Always double the end of sentence space here when it has to be doubled, rather than sometimes relying on it being done later in xspara_add_next. This is simpler and more reliable. (xspara__add_next, xspara_set_space_protection): Don't handle end of sentence spaces. * tp/Texinfo/Convert/ParagraphNonXS.pm (add_text, _add_next): The same. 2021-01-15 Gavin Smith <gavinsmith0123@gmail.com> end of sentence space for set_space_protection * tp/Texinfo/XS/xspara.c (xspara_set_space_protection): Double end-of-sentence space if at end of sentence. * tp/t/03coverage_braces.t (w_end_sentence): New test. 2021-01-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/ParserNonXS.pm (_setup_conf): Merge 'info' hash from conf rather than replacing with it. Otherwise giving --no-validate flag to texi2any led to character encoding differences in the output. 2021-01-14 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/paragraph.t: Update calls to set_space_protection. 2021-01-13 Gavin Smith <gavinsmith0123@gmail.com> void return type for set_space_protection * tp/Texinfo/Convert/ParagraphNonXS.pm (set_space_protection): Do not return an empty string. Callers updated. * tp/Texinfo/XS/xspara.c (xspara_set_space_protection): The same. 2021-01-13 Gavin Smith <gavinsmith0123@gmail.com> No line counting for set_space_protection. * tp/Texinfo/Convert/Plaintext.pm (_convert): Do not wrap any calls to set_space_protection with _count_added as set_space_protection does not reset the line counter and this can lead line numbers in index entries to be too high. * tp/t/09indices.t (w_lines_count): New test. 2021-01-13 Gavin Smith <gavinsmith0123@gmail.com> Simply paragraph formatter. * tp/Texinfo/XS/xspara.c (two_spaces_only): Remove function. (xspara_add_text): Simply use two spaces at the end of a sentence, rather than processing space characters from the input. This has a potential change to the output if exotic spaces were used. * tp/Texinfo/Convert/ParagraphNonXS.pm (add_text): The same. * tp/Texinfo/XS/xspara.c (xspara_add_text): Do not continue the loop after this, as this can rarely lead to calls to xspara__cut_line or xspara__end_line being missed later on in the loop body. 2021-01-13 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/xspara.c (two_spaces_only): Split out function for clarity. (xspara_add_text): Copy some code to each case of an if statement. 2021-01-12 Gavin Smith <gavinsmith0123@gmail.com> * NEWS, doc/texinfo.texi (@example): Document that @example can take an argument. 2021-01-12 Gavin Smith <gavinsmith0123@gmail.com> and Patrice Dumas <pertusus@free.fr> Separate @example args with commas. * tp/Texinfo/XS/parsetexi/command_data.txt: Use BLOCK_variadic for @example. * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_commands): Start remaining args counter at -1 for BLOCK_variadic. * tp/Texinfo/Common.pm (%block_commands): Use 'variadic' for 'example'. * tp/Texinfo/ParserNonXS.pm (_parse_texi) <variadic block command>: Set remaining_args value to -1. * tp/Texinfo/Convert/HTML.pm (_convert_preformatted_command): Concatenate any arguments to example with intervening spaces. * tp/t/html_tests.t (example_class, example_multi_class): New tests. 2021-01-01 Gavin Smith <gavinsmith0123@gmail.com> * doc/Makefile.am (wwwdoc-build): Add options for using MathJax. 2021-01-01 Gavin Smith <gavinsmith0123@gmail.com> CFLAGS for XS module checks * tp/Texinfo/XS/configure.ac: Set CFLAGS and LDFLAGS before running more tests, using Perl configuration values. This is intended to make results from the AM_GNU_GETTEXT checks reliable on Solaris 11, where gettext was found to work when it didn't. * tp/Texinfo/XS/configure.ac: Change AC_HELP_STRING to AS_HELP_STRING. 2021-01-01 Gavin Smith <gavinsmith0123@gmail.com> * configure.ac: Print informative message if we are not going to try to build XS modules. 2021-01-01 Gavin Smith <gavinsmith0123@gmail.com> Avoid compiler warning * tp/Texinfo/XS/parsetexi/extra.c (add_extra_integer) * tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash): Use wider integer type to avoid compiler warning. 2020-12-31 Gavin Smith <gavinsmith0123@gmail.com> Document INFO_JS_DIR. * TODO, * doc/texinfo.texi (HTML Customization Variables): Document INFO_JS_DIR. 2020-12-31 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions * doc/texinfo.texi (References): cross reference -> cross-reference (Cross Reference Commands): rm reference to @inforef (Info Format FAQ): Revise and extend. 2020-12-27 Gavin Smith <gavinsmith0123@gmail.com> * TODO: Update some items from (now-closed) bug tracker on Savannah. 2020-12-23 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/README: Remove long-obsolete file. 2020-12-22 Gavin Smith <gavinsmith0123@gmail.com> * info/session.c (forward_move_node_structure) (backward_move_node_structure): Check return value from info_handle_pointer. Otherwise an infinity loop can result from malformed input. Report from Nathaniel Beaver. 2020-12-22 Gavin Smith <gavinsmith0123@gmail.com> Fix info fuzzing error. * info/info-utils.c (copy_input_to_output): Avoid pointer arithmetic with value from input file to avoid chance of a invalid pointer. Add check for anchor offset being previous to current node. Report from Nathaniel Beaver 2020-05-25 who found the failing input with afl-fuzz. 2020-12-22 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Report.pm (gdt): Try to set locale from a list so that more can be easily added. 2020-12-22 Gavin Smith <gavinsmith0123@gmail.com> Remove warning for @menu seen before first @node. * tp/Texinfo/ParserNonXS.pm (_parse_texi), * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command): Remove warning for @menu seen before first @node. This warning would be output incorrectly when texi2any --pdf was run if the @top node was in an @ifnottex block. Report from Matt Wette 2020-11-29. 2020-12-22 Gavin Smith <gavinsmith0123@gmail.com> texi2dvi stop on first error * util/texi2dvi: Stop on first error. Changes the behaviour that has been current since change on 2019-03-31. Request from Marius Hofert 2020-12-09. * NEWS: Mention. 2020-11-29 Gavin Smith <gavinsmith0123@gmail.com> Revise in line with GNU Coding Standards * doc/texinfo.texi: Change "filename" to "file name" and avoid using "path" or "pathname". (Format with texi2dvi): Remove advice on running texi2dvi under MS-DOS. 2020-11-29 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Preparing for TeX, Other Info Directories): Remove explanations of how to set environment variables in various shells. 2020-11-29 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi: Change @smallexample to @example in many places. 2020-11-29 Gavin Smith <gavinsmith0123@gmail.com> Update manual for command deprecations * doc/texinfo.texi (@unnumbered @appendix): Discourage @centerchap. (@inforef): Discourage. (@small...): Don't encourage. (@definfoenclose): Discourage. 2020-11-29 Gavin Smith <gavinsmith0123@gmail.com> * texindex/ti.twjr: Add missing } in menu. 2020-11-29 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/test_utils.pm: require instead of use Texinfo::Transformations. 2020-11-29 Gavin Smith <gavinsmith0123@gmail.com> Upgrade libintl-perl to 1.32 * tp/maintain/lib/libintl-perl, * tp/maintain/lib/README: Upgrade to libintl-perl-1.32 * TODO: Update. * tp/Texinfo/Report.pm (gdt): Set and restore LC_MESSAGES when callling gettext. 2020-11-25 Gavin Smith <gavinsmith0123@gmail.com> data-manual attribute * tp/Texinfo/Convert/HTML.pm (_convert_xref_commands): Set data-manual attribute instead of class="texi-manual" on links to other Texinfo manuals. 2020-11-25 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\image): Call \makevalueexpandable. Remove outdated code for macro expansion. Christopher Dimech reported that @value does not work inside @image. 2020-11-21 Gavin Smith <gavinsmith0123@gmail.com> Remove newline at start of @macro argument * doc/texinfo.tex (\eatleadingcr): New macro. (\scanmacro): Put \eatleadingcr into definition of \xeatspaces. (\parsemargdef): Put \xempty{} into argument to \xeatspaces. * doc/texinfo-tex-test.texi (Newline at start of argument): New test. Hilaire Fernandes reported the case of a broken macro when a comma separating arguments was at the end of a line. This led the following newline to be included in the macro argument. This change stops whitespace being trimmed from the end of macro arguments, so only leading whitespace is trimmed, as is documented and is the case with texi2any's macro handling. 2020-11-18 Gavin Smith <gavinsmith0123@gmail.com> No extra . for image file extension * tp/Texinfo/Convert/HTML.pm (_convert_image_command): Do not include extra period before file extension in the case that the file was not found, in accordance with the manual's statement that the fifth argument to @image includes the extension. Report from Christopher Dimech. * NEWS: Update. 2020-11-17 Gavin Smith <gavinsmith0123@gmail.com> @set txiomitxrefpg * doc/texinfo.texi (\xrefX): If @set txiomitxrefpg is given do not output page numbers for cross-references. 2020-11-17 Patrice Dumas <pertusus@free.fr> Use files in input for tests with encodings and non ascii characters * tp/t/09indices.t, tp/t/input_files/encoding_index_latin1.texi, tp/t/input_files/encoding_index_utf8.texi: replace tests with encoded characters provided as perl strings with actual files properly encoded. 2020-11-17 Patrice Dumas <pertusus@free.fr> Normalize perl parser and XS parser output for better test comparability * tp/Texinfo/ParserNonXS.pm (_end_line): use a string for enumerate default specification for consistency. * tp/Texinfo/ParserNonXS.pm (_check_line_directive): use an integer for the line number for consistency. * tp/t/test_utils.pl (duplicate_key_array, _duplicate_element_keys, duplicate_tree_element_keys): new functions used to normalize parsers outputs for better tests comparabilities. * tp/t/test_utils.pl: put use Texinfo::Transformations; at the beginning. 2020-11-16 Gavin Smith <gavinsmith0123@gmail.com> Parse Texinfo commands in @displaymath as in @math (XS version) * tp/Texinfo/XS/parsetexi/command_data.txt: Remove displaymath from raw commands. * tp/Texinfo/XS/parsetexi/commands.c (close_paragraph_command): Remove displaymath. * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command): Push 'math' context for @displaymath. * tp/Texinfo/XS/parsetexi/close.c (close_commands): Pop context for @math and @displaymath. 2020-11-16 Patrice Dumas <pertusus@free.fr> Warn and die if the fallback ParserNonXS require failed * tp/Texinfo/XSLoader.pm (FALLBACK): check the status of the eval of the require of the fallback module (ParserNonXS) and report the warning and die if the eval failed. 2020-11-16 Patrice Dumas <pertusus@free.fr> Parse texinfo commands in @displaymath as in @math * tp/Texinfo/Common.pm (%math_commands): Add. Remove displaymath from raw commands. * tp/Texinfo/ParserNonXS.pm (_close_current, _parse_texi): Handle math commands in a more generic way using a specific "math" context independently of the command name. * tp/Texinfo/Convert/HTML.pm (_convert), tp/Texinfo/Convert/Plaintext.pm (%block_math_commands, new_formatter, _convert), tp/Texinfo/Convert/TexinfoXML.pm (_convert) tp/Texinfo/Convert/Text.pm (_convert): use %math_commands. 2020-11-15 Patrice Dumas <pertusus@free.fr> Rename OUTPUT_CONTENTS_LOCATION as CONTENTS_OUTPUT_LOCATION and at_commands value for the variable as inline * tp/Texinfo/Convert/HTML.pm (%defaults, _convert_heading_command, _convert_informative_command, _contents_shortcontents_in_title, _prepare_special_elements, _prepare_contents_elements, _set_variables_texi2html, tp/Texinfo/Common.pm (@variable_string_settables), doc/texi2oldapi.texi, doc/texinfo.texi (HTML Customization Variables), tp/init/book.pm: Rename OUTPUT_CONTENTS_LOCATION as CONTENTS_OUTPUT_LOCATION and use 'inline' instead of 'at_commands' for the corresponding value. Idea from Gavin. 2020-11-15 Patrice Dumas <pertusus@free.fr> Add 'after_top' for OUTPUT_CONTENTS_LOCATION and use it as default * tp/Texinfo/Convert/HTML.pm (%defaults, _convert_heading_command), doc/texinfo.texi (HTML Customization Variables): If 'OUTPUT_CONTENTS_LOCATION' is set to 'after_top', write the table of contents/Overview at the end of the @top. Instead of the mini toc. Set 'after_top' in the default case (Gavin). 2020-11-14 Gavin Smith <gavinsmith0123@gmail.com> Fully remove @setcontentsaftertitlepage. * tp/Texinfo/Common.pm (%line_commands, %deprecated_commands), * tp/Texinfo/XS/parsetexi/command_data.txt, * tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line): Remove setcontentsaftertitlepage and setshortcontentsaftertitlepage. * tp/t/info_tests.t (contents_setcontentsaftertitlepage_before_node): Remove. * tp/tests/contents/res_parser: Remove results files for removed tests. * doc/texinfo.texi (Command List, Obsolete @-Commands): Move @refill to Obsolete @-Commands. Update documentation of @setcontentsaftertitlepage. * NEWS: Update. * doc/refcard/txirefcard.tex: Remove documentation of deprecated commands. 2020-11-14 Patrice Dumas <pertusus@free.fr> Move mini toc formatting to section @-command conversion function * tp/Texinfo/Convert/HTML.pm (_convert, _convert_heading_command): Move mini toc formatting code to _convert_heading_command() such that it is in the function that can be customized if set in Texinfo::Config::texinfo_commands_conversion. 2020-11-14 Patrice Dumas <pertusus@free.fr> Use OUTPUT_CONTENTS_LOCATION for HTML * tp/Texinfo/Convert/HTML.pm (%defaults, _convert_informative_command, _contents_shortcontents_in_title, _default_titlepage, _print_title, _prepare_contents_elements, _convert, _set_variables_texi2html), tp/Texinfo/Common.pm (@variable_string_settables), doc/texinfo.texi (HTML Customization Variables), texi2oldapi.texi, tp/init/book.pm, tp/tests/contents/list-of-tests: Replace INLINE_CONTENTS by OUTPUT_CONTENTS_LOCATION set to "at_commands", INLINE_CONTENTS unset becomes "separate_element". Add "after_title" as a possibility for OUTPUT_CONTENTS_LOCATION using the code that corresponded to @setcontentaftertitlepage before the @-command was removed. 2020-11-14 Gavin Smith <gavinsmith0123@gmail.com> Simplify little-used "markup style" infrastructure. * doc/texinfo.tex (\currentmarkupstyle, \setupmarkupstyle) (\markupsetuplqdefault, \markupsetuprqdefault): Remove. (\setcodequotes, \setregularquotes): Replacements. * doc/texinfo.texi (Inserting Quote Characters): Do not say that the command interface is preferred. 2020-11-13 Gavin Smith <gavinsmith0123@gmail.com> Avoid excess vertical space above @displaymath. * doc/texinfo.tex (\displaymath): Avoid active newlines in macro definition. These led to \par tokens which in turn led to extra vertical space above the block. Report by Christopher Dimech. 2020-11-13 Gavin Smith <gavinsmith0123@gmail.com> Fix \eqno in @displaymath. * doc/texinfo.tex (\end): Do not exit math mode (reverts previous change). (\displaymath): Temporarily redefine @end to insert $$ immediately, before reading the rest of the line. This is needed for \halign and \eqno inside display math. * doc/texinfo-tex-test.texi (Test of @displaymath): Add \eqno example. Report of broken \eqno by Christopher Dimech. 2020-11-13 Gavin Smith <gavinsmith0123@gmail.com> Fix align in @displaymath. * doc/texinfo.tex (\end): Leave math mode. (\Edisplaymath): Do not leave math mode here as it is too late if \halign is inside the display math, which has to appear as $$\halign{...}$$. * doc/texinfo-tex-test.texi (Test of @displaymath): New section. Christopher Dimech reported that \leqalignno within @displaymath was broken. 2020-11-12 Gavin Smith <gavinsmith0123@gmail.com> Ignore line argument to @example. * doc/texinfo.tex (\example, \lisp) : End call to \makedispenvdef with \parsearg rather than \gobble. 2020-11-12 Patrice Dumas <pertusus@free.fr> * tp/tests/run_parser_all.sh: store raw output and postprocess test output even if not comparing with previous results. 2020-11-12 Patrice Dumas <pertusus@free.fr> * tp/tests/tex_html/tex_gdef.texi, tex_eqalign.texi: tests with \gdef in @tex block and with \leqalignno from Christopher Dimech. 2020-11-11 Gavin Smith <gavinsmith0123@gmail.com> Mark some commands as deprecated. * tp/Texinfo/Common.pm (%deprecated_commands), * tp/Texinfo/XS/parsetexi/command_data.txt: Mark definfoenclose, refill, inforef, centerchap as deprecated. * NEWS: Update. 2020-11-10 Gavin Smith <gavinsmith0123@gmail.com> Output @lisp with 'example' class. * tp/Texinfo/Convert/HTML.pm (_convert_preformatted_command): Output @lisp with <div class='example lisp'> rather than <div class='lisp'>. (%css_map): No CSS for div.lisp. 2020-11-10 Gavin Smith <gavinsmith0123@gmail.com> Optional parameter to @example * tp/Texinfo/Common.pm (%block_commands), * tp/Texinfo/XS/parsetexi/command_data.txt: Specify @example to take 1 argument. * tp/Texinfo/Convert/HTML.pm (_convert_preformatted_command): If 'example' takes an argument, pass it as an extra argument to _attribute_class. (_attribute_class): Take an extra argument for extra classes to be added to the element. This could be used as e.g. "@example cplusplus" to allow post-processing the HTML output to syntax-highlight C++ code. 2020-11-10 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Other Customization Variables): Alphabetize. (Top): Remove bespoke menu entry names for master menu as these are not useful. 2020-11-08 Per Bother <per@bothner.com> * js/info.js (config): Flatten structure so as to allow merging of configs. 2020-11-08 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.tex (Conventions): Swap treatment of form feeds and tabs. (Short Sample, Body of the Document): Include sections in the example chapter and headings in the example output. (First Node): Do not encourage putting copying permissions into Top node. 2020-11-07 Gavin Smith <gavinsmith0123@gmail.com> Rename PERMALINKS to COPIABLE_ANCHORS * tp/Texinfo/Common.pm (@variable_string_settables), * tp/Texinfo/Convert/HTML.pm (%defaults): Rename PERMALINKS to COPIABLE_ANCHORS. * tp/Texinfo/Convert/HTML.pm (_get_permalink, _get_copiable_anchor): Rename. (%css_map) <a.copiable-anchor>: Set line height to 0em to avoid increasing spacing of line. * doc/texinfo.texi (HTML Customization Variables): Add COPIABLE_ANCHORS. Update documentation of JS_WEBLABELS. 2020-11-07 Gavin Smith <gavinsmith0123@gmail.com> * NEWS: Update. 2020-11-07 Gavin Smith <gavinsmith0123@gmail.com> Do not use dir.info as dir file. * info/dir.c (dir_entry_of_infodir): Call info_check_compressed instead of info_add_extension. 2020-11-07 Gavin Smith <gavinsmith0123@gmail.com> Do not use dir.info as dir file. * info/filesys.c (info_check_compressed): Split out new function. Remove code which deals with a file being found which is a directory. (info_add_extension): Use info_check_compressed. * info/dir.c (build_dir_node): Iterate over search path with infopath_first and infopath_next and check for dir file with info_check_compressed. 2020-11-06 Gavin Smith <gavinsmith0123@gmail.com> awk for texindex * configure.ac: Call AC_CHECK_PROGS instead of AC_PROG_AWK and set TI_AWK. * texindex/texindex.in, texindex/Makefile.am: Substitute TI_AWK instead of AWK. 2020-11-06 Gavin Smith <gavinsmith0123@gmail.com> Allow dir.gz * info/dir.c (build_dir_node): Call info_file_find_next_in_path to get all the dir files. This means that compressed dir files can be found as dir.gz etc., which install-info already supports. (dir_entry_of_infodir): Only check for dir under the name of "dir", not "localdir". 2020-11-05 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Catching Mistakes): Subordinate to previous appendix. 2020-11-05 Gavin Smith <gavinsmith0123@gmail.com> JS_WEBLABELS=reference * tp/Texinfo/Convert/HTML.pm (_default_end_file): For JS_WEBLABELS=reference only output the reference link if JS is used in the page. 2020-11-05 Gavin Smith <gavinsmith0123@gmail.com> @bsixpaper * NEWS, * doc/texinfo.texi (A4 Paper, Command List), * doc/refcard/txirefcard.tex: Document @bsixpaper. 2020-11-05 Patrice Dumas <pertusus@free.fr> Warn about nodes not references in pointers or in document node menu * tp/Texinfo/Structuring.pm (nodes_tree): put referenced nodes in %referenced_nodes and warn about unreferenced nodes. 2020-11-05 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Structuring.pm (nodes_tree): word node pointers and menu order inconsistencies message without referring to section. 2020-11-05 Patrice Dumas <pertusus@free.fr> Add CHECK_NORMAL_MENU_STRUCTURE customization variable * tp/Texinfo/Common.pm (%default_customization_values, @variable_string_settables), tp/Texinfo/Structuring.pm (nodes_tree), doc/texinfo.texi (Other Customization Variables): add CHECK_NORMAL_MENU_STRUCTURE which must be set in order to get warnings about inconsistencies between node pointers and node menu entries order. Do not use FORMAT_MENU for that. Output those warnings even for nodes with explicit pointers. 2020-11-04 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Invoking texi2any) <--no-validate>: Reword to say it is menu entries that are checked rather than menu structure. Comment out text that may be inaccurate. 2020-11-02 Gavin Smith <gavinsmith0123@gmail.com> Anchor links on hover over regular @table items. * tp/Texinfo/Common.pm (relate_index_entries_to_table_entries_in_tree): New function. * tp/texi2any.pl: Call it as a tree transformation for HTML. * tp/Texinfo/Convert/HTML.pm (command_id): Update a comment. 2020-11-02 Gavin Smith <gavinsmith0123@gmail.com> Anchor links on hover over @vtable or @ftable @item. * tp/Texinfo/Convert/HTML.pm (_convert_item_command) <table_term>: Output id on containing <dt> rather than an empty <span>. Call _get_permalink. 2020-11-02 Patrice Dumas <pertusus@free.fr> Determine with USE_NODE_DIRECTIONS if section or nodes directions are used in HTML * tp/Texinfo/Convert/HTML.pm (_default_node_direction) rename as _default_panel_button_dynamic_direction. * tp/Texinfo/Convert/HTML.pm (_default_panel_button_dynamic_direction, %defaults), tp/Texinfo/Common.pm (@variable_string_settables): add USE_NODE_DIRECTIONS customization variable, and use it in _default_panel_button_dynamic_direction, defaulting to USE_NODES if USE_NODE_DIRECTIONS is undefined. * doc/texinfo.texi (HTML Customization Variables): add USE_NODE_DIRECTIONS. * doc/texinfo.texi (Three Arguments): document that xrefautomaticsectiontitle applies to node headers in HTML too. * tp/Texinfo/Convert/HTML.pm (_default_navigation_header_panel, _default_button_formatting): determine if a delimiter is needed before a button from 'format_button' function reference return. 2020-11-01 Patrice Dumas <pertusus@free.fr> Use the section itself for sectiontoc, not the previous node * tp/Texinfo/Convert/HTML.pm (_convert): use the sectioning command for the sectiontoc. 2020-11-01 Gavin Smith <gavinsmith0123@gmail.com> Anchor links on hover over def. * tp/Texinfo/Common.pm (@variable_string_settables), * tp/Texinfo/Convert/HTML.pm (%defaults): Add PERMALINKS. * tp/Texinfo/Convert/HTML.pm (_get_permalink): New function. (%css_map): Add CSS so as to make permalink appear on hover over parent element. (_convert_def_line_type): Call _get_permalink. 2020-11-01 Patrice Dumas <pertusus@free.fr> Output a sectiontoc for @top if there is no contents already output * tp/Texinfo/Convert/HTML.pm (_convert): output a sectiontoc in @top if there is no shortcontent nor summary content inlined. (_has_contents_or_shortcontents): new function. 2020-11-01 Patrice Dumas <pertusus@free.fr> Update pot/po and fr translation to regenerate test result after @def change * po_document/*.po: update strings. * po_document/fr.po: update translations. * tp/tests/layout/res_parser/formatting_fr_icons/formatting.html: update 2020-11-01 Gavin Smith <gavinsmith0123@gmail.com> Enable def category CSS. * tp/Texinfo/Convert/HTML.pm (_convert_def_line_type): Wrap def category in <span class='category'>. (_convert_def_command): Add class='def' to <dl> element. 2020-11-01 Gavin Smith <gavinsmith0123@gmail.com> Output category separately for @def*. * tp/Texinfo/Convert/HTML.pm (_convert_def_line_type): Split the conversion of the category away from the rest of the def line. Add comments to label the different cases. This has a slight change to the output for @deffn with a completely empty argument, as this leads to the category being undefined. It also changes a test result due to a translation for "{category}: " being missing (in French, this should come out as "{category}@ : "). This is preparation for allowing changing the formatting of the category with CSS, for example to float it to the right of the page. Suggestion from Per Bother. 2020-11-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Text.pm (brace_no_arg_command): Add missing close bracket for defined. 2020-10-31 Patrice Dumas <pertusus@free.fr> Replace SHOW_MENU by FORMAT_MENU which uses only strings * tp/Texinfo/ParserNonXS.pm (_register_extra_menu_entry_information), tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser), tp/Texinfo/Structuring.pm (nodes_tree), tp/Texinfo/Common.pm (%default_customization_values, @variable_string_settables), tp/texi2any.pl, tp/Texinfo/Convert/*.pm, tp/init/book.pm, tp/init/chm.pm, doc/texinfo.texi (Other Customization Variables), NEWS: replace SHOW_MENU by FORMAT_MENU. 0 becomes 'nomenu' and 1 becomes 'menu'. 2020-10-31 Patrice Dumas <pertusus@free.fr> Do not remove raw_out_parser debug tests output directories * tp/tests/run_parser_all.sh: do not remove raw_out_parser. tp/tests/*/Makefile.am (distclean-local): remove raw_out_parser* 2020-10-31 Patrice Dumas <pertusus@free.fr> Set include directories for parser * texi2any.pl (%$parser_file_options): set 'include_directories'. 2020-10-31 Gavin Smith <gavinsmith0123@gmail.com> _convert_text_options takes a converter argument * tp/Texinfo/Structuring.pm (do_index_keys): Do not call _convert_text_options as this appears to take a converter object as an argument. Inline some parts of that function at the call site. 2020-10-31 Gavin Smith <gavinsmith0123@gmail.com> Call do_index_keys with parser object. * tp/Texinfo/Convert/HTML.pm (_prepare_index_entries), * tp/Texinfo/Convert/IXIN.pm (output_ixin): Pass parser object to sort_indices and sort_indices_by_letter instead of converter. 2020-10-31 Gavin Smith <gavinsmith0123@gmail.com> Call do_index_keys with parser object. * tp/Texinfo/Convert/Plaintext.pm (_printindex_formatted): Pass parser object to sort_indices instead of converter. * tp/t/09indices.t: Set ENABLE_ENCODING in parser options as well as converter options. * tp/Texinfo/Convert/Plaintext.pm (do_index_keys): Assume argument is a parser object. This means that conversion errors in the index sort keys will be part of the parser errors instead of the converter errors. 2020-10-31 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (texi2any Environment Variables): Update documentation of TEXINFO_XS_PARSER to reflect that this is the default. 2020-10-31 Gavin Smith <gavinsmith0123@gmail.com> Call do_index_keys with parser object again. * tp/Texinfo/Common.pm (%default_customization_values): Re-add 'ENABLE_ENCODING'. It could be used in Texinfo::Structuring for index entry sorting. * tp/t/test_utils.pl, tp/t/test_sort.t: Use parser object instead of converter object to sort indices. * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Ignore ENABLE_ENCODING. This reverts changes on 2020-10-21 and 2020-10-28. The plan is to call do_index_keys with the parser object instead, which appears to have been the original intention. 2020-10-31 Gavin Smith <gavinsmith0123@gmail.com> Configuration/customization variables. * tp/Texinfo/Common.pm (%default_customization_values): Remove SIMPLE_MENU as this is used in neither Texinfo::Parser or Texinfo::Structuring. * tp/Texinfo/Structuring.pm (nodes_tree): Refer to SHOW_MENU via get_conf to clarify that this is a configuration value. * tp/texi2any.pl: Remove a comment. * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Change a comment. 2020-10-31 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Rename two variables. 2020-10-28 Gavin Smith <gavinsmith0123@gmail.com> Do not set expanded_formats via parser. * tp/Texinfo/Convert/Converter.pm (converter): Do not copy 'expanded_formats' from parser object to converter object. * tp/texi2any.pl: Copy 'expanded_formats' from parser object to converter object. 2020-10-28 Gavin Smith <gavinsmith0123@gmail.com> Do not set include_directories via parser. * tp/Texinfo/Convert/Converter.pm (converter): Do not copy 'include_directories' from parser object to converter object. * tp/texi2any.pl: Add include directories to parser options and converter options separately. * tp/t/test_utils.pl: Set 'include_directories' in converter options explicitly. This should make it clearer where the 'include_directories' setting comes from. Ideally the parser object should be used to access the results of parsing only, not to access parser settings. 2020-10-28 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Add a comment about copying the conf to the parser object. 2020-10-28 Gavin Smith <gavinsmith0123@gmail.com> Only call do_index_keys with converter object. * tp/t/test_utils.pl, tp/t/test_sort.t: Call Texinfo::Structuring::sort_indices with converter object rather than parser object. * tp/Texinfo/Convert/Text.pm: use Texinfo::Convert::Converter. * tp/Texinfo/Structuring.pm (do_index_keys): Update comment. This means that index sorting errors disappear from $result_errors, but they are still present in the converter errors. 2020-10-28 Gavin Smith <gavinsmith0123@gmail.com> Provide accesskey in section TOC. * tp/Texinfo/Convert/HTML.pm: Output accesskey attribute on <a> elements in section TOC, as is done for menus. 2020-10-27 Patrice Dumas <pertusus@free.fr> Fix messages. Do not warn if up node is an external node and inconsistent with menu * tp/Texinfo/Structuring.pm (nodes_tree): do not check for node up / menu up mismatch if node up is an external node. * tp/Texinfo/Convert/HTML.pm (_element_direction): accept section type for TOP_NODE_UP_URL Up. 2020-10-27 Patrice Dumas <pertusus@free.fr> Do not warn if external node in menu is not consistent with sections * tp/Texinfo/Structuring.pm (nodes_tree): do not warn if a menu entry referring to an external node is not consistent with sectioning. 2020-10-26 Patrice Dumas <pertusus@free.fr> use httex instead of httexi for @math in default case * tp/init/tex4ht.pm ($STYLE_MATH): set to tex. 2020-10-26 Gavin Smith <gavinsmith0123@gmail.com> @math, @displaymath documentation * doc/texinfo.texi (Inserting Subscripts and Superscripts): Do not encourage @sub or @sup inside math. (Inserting Math): Use \over in example, instead of \frac. Comment out explanation of @\. Explain that using any Texinfo commands inside math is not ideal. 2020-10-25 Patrice Dumas <pertusus@free.fr> handle @displaymath with tex4ht and latex2html * tp/init/latex2html.pm (l2h_process, l2h_to_latex), tp/init/tex4ht.pm ($tex4ht_command_displaymath, tex4ht_prepare): handle @displaymath. * tp/tests/coverage_macro.texi: use plain TeX math code in @displaymath. * tp/tests/tex_html/tex.texi: add a @displaymath. 2020-10-25 Patrice Dumas <pertusus@free.fr> add a @sup in @math{} in tex tests * tp/tests/tex_html/tex.texi: add @math{} with @sup{} to test. 2020-10-25 Patrice Dumas <pertusus@free.fr> regenerate tex4ht/latex2html tests Note that tex must be changed to etex in httex and httexi to generate those tests results with recent tex4ht. 2020-10-25 Patrice Dumas <pertusus@free.fr> @displaymath keep strings as is and add to coverage tests * tp/Texinfo/Convert/HTML.pm (_convert): increment 'math' context for @displaymath. * tp/Texinfo/Convert/Text.p (_convert): set code option for Texinfo::Common::block_commands raw. * tp/t/02coverage.t, tp/tests/coverage_macro.texi, tp/tests/*/res_parser/*: add @displaymath in coverage tests. 2020-10-25 Patrice Dumas <pertusus@free.fr> Add a tree transformation to add missing menus * tp/Texinfo/Transformations.pm (_get_non_automatic_nodes_with_sections, complete_tree_nodes_menus, complete_tree_nodes_missing_menu, _prepend_new_menu_in_node_section), doc/texinfo.texi (Other Customization Variables), texi2any.pl, tp/t/automatic_menus.t: add complete_tree_nodes_missing_menu transformation. Add systematically the optional $use_sections argument to add a menu entry name using the section name to the functions that can make use of that argument. * tp/Texinfo/Convert/Plaintext.pm (_convert), tp/Texinfo/Structuring.pm (node_menu_of_node): rename node_menu_of_node() as new_complete_node_menu(). * tp/Texinfo/Structuring.pm (get_node_node_childs, new_complete_node_menu), tp/Texinfo/Transformations.pm (complete_node_menu): add get_node_node_childs() in Structuring.pm based on code in Transformations.pm, and use that code in new_complete_node_menu(). * tp/Texinfo/Structuring.pm (node_menu_of_node, section_menu_of_node): remove, optional arguments of the functions should be used instead. 2020-10-24 Patrice Dumas <pertusus@free.fr> minor changes in comments and documentation 2020-10-24 Gavin Smith <gavinsmith0123@gmail.com> Re-add example. * doc/texinfo.texi (Other Customization Variables): Re-add example of TREE_TRANSFORMATIONS with corrected invocation. 2020-10-24 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (HTML Customization Variables, Inserting Math): Document -c HTML_MATH=t4h. 2020-10-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Use tex4ht if HTML_MATH is set to 't4h'. 2020-10-24 Patrice Dumas <pertusus@free.fr> do not mix tex4ht commands STDIN with main script STDIN * tp/init/tex4ht.pm (tex4ht_process_command): use open with "|-" input pipe to launch tex4ht commands to avoid mixing main script STDIN and tex4ht commands STDIN. It is important because when tex fails it reads from STDIN and the input may trigger diverse actions by tex. 2020-10-24 Gavin Smith <gavinsmith0123@gmail.com> Reduce example indent for @bsixpaper. * doc/texinfo.tex (@bsixpaper): Set \lispnarrowing to 0.2in. 2020-10-24 Gavin Smith <gavinsmith0123@gmail.com> @set dispenvsize small for @bsixpaper. * doc/texinfo.tex (@bsixpaper): Switch some block commands to display with a smaller font. (\verbatim): Respect '@set dispenvsize small'. 2020-10-24 Gavin Smith <gavinsmith0123@gmail.com> Documentation of customization variables. * doc/texinfo.texi (HTML Customization Variables, Other Customization Variables): Move INDEX_ENTRY_COLON and MENU_ENTRY_COLON to HTML Customization Variables. Remove commented-out IDX_SUMMARY. Remove example referring to non-existent PLAINTEXINFO variable. Remove USE_NODE_TARGET as it doesn't do anything in the current code. * tp/Texinfo/Common.pm (@variable_string_settables), * tp/Texinfo/Convert/HTML.pm (%defaults): Remove 'USE_NODE_TARGET'. * tp/t/init/t2h_singular.init: Remove commented-out code referring to IDX_SUMMARY. 2020-10-23 Gavin Smith <gavinsmith0123@gmail.com> MathJax for TeX code only * tp/Texinfo/Convert/HTML.pm (_convert_math_command) [HTML_MATH=mathjax]: No MathJax if HTML tags in contents, e.g. @math{a@sup{2}} doesn't work. 2020-10-23 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\pagesizes): Increase physical page dimensions by fixed quantities. 2020-10-22 Gavin Smith <gavinsmith0123@gmail.com> @bsixpaper * doc/texinfo.tex (@bsixpaper): Add. * tp/Texinfo/Common.pm (%line_commands), * tp/Texinfo/XS/parsetexi/command_data.txt: Add 'bsixpaper'. 2020-10-22 Gavin Smith <gavinsmith0123@gmail.com> empty @headitem * tp/Texinfo/XS/parsetexi/api.c (element_to_perl_hash): Always create a contents array for @headitem even if it is empty. * tp/t/21multitable.t (empty_headitem): New test. 2020-10-22 Gavin Smith <gavinsmith0123@gmail.com> Only reference MathJax on those pages which require it. * tp/Texinfo/Convert/HTML.pm (%defaults): New value 'element_math' to keep track of whether @math or @displaymath has been seen in current file. (_convert_math_command, _convert_displaymath_command) (output): Set and reset 'element_math'. Process body of file before the header to set 'element_math' correctly. (file_header_informations): Only reference MathJax scripts if 'element_math' is set. (%defaults): New value 'jslicenses_element' to keep track of whether scripts have actually been used in the current output file. (file_header_information): Update 'jslicenses_element'. (_default_end_file): Only output the link to the JS licences page if there were actually JS scripts referenced in the file. 2020-10-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Warn on unknown conf value. 2020-10-21 Gavin Smith <gavinsmith0123@gmail.com> Remove ENABLE_ENCODING setting for parser * tp/Texinfo/Common.pm (%default_customization_values): Remove 'ENABLE_ENCODING'. This was passed indirectly to Texinfo::Convert::Text by Texinfo::Parser, but Texinfo::Parser has not depended on Texinfo::Convert::Text since 2016-07-09. * tp/t/test_utils.pl, tp/t/test_sort.t: Set 'ENABLE_ENCODING' on parser object before sorting indices to maintain consistency in test results. 2020-10-21 Gavin Smith <gavinsmith0123@gmail.com> Remove TEST setting for parser * tp/Texinfo/Common.pm (%default_customization_values): Remove 'TEST'. * tp/Texinfo/ParserNonXS.pm (parse_texi_text, parse_texi_file) (parse_texi_line, _end_line): Remove code referring to the TEST setting. This means that the 'input_directory' value is always set and all leading directory components will be removed from the input file name in messages. * tp/Texinfo/Convert/HTML.pm (_load_htmlxref_files): Make adding the input directory to the search path for htmlxref.cnf conditional on TEST. 2020-10-21 Gavin Smith <gavinsmith0123@gmail.com> nodes_tree conditions * tp/Texinfo/Structuring.pm (nodes_tree): Remove conditions about external manuals in node up pointer. These conditions appeared to be ineffective due to a different check for menus on the up node preventing execution of a block of code. Combine other conditions. No functional changes intended. 2020-10-21 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Structuring.pm (nodes_tree): Warn about multiple @menu's regardless of value of SHOW_MENU. Edit comments. Combine conditions (with no functional changes intended). 2020-10-20 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/run_parser_all.sh: Don't pass -c SHOW_MENU=1 to texi2any. 2020-10-20 Gavin Smith <gavinsmith0123@gmail.com> SHOW_MENU=1 for TEXI2HTML=1. * tp/Texinfo/Convert/HTML.pm (_set_variables_texi2html): Set SHOW_MENU to 1. 2020-10-20 Gavin Smith <gavinsmith0123@gmail.com> Set MENU_ENTRY_COLON back to :. * tp/Texinfo/Convert/HTML.pm (%defaults): Change 'MENU_ENTRY_COLON' back from '' to ':'. If somebody specifies '-c SHOW_MENU=1', they probably want something that looks more like the Info output. ':' was the default setting until 2019-02-10. 2020-10-20 Gavin Smith <gavinsmith0123@gmail.com> Don't add menus in HTML.pm. * tp/Texinfo/Convert/HTML.pm (_convert): Remove code to add a menu to a node where there wasn't one. Since SHOW_MENU now has the value section-toc by default, a menu is not necessary in a node for inferior nodes to be accessible. If adding menus is wanted as a feature for HTML, this may be better done in non-format-specific code (e.g. with TREE_TRANSFORMATIONS). 2020-10-20 Gavin Smith <gavinsmith0123@gmail.com> Warning only for menu missing node. * tp/Texinfo/Structuring.pm (nodes_tree): Use a warning instead of an error for the message, "node `%s' lacks menu item for `%s' despite being its Up target". 2020-10-20 Gavin Smith <gavinsmith0123@gmail.com> No automatic menu if node has explicit pointers. * tp/Texinfo/Convert/Plaintext.pm (_convert) <sectioning commands>: Check if extra arguments were given to @node, and if they were, do not generate a menu if one was missing. 2020-10-20 Gavin Smith <gavinsmith0123@gmail.com> * util/htmlxref.cnf (tar): Fix. 2020-10-19 Gavin Smith <gavinsmith0123@gmail.com> class="texi-manual" * tp/Texinfo/Convert/HTML.pm (_convert_xref_commands): Set class="texi-manual" on links to other Texinfo manuals. 2020-10-18 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi: Docbook -> DocBook throughout. (Overview): Reword slightly. (Texinfo Document Structure): Remove node self-reference. 2020-10-18 Philipp Klaus Krause <pkk@spth.de> (tiny change) const char * * info/filesys.c (filesys_error_string), * install-info/install-info.c (ensure_dirfile_exists): Store return value of strerror in a const char * variable. 2020-10-18 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Top Node Example): Merge into parent. 2020-10-18 Gavin Smith <gavinsmith0123@gmail.com> Reorder nodes. * doc/texinfo.texi (Texinfo Document Structure, Writing a Node): Re-order. 2020-10-18 Gavin Smith <gavinsmith0123@gmail.com> Document SHOW_MENU changes. * doc/texinfo.texi (Other Customization Variables) <SHOW_MENU>: Explain '1' and 'sectiontoc' settings. (Invoking texi2any): Move '@vindex HEADERS' here. (Writing a Node): Take out material about menus and detailed menus. (Master Menu Parts, Top Node): Move material about menus here. Use consistent terminology re "master menu" and "detailed menu". 2020-10-18 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl: Move a line. 2020-10-18 Gavin Smith <gavinsmith0123@gmail.com> End paragraph for @displaymath. * tp/Texinfo/Common.pm (%close_paragraph_commands), * tp/Texinfo/XS/parsetexi/commands.c (close_paragraph_command): Add @displaymath. * tp/Texinfo/Convert/HTML.pm (_convert_displaymath_command): Wrap output in a <div>. 2020-10-17 Gavin Smith <gavinsmith0123@gmail.com> Document @displaymath and HTML_MATH. * doc/texinfo.texi (Inserting Math, Command List): Document @displaymath and options for HTML_MATH. 2020-10-17 Gavin Smith <gavinsmith0123@gmail.com> @displaymath for docbook * tp/Texinfo/Convert/DocBook.pm (_convert): Wrap output for @displaymath in <informalequation> and <mathphrase>. 2020-10-16 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Info Format FAQ): New node. 2020-10-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/16raw.t (displaymath): New test. 2020-10-16 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_mini_toc): Add bullets to list and remove section numbers. 2020-10-15 Gavin Smith <gavinsmith0123@gmail.com> @displaymath for HTML. * tp/Texinfo/Convert/HTML.pm (_convert_displaymath_command): New function. 2020-10-15 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Remove reference to line numbers in ParserNonXS.pm. 2020-10-15 Gavin Smith <gavinsmith0123@gmail.com> Add @displaymath. * tp/Texinfo/Common.pm (%block_commands, %raw_commands), * tp/Texinfo/XS/parsetexi/command_data.txt: Add 'displaymath'. It is treated like @verbatim by default. 2020-10-15 Gavin Smith <gavinsmith0123@gmail.com> @displaymath and \frac * doc/texinfo.tex (@displaymath): Implement. * doc/texinfo.tex (\frac): Provide. 2020-10-14 Gavin Smith <gavinsmith0123@gmail.com> HTML_MATH, MATHJAX_SCRIPT and MATHJAX_SOURCE * doc/texinfo.texi (HTML Customization Variables): Add HTML_MATH. (MathJax Customization Variables): Add MATHJAX_SCRIPT and MATHJAX_SOURCE along with guidance for using these. 2020-10-14 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Customization Variables for @-Commands): Remove @contents and @shortcontents, as it is not meaningful to set these from the command line, even if they are viewed as settings internally. 2020-10-14 Gavin Smith <gavinsmith0123@gmail.com> Document JS_WEBLABELS and JS_WEBLABELS_FILE. * doc/texinfo.texi (HTML Customization Variables): Add JS_WEBLABELS and JS_WEBLABELS_FILE. * NEWS: Same. 2020-10-14 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (History, Reference Implementation): Merge the latter into the former. Remove reference to removed 'util/texi2html' script. * TODO: Remove some install-info points that will never be done (by install-info). * tp/Texinfo/Structuring.pm: Remove reference to removed value. 2020-10-14 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (Pointer Validation, Invoking texi2any): Merge the former into the latter. 2020-10-14 Gavin Smith <gavinsmith0123@gmail.com> Change warning messages. * tp/Texinfo/Structuring.pm (nodes_tree): Reword warning messages. 2020-10-14 Gavin Smith <gavinsmith0123@gmail.com> * README-hacking: Add a file to update the copyright year of. * tp/texi2any.pl: Update copyright year. 2020-10-13 Gavin Smith <gavinsmith0123@gmail.com> URL line breaking. * doc/texinfo.tex (\urefbreak): Temporarily set \pretolerance to a negative value. \urefallowbreak: Increase value of penalty. * doc/texinfo-tex-test.texi (URL line breaking): Add another example. (Nested URL): New section. Substandard URL line breaking reported by Werner Lemberg. 2020-10-13 Gavin Smith <gavinsmith0123@gmail.com> JS_WEBLABELS and JS_WEBLABELS_FILE * tp/Texinfo/Common.pm (@variable_string_settables): Add JS_WEBLABELS and JSWEBLABELS_FILE. * tp/Texinfo/Convert/HTML.pm (%defaults): Provide default values. (_do_jslicenses_file): Create this file according to the values of these variables. (_default_end_file): Output link to jslicense file depending on the values of these variables. 2020-10-13 Gavin Smith <gavinsmith0123@gmail.com> * TODO: Update with some bugs. 2020-10-13 Gavin Smith <gavinsmith0123@gmail.com> * doc/info-stnd.texi (infokey format): Add note that you can't effectively bind C-c. 2020-10-13 Gavin Smith <gavinsmith0123@gmail.com> * doc/info-stnd.texi (The Echo Area): Remove mention of using ? for completions. 2020-10-12 Patrice Dumas <pertusus@free.fr> Add mathjax test in layout coverage tests * tp/tests/layout/list-of-tests: add formatting_mathjax. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> Fix test suite for non-XS. * tp/Texinfo/ParserNonXS.pm (_open_in): Use ':utf8' layer for UTF-8 input. This was leading to errors in the test suite for Shift-JIS files. This reverses change on 2020/05/14. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> Remove MINI_TOC variable, using SHOW_MENU instead. * tp/Texinfo/Common.pm (@variable_string_settables): Remove MINI_TOC. * tp/Texinfo/Convert/HTML.pm (%defaults): Remove MINI_TOC value, and set SHOW_MENU to 'sectiontoc' to mean the same thing. (_convert): Make showing menu and generating a "mini-TOC" mutually exclusive, controlled through the SHOW_MENU setting. * tp/Texinfo/Convert/HTML.pm, * tp/Texinfo/Convert/Structuring.pm, * tp/Texinfo/ParserNonXS.pm, * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Check whether SHOW_MENU has value '1' instead of whether it is true. * tp/tests/run_parser_all.sh: Do not pass '-c MINI_TOC=0' option. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Check for undef DEBUG. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Writing a Menu, Customization Variables for @-Commands) (Command List), * doc/refcard/txirefcard.tex Remove @validatemenus. * tp/Texinfo/XS/Makefile.am (command_ids.h): Use gawk instead of awk. Avoid discouraged "$p" usage, using "$(p)" instead. * tp/Texinfo/XS/configure.ac: Check for gawk. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> * NEWS: Update. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> MATHJAX_SCRIPT and MATHJAX_SOURCE * tp/Texinfo/Common.pm (@variable_string_settables): Add MATHJAX_SCRIPT and MATHJAX_SOURCE. Give variables in alphabetical order. * tp/Texinfo/Convert/HTML.pm (output) Set MATHJAX_SCRIPT and MATHJAX_SOURCE to default values and use their values in the jslicenses file. (_file_header_informations): Use value of MATHJAX_SCRIPT. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> MathJax fixes. * tp/Texinfo/Convert/HTML.pm (_file_header_informations): Use math2jax_process instead of 'math' class. (Suggestion from Patrice.) (_convert_math_command): Add 'math' class to <em> elements for math unless we are using mathjax, in which case use 'math2jax_process'. (output): Set 'jslicenses' earlier to ensure the jslicense link is output. (default_end_file): Wrap jslicense link in <small>. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> Remove SILENT variable. * tp/Texinfo/Common.pm (@command_line_settables): Remove 'SILENT' as it is not used anywhere, and sort the variables in alphabetical order. * tp/texi2any.pl: Do not set SILENT for --silent option. 2020-10-12 Gavin Smith <gavinsmith0123@gmail.com> Move index entries for customization variables. * doc/texinfo.texi (Customization Variables and Options): (Invoking texi2any): Move @vindex entries to Invoking texi2any node. 2020-10-11 Gavin Smith <gavinsmith0123@gmail.com> Wipe res_parser etc. * tp/tests/run_parser_all.sh: For -copy option, wipe the contents of res_* directories before copying files over, so that leftover files do not cause test failures after running "make copy-tests". 2020-10-11 Gavin Smith <gavinsmith0123@gmail.com> Remove texi2html conditionality in tests. * tp/tests/coverage_macro.texi: Remove some "@ifset texi2html" conditions. 2020-10-11 Gavin Smith <gavinsmith0123@gmail.com> Remove "not used" variables. * tp/Texinfo/Common.pm (@variable_settables_not_used) (@formats_settable, @secondary_customization_variables) (_customization_variable_classes): Remove. * doc/texinfo.texi, tp/init/chm.pm, tp/Texinfo/Convert/HTML.pm: Remove mention of COMPLETE_IMAGE_PATHS, SPLIT_INDEX and TOC_FILE variables. 2020-10-11 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/layout/list-of-tests: Pass -c TEXI2HTML=undef to some tests to avoid 'texi2any' flag being reset by normalize_config. 2020-10-11 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl (normalize_config): Make '-c HTML_MATH=l2h' a synonym for '-c L2H=1'. 2020-10-11 Gavin Smith <gavinsmith0123@gmail.com> * tp/texi2any.pl (normalize_config): New function to centralize special treatment of config vars, including TEXINFO_OUTPUT_FORMAT, TEXI2HTML and L2H. 2020-10-10 Gavin Smith <gavinsmith0123@gmail.com> MathJax and jslicenses file. * tp/Texinfo/Convert/HTML.pm (_do_jslicenses_file): New function. (output): Call it. Add files to $self->{'jslicenses'} if INFO_JS_DIR or HTML_MATH is set. (_convert_math_commands): No warning if HTML is not used. (_default_end_files): Only refer to mathjax files if HTML_MATH is set to 'mathjax'. Use tex-svg.js instead of tex-chtml.js. * tp/Texinfo/Common.pm (open_out), * tp/Texinfo/Convert/HTML.pm (_default_element_footer, output) Remove commented-out or debugging statements. 2020-10-08 Gavin Smith <gavinsmith0123@gmail.com> MathJax fixes. * tp/Texinfo/Convert/HTML.pm (_convert_math_command): Use <em class='math'> around text to be processed by MathJax. (_file_header_informations): Set MathJax options to include the contents of <pre> elements (used for @display). Only process inside elements with class 'math' by adding attribute to <body> element. 2020-10-07 Gavin Smith <gavinsmith0123@gmail.com> Implement MathJax support. * tp/Texinfo/Common.pm (@variable_string_settables): Add 'HTML_MATH'. * tp/Texinfo/Convert/HTML.pm (%style_attribute_commands): Remove 'math'. (_convert_math_command): Uncomment. Check HTML_MATH variable, and if set, wrap output in '\(' and '\)'. If neither HTML_MATH nor L2H is set, issue a warning. (_file_header_informations): Add <script> element in header if 'HTML_MATH' is set. 2020-10-04 Gavin Smith <gavinsmith0123@gmail.com> * TODO: An idea for @def* and @findex. 2020-10-01 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (Include Files Evolution): Comment out node. (@titlefont @centre @sp): Swap with following node. 2020-09-26 Gavin Smith <gavinsmith0123@gmail.com> * configure.ac: Do not escape backquote in AC_MSG_WARN argument. 2020-09-26 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (makeinfo Pointer Creation): Merge contents into "Writing a Node" chapter. (Writing a Node): Revise. (Command List): Update documentation of @top. 2020-09-26 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (Body of the Document): New node. (Texinfo File Header): Merge text from "Minimum" in here. (Document Permissions) (Titlepage & Copyright Page) (Ending a File): Finish merging text. 2020-09-26 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (Sample Beginning, Short Sample): Remove. (Ending a File): Move later. (Short Sample): Merge into following nodes. 2020-09-25 Gavin Smith <gavinsmith0123@gmail.com> Run autoupdate. * configure.ac: Change AC_HELP_STRING to AS_HELP_STRING. The upcoming autoconf 2.70 release will warn about AC_HELP_STRING. 2020-09-22 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (Short Sample, Short Sample Texinfo File) (Sample Beginning): Remove @ifnottex lines around Top node. (@top Command): Update documentation of @ifnottex. 2020-09-22 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (Short Sample Texinfo File): Move from appendix to introductory chapter. 2020-09-22 Gavin Smith <gavinsmith0123@gmail.com> Simplify parser configuration. * tp/Texinfo/Common.pm (%default_parser_state_configuration): Remove 'clickstyle' and 'kdbinputstyle' values as there is no user-visible way to set these and this avoids the question of how to pass them into Parsetexi. * tp/Texinfo/ParserNonXS.pm (%parser_default_configuration): Add them here. * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Ignore 'in_gdt' setting. 2020-09-22 Gavin Smith <gavinsmith0123@gmail.com> Propagate DEBUG setting to parsetexi. * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Call set_debug for DEBUG value. 2020-09-22 Gavin Smith <gavinsmith0123@gmail.com> Correctly propagate novalidate setting for Texinfo XS parser. * tp/Texinfo/XS/parsetexi/Parsetexi.xs, * tp/Texinfo/XS/parsetexi/handle_commands.c (set_novalidate): New function. * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Check for 'novalidate' setting in parser conf and propagate into XS module. Octave required on the --no-validate option in its documentation build process. Report by Stefan Husman. 2020-09-22 Gavin Smith <gavinsmith0123@gmail.com> Manual revisions. * doc/texinfo.texi (Conventions): Remove footnote about meaning of argument. Make warning about tab characters less conspicuous. Remove an unnecessary @noindent. (Sample Texinfo File Beginning, Ending a File): Move together. (Sample Texinfo File Beginning): Remove unnecessary text from intro. (Texinfo File Header): Do not recommend start- and end-of-header lines. (GNU Sample Texts): Remove use of $Id$ keyword as this is not used with git. Remove use of @ifnottex around @top node as this is no longer necessary. Refer to GNU website for guidance on obtaining and using FDL. 2020-09-22 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi: Remove commented out @setchapternewpage line. (Beginning and Ending a Texinfo File): Merge with previous chapter. Trim down discussion of text before Top node. 2020-09-20 Moritz Klammler <moritz.klammler@cetitec.com> (tiny change) * tp/texi2any.pl: Fix accidental duplication of variable value passed via texi2any's -D option to texi2dvi. 2020-09-20 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Headings Introduced): Remove text that duplicates what is in @setchapternewpage. Merge node with Headings node. (Heading Format): Remove text duplicating material from other nodes. (@headings): Subordinate to Headings node. (Global Document Commands): Make a note that these are nearly all for printed output. 2020-09-20 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Page Headings): Move to section of Global Document Commands appendix. 2020-08-07 Per Bother <per@bothner.com> Add sidebar customization hook. * js/info.js (header): Check window.sidebarLinkAppendContents hook. 2020-08-06 Gavin Smith <gavinsmith0123@gmail.com> No separate configure.ac for js subdirectory. * autogen.sh: Do not call autoreconf for js/. * configure.ac: Output js/Makefile from AC_CONFIG_FILES. Move contents of js/configure.ac into this file. * js/Makefile.am: Install files in js subdirectory of $(pkgdatadir). 2020-08-06 Gavin Smith <gavinsmith0123@gmail.com> Copy JS files to HTML output. * tp/Texinfo/ModulePath.pm.in: Make $lib_dir and $libexec_dir accessible outside of module. * tp/Texinfo/Convert/HTML.pm (output): If INFO_JS_DIR is given, try to copy the JS Interface files there. Remove some debugging statements. (_file_header_informations): Give an error if INFO_JS_DIR is used for non-split output. 2020-08-05 Gavin Smith <gavinsmith0123@gmail.com> Start adding option to use Javascript interface. * tp/Texinfo/Common.pm (@variable_string_settables): Add INFO_JS_DIR. * tp/Texinfo/Convert/HTML.pm (_file_header_informations): If INFO_JS_DIR is set, then add extra lines in the <head> element. 2020-08-05 Gavin Smith <gavinsmith0123@gmail.com> Add js subdirectory to build system. * Makefile.am: Add js to SUBDIRS. * configure.ac: Add js to AC_CONFIG_SUBDIRS * autogen.sh: Run autoreconf in js. 2020-07-19 Gavin Smith <gavinsmith0123@gmail.com> * util/htmlxref.cnf: Update mit-scheme. From Thérèse Godefroy <godef.th@free.fr>. 2020-07-12 Juha-Matti Huusko <juha-matti.huusko@uef.fi> * doc/txi-fi.tex: Add Finnish translation. 2020-06-25 Gavin Smith <gavinsmith0123@gmail.com> Fix index features in code index. * doc/texinfo.tex (\docind): New macro, like \doind but for code indices. (\docindwrite): Likewise, for \doindwrite. (\splitindexentry): Check whether we are in a code index and add \code if we are. (\docodeindex): Use \docind rather than \doind and wrapping argument in \code. This allows @subentry and @sortas to work correctly. Reports from Werner Lemberg (June 2020) and Akim Demaille (November 2019). 2020-06-25 Gavin Smith <gavinsmith0123@gmail.com> Try to fix macro expansion in index entries. * doc/texinfo.tex (\printindex) <\ is escape character>: Made @ an escape character too in case one appears in a macro expansion. Report from Werner Lemberg. 2020-06-25 Gavin Smith <gavinsmith0123@gmail.com> Fix indentation of nested @verbatim. * doc/texinfo.tex (\setupverbatim): Call \leavevmode so that \leftskip glue is correctly added. Fixes bug introduced on 2020-05-06. Report from Werner Lemberg. 2020-05-24 Gavin Smith <gavinsmith0123@gmail.com> Fix info hang. * info/search.c (find_node_in_binding): Add a check to prevent an infinite loop in case of a malformed input file. Report by Nathaniel Beaver. 2020-05-22 Gavin Smith <gavinsmith0123@gmail.com> Fix @verbatiminclude. * doc/texinfo.tex (\doverbatiminclude): Call \starttabbox before \input-ing the file, and do \egroup afterwards. Otherwise the catcode changes from \setupverbatim are cancelled at the end of the first line with the \egroup from \par. Report from Akira Kakuto. 2020-05-20 Gavin Smith <gavinsmith0123@gmail.com> Doc updates. * doc/texinfo.texi (title page): Remove non-sensical comment. (The Top Node): Omitted automatically with TeX. (Ending a File): Abbreviate. 2020-05-20 Gavin Smith <gavinsmith0123@gmail.com> Update TODO. * TODO: Remove many items which have either been done or are unlikely to be done. 2020-05-20 Gavin Smith <gavinsmith0123@gmail.com> PDF page labels. (\pagelabels) [PDF]: New macro. (\bye): Call it. (\pagecount, \romancount, \arabiccount): New counts. (\advancepageno) [PDF]: Increment \pagecount. (\headings, \startcontents, \contents, \shortcontents): Set \romancount, \arabiccount appropriately. This means that the page numbers displayed in some PDF readers can actually match the numbers printed on the pages. 2020-05-14 Gavin Smith <gavinsmith0123@gmail.com> Input encoding error. * tp/Texinfo/ParserNonXS.pm (_open_in): Use ':encoding(utf-8)' instead of 'utf-8'. Hopefully this makes encoding errors non-fatal for Latin-1 files that aren't marked as such. The output would be mostly OK if only a few non-ASCII characters are used. 2020-05-14 Gavin Smith <gavinsmith0123@gmail.com> * info/session.c (mouse_event_handler): Clear echo area. 2020-05-14 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (HTML CSS): Remove mention of pre.smalldisplay CSS which isn't output anymore. 2020-05-14 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi: Revise some index entries and use @subentry. 2020-05-14 Gavin Smith <gavinsmith0123@gmail.com> No title in headings in TOC with '@headings double'. * doc/texinfo.tex (\startcontents): Define @thistitle to be empty. 2020-05-14 Gavin Smith <gavinsmith0123@gmail.com> '@setchapternewpage off' headings. * doc/texinfo.tex (\CHAPPAGoff): Redefine \HEADINGSon as is done for \CHAPPAGon and \CHAPPAGodd. (\HEADINGSsinglechapoff): The new definition. Chapter pages have the same headings as other pages. 2020-05-13 Gavin Smith <gavinsmith0123@gmail.com> Remove unused macro. * doc\texinfo.tex (\pagealignmacro): Remove macro. It was not used except in \bye. (\bye): Use \chappager instead of \pagealignmacro. Presumably we do not need an extra blank page at the very end of the document if "@setchapternewpage odd" to make sure that we end on an even page. (\startcontents): Remove a comment. The comment credited Torbjorn Granlund <tege@matematik.su.se> for the \contentsalignmacro, presumably added 1996-08-03. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi: Remove commented out "@set smallbook". There is no corresponding "@ifset smallbook" anywhere else in the file and apparently has not been for a long time. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi: Remove "start of header" and "end of header" lines. 2020-05-10 Paul Eggert <eggert@cs.ucla.edu> * doc/texinfo.tex (\unicodechardefs): Add definition for U+02BC APOSTROPHE, MODIFIER LETTER. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> Omit title on chapter pages in "@headings double" format. * doc/texinfo.tex (\checkchapterpage): Set a new conditional, \ifchapterpage. (\evenchapheadline, \oddchapheadline): Add. (\headline): Use \ifchapterpage to possibly use \evenchapheadline or \oddchapheadline. (\evenheadline, \oddheadline): Also set \evenchapheadline and \oddchapheadline. (\HEADINGSdouble, \HEADINGSsingle): Call \HEADINGSdoublex and \HEADINGSsinglex. (\HEADINGSdoublex, \HEADINGSsinglex): Set \evenchapheadline and \oddchapheadline omitting \thistitle and \thischapter. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> Reorganise manual. * doc/texinfo.texi (Heading Choice): Remove most of node as it repeats what is in "@setchapternewpage". Merge the rest of the node into "Headings Introduced". 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> Reorganise manual. * doc/texinfo.texi (Printed Books): (Obtaining TeX): Merge into "Use TeX" node. (Printed Books): Refer to "Hardcopy" node. Edit to remove repetition. Remove material on the implementation of TeX. Move material on paper size to "Hardcopy" node. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> Reorganise manual. * doc/texinfo.texi (Formatting and Printing Hardcopy, Global Document Commands): Move sections "@smallbook", "A4 Paper", "@pagesizes", "Magnification" to "Global Document Commands" appendix. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (@settitle): Do not refer to @documentdescription. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> Reorganise manual. * doc/texinfo.texi (Catching Mistakes): Move this appendix to be after "Using Texinfo Mode", with which it is more thematically linked. 2020-05-10 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (@documentdescription): Move section under "Generating HTML" chapter. 2020-05-08 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Global Document Commands): Relegate to appendix. 2020-05-08 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\indexnofonts): Give many commands a definition that removes the {} after use. Sebastian Urban reported that @TeX{} appeared as "TeX{}" in a PDF outline rather than "TeX". 2020-05-07 Gavin Smith <gavinsmith0123@gmail.com> Chapter numbers in PDF outlines. * doc/texinfo.tex (\pdfmakeoutlines) [pdftex, XeTeX]: Add chapter numbers in the PDF outline for chapters and appendices only. Suggestion from Sebastian Urban. 2020-05-06 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo-tex-test.texi (Environments, @verbatim): New section. 2020-05-06 Gavin Smith <gavinsmith0123@gmail.com> Fixed-width pounds sign. * doc/texinfo.tex (\pounds): Use \ecfont glyph for fixed-width British pound sign. (\quotedblleft, \quotedblright): Use \ifmonospace instead of \curfontstyle. 2020-05-06 Gavin Smith <gavinsmith0123@gmail.com> Fix braced group at start of @verbatim line. * doc/texinfo.tex (\setupverbatim): Do not call \starttabbox with \everypar. Call \starttabbox at end of \par, and do not call \leavevmode at start of \par. (\doverbatim): Call \starttabbox before processing contents of @verbatim block. Close a group at the end with \egroup. (\starttabbox): No need for \global in assignment. (\tabexpand): Call \leavevmode before adding box. If a character such as Ð at the start of a line expanded to a braced group (like {\ecfont \char"D0}), then \everypar would not insert an opening brace until after the first opening brace, leading the closing brace to close \verbbox prematurely. The single character in the box would be printed at the end of the line. 2020-05-05 Gavin Smith <gavinsmith0123@gmail.com> Fixed-width directed double quotation marks. * doc/texinfo.tex (\quotedblleft, quotedblright): If we are in a fixed-width font, then use glyphs from European Computer Modern. Sebastian Urban reported that “ and ” were output incorrectly. 2020-05-02 Gavin Smith <gavinsmith0123@gmail.com> Fix blank heading on last page of a chapter. (\checkchapterpage): Use \gettopheadingmarks or \getbottomheadingmarks to determine the current chapter name. \firstmark was wrong for this as it could give the wrong value on the last page of a chapter. Inconsistent output reported by Sebastian Urban. 2020-05-01 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo-tex-test.texi (Test of @*footing): Add. 2020-05-01 Gavin Smith <gavinsmith0123@gmail.com> Simplify output routine. * doc/texinfo.tex (\onepageout, \checkchapterpage): Split code to check if we are on a chapter page into a new macro. * doc/texinfo-tex-test.texi (Test of @*heading): New section. 2020-04-23 Masamichi Hosoda <trueroad@trueroad.jp> * doc/txi-ja.tex: Remove \XeTeXgenerateactualtext=1 for XeTeX 0.99999+ XeTeX 0.99999+ doesn't need this workaround. 2020-04-22 Masamichi Hosoda <trueroad@trueroad.jp> * doc/txi-ja.tex: Change default Japanese font to haranoaji. From TeX Live 2020, Japanese default font has become HaranoAji. 2020-04-14 Vincent Lefevre <vincent@vinc17.net> (tiny change) * doc/texinfo.tex (\urefallowbreak): Fix typos in comment. 2020-04-12 Matthew Kraai <kraai@ftbfs.org> (tiny change) * doc/info-stnd.texi (Invoking Info): Fix typo. 2020-03-27 Gavin Smith <gavinsmith0123@gmail.com> Viewport declaration. * tp/Texinfo/Convert/HTML.pm (_default_node_redirection_page): Add <meta name="viewport"> tag in header for better rendering on mobile devices. From Karl. 2020-03-25 Gavin Smith <gavinsmith0123@gmail.com> * util/htmlxref.cnf: Add info. 2020-03-18 Gavin Smith <gavinsmith0123@gmail.com> * util/htmlxref.cnf: Add dejagnu. From Karl. 2020-03-09 Gavin Smith <gavinsmith0123@gmail.com> Fix closing tag for footnotes heading. * tp/Texinfo/Convert/HTML.pm (_convert_footnote_command): Correct closing tag from </h3> to </h5>. Report from Kazuhiro Ito. 2020-02-11 Gavin Smith <gavinsmith0123@gmail.com> Fix @xrefautomaticsectiontitle with active chars in node names. * doc/texinfo.tex (\refx): Turn off active characters when constructing a control sequence with \csname. This allows retrieving a section name for use with @xrefautomaticsectiontitle. (\xrefX): Do not turn off active characters before using \refx for the section number. Akim Demaille reported an error message when using @xrefautomaticsectiontitle with a '+' in a node name. 2020-02-05 Gavin Smith <gavinsmith0123@gmail.com> Fix parsetexi out-of-source build. * tp/Texinfo/XS/Makefile.am: Add -I option to locate include files under out-of-source builds. Suggestion by Hans-Bernhard Bröker. Problem reported by Werner Lemberg https://lists.gnu.org/archive/html/bug-texinfo/2020-01/msg00021.html. 2019-02-05 Hans-Bernhard Bröker <HBBroeker@t-online.de> (tiny change) * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): Remove incorrect semicolon after if condition. 2020-01-28 Gavin Smith <gavinsmith0123@gmail.com> Section names in HTML navigation bar instead of node names. * tp/Texinfo/Convert/HTML.pm (_element_direction): Accept 'section' as the type of text to return. (_default_node_direction, _default_node_direction_footer) [xrefautomaticsectiontitle]: Call '_element_direction' with 'section'. Combine text of both subroutines and make one call the other. 2020-01-24 Jean-Christophe Helary <jean.christophe.helary@traduction-libre.org> * doc/texinfo.tex (Smallcaps): Use correct French. 2020-01-20 Gavin Smith <gavinsmith0123@gmail.com> Fix test results. * tp/tests/run_parser_all.sh: Specify "-c SHOW_MENU=1 -c MINI_TOC=0" by default. * tp/tests/layout/list-of-tests (formatting_plaintext), * tp/tests/contents/list-of-tests (double_contents_book): Specify "-c SHOW_MENU=0" on the command line. Update the test results for the last change. 2020-01-20 Gavin Smith <gavinsmith0123@gmail.com> Use section names in HTML output. * tp/Texinfo/Convert/HTML.pm (%defaults): Set xrefautomaticsectiontitle to 'on'. (_convert_xref_commands): Do not insert word "section" before hyperlink. 2020-01-19 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Info Format General Layout): Change @subsection to @subheading so that nodes appear in menu. 2020-01-19 Gavin Smith <gavinsmith0123@gmail.com> No menus for HTML output by default. * tp/Texinfo/Convert/HTML.pm (%defaults): Set SHOW_MENU to 0 and MINI_TOC to 1. (_convert) <sectioning commands>: Do not generate a mini-TOC for the @top node. Do not generate a menu for a node missing one unless SHOW_MENU is set. 2020-01-19 Gavin Smith <gavinsmith0123@gmail.com>, and Patrice Dumas <pertusus@free.fr> Implement mini-tables of contents. * tp/Texinfo/Common.pm (@variable_string_settables), * tp/Texinfo/Convert/HTML.pm (%defaults): New customization variable 'MINI_TOC'. * tp/Texinfo/Convert/HTML.pm (_mini_toc): New subroutine. (_convert) <sectioning commands> [MINI_TOC]: Call _mini_toc. (%contents_commands): Remove unused. 2020-01-17 Jean-Christophe Helary <jean.christophe.helary@traduction-libre.org> * doc/texinfo.texi: Grammar fixes throughout, especially involving hyphens. 2020-01-15 Gavin Smith <gavinsmith0123@gmail.com> No accesskey attribute in footer. * tp/Texinfo/Convert/HTML.pm (_default_node_direction_footer): New function, based on _default_node_direction. (%defaults) <'NODE_FOOTER_BUTTONS'>: Use _default_node_direction_footer. Daniel Nagy reported that in Firefox, when a page had accesskeys defined in both a header and a footer of a node, that focus would switch between the two elements, instead of following the link. 2020-01-15 Gavin Smith <gavinsmith0123@gmail.com> Suppress text decoration inside @def*. * tp/Texinfo/Convert/Plaintext.pm (_convert) <@def* commands>: Set 'suppress_styles' on the converter to prevent a @code command inside a @def* command producing single quotes. * tp/t/19def.t (code_in_def): New test. 2019-12-25 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (_default_node_redirection_page) (_default_begin_file): Move encoding declaration above the copyright text so that it will always be present in the first 1024 bytes of the file. See https://www.w3.org/International/questions/qa-html-encoding-declarations 2019-12-15 Paul Eggert <eggert@cs.ucla.edu> Fix misspelling of "common" in texinfo.tex * doc/texinfo.tex (commonheadfootline): Rename from name mispelled with 'mmm' instead of 'mm'. All uses changed. 2019-12-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/ParserNonXS.pm (_convert_to_text): New function. Include text elements which are '0'. Support @atchar{}, @lbracechar{} and @rbracechar{}. (_end_line) <text commands>: Call _convert_to_text. (_parse_texi) <in index commands>: Call _convert_to_text in order to support {, }, @ inside index sort keys. * tp/Texinfo/XS/parsetexi/convert.c (convert_to_text): Support @atchar{}, @lbracechar{} and @rbracechar{}. * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace) <in index commands>: Call convert_to_text. Georg-Johann Lay reported that @{ was not recognised inside a @sortas directive. 2019-11-08 Patrice Dumas <pertusus@free.fr> * tp/Texinfo/Convert/HTML.pm (%defaults) <LINKS_BUTTONS>: Change to make <link> elements in header match the navigation bar. 2019-11-07 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (command_href): Omit fragment identifier from URL if linking to a section with an associated node. This means that links from the table of contents will go to the top of the page, rather than scrolling the page slightly. 2019-11-02 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (HTML Customization Variables) <INLINE_CONTENTS>: Remove referece to removed @setcontentsaftertitlepage command. 2019-10-27 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Advanced Indexing): Correct spelling. Report from John Tait. 2019-10-18 Gavin Smith <gavinsmith0123@gmail.com> * util/texi2dvi (xref_files_changed): Move call to generated_files_get earlier so that xref_files_new will still be updated if the log files indicate that LaTeX should be re-run. 2019-10-06 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/input.c (locate_include_file): Return value to be freed by caller. 2019-10-06 Gavin Smith <gavinsmith0123@gmail.com> Fix parsetexi macro handling. * tp/Texinfo/XS/parsetexi/macro.c (handle_macro): For a macro taking a single argument, if the rest of the line is empty, leave the newline on the line. Otherwise, a command on the next line would not be recognized as occurring at the beginning of the line. This led to errors with as.texi from binutils, reported by Hans-Bernhard Bröker. * tp/t/60macro.t (include_after_empty_line_arg): New test. 2019-10-03 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/end_line.c (parse_special_misc_command) <CM_clear>: Use read_flag_name to read name of flag instead of read_command_name. * tp/Texinfo/XS/parsetexi/macro.c (fetch_value, clear_value): Remove length argument. 2019-10-03 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/parser.c (process_remaining_on_line) <@value>: Use read_flag_name to read name of flag. 2019-10-03 Gavin Smith <gavinsmith0123@gmail.com> Fix test suite running under non-American locales. * tp/t/test_utils.pl: Set LC_ALL to 'C'. I found test failures when my locale was en_GB.utf8 due to some translation files provided by the "language-pack-en-base" package of Linux Mint ("recognized" was changed to "recognised"). 2019-10-03 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/TestXS.pm: Update use of Texinfo::XSLoader. 2019-10-03 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/55conditionals.t (ifset_nonalpha): New test. 2019-10-03 Gavin Smith <gavinsmith0123@gmail.com> Support unusual characters in flag name in XS parser. * tp/Texinfo/XS/parsetexi/parser.c (read_flag_name): New function. * tp/Texinfo/XS/parsetexi/handle_commands.c (handle_block_command) <@ifset>: Call read_flag_name instead of read_command_name. Hans-Bernhard Bröker reported that flag names containing slashes didn't work in binutils' as.texi. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/ParagraphNonXS.pm: Use Texinfo::Convert::Paragraph namespace. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> Reinstate TEXINFO_XS_PARSER variable. * tp/Texinfo/Parser.pm: If TEXINFO_XS_PARSER is set to 0, do not load the XS parser module. * tp/Texinfo/XSLoader.pm: Make a warning message more informative. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> Fix XS module loading. * tp/Texinfo/XSLoader.pm (init): Remove code looking for a Perl file in Perl's search path based on the package name of the module. This does not correspond to a file and will be the same package name for XS and non-XS modules. Remove 'standalone' and 'libtool' options for TEXINFO_XS variable. * tp/Texinfo/MiscXS.pm, tp/Texinfo/XS/MiscXS.xs: Use Texinfo::MiscXS namespace. * tp/Texinfo/Convert/Paragraph.pm, tp/Texinfo/XS/XSParagraph.xs: Use Texinfo::Convert::Paragraph namespace. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> Fix XS fallback. * tp/Texinfo/XSLoader.pm (init): Do not take an argument of a package name to use for the symbols found in the loaded module - rely on the loaded module using the correct package name in the first place. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> Attempt to fix fallback to pure Perl Texinfo::Parser. * tp/Texinfo/ModulePath.pm.in: Remove hook from @INC to load the right version of Texinfo::Parser. * tp/Texinfo/XSLoader.pm: Add argument for an extra Perl file to be loaded in addition to the XS module. * tp/Texinfo/Parser.pm: Load XS or pure Perl module by calling Texinfo:XSLoader::init. This is the same approach as for Texinfo::Convert::Paragraph. Load tp/Texinfo/XS/parsetexi/Parsetexi.pm only after the XS module has been successfully loaded. * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Remove call to Texinfo:XSLoader::init. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> * configure.ac: Bump version to 6.7dev, remove dist-xz from options. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> Fix running texi2any.pl from the source directory. * tp/Texinfo/ModulePath.pm.in: Make $top_builddir and $top_srcdir variables available. * tp/texi2any.pl: Use $Texinfo::ModulePath::top_srcdir instead of referring to an environment variable which may not be set. 2019-10-01 Gavin Smith <gavinsmith0123@gmail.com> Enable XS parser by default. * tp/Texinfo/ModulePath.pm.in: Reverse sense of the check for TEXINFO_XS_PARSER: try to load XS parser module by default. 2019-09-28 Eli Zaretskii <eliz@gnu.org> * tp/Texinfo/XS/parsetexi/api.c (find_locales_dir): Don't use asprintf, as that could cause Perl crashes due to different malloc implementations. 2019-09-24 Gavin Smith <gavinsmith0123@gmail.com> @url line-breaking. * doc/texinfo.tex (\urefallowbreak): Discourage ragged right by reducing end-line stretch and increasing penalty. Test cases sent by Vincent Lefevre. * doc/texinfo-tex-test.texi (URL line breaking): Add test cases. 2019-09-24 Gavin Smith <gavinsmith0123@gmail.com> @url line-breaking. * doc/texinfo.tex (\urefallowbreak): Allow a break within a URL without any extra stretch at all. There is no point to having a small amount of glue at the very end of a line when it is not needed. Report from Vincent Lefevre. * doc/texinfo-tex-test.texi (URL line breaking): Add a test case. 2019-09-23 Gavin Smith <gavinsmith0123@gmail.com> 6.7. * configure.ac, NEWS, util/texi2dvi, util/texi2pdf, doc/refcard/txirefcard.tex: version 2019-09-23 Gavin Smith <gavinsmith0123@gmail.com> 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 <yokota.hgml@gmail.com> (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 <gavinsmith0123@gmail.com> pretest 6.6.92 * configure.ac: version 2019-09-17 Gavin Smith <gavinsmith0123@gmail.com> pretest 6.6.91 * configure.ac: version 2019-09-08 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/Plaintext.pm (_convert) <menu_entry_node>: 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 <gavinsmith0123@gmail.com> * 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 <eliz@gnu.org> * api.c (find_locales_dir): Add the "dTHX" boilerplate, as this function uses Perl API functions. 2019-08-19 Eli Zaretskii <eliz@gnu.org> * info/pcterm.c (kill): Don't use RETSIGTYPE, it is no longer defined by config.h. 2019-08-18 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * 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 <bug-gnu-gettext@gnu.org> * 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 <gavinsmith0123@gmail.com> * tp/Texinfo/Convert/HTML.pm (default_contents): Use <a rel="index"> for links to index nodes. * NEWS: Mention change. 2019-08-18 Gavin Smith <gavinsmith0123@gmail.com> * NEWS: Remove announcement of use of @ as escape character in index files. 2019-08-16 Gavin Smith <gavinsmith0123@gmail.com> 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 <a> element to "index". Remove commented-out code. * NEWS: Mention change. 2019-08-16 Gavin Smith <gavinsmith0123@gmail.com> Mark index nodes. * tp/Texinfo/ParserNonXS.pm (_parse_texi) <line commands>, * 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 <gavinsmith0123@gmail.com> * 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 Дилян Палаузов <dilyan.palauzov@aegee.org>. 2019-08-16 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (GNU Sample Texts): Mention UPDATED-MONTH variable in version.texi. Report from Дилян Палаузов <dilyan.palauzov@aegee.org>. 2019-08-16 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (GNU Sample Texts): Link to "Texinfo" node of Automake manual directly. Report from Дилян Палаузов <dilyan.palauzov@aegee.org>. 2019-08-16 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Beginning and Ending a File): Minor grammar fix. Report from TonyMc <afmcc@btinternet.com>. 2019-07-26 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.texi (Node Menu Illustration): Minor grammar fix. Report from Дилян Палаузов <dilyan.palauzov@aegee.org>. 2019-07-11 Gavin Smith <gavinsmith0123@gmail.com> * 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 <pertusus@free.fr> 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 <gavinsmith0123@gmail.com> * doc/texinfo.tex (\printindex): Remove \message printing informative statement. Report from Karl Berry. 2019-05-18 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex: Specify "@set txiindexescapeisbackslash" in order to use backslashes in index files by default. 2019-05-18 Arnold D. Robbins <arnold@skeeve.com> * 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * util/htmlxref.cnf: Add eww. From Tsuyoshi Kitamoto <tsuyoshi.kitamoto@gmail.com>. 2019-05-06 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * tp/tests/t/stdout.sh, * tp/tests/t/stdout_split.sh: Remove tests. 2019-05-06 Gavin Smith <gavinsmith0123@gmail.com> * tp/tests/Makefile.am (copy-tests): Do not try to make target in subdirectory. 2019-05-06 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/94htmlxref.t: Remove a ".texi" suffix given as the manual argument to an xref command. 2019-05-06 Gavin Smith <gavinsmith0123@gmail.com> * tp/t/30sectioning.t: Remove a ".texi" suffix given as the manual argument to an xref command. 2019-05-05 Gavin Smith <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> "See also" index entries for DocBook output. * tp/Texinfo/Convert/DocBook.pm (_index_entry): Output <see> or <seealso> elements if @seeentry or @seealso directives were given for the index entry. 2019-04-27 Gavin Smith <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * 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) <close brace>: 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 <gavinsmith0123@gmail.com> 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 <pertusus@free.fr> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Remove SHORTEXTN. * tp/Texinfo/Convert/HTML.pm (converter_initialize): Do not check SHORTEXTN customization variable. 2019-04-12 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/texinfo.tex (\defsl): Declare with OT1 encoding instead of OT1TT to avoid pdftex warning about conflicting CMap's. 2019-04-12 Gavin Smith <gavinsmith0123@gmail.com> * 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 <arnold@skeeve.com> * 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * doc/texinfo.texi (latex2html Customization Variables): New node, split from 'HTML Customization Variables'. 2019-04-07 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * 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 <pertusus@free.fr> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * js/info.js (scan_toc): Use getElementById instead of querySelector, as id's are unique. From Mathieu. 2019-04-02 Gavin Smith <gavinsmith0123@gmail.com> * doc/texinfo.tex (\urefallowbreak): Reduce stretch from 1fil to 4em. This discourages breaking too early in the line. 2019-04-02 Gavin Smith <gavinsmith0123@gmail.com> 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 <pertusus@free.fr> 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 <pertusus@free.fr> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * NEWS: Add some news items. 2019-03-31 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * tp/t/test_utils.pl: Do not print errors from conversions. 2019-03-29 Gavin Smith <gavinsmith0123@gmail.com> 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 <arnold@skeeve.com> * texinfo.tex: @see is now @seentry, per Gavin. Removed spurious definition of \putwordSee. 2019-03-27 Patrice Dumas <pertusus@free.fr> 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 <pertusus@free.fr> * tp/init/chm.pm, tp/init/latex2html.pm, tp/init/tex4ht.pm: use __() from Texinfo::Common 2019-03-27 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <arnold@skeeve.com> @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 <gavinsmith0123@gmail.com> * util/htmlxref.cnf: Update 'mit-scheme-imail'. From Thérèse Godefroy. 2019-03-24 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/parser.c (wipe_global_info): Set input_encoding_name as well as input_perl_encoding. 2019-03-24 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> @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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Ignore Top node in texinfo.tex even without @ifnottex. * doc/texinfo.tex (\omittopnode): New macro. (\node): Call it. 2019-03-22 Gavin Smith <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> @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 <gavinsmith0123@gmail.com> * doc/texinfo-tex-test.texi (Index subentries): New section. 2019-03-16 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/texinfo.tex (\printindex): Fix detection of backslash in sorted index file. 2019-03-16 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Remove unused function. * tp/Texinfo/Convert/Converter.pm (_register_command_arg): Remove. 2019-03-16 Gavin Smith <gavinsmith0123@gmail.com> Test of @subentry. * tp/t/09indices.t (subentries): New test. 2019-03-16 Gavin Smith <gavinsmith0123@gmail.com> @subentry in DocBook output. * tp/Texinfo/Convert/DocBook.pm (_index_entry): Possibly output index subentries inside <secondary> or <tertiary> elements. 2019-03-16 Gavin Smith <gavinsmith0123@gmail.com> @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 <gavinsmith0123@gmail.com> 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) <line commands>: 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 <gavinsmith0123@gmail.com> * tp/t/18itemize.t (table_in_itemize): New test. 2019-03-13 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/texinfo-tex-test.texi (Test of index widow elimination): Comment out. (No page number in index): New section. 2019-03-10 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Use <h5> for footnote labels. * tp/Texinfo/Convert/HTML.pm (_convert_footnote_command): Use <h5> instead of <h3> for the numbered footnote labels. Jean-Christophe Helary reported that the <h3> level being used was greater than that for the main footnotes heading, which was only <h4>. 2019-03-10 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * 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 <gavinsmith0123@gmail.com> * doc/texinfo.tex (\macroargctxt, \macrolineargctxt): Set catcode of @ to other. 2019-03-09 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> No catcode changes in \scanmacro. * doc/texinfo.tex (\scanmacro): Do not change catcode of @ or \. 2019-03-09 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Add test material for headings and footings. * doc/texinfo-tex-test.texi (Headings and footings): New section. 2019-03-02 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/texinfo.tex (\chapmacro): Remove obsolete comment about \setcontentsaftertitlepage. 2019-02-28 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/texinfo.texi (@titlepage): Remove documentation of @setcontentsaftertitlepage. 2019-02-23 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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) <INPUT_ENCODING_NAME, INPUT_PERL_ENCODING>: Use UTF-8 by default. * NEWS: Mention change. 2019-02-23 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> @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 <gavinsmith0123@gmail.com> 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) <RENAMED_NODES_FILE, RENAMED_NODES_REDIRECTIONS>: Remove. RENAMED_NODES_REDIRECTIONS was not actually used anywhere. (HTML Xref Link Preservation): Remove node. 2019-02-17 Gavin Smith <gavinsmith0123@gmail.com> * tp/test_utils.pl: Check if errors were output properly. 2019-02-17 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * configure.ac: Bump version to 6.6dev. 2019-02-16 Gavin Smith <gavinsmith0123@gmail.com> 6.6. * configure.ac, NEWS, util/texi2dvi, util/texi2pdf, doc/refcard/txirefcard.tex. 2019-02-16 Gavin Smith <gavinsmith0123@gmail.com> * README-hacking: Update for git, no keyword expansion. 2019-02-16 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/texinfo-tex-test.texi (Multi-line macro argument): Add note on how a bug might be fixed. 2019-02-16 Gavin Smith <gavinsmith0123@gmail.com> Do not end a sentence after an inserted '.'. * tp/Texinfo/Convert/Plaintext.pm (_convert) <ref commands>: 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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) <printing characters>: 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'. <echo-area-complete>: SPC is not bound to this command any more. <echo-area-possible-completions>: 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 <gavinsmith0123@gmail.com> pretest 6.5.93. * configure.ac: version 2019-02-11 Gavin Smith <gavinsmith0123@gmail.com> Be less optimistic about HTML 3.2 compatibility. * doc/texinfo.texi (HTML Translation): Mention that <span> is used. Mention that 'id' atttibute is used. Say that html32.pm hasn't been tested recently. 2019-02-11 Gavin Smith <gavinsmith0123@gmail.com> Fix make update-po in out-of-source build. * Makefile.am (update-po): Remove reference to $srcdir. 2019-02-11 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <rpluim@gmail.com> * doc/texinfo.texi (Inserting): Document 'M-x texinfo-insert-dwim-@ref'. 2019-02-10 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/texinfo.texi: Wrap introductory comment in @ifinfo block. 2019-02-10 Gavin Smith <gavinsmith0123@gmail.com> No colon in HTML menus. * tp/Texinfo/Convert/HTML.pm (%defaults) <MENU_ENTRY_COLON>: Set to ''. * doc/texinfo.texi (Other Customization Variables): Update. * NEWS: Mention change. 2019-02-04 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> pretest 6.5.92. * configure.ac: version 2019-02-01 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * README-hacking: Update. 2019-02-01 Werner Lemberg <wl@gnu.org> * doc/texinfo.tex (\setupverbatim): Fix a comment. 2019-02-01 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Use 'id' instead of 'name'. * js/info.js (add_header, scan_toc): Use 'id' instead of 'name' attribute. 2019-01-31 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Use 'id' instead of 'name' attribute. * tp/Texinfo/Convert/HTML.pm (_convert_footnote_command), (_default_contents): Use 'id' instead of 'name' attribute on <a> tag. 2019-01-27 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <bruno@clisp.org> Fix test failures on HP-UX. Reported by Richard Lloyd in <https://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>. * install-info/tests/ii-0041-test: Simulate zdiff. * install-info/tests/ii-0050-test: Likewise. 2019-01-25 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi/Parsetexi.pm: Remove a generated comment. 2019-01-14 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Remove some unused variables. * tp/Texinfo/XS/parsetexi/separator.c (handle_close_brace): Remove some unused variables. 2019-01-13 Gavin Smith <gavinsmith0123@gmail.com> pretest 6.5.91. * configure.ac: version 2019-01-13 Gavin Smith <gavinsmith0123@gmail.com> * info/man.c: Include stdio.h. 2019-01-12 Hans-Bernhard Bröker <HBBroeker@t-online.de> (tiny change) Fix some warnings. * tp/Texinfo/XS/parsetexi/close.c: Initialize a variable. 2019-01-12 Hans-Bernhard Bröker <HBBroeker@t-online.de> (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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Remove an unused variable. * tp/Texinfo/ParserNonXS.pm (_parse_texi): Remove an unused variable. 2019-01-12 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi: Fix implicit function declarations. 2019-01-07 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Include iconv.h unconditionally. * tp/Texinfo/XS/parsetexi/input.c: Do not depend on HAVE_ICONV for #include <iconv.h>. 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Integrate parsetexi with gnulib. * tp/Texinfo/XS/parsetexi/input.c: Do not define ICONV_CONST. 2019-01-05 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <bruno@clisp.org> Fix build errors on AIX 7.1. * info/Makefile.am (LDADD), * install-info/Makefile.am (LDADD): Add $(LIBTHREAD). 2019-01-05 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> pretest 6.5.90. * configure.ac: version 2019-01-04 Gavin Smith <gavinsmith0123@gmail.com> * tp/Texinfo/XS/parsetexi: Include config.h in all files. 2019-01-04 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * doc/Makefile.am (EXTRA_DIST): List texinfo-tex-test.WIDOWs. 2019-01-04 Gavin Smith <gavinsmith0123@gmail.com> Update copyright years. * info/info.c (main), * texindex/ti.twjr: 2019. 2019-01-04 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * NEWS: automake 1.16. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> * README-hacking: Remove some obsolete or personal instructions. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> * info/t/multiple-completions.sh: New test. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * README-hacking: Update instructions to use git. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> Update gnulib. * (top-level), tp/Texinfo/XS: Run gnulib-tool --add-import. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> * tp/tests/sectioning/Makefile.am: Update file list. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> Finish removing 'FIX_TEXINFO'. * tp/Texinfo/Common.pm (@variable_string_settables): Remove 'FIX_TEXINFO'. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Remove SVN keyword. * util/texi2dvi (version): Do not use '$Revision$' keyword as this doesn't work with git. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> * README-hacking: Update instructions for git. 2019-01-03 Gavin Smith <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> 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 <gavinsmith0123@gmail.com> Remove commented-out code. * tp/tests/parser-tests.sh: Remove commented-out code. 2019-01-02 Gavin Smith <gavinsmith0123@gmail.com> 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 <per@bothner.com> Use 'id' attribute instead of 'name' on <a>. * tp/Texinfo/Convert/HTML.pm: (_convert_float_command, _convert_item_command) (_convert_index_command, _contents_inline_element) (_convert_element_type, _convert_heading_command): Use '<span id>' instead of '<a name>'. (_convert_printindex_command, _convert_def_line_type): Add 'id' attribute to <th> and <dt> elements, and remove <a name>. The 'name' attribute of <a> 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 <gavinsmith0123@gmail.com> Document SECTION_NAME_IN_TITLE. * doc/texinfo.texi (HTML Customization Variables), * NEWS: Document SECTION_NAME_IN_TITLE. 2019-01-01 Gavin Smith <gavinsmith0123@gmail.com> 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 <title>. 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.
Generated by dwww version 1.15 on Thu Jun 20 14:27:04 CEST 2024.