2015-06-26 Gavin Smith * NEWS, util/texi2dvi, util/texi2pdf, doc/refcard/txirefcard.tex, configure.ac: 6.0 release. 2015-06-25 Gavin Smith * doc/texinfo.texi (Multiple Spaces): Correct explanation of @NL. 2015-06-24 Gavin Smith * doc/texinfo.tex (\macrolineargctxt): New macro, based on \macroargctxt. (\defmacro) , : Don't call \macroargctxt. (\braceorlinexxx) Call \macroargctxt only if a { follows the macro name, otherwise call \macrolineargctxt. (Various reports from, inter alia, Werner Lemberg and David Kastrup.) 2015-06-24 Gavin Smith * tp/Texinfo/Convert/DocBook.pm (@inline_elements): Add 'subscript' and 'superscript' so they can show up in a @def* line. Bug report from Per Bothner. 2015-06-23 Gavin Smith * info/t/Init-inter.inc (run_ginfo): Remove delay if PID of process is unknown. * info/t/Init-inter.inc (synch_with_program): Add function. * info/t/c-u-m-x-scroll-forward.sh, info/t/gc-split.sh, info/t/inc-sea-forward-non-regex.sh, info/t/inc-sea-forward.sh, info/t/inc-sea-history.sh, info/t/inc-sea-insensitive.sh: Use it. 2015-06-23 Gavin Smith * info/pseudotty.c: Define _XOPEN_SOURCE as 600 instead of 500. 2015-06-23 Gavin Smith * info/echo-area.c (info_read_in_echo_area) (info_read_completing_internal, info_read_maybe_completing) (info_read_completing_in_echo_area_with_exclusions): Add const qualifier to char * in parameter list. 2015-06-23 Gavin Smith * run gnulib --add-import 2015-06-20 Gavin Smith * pretest 5.9.95, 5.9.96 * configure.ac: version. 2015-06-20 Gavin Smith * info/pseudotty.c: Attempt to register display size as 0 by 0. * info/t/c-u-m-x-scroll-forward.sh: Comment changed. 2015-06-20 Eli Zaretskii * info/pcterm.c (kill): Move prototype from here... * system.h: ...to here, conditioned by __MINGW32__. This solves compiler warnings in signals.c. * info/pcterm.c (wcwidth): Make function's signature consistent with Gnulib's prototype in gnulib/lib/wchar.h. * info/session.c (w32_read): Provide prototype, to avoid compiler warnings. 2015-06-18 Eli Zaretskii * tp/Texinfo/Common.pm (open_out): Call binmode on opened file handle as intended. 2015-06-18 Karl Berry * pretest 5.9.94. * configure.ac: version. 2015-06-18 Eli Zaretskii Avoid "implicit declaration" warnings in pcterm.c. * info/pcterm.c: Include display.h. Provide prototypes for 'kill', 'reset_info_window_sizes', and 'redisplay_after_signal'. 2015-06-17 Gavin Smith * tp/Texinfo/Commom.pm (open_out): Add parameter which conditionalizes the calls to "binmode" on file handle. * tp/Texinfo/Convert/Info.pm (_open_info_file): New function, wrapping Texinfo::Common::open_out. Call Texinfo::Common::open_out so that it calls "binmode". (output): Call _open_info_file instead of open_out directly. 2015-06-16 Karl Berry * texindex/tests/ti-helpversion: new test, in new subdir, with fingers crossed. * texindex/Makefile.am (TESTS): new variable setting. (EXTRA_DIST): include $(TESTS). 2015-06-15 Eli Zaretskii , and Gavin Smith * tp/Texinfo/Common.pm (open_out): Run "binmode" on file handle, to disable conversion of LF to CR LF under MS-Windows. 2015-06-14 Karl Berry * doc/texinfo.tex (\tcfont, \etcfont): new macros. (\ecfont): call \etcfont now, so we can equally support tc* with ec*. (\latonechardefs) , (\utfeightchardefs) <00A2,00A4,00A5,00A6>: can now support characters cents, currency, yen, broken bar (among others from the LaTeX TS1 encoding, but we'll leave it at that for now). 2015-06-13 Karl Berry * info/t/Init-test.inc: set -x so the t/*.log files have more tracing in case of debugging. 2015-06-11 Karl Berry * tp/Texinfo/Convert/UnFilled.pm (_add_text), * tp/Texinfo/Convert/Plaintext.pm (_contents): avoid negative repeat counts, which cause a warning in perl 5.22.0. 2015-06-10 Karl Berry * doc/refcard/txicmdcheck (read_refcard): \escape all the { due to new warning in perl 5.22.0. Also \escape the } for consistency. 2015-06-09 Gavin Smith * info/indices.c (info_virtual_index): Change type of a local variable to match expected type of argument to next_index_match. * info/dir.c (dir_entry_of_infodir), * info/info-utils.c (info_get_menu_entry_by_label): Add parentheses around assignment for clarity. * info/info-utils.c (printed_representation): Change declaration of a variable from an unsigned char * to a char * and cast it when we need to check the referent is in a range. 2015-06-09 Gavin Smith * gnulib: Add stdarg module, to try to fix compilations in C89 mode due to lack of va_copy. * README-hacking: Add note how to ignore files in SVN. 2015-06-08 Gavin Smith * info/t/Timeout-test.inc: Also check that "time -t 0" produces no output. (Attempt at stopping failures under OpenBSD 5.5.) 2015-06-07 Gavin Smith * configure.ac (AC_CHECK_HEADERS): Check for stropts.h. * info/pseudotty.c [HAVE_STROPTS_H]: Perform STREAMS ioctl's on slave device, as recommended in the GNU C Library Reference Manual. (Attempt at stopping hang of test replace-viewed.sh under Solaris 10.) 2015-06-07 Gavin Smith * info/t/c-u-m-x-scroll-forward: Synch with controlled program before sending in typed input. (Attempt at fixing test failures under CentOS.) 2015-06-07 Gavin Smith * info/t/index-apropos.sh: Don't send C-g to controlled program. 2015-06-07 Gavin Smith * info/t/replace-viewed.sh: Use rm -f instead of rm. 2015-06-07 Gavin Smith * info/nodes.c (forget_info_file): Function replaced. Don't free the file buffer because it could still be referenced in a displayed node. * info/Makefile.am (XFAIL_TESTS): Remove replace-viewed.sh. * info/nodes.h (N_Gone): New symbol. 2015-06-07 Gavin Smith * info/t/replaced-viewed.sh: New test. (Bug reported by Benno Schulenberg). * info/Makefile.am (TESTS, XFAIL_TESTS): Add it. 2015-06-07 Karl Berry * Pretest 5.9.93. 2015-06-06 Gavin Smith * info/t/Timeout-test.inc: Check for "read -t" slightly differently. 2015-06-06 Gavin Smith * info/t/Init-test.inc, * info/t/Init-inter.inc: Check if running the test turned off terminal echoing, and only run "stty sane" if that is the case. * info/t/Timeout-test.inc: Default exit status of test to success. 2015-06-06 Gavin Smith * info/t/index-apropos.sh: Wait for 'index-apropos' command to finish before we sent more key strokes. 2015-06-05 Gavin Smith * info/t/Init-test.inc (cleanup): Run "stty sane" (interactive tests only). * info/t/Init-inter.inc: Check for stty program. 2015-06-05 Gavin Smith * info/t/adjust-anchors.sh: Add comment about name of character encoding. Export LC_ALL instead of LANG. 2015-06-04 Gavin Smith * info/pseudotty.c: Check for failure from "write" call. Don't exit for an error communicating with controlled process; do exit for error on control channel. * info/t/Init-inter.inc: Open FIFO for commmunicating that ginfo has finished on both ends, to allow timeout to work. Start pseudotty with "exec" in case there is an intermediate shell, to get its PID correctly. * info/t/README: Update. 2015-06-04 Gavin Smith * info/t/Infokey-config: Set key-time=0 to try to increase predictability of interactive tests. 2015-06-03 Karl Berry * prepare for pretest 5.9.93. 2015-06-03 Gavin Smith * info/t/Init-inter.inc (run_ginfo): Close fd opened to control FIFO in subshell so pseudotty can exit for an EOF. This prevents lingering processes if a test is interrupted. 2015-06-03 Karl Berry * texindex/ti.twjr (usage, version): combine multi-line strings. Suggested by Benno. * info/info.c (info_short_help): no leading newline on trailing block, to merge string with other occurrences. * Makefile.am (update-po): new convenience target to build both po and po_document strings. * texindex/Makefile.am: doc tweaks. 2015-06-03 Gavin Smith * info/pseudotty.c: Don't get control channel from an already redirected file descriptor, get it from the filename of a FIFO passed on the command line. #define _XOPEN_SOURCE as 500 to expose prototype of "ptsname" under NetBSD 6.1.4. * info/t/Init-inter.inc: Create control channel FIFO and pass name of it to pseudotty. Don't use background processes to keep the control FIFO open. Redirect FIFO for communicating name of pty slave device within a subshell. Keep control FIFO open using file descriptor redirection in main shell process. * info/t/Init-test.inc: Remove unneeded cleanup code. * info/t/Timeout-test.inc: Don't try to open FIFO for indicating that ginfo has finished read-write. 2015-06-03 Gavin Smith * README-hacking: mention OpenCSW build reports 2015-06-03 Karl Berry * AUTHORS (Robbins, Smith): add. * README-hacking: mention TeX by Topic, TeX for the Impatient, and texiwebjr. 2015-06-02 Karl Berry * po_document/Makevars (PACKAGE_GNU, MSGINIT_OPTIONS, PO_DEPENDS_ON_POT, DIST_DEPENDS_ON_UPDATE_PO): new variables, as with po/Makevars a couple days ago. 2015-06-02 Karl Berry * texindex/ti.twjr (Seen): re-initialize for each output file, so a duplicated index entry is kept if it's in a different index. Doc: discuss @ vs. \ as command character; indexing updates. * doc/texinfo.texi (Details of texindex): a bit more about twjr. * doc/texinfo.tex (\lastsection): define as empty in case a sub(sub)heading occurs out of sequence. 2015-05-31 Karl Berry * configure.ac (AC_INIT): prepare for 5.993 pretest. 2015-05-31 Karl Berry * texindex/ti.twjr (version): use printf for year. 2015-05-31 Karl Berry * po/Makefile.in.in ($(DOMAIN).pot-update): invoke xgettext a second time with --join-existing --language=awk texindex/ti.twjr, since there is apparently no other way to get ti.twjr's strings into texinfo.pot. * util/srclist.txt: must manually merge po/Makefile.in.in instead of just copying until xgettext knows about .twjr. * po/POTFILES.in: remove texindex/ti.twjr. * Makefile.am (po-check): don't expect *.twjr in po/POTFILES.in. 2015-05-31 Karl Berry * po/Makevars (PACKAGE_GNU, MSGINIT_OPTIONS, PO_DEPENDS_ON_POT, DIST_DEPENDS_ON_UPDATE_PO): new variables to sync with Makevars.template from gettext-0.19.4 (and earlier.) 2015-05-31 Karl Berry * tp/tests/run_parser_all.sh, * tp/maintain/regenerate_cmd_tests.sh: use grep >/dev/null instead of -qs; Solaris 5.10 grep does not support -q. * tp/tests/run_parser_all.sh: exec /usr/xpg4/bin/sh for Solaris 5.10. * tp/tests/run_parser_all.sh: test "z$file" rather than "$zfile", as intended. 2015-05-30 Karl Berry * util/texi2dvi (generated_files_get): another attempt at making punctuation optional on the \openout line, for luatex. Report from Wybo Dekker. 2015-05-29 Gavin Smith * info/session.c (info_read_and_dispatch): Make call to window_clear_echo_area conditional on read_key_sequence not having dispatched to a user command itself, so error messages aren't cleared. (read_key_sequence) : Clear echo area first. Reported by Benno Schulenberg. 2015-05-29 Benno Schulenberg (tiny change) * info/session.c (display_startup_message): Reword note to translators. 2015-05-26 Karl Berry * doc/texinfo.tex (\setnonasciicharscatcodenonglobal): rm spurious blank line. Report from David Kastrup, 26 May 2015 15:14:06. 2015-05-21 Gavin Smith * info/pseudotty.c: Check return value of fclose. Use an int to hold return value of read. Consistent syntax for infinite loops. (Suggestions from Karl Berry.) 2015-05-20 Karl Berry * util/texi2dvi (generated_files_get): make punctuation optional on the \openout line, to cater to luatex 0.80.0. Noted by Wybo Dekker, report http://tracker.luatex.org/view.php?id=909. 2015-05-18 Gavin Smith * info/info-utils.c (printed_representation): Declare char * as unsigned, so that check for printable limit works. Display unknown bytes with an octal representation. 2015-05-18 Gavin Smith * info/t/Init-test.inc, info/t/Init-inter.inc, info/t/*.sh: Revert split of GINFO variable from yesterday. * info/t/Init-inter.inc: Wedge pipe for input key presses open for reading as well as for writing. * info/t/Timeout-test.inc: Try to detect if "read -t" works by running it in a subshell. If exit status of "read -t" is 1, report that an end-of-file was likely. * info/man.c (get_manpage_from_formatter): Ignore exit status of man page formatter. 2015-05-17 Gavin Smith * info/t/Init-test.inc: Split GINFO variable into GINFO and GINFO_OPTIONS, and provide GINFO function to use them together. * info/t/Init-inter.inc: Pass GINFO_OPTIONS variable as arguments to GINFO. (Attempt at fixing error message on Solaris 10, "./ginfo --init-file ./t/Infokey-config: not found". Maybe word splitting isn't happening.) * info/t/*.sh: Use GINFO alias instead of $GINFO. * info/t/Init-test.inc: Remove portability code for "local" builtin. It doesn't work. (findprog): Don't use "local". 2015-05-17 Gavin Smith * info/t/index-apropos.sh: Don't run printf in background to pass input keystrokes into program. (Attempt at fixing test failure reported by Assaf Gordon.) * info/pseudotty.c: Include sys/select.h for fd_set and others. Reported by Assaf Gordon. * info/pseudotty.c: Log bytes received from control channel, for better trouble-shooting. * po/Makevars: Escape "$" in XGETTEXT_OPTIONS. (Attempt at fixing build failure on FreeBSD 9.3, reported by Assaf Gordon.) 2015-05-17 Gavin Smith * info/t/Init-inter.inc: Copy shell portability code for "local" builtin from util/texi2dvi. * init/t/Init-test.inc: Use "2" as argument to "trap" instead of "SIGINT" for portability to Solaris, among others. * init/t/empty-infopath.sh: Set and export variable separately. (Automated build report via Dagobert Michelsen and platform-testers.) 2015-05-16 Gavin Smith * info/pseudotty.c: Define a global "program_name" variable for use by "error" function. Include string.h to make sure we get a declaration of memset. Reported by Dagobert Michelsen. 2015-05-14 Karl Berry * texindex/texindex.in (escaped0): double backslashes in $0 for passing to awk. Report from Eli on texinfo-devel, 09 May 2015 14:04:37. 2015-05-11 Gavin Smith * Pretest 5.9.92. 2015-05-11 Gavin Smith * info/nodes.c (convert_eols): Do pointer arithmetic before reallocating. (find_node_from_tag) : Also update 'node' field of each window as well as the histories. * info/info.c (add_initial_nodes) : Always free reached node. 2015-05-10 Eli Zaretskii * util/texindex.bat: New file. * util/Makefile.am (w32_bat): Add texindex.bat. 2015-05-09 Karl Berry * texindex/texindex.in: set awk_binary, not awk_configured. 2015-05-09 Eli Zaretskii * info/man.c (get_manpage_from_formatter) : Fix check whether there are enough lines in formatter's output. 2015-05-07 Gavin Smith * tp/Texinfo/Convert/Plaintext.pm (_add_text_count) (_count_added): Don't call Texinfo::Common::count_bytes, collect the argument instead into a string. (_update_count_context): Count the text collected in _add_text_count. * tp/Texinfo/Convert/Plaintext.pm (add_location) (_update_locations_counts, _align_environment, _node_line) (_printindex_formatted, _convert), * tp/Texinfo/Convert/Info.pm (output), * tp/DebugTexinfo/DebugCount.pm (_convert): Call _update_count_context before accessing 'bytes' value of current count context. * tp/Texinfo/Convert/Plaintext.pm (_count_added): Access 'end_line_count' value on hash directly instead of via function call. 2015-05-06 Karl Berry * doc/texinfo.tex (\ensuremath): new helper macro. Use it throughout, replacing simple \ifmmode ... \fi and for additional math chars. (2020, 2021, 2225): define these Unicode chars (from cmsy). * doc/texinfo.texi (key): not using @key in indexes is an rms edict (from many years ago, maybe he would revisit if any need). 2015-05-06 Gavin Smith * tp/Texinfo/Parser.pm (parse_texi): Only use regex to look for @-command once instead of twice. Reorder a condition to make regex execution less likely. Combine "ABORT MENU STAR" and "MENU ENTRY (certainly)" blocks into a single condition. 2015-05-03 Gavin Smith * tp/Texinfo/Convert/Unicode.pm (string_width): Calculate string width using "unpack" function. * tp/Texinfo/Convert/Paragraph.pm (_add_next): Add new argument "$newlines_impossible" to elimate a regex match. Don't access arguments we don't need. (add_text): Use "split" function to split up text. Try to eliminate regex matches for a newline character. Save some flags in local variables. Reorder a condition. Add "o" flag to some regexes that used variables. 2015-05-03 Karl Berry * pretest 5.9.91. * configure.ac: version. 2015-05-03 Eli Zaretskii * NEWS: Mention vars txicodequoteundirected and txicodequotebacktick. * doc/texinfo.texi (Inserting Quote Characters): Mention and index txicodequoteundirected and txicodequotebacktick. 2015-05-02 Karl Berry * configure.ac (TEXINFO_DTD_VERSION): update to 6.0, with commentary. * Makefile.am (dtd-check): new target to be run at make dist (by hand). * util/texinfo.dtd: describe when to update. * README-hacking: more about DTD version check and more. * In tp/tests/formatting/res/parser/ * cond_xml/cond.xml, * split_for_format_not_split/simplest.xml: regenerate. 2015-05-01 Gavin Smith * tp/Texinfo/Plaintext.pm: Change a few more function calls not to use method call syntax. (convert, _convert_element): Use method call syntax to call _footnotes. (Mail from Patrice.) 2015-04-30 Gavin Smith * tp/Texinfo/Parser.pm, tp/Texinfo/Convert/Paragraph.pm, tp/Texinfo/Convert/Plaintext.pm: Don't use object-oriented method call syntax for functions in same file. 2015-04-29 Karl Berry * doc/texinfo.tex (\nonasciistringdefs): make active definitions for 80..9f, needed for (e.g.) second byte of UTF-8 sequences. Report from Jean-Charles Malahieude, 28 Apr 2015 13:21:10. 2015-04-26 Gavin Smith * README-hacking: Add note about updating DTD version number in configure.ac. (Thien-Thi Nguyen, bug-texinfo 2015-03-01.) 2015-04-23 Gavin Smith * tp/Texinfo/Convert/Plaintext.pm (converter_initialize) : Override $self->{'style_map'}->{'dfn'} to use directed double quotes. Use of directed quotes for @dfn suggested by Paul Eggert. 2015-04-22 Karl Berry * doc/txi-es.tex (\putwordin): new define, as `en'. From davidam, help-texinfo 21 Apr 2015 01:38:38. 2015-04-14 Gavin Smith * tp/Texinfo/Conver/Plaintext.pm (_printindex_formatted): Don't call Texinfo::Convert::Unicode::string_width with the part of the string we have already called it on. * tp/Texinfo/Convert/Unicode.pm (unicode_text): Don't normalize return value. * tp/Texinfo/Convert/Paragraph.pm (add_text): Don't track "underlying text" separately if it is the same as the text given to be wrapped. 2015-04-13 Gavin Smith * tp/Texinfo/Common.pm (count_bytes): Add special handling of case when output encoding is UTF-8, and for other encodings save result of Encode::find_encoding between function calls. 2015-04-12 Gavin Smith * tp/Texinfo/Convert/Plaintext.pm (new_formatter): Replace function call to get_conf with hash lookup. (_count_added): Call Texinfo::Common::count_bytes directly instead of via _add_text_count, and inline _add_lines_count. 2015-04-09 Gavin Smith * doc/info-stnd.texi (Variables) : Add note about text selection with the mouse. 2015-04-07 Gavin Smith * info/info.c (add_initial_nodes): Follow menus inexactly before checking indices sloppily. Reported by Benno Schulenberg. * info/indices.c (look_in_indices): Arguments changed. 2015-04-07 Gavin Smith * info/session.c (forward_move_node_structure) , (backward_move_node_structure) : Clean up window history so to add only one node in history. Report from Benno Schulenberg. (backward_move_node_structure): Case-insensitive check for name of (dir). 2015-04-07 Gavin Smith * util/texi2dvi: Comments changed. 2015-04-06 Sergey Poznyakoff * util/texi2dvi (comment_iftex, uncomment_iftex): preserve @top node for first run to avoid makeinfo complaint. Mail to bug-texinfo, 02 Mar 2015 11:38:53 (and thread ff., continuing into April). 2015-04-06 Eli Zaretskii * info/pcterm.c (w32_info_prep): Enable mouse input. (w32_kbd_read): Support mouse wheel events by scrolling display like mouse_event_handler does. 2015-04-06 Gavin Smith * info/info.c (add_initial_nodes) <--node>: Look through node names of file for argument, and if not found look for a case-insensitive initial match. * info/nodes.c (info_get_node_of_file_buffer): Remove doubled condition. 2015-04-06 Gavin Smith * doc/texinfo.texi (Invoking install-info): Include ellipsis within square brackets in synopsis. Report from Benno Schulenberg. 2015-04-04 Karl Berry * doc/texinfo.texi (Not Ending a Sentence): no need for @: after @code. * util/srclist.txt: update slave build-aux/texinfo.tex (required by automake) from master doc/texinfo. * util/htmlxref.cnf (perl): add entry pointing to http://www.gnu.org/software/perl/manual. 2015-03-29 Patrice Dumas * autogen.sh, tp/maintain/regenerate_cmd_tests.sh, tp/tests/Makefile.am, tp/tests/htmlxref*/Makefile.am, tp/tests/parser_tests.sh, tp/tests/run_parser_all.sh: avoid changing directory when running tests. Arrange to be able to run tests directly in subdirectories for tests that need it, namely tests in tests/htmlxref*. * tp/tests/test_scripts/*, tp/tests/htmlxref*/test_scripts/: generate/regenerate. 2015-03-14 Gavin Smith * info/indices.c (next_index_match) : Find non-case-matching initial matches. 2015-03-13 Gavin Smith * info/indices.c (index_initial): New variable. (info_index_search): Initialize index_initial as well as index_partial. (next_index_match): Search for initial substrings after searching for exact matches. (info_virtual_index): Call next_index_match to get index entries in order. 2015-03-09 Gavin Smith * info/search.c (regexp_search): Permit zero-length matches, so that "^" doesn't search through entire file. Pass REG_NOTBOL flag to regexec. 2015-03-09 Gavin Smith * info/info-utils.c (parse_top_node_line): Check for INFO_ALTPREV_LABEL, as was done before. 2015-03-07 Gavin Smith * info/man.c (get_manpage_node): Use return value of asprintf instead of calling strlen. * info/dir.c (dir_entry_of_infodir): Check for null filename. * info/info-utils.c (scan_reference_target): Allow skipping tabs before filename component of menu entry, and not after. 2015-03-06 Gavin Smith * info/man.c (get_manpage_node): Avoid using fixed-size buffer to construct string. Report from James Chang. 2015-03-04 Gavin Smith * info/info-utils.c (parse_top_node_line): Check for labels case-insensitively, as was done before. (scan_reference_target): Allow a tab to terminate a node name in a menu entry. * info/infopath.c (infopath_next): Handle case when the search path is empty. * info/session.c (info_select_reference): Default to "Top" in error message if node couldn't be loaded. * into/t/empty-infopath.sh: New test. 2015-03-03 Gavin Smith * info/t/Init-test.inc: Trap SIGINT. (cleanup): Kill the subshell that launched ginfo and delete FIFO file for communicating that subshell was finished. * info/t/Timeout-test.inc: Clear SUBSHELL shell variable. 2015-03-03 Gavin Smith * info/infodoc.c (info_get_info_help_node): If in a help window, close it before loading the tutorial. 2015-03-03 Gavin Smith * info/info-stnd.texi (infokey format): Example .infokey changed to include "ESC u" for clearing search highlight. Line setting scroll-step to its default value removed. Suggest keys Up and Down to scroll up and down. 2015-03-03 Gavin Smith * info/t/Init-inter.inc: Create a background process to hold a FIFO open for writing, instead of opening it read-write for pseudotty. Eliminate extra invocation of mknod. Remove extra shell variable with same value as another. * info/t/Init-test.inc (cleanup): Kill this background process. * info/pseudotty.c: Exit for end-of-file on either of the file descriptors being used. * info/t/index-apropos.sh, info/t/last-no-history.sh, info/t/next-quoted.sh, info/t/quoted-label-and-target.sh, info/t/quoted-label-as-target.sh, info/t/quoted-target.sh: Run ginfo with "run_ginfo" and source t/Timeout-test.inc. 2015-03-03 Gavin Smith * doc/texinfo.texi (Invoking texi2any): Change a cross-reference to explain customization variables. 2015-03-01 Gavin Smith * info/nodemenu.c (nodemenu_format_info): Add note for translators. * doc/texinfo.texi (Writing a Node): Fix minor typo. 2015-02-27 Gavin Smith * install-info/install-info.c (open_possibly_compressed_file): If file is compressed, close it before opening it again on stdin. (format_entry): Remove unused local variable. * install-info/Makefile.am (SUBDIRS): Put "." before tests to make sure that "make check" works without doing "make" first. 2015-02-27 Ken Brown * install-info/install-info.c (open_possibly_compressed_file): Use 'fopen' to read the few first bytes, and then, only if it is compressed, redirect stdin to it and call 'popen'. Suggestion from Eli Zaretskii. 2015-02-26 Patrice Dumas * tp/tests/t/stdout.sh, tp/tests/t/stdout_split.sh: use $PERL from defs to call texi2any.pl. Report from Eli Zaretskii. 2015-02-26 Gavin Smith * info/man.c (get_manpage_from_formatter): Accept output of "man" despite a failing exit status if it is long enough. 2015-02-26 Gavin Smith * info/session.c (display_startup_message): Startup message changed. Note added for translators. * po/Makevars (XGETTEXT_OPTIONS): Add -cTRANSLATORS flag. * po/POTFILES.in: Add info/infomap.c. 2015-02-25 Gavin Smith * configure.ac: Check for posix_openpt in AC_CHECK_FUNCS, and set automake conditional "have_ptys" depending on result. * info/Makefile.am (check_PROGRAMS): Build of "pseudotty" dependent upon "have_ptys". * info/t/Init-inter.inc: Skip test if pseudotty not built. 2015-02-25 Gavin Smith * info/man.c (get_manpage_from_formatter) [PIPE_USE_FORK, !PIPE_USE_FORK]: If exit status of "man" command is non-zero, throw away its output. Report from Eli Zaretskii. 2015-02-25 Eli Zaretskii * info/pcterm.c (w32_info_prep, w32_info_unprep, w32_cleanup) (gettextinfo, textattr, ScreenGetCursor, ScreenSetCursor) (ScreenClear, clreol, ScreenVisualBell, movetext, ScreenRows) (ScreenCols, _set_screen_lines, w32_set_screen_dimensions) (pc_put_text, pc_write_chars, pc_unprep_terminal) [_WIN32]: Do the minimum (mostly, nothing) when not connected to the terminal device. 2015-02-24 Gavin Smith * info/infomap.c (fetch_user_maps): Print an error message if couldn't open init file specified with --init-file. 2015-02-24 Eli Zaretskii * info/terminal.c [HAVE_NCURSES_TERMCAP_H && __MINGW32__]: Don't include ncurses/termcap.h on MinGW, even if it's available, to avoid a useless run-time dependency on the ncurses shared library. 2015-02-24 Gavin Smith * doc/texinfo.texi: Remove obsolete note about running 'texinfo-all-menus-update' in Emacs. 2015-02-22 Karl Berry * pretest 5.9.90. * configure.ac: version. * util/srclist.txt: sync po_document/Makefile.in.in. * configure.ac, etc.: finish gettext 0.19.4 update. 2015-02-22 Karl Berry * tp/maintain/template.pod: tweak text, add __HTML signal. * tp/maintain/regenerate_converters_documentation.sh: HTML-specific. * tp/Makefile.am (do-pm-doc): new target to call that script. * tp/Texinfo/Convert/*.pm: remake pod with that script/target. 2015-02-22 Karl Berry * info/Makefile.am (EXTRA_DIST): remove t/Cleanup.inc (gone). * README-hacking, * tp/README, * tp/tests/README, * tp/t/README: a few words about adding new tests. * tp/maintain/all_tests.sh, * tp/maintain/regenerate_cmd_tests.sh, * tp/maintain/prepare_perl_module_files.sh: copyright years. * tp/maintain/MANIFEST_generated_files, * tp/MANIFEST: regenerate. 2015-02-21 Eli Zaretskii * info/info-utils.c [__MINGW32__]: Undef wcwidth, to avoid its redirection from the MinGW-specific version in pcterm.c. * info/pcterm.c (wcwidth) [_WIN32] [!HAVE_WCWIDTH]: A replacement for wcwidth that works around the slow-down in the Gnulib version. 2015-02-21 Gavin Smith * info/session.c (info_move_to_prev_xref) (info_move_to_next_xref): Don't include skipped-over nodes in window history, and handle case of no xref being found. (cleanup_history): New function. * info/t/tab-no-xref.sh, info/t/tab-skip-node.sh: New tests. 2015-02-17 Karl Berry * tp/Texinfo/Parser.pm (_parse_texi): do syntactic checks on @U argument here. * tp/Texinfo/Convert/HTML.pm (_convert_U_command): change accordingly. * tp/Texinfo/Convert/Plaintext.pm (_convert): change accordingly; also check if the Unicode character is valid before outputting it. * tp/tests/coverage_macro.texi, * tp/t/02coverage.t, * tp/t/05paragraph.t, * tp/t/plaintext_tests.t: test it. (Re)generate results. * NEWS, * doc/refcard/txirefcard.tex, * doc/texinfo.texi (Inserting Unicode), (HTML Xref Command Expansion), (Command Summary): document it. * doc/refcard/txicmdcheck: report commands missing from the findex. * tp/tests/README: mention envvars for long_tests and tex_html_tests. * tp/t/README: (non-)copyright for tp/t, wording. 2015-02-13 Gavin Smith * INSTALL, README, README-alpha, TODO: 2015. * README, README-hacking: Remove mention of texindex.c, mention texindex subdirectory. 2015-02-13 Gavin Smith * tp/Texinfo/Parser.pm (Module documentation section): Show how to dump a parse tree with makeinfo. Add some section headings. Elaborate a bit on spaces_at_end and empty_spaces_before_argument. Elaborate on the contents of a paragraph element, and the use of 'misc_arg'. 2015-02-11 Gavin Smith , and Patrice Dumas * tp/Texinfo/Convert/Plaintext.pm (push_top_formatter): Add to 'document_context' stack. (_convert) : Increment 'in_multitable' on hash on top of document_context stack. : Decrement 'in_multitable'. <$ref_commands>: Check if in multitable context by checking top of 'document_context' stack, and if so suppress line breaks for output of cross-reference. (_footnotes): Pop 'document_context' along with the other context stacks. * tp/t/21multitable.t (ref_in_multitable): New test. 2015-02-11 Gavin Smith * tp/Texinfo/Convert/Plaintext.pm (_convert) : Pass a "\n" into the active formatter so it can register an end-of-line if it needs to. * tp/t/20preformatted.t (comments_in_example): Add a use of @c in an @example followed by an empty line. * tp/t/README: Elaborate on how tests are found, and how to run a single test by itself. 2015-02-10 Karl Berry * tp/t/test_utils.pl (%outfile_preamble) : update css. 2015-02-10 Gavin Smith * tp/Texinfo/Report.pm (Module documentation section): Minor tweaks to grammar. 2015-02-09 Karl Berry * doc/refcard/txicmdcheck: check @findex entries in texinfo.texi too. * doc/texinfo.texi: add some missing entries. * doc/texinfo.texi (Hardcopy): update whole chapter. (Formatting Partial Documents, Details of @t{texindex}): new nodes, mostly to mention the temporary need for \usebracesinindexestrue. 2015-02-08 Karl Berry * tp/Texinfo/Convert/HTML.pm (_convert_U_command): new fn for @U. $default_commands_conversion{'U'}: call it. * tp/Texinfo/Convert/Plaintext.pm (_convert): handle @U, writing binary if output is UTF-8, else just the ASCII string U+xxxx. * tp/Texinfo/Convert/Docbook.pm (_convert): handle @U. * tp/Texinfo/Common.pm (brace_commands) : add U. * tp/Texinfo/Parser.pm (simple_text_commands): add U. (debug_hash, debug_list): new fns. * util/texinfo.dtd (U): new ELEMENT. * tp/Texinfo/Convert/Converter.pm: move doc about output_internal_links being only for HTML to here. 2015-02-08 Karl Berry * tp/Texinfo/Convert/DocBook.pm: alphabetize, format, debugging; no functional changes intended. 2015-02-07 Gavin Smith * info/session.c (incremental_search): For searches uses regex, keep on searching for a match for a longer search string even if a shorter search string was not found. Report from Werner Lemberg. * info/session.c (window_set_state, window_get_state): Save point of window so we know where to position cursor when we go back to a failing search. Call display_update_one_window when going back to a failing search. 2015-02-06 Karl Berry * doc/texinfo.texi: let's mark the info quote proposal explicitly * texindex/Makefile.am (ti.info, ti.html): let's generate files by these names, since it is not a user manual, hence not intended to be installed in the Info directory. @setfilename remains texindex since the .awk is the principal output. * doc/texinfo.tex: make exact @findex entries for @w and @c. Suggestion from Gavin, 6 Feb 2015 16:38:26. 2015-02-06 Gavin Smith * texindex/Makeinfo.am: Change rule to build "ti.info" to build "texindex.info", which is the name set with @setfilename in ti.texi. 2015-02-06 Gavin Smith * doc/texinfo.texi (Info Format Specification): Remove mention of quoting for certain characters in node names. 2015-02-06 Gavin Smith * util/README: Remove mention of texindex. 2015-02-05 Karl Berry * doc/texinfo.tex (\commondummies): add forgotten \mathopsup, \sub, \sup. * doc/texinfo.tex (\nonasciistringdefs): new macros, to define every char from ^^a0 to ^^ff as (the typesettable version of) itself. (@normalturnoffactive): call that; else eight-bit chars (that don't correspond to known Texinfo commands) in node names get an error. Report from Walter Garcia-Fontes, 5 Feb 2015 10:36:39. 2015-02-03 Karl Berry * tp/Texinfo/Convert/HTML.pm (output): foolishly omitted closing " on $bodytext. Regenerate test results. * doc/Makefile.am (gendocs_invoke): pass TOP_NODE_UP_URL=/manual/. (gnulib, etc.): new variable and settings to invoke gendocs.sh from gnulib, as it is no longer maintained here. * doc/texinfo.texi: fix broken cross-manual links, etc. * util/htmlxref.cnf: add free TeX manuals on tug.org. * Makefile.am (long-checks), * tp/Makefile.am (long-checks): convenience target for tp/tests. 2015-02-02 Karl Berry * doc/texinfo.texi (First Node): mention TOP_NODE_UP_URL usage. (HTML Customization Variables) : say more. (Other Customization Variables) : ref TOP_NODE_UP_URL. * tp/Texinfo/Convert/HTML.pm (_external_node_href): replace all (dir) links with TOP_NODE_UP_URL, not just the (dir) link implicitly created as Top's Up. * tp/tests/README: tersely describe creating a new test, best I can. * tp/tests/run_parser_all.sh: more logging, use test -n/-z more. * tp/tests/sectioning/tests-parser.txt: new tests, top_node_up_implicit and top_node_up_explicit. * tp/tests/sectioning/top_node_up_{im,ex}plicit.texi: new files. * tp/tests/sectioning/res_parser{,_html}/top_node_up_{im,ex}plicit: new result directories. 2015-01-31 Karl Berry * doc/texinfo.tex (\documentencoding): do not re-invoke \utfeightchardefs. 2015-01-30 Karl Berry * doc/texinfo.tex (\utfeightchardefs): define all the easy characters from 0080..024F (Latin-1_Supplement, Latin_Extended_A, Latin_Extended-B). Revise/correct some definitions. Plenty more could be done. Also, call \utfeightchardefs at the top level so @U can do something useful when @documentencoding is not UTF-8. * doc/txi-ca.tex: use \dotless{i} instead of \char16. 2015-01-30 Gavin Smith * tp/Texinfo/Parser.pm (Module documentation section): Grammar tweaks. 2015-01-30 Gavin Smith * tp/Texinfo/Convert/XSParagraph: Add directory (experimental replacement for tp/Texinfo/Convert/Paragraph.pm). * tp/Texinfo/Convert/XSParagraph/README, tp/Texinfo/Convert/XSParagraph/XSParagraph.xs, tp/Texinfo/Convert/XSParagraph/mylib/xspara.c, tp/Texinfo/Convert/XSParagraph/mylib/xspara.h, tp/Texinfo/Convert/XSParagraph/mylib/text.c, tp/Texinfo/Convert/XSParagraph/mylib/text.h, tp/Texinfo/Convert/XSParagraph/lib/XSParagraph.pm, tp/Texinfo/Convert/XSParagraph/t/XSParagraph.t: Files added. 2015-01-30 Gavin Smith * info/t/Cleanup.inc: File removed. * info/t/Init-test.inc (cleanup) Add contents of Cleanup.inc as a function. * info/t: All *.sh files: use cleanup function instead of sourcing Cleanup.inc. * info/t/Timeout-test.inc: If exit status of 'read' builtin could indicate that '-t' option is not supported, skip the test. Test failures reported by Nathan Royce. 2015-01-29 Vitezslav Crhonek (tiny change) * info/info.c (main): Call info_error with "%s" just in case the error string contained a formatting sequence. (Report via Savannah.) 2015-01-28 Karl Berry * tp/Convert/HTML.pm (output): make bodytext default set only the lang attribute, no colors (left over from texi2html, perhaps). * tp/tests: update almost all test results. texinfo-devel, 25 Jan 2015 22:31:24. 2015-01-28 Karl Berry * tp/tests/README: tweak documentation for updating test results. * tp/tests/{formatting,htmlxref*,many_input_files}: update most test results for trivial reformatting of initial css. * tp/tests/parser_tests.sh, * tp/tests/run_parser_all.sh: copyright/doc updates. 2015-01-28 Gavin Smith * man/Makefile.am (man_rule_0): Add case for texindex. 2015-01-26 Walter Garcia-Fontes * doc/txi-ca.tex: Add Catalan translation. 2015-01-25 Karl Berry * tp/Texinfo/Convert/HTML.pm (css_map): consistently use spaces before values. 2015-01-23 Gavin Smith * tp/Texinfo/Parser.pm (documentation for multitable): Change 'cell_count' to 'cell_number'. 2015-01-22 Karl Berry * info/t/resize-in-completions.sh: reword msg to avoid backslashed ', just in case. 2015-01-19 Gavin Smith * tp/Texinfo/Parser.pm (Module documentation section): Tweak descriptions of what 'node_manuals' entries and 'menu_entry_node' are. Add section mentioning 'nodes' and 'menus' arrays. 2015-01-18 Karl Berry * info/t/Init-inter.inc: if mknod doesn't exist, or mknod ... p fails, exit 77. 2015-01-15 Gavin Smith * info/t/Init-inter.inc: (findprog) Add function from util/texi2dvi. (run_ginfo) Call findprog to check for pgrep. If not found, wait a short while for controlled process to start. * info/t/resize-in-completions.sh: Print an informative message to standard error if test is skipped. 2015-01-15 Karl Berry * Makefile.am (po-check): include ti.twjr, exclude parsetexi, etc. * po/POTFILES.in: update. * util/texindex.c: remove. 2015-01-14 Gavin Smith * info/t/Init-inter.inc (run_ginfo): When setting GINFO_PID, include more commands in subshell. This means the tests at least pass when run in-source. * info/t/Init-inter.inc, info/t/Init-test.inc, info/t/Timeout-test.inc, info/t/Cleanup.inc: Create temporary files in $builddir. * info/Makefile.am: Distribute info/t/node-target. * info/t/infodir/file-menu.info: Specify a target file as a simple filename, instead of a compound path, to allow t/file-file-with-dot.sh test to pass out-of-source. 2015-01-14 Karl Berry * info/t/Cleanup.inc, * info/t/Init-inter.inc, * info/t/Init-test.inc, * info/t/Timeout-test.inc: portability (export =, test -v, ! test, ...), usability with separate builddir != srcdir, usual style. * texindex/Makefile.am, * info/Makefile.am, * install-info/tests/Makefile.am (EXTRA_DIST): new files needed, found by make distcheck. * tp/MANIFEST: regenerate. 2015-01-14 Arnold D. Robbins * texindex/jrtangle: Fixes to allow non-use of default update recipe. * texindex/ti.twjr: Clear the update recipe, don't use a suffix. Should let things build in MinGW environment. Thanks to Eli Z for pointing out the issue. 2015-01-11 Karl Berry * man/Makefile.am (texindex.1): source file is now texindex/ti.twjr. * README: mention gawk >= 4.0 if modifying ti.twjr. 2015-01-11 Gavin Smith * doc/texinfo.texi (@url PDF Output Format, PDF Colors) (Escaping to HTML): Change some "."'s to "@."'s. 2015-01-10 Karl Berry * doc/texinfo.texi (Ending a Sentence): attempt to clarify the interaction of closing punctuation and sentence endings. 2015-01-10 Gavin Smith * doc/texinfo.texi (Invoking texi2any) <--split>: Change a "." to a "@.". 2015-01-07 Karl Berry * texindex/Makefile.am (ti.pdf, ti.html): new targets, for the literate program. (Only invoked by hand.) * tp/texi2any.pl: hardwire program name in --version, derive name from $0 in --help, to match behavior of coding standards and coreutils, etc. 2015-01-05 Karl Berry * configure.ac (AC_CONFIG_FILES): add texindex/Makefile. * Makefile.am (SUBDIRS): add texindex. (po-check): also look at *.twjr. * util/Makefile.am (bin_PROGRAMS): remove, we'll no longer build the C texindex. * texindex/ti.twjr: --help formatting. 2015-01-03 Gavin Smith * info/session.c (point_forward_char, point_backward_char): Correctly traverse multi-column characters. (Bug was likely introduced on 2014-10-09 with change to window_point_to_column.) 2015-01-03 Gavin Smith * info/window.c (process_node_text, calculate_line_starts): process_node_text inlined in calculate_line_starts. (calculate_line_starts): Simplify. (collect_line_starts): Unused arguments removed. Return value is void. 2015-01-02 Gavin Smith * doc/texinfo.texi (Info Format Indirect Table): Value in indirect table is for first node in file, not start of file itself. 2015-01-01 Karl Berry * doc/texinfo.texi (Output Formats, Generating HTML): be rather forceful in our overall goal for the HTML output (namely, be widely usable rather than fancy). * info/info-utils.c, * info/nodes.c, * info/nodes.h: 2015. * Pod-Simple-Texinfo/pod2texi.pl, * doc/refcard/txirefcard.tex, * doc/texinfo.texi, * info/info.c, * install-info/install-info.c, * texindex/ti.twjr, * tp/maintain/regenerate_cmd_tests.sh, * tp/maintain/regenerate_docstr.sh, * tp/maintain/regenerate_file_lists.pl, * tp/maintain/template.pod, * tp/texi2any.pl, * util/texi-elements-by-size, * util/texi2dvi, * util/texindex.c: 2015. 2015-01-01 Gavin Smith * info/nodes.h (TAG): Add 'nodestart_adjusted' field and remove 'orig_nodestart'. (NODE): Remove 'nodestart' field. * info/nodes.c (info_create_tag): Update. * info/nodes.c (adjust_nodestart): Set offset of found node in 'nodestart_adjusted' field of NODE. (set_tag_nodelen, info_node_of_tag): Use 'nodestart_adjusted' for actual start of a node. * info/info-utils.c (copy_input_to_output): Set adjusted anchors in 'nodestart_adjusted'. (scan_node_contents): Get 'nodestart' for node from TAG object instead of from NODE. * info/nodes.c (find_node_of_tag): Arguments changed. If node not found, call convert_eols to convert file buffer in place, reset the tag table, look for the node again, and reload any nodes in the history of a window. * info/nodes.c (convert_eols): Set 'filesize' on destination FILE_BUFFER. 2014-12-30 Gavin Smith * info/nodes.h (TAG): Struct type reintroduced (removed on 2014-04-16). Use to represent an entry in a file's tag table. All uses updated. * info/info-utils.c (scan_node_contents): Prototype changed. All callers updated. * info/nodes.c (info_create_tag): New function. (info_node_of_tag): Set body_start on returned NODE. * info/man.c (manpage_file_buffer, manpage_nodes): Keep list of manpage nodes in a list of pointers. (create_manpage_file_buffer): Removed. 2014-12-29 Patrice Dumas * tp/texi2any.pl: force conversion of stringyfied object passed by Getopt::Long to a true string. * tp/Texinfo/Parser.pm (parser): use Storable::dclone instead of evaluating Data::Dumper->Dump result to make a deep copy. * tp/Texinfo/Parser.pm (simple_parser), tp/Texinfo/Report.pm (gdt): new parser initialisation function, simple_parser, fit for strings of Texinfo, not whole documents, targetting speed. Use it in gdt() to try to speed up this function. 2014-12-29 Gavin Smith * info/filesys.c, info/nodes.c (convert_eols): Function moved between files. Arguments changed. * info/nodes.c (adjust_nodestart): Take extra argument giving the slack to search for a node. (find_node_from_tag): New function, wrapping adjust_nodestart. Call convert_eols on file if we don't find a node. (info_node_of_tag): Call find_node_from_tag instead of adjust_nodestart. Rearrange logic in function so not to call itself when handling an anchor. * info/nodes.h (N_EOLs_Converted): New flag. 2014-12-27 Gavin Smith * info/nodes.h (TAGS_TABLE_BEG_LABEL): Define without trailing '\n'. (INDIRECT_TAGS_TABLE_LABEL, INDIRECT_TABLE_LABEL): Rename and remove trailing '\n'. (TAGS_TABLE_END_LABEL): Define without leading '\n'. * info/search.c (find_node_separator): Search backwards if beginning of search is after end of search. (find_tags_table, find_file_section): Function renamed. Take extra argument giving first line of section to look for. Search backwards if beginning of search is after the end of search. * info/search.c (looking_at_line): New function. * info/nodes.c (build_tags_and_nodes): Call find_file_section to find end and start of tags table. (get_nodes_of_tags_table): Assume we are passed the exact offset of the separator preceding the tag table. * info/info.h (whitespace_or_newline): Include '\r'. * info/nodes.c (get_file_character_encoding): Stop reading name of character encoding at an '\r' if one is seen. * info/info-utils.c (avoid_see_see): Include '\r' as a whitespace character. All problems with reading files with CR-LF line endings reported by Eli Zaretskii. 2014-12-26 Eli Zaretskii * info/info-utils.c (nl_langinfo) [__MINGW32__]: Redirect to rpl_nl_langinfo, defined on pcterm.c. (degrade_utf8): Add replacements for 'point', 'print', and 'expansion' symbols used by Texinfo. * info/pcterm.c (WIN32_LEAN_AND_MEAN): Define. : New static variables. (w32_info_prep): Disable the wrap-at-eol on console output. (w32_cleanup): Restore the original position of the cursor. (write_utf): New function, writes UTF-8 and UTF-7 text to console. (pc_put_text, pc_write_chars) [__MINGW32__]: Call it when the output console codepage is UTF-8 or UTF-7. (rpl_nl_langinfo): New function, returns the Windows console's output codepage and requests transliteration from libiconv. 2014-12-26 Jason Hood (tiny change) * info/pcterm.c (ScreenVisualBell): Fix setting visual attribute on the mode line. 2014-12-26 Eli Zaretskii * info/info-utils.c (fncmp) [__MSDOS__ || __MINGW32__]: Now external. Move the #define for Posix hosts ... * info/info-utils.h (fncmp): ...to here. Declare a prototype for __MSDOS__ and __MINGW32__. * info/infopath.c (infopath_add_dir): If the inode values are zero, use file-name comparison as fallback. 2014-12-25 Gavin Smith * info/search.c (find_node_separator, skip_node_separator): Allow optional '\r' before '\n' after Ctrl-_ node separator. * info/info-utils.c (parse_top_node_line), * info/nodes.c (get_nodes_of_info_file), * info/search.c (find_node_in_binding): Include '\r' in list of terminating characters. 2013-12-25 Eli Zaretskii * info/man.c (get_manpage_from_formatter) : Check for end of array without using removed variable. 2013-12-25 Eli Zaretskii * info/pcterm.c (gettextinfo): Pass expected arguments to info_error. 2013-12-25 Eli Zaretskii * info/terminal.c (terminal_initialize_terminal) : Call initialize_byte_map. 2014-12-25 Gavin Smith * info/display.c (display_update_window_1): Don't display a line continuation character on the last line of the display. Check was formerly done in process_node_text. Report from Eli Zaretskii. 2014-12-19 Gavin Smith * tp/Texinfo/Convert/HTML.pm: Set CSS styles for @indentedblock, @smallindentedblock with "blockquote" instead of "div". (%indented_block_commmands, %indented_preformatted_commands): Renamed. (_convert_preformatted_or_indented_commands) (_convert_preformatted_command): Renamed. Don't use this function for @indentedblock and @smallindentedblock. (_convert_indented_command): New function. Use "blockquote" tag to indent @indentedblock and @smallindentedblock. 2014-12-18 Karl Berry * doc/refcard/Makefile (spell): new target. * doc/refcard/refcard.spell: aspell exception list. 2014-12-18 Karl Berry * run gnulib-tool --add-import, as strcasecmp.c became needed. 2014-12-17 Karl Berry * util/Makefile.am (EXTRA_DIST): remove gendocs.sh, gendocs_template; now maintained in gnulib (and not by me). 2014-12-16 Gavin Smith * info/indices.c (info_indices_of_file_buffer): Case insensitive search for nodes with "index" in their names. * info/session.c (info_menu_ref_item): If multiple references in a line pick the right one. * doc/texinfo.texi (@raggedright): Fix typo. 2014-12-14 Karl Berry * doc/texinfo.texi (Info Format *): small rewordings. * doc/texinfo.texi (Macro Details): the linemac example became wrong at some point; just have to be vague, it seems. Report from Gavin. 2014-12-13 Gavin Smith * doc/texinfo.texi (Info Format Regular Nodes) (Info Format Cross Reference): Update format specification following feedback from Patrice Dumas 2014-11-22. 2014-12-03 Karl Berry * doc/texinfo.tex: oops, \relax not \thisisundefined for \ifx\csname. * texinfo.tex (\U): new command @U. (\DeclareUnicodeCharacter): define a cs for @U to use. (\globalllet): helper macros. 2014-12-03 Gavin Smith * info/session.c (show_error_node): Call window_message_in_echo_area to display message so that echo_area_node will be set for free_echo_area. * info/dir.c (dir_entry_of_infodir): Free dir node if no entry found. * info/footnotes.c (make_footnotes_node): Supply a terminating null instead of relying on there being one in the source node. 2014-12-02 Karl Berry * doc/texinfo.tex (\sub, \sup, \mathopsup): new commands @sub and @sup. (\ptexsp, \ptexsup): save and restore in \tex. (\finishsub, \finishsup): helper macros. * NEWS, * doc/refcard/txirefcard.tex, * doc/texinfo.texi (Inserting Subscripts and Superscripts), (HTML Xref Command Expansion), (Command Summary): document them. (Inserting Math): \mathopsup exception for plain TeX's \sup. * doc/txirefcard.tex: alphabetize some of the command lists, when other orderings aren't preferable. 2014-11-27 Karl Berry * doc/texinfo.texi (Comments): must not be followed by -. Patrice, texinfo-devel 22 Nov 2014 15:18:07. * doc/texinfo.texi (@noindent, @indent): more explicitly describe recommendations and current behavior. 2014-11-22 Patrice Dumas * Texinfo/Common.pm (%style_commands), Texinfo/Convert/DocBook.pm (%style_attribute_commands), Texinfo/Convert/HTML.pm (%style_attribute_commands), Texinfo/Convert/Plaintext.pm (%style_map), util/texinfo.dtd: add @sub and @sup. Report and formatting proposal from Per Bothner. 2014-11-21 Gavin Smith * info/session.c (read_key_sequence): Set info_explicit_arg or ea_explicit_arg if argument was given with sequence of C-u's. * info/t/c-u-m-x-scroll-forward.sh: New test. 2014-11-21 Gavin Smith * doc/texinfo.texi (Top Node Naming): Fix typo. 2014-11-21 Gavin Smith * tp/Texinfo/Convert/HTML.pm: Set $default_commands_conversion{'raggedright'} to reference to _convert_command_noop so that contents of @raggedright block appear. Report from Mahlon Smith. 2014-11-19 Gavin Smith * info/info-utils.c (degrade_utf8): Add some more ASCII replacements. 2014-11-19 Gavin Smith * info/session.c (incremental_search) : Remove a complete multi-byte character. 2014-11-19 Gavin Smith * info/info.c (get_initial_file) : Check if file referred to exists. * info/t/dir-dangling-entry.sh: New test. 2014-11-18 Gavin Smith * info/session.c (incremental_search): Add at most one node to the window history. (info_search_internal): Call free_history_node on nodes where no match was found. (info_search_in_node_internal): Remove unnecessary conditional checks. * info/t/inc-sea-history.sh: New test. 2014-11-17 Gavin Smith * info/dir.c (dir_entry_of_infodir): Don't free a node too early. 2014-11-17 Gavin Smith * info/session.c (incremental_search): Look up pressed keys in info_keymap and echo_area_keymap. Do not hard-code any keys for particular commands. 2014-11-16 Gavin Smith * info/session.c (ask_for_search_string): Return 1 for empty input, and 0 only when it was aborted. (info_search_case_sensitively, info_search) (info_search_backward): Set last_search_direction and last_search_case sensitive in info_search_1. Call ask_for_search_string in info_search_1. Perform search if default search string was accepted. 2014-11-15 Gavin Smith * tp/Texinfo/Convert/Plaintext.pm (_convert) <@quotation with @author>: Check if @smallquotation was used as well. Report from Mahlon Smith. 2014-11-14 Karl Berry * doc/texinfo.tex (\footnote): do not set \indent and \noindent to their \ptex... versions; these become global settings, and seem unnecessary since the only time we redefine \indent and \noindent is with @firstparagraphindent for section headings, and footnotes cannot work in headings anyway. What am I missing? Could not construct an example where it mattered. (\errfootnoteheading): new macro, for \chapmacro and \sectionheading. (\errfootnotenest): rename from \errfootnote. * doc/texinfo.texi (Footnotes): mention that they cannot be nested and cannot appear in section headings. 2014-11-14 Gavin Smith * info/infomap.h (KEYMAP_ENTRY) : Replace with a union to avoid casts on accessing it as a Keymap. All uses updated. 2014-11-13 Gavin Smith * info/echo-area.c (ea_delete, ea_transpose_chars): Handle multi-byte characters. (ea_swap_chars, ea_remove_text): New static functions. (read_and_dispatch_in_echo_area) (echo_area_prep_read): Line invalidating echo area line map moved between functions. 2014-11-12 Gavin Smith * info/t/window-split-dir.sh: New test. * info/t/star-note-non-whitespace.sh: New test. 2014-11-11 Karl Berry * util/texi2dvi: minimize function header comments, reorder, other comment cleanups. No functional changes intended. 2014-11-10 Karl Berry * util/texi2dvi: do not call findprog on a user-defined $TEX. Report from Per Mildner, 10 Nov 2014 12:26:08. 2014-11-10 Jason Hood (tiny change) * install-info/install-info.c (reformat_new_entries): respect --maxwidth if given. 2014-11-09 Gavin Smith * info/session.c (find_invocation_node_by_nodename): New function. (info_intuit_options_node): If passed Top node, call it to get a new node to start at. Return value to be freed by caller. All callers updated. * info/info.c (main, add_initial_nodes) (invocation_program_name): For --show-options, save last non-option argument to use as the name of the program. 2014-11-08 Gavin Smith * info/session.c (menu_digit): Unused argument removed. (read_key_sequence) : Exit function as intended. 2014-11-07 Gavin Smith * info/echo-area.c (ea_forward, ea_backward): Go forward and backward over multi-byte characters correctly. * info/filesys.c (convert_eols): Disable with preprocessor to avoid warning about unused function. * info/pseudotty.c: Avoid compiler warnings about set but unused variable and include to get prototype of 'error'. * info/infodoc.c (HELP_NODE_GETS_REGENERATED) (internal_info_help_node_contents): Removed. * info/session.c (read_key_sequence): Rewrite for clarity. 2014-11-07 Gavin Smith * info/session.c (info_dispatch_on_key, read_key_sequence): Renamed. Call initialize_keyseq. Read initial key of key sequence. Merge in functionality of info_numeric_arg_digit_loop - read in keys giving a numeric argument at start of key sequence. Call function implementing some commands depending on arguments. Allow 8-bit input in echo area if 'ISO-Latin' is 'On'. (display_info_keyseq): Check for empty keyseq. * info/terminal.c (initialize_byte_map): 8th bit in an inputted byte only represents Meta if 'ISO-Latin' is off. * info/echo-area.c (ea_insert): Don't declare with DECLARE_INFO_COMMAND. * info/infomap.c (add_function_keyseq), * info/infodoc.c (dump_map_to_text_buffer): Don't check for ea_insert key bindings. * info/infomap.c (read_init_file): Don't bind printable characters to ea_insert. * info/session.c (info_menu_digit): Function body is empty. (menu_digit): New function. * info/echo-area.c (ea_possible_completions, ea_complete): Don't check what key launched this command. Don't insert the key if not completing. (echo_area_completion_items): No longer static. * info/session.c (info_numeric_arg, info_numeric_arg_sign) (ea_numeric_arg, ea_numeric_arg_sign): Deleted. (info_initialize_numeric_arg): Don't set info_numeric_arg or other deleted variables. (info_add_digit_to_numeric_arg, info_universal_argument): Bodies of functions removed - declare with DECLARE_INFO_COMMAND only. * info/session.c (mouse_reporting_on, mouse_reporting_off) (mouse_reporting): Deleted. (get_input_key): If mouse event detected always return KEY_MOUSE. * info/infodoc.c (pretty_keyname): More descriptive text for KEY_MOUSE or unknown key in case they are output by mistake. * info/session.c (info_read_and_dispatch), * info/echo-area.c (read_and_dispatch_in_echo_area): Calls to info_dispatch_on_key updated. Don't call initialize_keyseq or read first key of key sequence. Pass count to command-implementing function. Clear ea_last_executed_command if info_dispatch_on_key could have executed a command itself. * info/info.h (DECLARE_INFO_COMMAND), * info/makedoc.c (process_one_file): Remove 'key' argument from declarations of command-implementing functions. All function declarations and calls updated. * info/session.c (info_menu_or_ref_item): Unused argument removed. * info/session.c (info_read_and_dispatch): Don't check for ESC input. * info/infomap.c (section_to_keymaps): Copy key bindings M- to ESC . (default_emacs_like_info_keys) (default_vi_like_info_keys): Refer to key sequences ESC with a sequence beginning with ESC instead of using KEYMAP_META. 2014-11-06 Karl Berry * info/pseudotty.c: localize variables, main signature, formatting. 2014-11-06 Karl Berry * install-info/tests/Makefile.am (TESTS, EXTRA_DIST): new tests 55, 56 for --defsection; plus the new files. Turns out --defentry was a no-op, so omit it from help string but leave code in case someone wants it. * NEWS: mention new option. 2014-11-06 Pietro Cerutti * install-info/install-info.c: new options --defentry and --defsection (written for BSD). Retrieved from http://svnweb.freebsd.org/ports/head/print/texinfo/files/patch-install-info_install-info.c 2014-11-04 Karl Berry * doc/texinfo.texi: no leading @ characters in command index. 2014-11-03 Gavin Smith * info/man.c (get_manpage_node): Make returned node safely free-able with free_history_node. (xrefs_of_manpage): Initialize line_number fields of REFERENCE objects. 2014-11-02 Patrice Dumas * tp/Texinfo/Convert/Plaintext.pm (_convert), tp/Texinfo/Convert/Text.pm (heading): add an indent length argument to heading() and use it to indent the underlying symbols. Report from Mahlon Smith. 2014-11-02 Gavin Smith * info/indices.c (info_index_apropos): Include line numbers in apropos node. 2014-10-31 Gavin Smith * info/info-utils.c (scan_node_contents): Return a new NODE object if node was from a file, and don't set reference list of passed-in node. * info/nodes.c (info_node_of_tag): Always call scan_node_contents. Node data like the contents pointer or reference list is not saved in the tag table any more. (set_tag_nodelen): Passed in tag points to start of node separator instead of just after it. * info/nodes.h (N_Unstored): Symbol deleted. * info/footnotes.c (make_footnotes_node), * info/indices.c (info_index_apropos, info_virtual_index) * info/nodemenu.c (list_visited_nodes), * info/echo-area.c (ea_possible_completions): Mark generated nodes with N_WasRewritten instead of N_Unstored. * info/nodes.h (NODE): Remove out-of-date comment. * info/info-utils.c (free_history_node): No longer static. Check if argument is null. Free node contents if N_WasRewritten flag is set. Free 'next', 'prev' and 'up' fields. * info/dir.c (dir_entry_of_infodir), * info/session.c (dump_node_to_stream, info_intuit_options_node) (info_search_internal), * info/info.c (add_initial_nodes, info_follow_menus), * info/indices.c (info_indices_of_file_buffer), * info/footnotes.c (make_footnotes_node): Call free_history_node on nodes instead of calling 'free'. * info/dir.c (build_dir_node): Call to scan_node_contents updated. (get_dir_node): Copy some fields from saved dir node. (lookup_dir_entry): Don't call get_dir_node. * info/session.c (free_node_contents): Function deleted. * info/session.c (add_gcable_pointer, gcable_pointers) (gcable_pointers_index, gcable_pointers_slots): Removed. All calls to add_gcable_pointer removed. (gc_file_buffers_and_nodes): Don't process gcable_pointers. * info/session.c (info_split_window): Copy some fields of node object so they can be passed to free_history_node. * info/nodes.h (N_FromAnchor): Removed. * info/info-utils.c (info_node_of_tag) : Don't set N_FromAnchor flag. * info/info.c (info_find_matching_files): Free return value of info_file_find_next_in_path. (add_initial_nodes) <--node>: Don't duplicate a string which is lost. * info/footnotes.c (make_footnotes_node): Copy terminating null byte into contents of footnote node. * info/session.c (ask_for_search_string): Free returned string even if it is of length 0. 2014-10-29 Gavin Smith * info/session.c (SEARCH_STATE, push_isearch, pop_isearch) (pop_isearch_prompt, incremental_search): Represent result of search with an enum search_result instead of an int. (incremental_search): Don't say an empty search string is failing. * info/search.c (regexp_search): Don't allocate a match list if there aren't any matches. * info/session.c (info_search_internal): Always free return value of info_get_node if it is not saved in the window. * info/session.c (gc_file_buffers_and_nodes): Temporarily disable freeing subfiles. 2014-10-29 Karl Berry * doc/texinfo.tex (\chapmacro): \checkenv, since chapters should presumably not appear inside environments. (\sectionheading): allow @heading-series commands, but not others, to appear inside environments. Report from Mahlon Smith, 25 Aug 2014 09:42:16; original change made following https://savannah.gnu.org/bugs/?15514. * doc/texinfo.texi (@t{@@unnumberedsec @@appendixsec @@heading}) <@@heading>: @heading-series cannot appear literally "anywhere", though they can appear inside most environments, unlike the normal sectioning commands. 2014-10-29 Gavin Smith * info/session.c (gc_file_buffers_and_nodes): Keep on checking for referenced file buffers after one is found for a node. Report from Werner Lemberg. * info/t/gc-split.sh: New test. 2014-10-29 Gavin Smith * info/session.c (info_dispatch_on_key): Don't display a completed key sequence when in the echo area. 2014-10-28 Patrice Dumas * Texinfo/Convert/DocBook.pm: also upper-case accented commands when in the 'upper_case' context. 2014-10-27 Patrice Dumas * Texinfo/Convert/DocBook.pm (upper_case_style_commands): use a context of 'upper_case' to track situation where upper casing of text should be done instead of upper-casing already converted output. 2014-10-26 Gavin Smith * info/info-utils.c (scan_reference_marker) Return value says whether syntax was valid. : Demand that cross-reference marker is followed by whitespace. (scan_node_contents): Call to scan_reference_marker updated. * info/nodes.h (INFO_MENU_REGEXP, INFO_MENU_ENTRY_REGEXP) (INFO_XREF_REGEXP, INFO_TAG_REGEXP): Removed. 2014-10-26 Karl Berry * Texinfo/Convert/DocBook.pm (upper_case_style_commands), (_convert): uppercase @sc argument. Suggestion from Arnold Robbins, 11 Sep 2014 19:48:14. * TODO, * tests/layout/res_parser/formatting_docbook/formatting.xml: update accordingly. * Texinfo/Convert/HTML.pm: doc tweak. * tp/maintain/template.pod, * tp/maintain/regenerate_cmd_tests.sh, * tp/maintain/regenerate_docstr.sh, * tp/maintain/regenerate_file_lists.sh, * tp/tests/Makefile.am: belated copyright year update. 2014-10-24 Gavin Smith * info/filesys.c (filesys_read_info_file): Disable call to convert_eols. * info/info-utils.c (printed_representation): Make '\r' bytes followed by a '\n' invisible. * info/Makefile.am: t/cr-tag-table.sh removed from XFAIL_TESTS. * info/info-utils.c (forward_to_info_syntax): Check for syntax case-insensitively. * info/indices.c (info_virtual_index): Pass arguments to text_buffer_printf as intended. 2014-10-22 Gavin Smith * info/info-utils.c (forward_to_info_syntax): New function. (scan_node_contents): Call it instead of using regexp_search. This produces a speed improvement, noticable when using M-x index-apropos or opening a long index node. * info/indices.c (info_indices_of_file_buffer): Call strstr instead of string_in_line. * info/filesys.c (convert_eols): Don't convert nulls in Info tags into spaces any more. * info/indices.c (info_index_apropos, info_virtual_index), * info/session.c (allfiles_create_node): Add index tag with nulls instead of spaces. * info/info-utils.c (forward_to_info_syntax, scan_info_tag): Look for tags starting with nulls instead of spaces. This is slightly faster because nodes generally contain many space characters. (skip_tag_contents): New function. (scan_info_tag): Call it. * info/tag.c (tag_expand): Look for tag starting with a null instead of a space. Skip past the tag even if no handler for it was found (for example, an index tag). * info/info-utils.c (printed_representation): Don't check for an Info tag, as they should have been removed already. * info/window.c (info_tag): Function removed. * info/indices.c (info_indices_of_file_buffer): Look for nodes with "index" in the name as well as "Index". * info/info-utils.c (forward_to_info_syntax): Don't search for "\n* Menu:" label separately, as this is comprised under searching for "\n* ". (scan_node_contents): Conditional reordered. 2014-10-21 Karl Berry * tp/texi2any.pl (makeinfo_help), * doc/texinfo.texi (@t{texi2any} Printed Output): mention that texi2any parse the input purely for error-checking purposes before handing off to texi2dvi. Suggestion from Ken Brown18 Oct 2014 13:58:38. 2014-10-19 Patrice Dumas * tp/Texinfo/Parser.pm (_parse_def): on @def* lines, consider @-commands and text not separated by space to be a single word. From Werner LEMBERG (http://savannah.gnu.org/bugs/?43406). 2014-10-16 Patrice Dumas * tp/Texinfo/Convert/Plaintext.pm (_convert): with @w and @tie, do not set set_space_protection ignore_column argument, such that the whole block goes to the next line. Report from Werner LEMBERG (http://savannah.gnu.org/bugs/?43407) and Mahlon Smith. 2014-10-15 Gavin Smith * info/t/empty.sh: New test. 2014-10-15 Gavin Smith * info/info.c (add_initial_nodes): FILE_BUFFER argument removed. <--usage>: Display an error meesage if there is no node to give a file to look for an invocation node. (initial_fb): Variable removed. * info/info.c (info_short_help), * doc/info-stnd.texi (Invoking Info): Document "info '(file)node'" invocation. * doc/info-stnd.texi (Invoking Info): Refer to "search path" instead of "INFOPATH". (Node Commands): Add "vi-like operation" for a binding. 2014-10-14 Gavin Smith * info/info.c (get_initial_file) , (main) <--file>, <'(file)node' as first argument>: Add a node to ref_list from the file we found. (add_initial_nodes): Don't fall back to a "Top" node as it should already be in ref_list. If any "--node" argument given, discard the first element of ref_list. * info/info-utils.c (info_new_reference): Duplicate arguments into new storage. All callers updated. 2014-10-13 Gavin Smith * info/info.c (main) <--all not used>: Check if the first non-option argument is of the form "(file)node", and if so add it to the list of nodes to start with. (add_initial_nodes) : Duplicate filename string. Allow nodename to be empty. : Use a node from our list of initial nodes to start at if initial_file is null. * info/t/spec-file-node.sh, info/t/spec-no-node.sh, info/t/spec-menu.sh: New tests. * info/info.c (get_initial_file): Don't take a user-specified filename as an argument. <--file>: Moved to main. 2014-10-09 Karl Berry * doc/texinfo.texi (Node Line Requirements, Writing a Menu): menu entries need exact spacing for the sake of Emacs Info. 2014-10-09 Gavin Smith * info/indices.c (info_index_search): Call info_indices_of_file_buffer before prompting user. Display an error message if no index is found. (info_virtual_index): Match error message to that used elsewhere. * info/t/no-index.sh, info/t/index-completing.sh: New tests. * info/echo-area.c (info_read_and_dispatch_in_echo_area): Recalculate line map after each user command. (input_line, input_line_prompt): Comments added. [FD_SET && hpux, FD_SET && !hpux] (fd_set_cast): Remove unused macro. * info/window.c (window_point_to_column): Return left-most column for multi-column characters. 2014-10-08 Gavin Smith * info/indices.c (info_index_search): Don't duplicate a string just to free the original. (look_in_indices): Save search string in 'index_search'. (info_index_apropos, info_virtual_index): Prompt with and default to the last search string. 2014-10-08 Gavin Smith * info/t/cr-tag-table.sh: New test. 2014-10-06 Gavin Smith * info/man.c: Don't include sys/ioctl.h. * info/infomap.c (fetch_user_maps): Don't print an error message if ".infokey" wasn't found. Report from Karl Berry. * info/info.c (main) <--all>: If only one match, don't display a menu of matches (this is what happened before). * info/t/all-only.sh: New test. * info/terminal.c (initialize_byte_map): Add byte sequences beginning ESC [ and ESC O representing cursor keys. Previously these byte sequences were present in default_emacs_like_info_keys before changes on 2014-06-28. * configure.ac: Remove use of AC_HEADER_TIOCGWINSZ. Add "sys/ioctl.h" to argument of AC_CHECK_HEADERS. * info/termdep.h: Make include of sys/ioctl.h conditional on [HAVE_SYS_IOCTL_H] instead of [GWINSZ_IN_SYS_IOCTL]. This gives the declaration of ioctl for Cygwin. Report by Ken Brown. * info/session.c: Include of sys/ioctl.h conditional on [HAVE_SYS_IOCTL_H] instead of [!__MINGW32__]. 2014-10-06 Ken Brown (tiny change) * system.h [O_BINARY && !__MSDOS__]: Don't redefine setmode if it is already defined. 2014-10-03 Gavin Smith * doc/info-stnd.texi (Invoking Info): Add examples with --node. * info/info.c (info_short_help): Help text changed. * doc/texinfo.texi (Node Line Requirements): Tweak wording to avoid implying that a node name with normalized whitespace has to be used in all circumstances. Report by Vincent Belaïche 2014-08-21 (bug #43042). 2014-10-03 Ken Brown (tiny change) Changes to compile for Cygwin: * info/Makefile.am (LDADD): Add "$(LIBICONV)". * info/info-utils.c: Remove include of nl_types.h. * man/Makefile.am: Don't build infokey.1. 2014-09-30 Gavin Smith * info/session.c (info_move_to_next_xref) (info_move_to_prev_xref): If an argument is given with C-u, go forward or backward that number of references. * info/t/tab-argument.sh: New test. * info/info.c (info_short_help): Examples in help text changed. 2014-09-29 Gavin Smith * info/indices.c (info_index_search, do_info_index_search): Getting user input moved from do_info_index_search. * info/indices.c (next_index_match, info_next_index_match): Function split out. (look_in_indices): Return value as intended. * info/indices.c, info/session.c (allfiles_node) (info_all_files): Moved between files. * info/session.c (move_to_goal_column): Return type declared as void. (info_dispatch_on_key): Return values as intended. * info/indices.c (report_index_match): Split out from info_next_index_match. * info/indices.c (next_index_match): Don't take index argument; always operate on index_index. Take FILE_BUFFER argument. Update index_offset. Call to info_indices_of_file_buffer to update index_index moved from do_info_index_search. All callers updated. * info/info.c (main) <--index-search>: Call next_index_match and report_index_match. * info/indices.c (do_info_index_search): Merged into info_index_search. (info_entry_exists): Function removed. (report_index_match): Don't internationalize a string that should never be displayed. * info/indices.c (info_indices_of_file_buffer): Check if we have already built an index moved from next_index_match. (info_index_search) : Call info_indices_of_file_buffer. Always exit function. 2014-09-28 Gavin Smith * info/indices.c (info_index_apropos): Strip any suffix like ".info" from uses of filename in generated node contents. Mark node contents as an index. Comment added mentioning problem with character encodings. Introductory text changed to be more descriptive. * info/indices.c (look_in_indices): New function, split from: * info/info.c (add_initial_nodes) * info/indices.c (info_indices_of_file_buffer): Declared static. Return type is void. Clear 'index_index' variable if no file buffer. (index_nodenames): Comment changed. 2014-09-24 Gavin Smith * info/doc.h (InfoCommand): Removed. All uses updated. (FUNCTION_DOC): Comments added. * doc/info-stnd.texi (Miscellaneous Commands, Cursor Commands): Fix minor typos. * info/session.c (move_to_goal_column): New function, split from info_next_line and info_prev_line. Interpret -1 as goal column to mean the current column. (info_show_point): Don't set goal_column. (info_read_and_dispatch): Set goal_column to -1 unless previous commmand was next-line or prev-line. (info_search_in_node_internal): Don't set goal_column. * info/window.c (window_set_node_of_window): Don't set goal_column. (window_make_window): Initialize goal_column to -1. * info/session.c (info_display_file_info): Display name of subfile if in split file. 2014-09-22 Gavin Smith * info/session.c (info_dispatch_on_key): Don't set ea_last_executed_command. (info_numeric_arg_digit_loop): Don't declare with DECLARE_INFO_COMMAND. * info/echo-area.c (ea_last_executed_command): Declared static. (read_and_dispatch_in_echo_area): Set ea_last_executed_command. 2014-09-21 Gavin Smith * info/session.c (info_read_dispatch): Return pointer to function implementing Info command instead of calling it. All callers updated. 2014-09-18 Gavin Smith * info/session.c (info_select_reference): When following a reference in a footnotes window, try to switch to a window containing a node from the file. * info/display.c (display_update_window_1): Turn off standout mode if we are still in it by the time we get to the bottom of the window. * info/t/Init-inter.inc: Don't hang if the process doesn't appear. 2014-09-16 Gavin Smith * info/indices.c (info_index_apropos): Mark apropos node with N_Unstored. (info_indices_of_file_buffer): Free index_index variable before overwriting it. (apropos_in_all_indices): Free return value of get_dir_node before returning. 2014-09-15 Gavin Smith * doc/info-stnd.text (Scrolling Commands): PageUp and PageDown can change the node (changed in 4.12 release). 2014-09-14 Gavin Smith * info/nodes.h (N_Unstored): New flag. * info/session.c (info_split_window): Copy 'nodename' and 'references' fields if node is marked with N_Unstored, instead of N_IsInternal. * info/nodemenu.c (list_visted_nodes), * info/indices.c (info_virtual_index), * info/footnotes.c (make_footnotes_node): Mark generated nodes with N_Unstored. * info/dir.c (build_dir_node), * info/man.c (get_manpage_node): Mark generated nodes with N_IsInternal, to disable attempting to get another node in a containing file. 2014-09-13 Gavin Smith * info/info-utils.c (copy_converting) : Try converting again if input was incomplete, instead of degrading to ASCII. 2014-09-12 Gavin Smith * info/info.h: Don't include other header files. * info: All *.c and *.h files: Include necessary header files. Include "doc.h" instead of "infomap.h" to avoid problem with header file include cycle. * info/footnotes.c (info_get_or_remove_footnotes): Call info_error instead of inform_in_echo_area. * info/info.h, info/session.h (DECLARE_INFO_COMMAND): Macro moved between files. * info/info.h, info/session.h: Declarations of read_function_name, show_error_node moved. * info/makedoc.c (doc_header_1, main): Add include of "window.h" to generated files. * info/session.c, info/variables.c (info_scroll_choices) (scroll_last_node_choices): Moved between files and declared static. * info/variables.h: Declare 'mouse_protocol'. * info/info.c (add_file_directory_to_path): Declared static. 2014-09-12 Gavin Smith * info/session.c: Move "Garbage Collection" and "Navigation of document structure" sections to reduce need for forward function declarations. * info/session.c (file_buffer_of_window, node_printed_rep): Moved between files. * info/indices.c (info_virtual_index), * info/nodemenu.c (nodemenu_format_info), * info/session.c (info_select_reference, info_follow_menus): Remove unused local variables. * info/info.h: Remove declaration for removed variable. (info_toupper, info_tolower): Removed. Use toupper and tolower instead. * info/info.h, info/nodes.h (strict_node_location_p): Declaration moved. * info/info.c, info/session.c (debug_file, close_debugfile) (debug_level, vinfo_debug) (info_debug, info_error_rings_bell_p, info_error, show_error_node) Moved between files. (vinfo_debug, vinfo_error): Declared static. * info/info.h (program_name): Declaration added. (info_error_rings_bell_p): Declaration removed. * info/info.h, info/session.h (debug): Macro definition moved. * info/session.h: Remove unnecessary declarations of functions that are defined with DECLARE_INFO_COMMAND and not used outside of their containing source files. * info/session.c: Add declarations of DECLARE_INFO_COMMAND functions as necessary. Reorder some functions to be used after they are defined. (forward_move_node_structure): Call info_parse_and_select instead of info_top_node. 2014-09-10 Gavin Smith * info/display.c (display_scroll_region): New function. (display_scroll_display): Call it if the terminal supports setting a scrolling region. * info/terminal.c (terminal_scroll_region): New function. (terminal_can_scroll_region): New variable. (term_cs, term_SF, term_SR): New variables. (terminal_initialize_terminal): Set them. * info/window.c (set_window_pagetop): Pass top and bottom of window being scrolled to display_scroll_display. * info/display.c (display_update_window_1): Correct length argument passed to display_node_text. 2014-09-09 Gavin Smith * info/session.c (forward_move_node_structure) (backward_move_node_structure): Disable for internal nodes. (forward_move_node_structure) : Detect if we are at the last node even if it does not have its Up pointer going to "Top". * info/session.h (SLN_Scroll, SLN_Top), * doc/info-stnd.texi (Variables) , * info/session.c (scroll_last_node_choices): 'Scroll' option removed, as a non-index node with a menu will never be the last node. * info/t/last-node-not-top-level.sh: New test. * info/t/infodir/last-node-not-top-level.info: New file. * info/session.c (select_menu_digit): Don't print any error messages. (info_menu_digit): Display error message if there is no menu in the node. * doc/info-stnd.texi (Variables) : cursor-movement-scrolls=On by default. * info/infodoc.c (info_find_or_create_help_window): Look for help window with get_internal_info_window instead of get_window_of_node. * info/info-utils.c (get_window_of_node): Removed. * info/indices.c (info_virtual_index): Mark index node as internal. Don't include a Top pointer to prevent possible memory leak when node is deleted. 2014-09-08 Gavin Smith * info/session.c (info_set_node_of_window): Don't get or remove footnotes nodes for footnotes nodes. * info/t/split-footnotes.sh: New test. * info/indices.c (info_indices_of_file_buffer): Only record first index found in initial_index_nodename. This stops a memory leak when there are multiple indices, and means that "i" goes to the first index node in the file. 2014-09-08 Gavin Smith * info/session.c (free_history_node): Free 'nodename' field for internal nodes. (info_split_window): Copy 'nodename' field for new internal nodes. * info/echo-area.c (ea_possible_completions), * info/footnotes.c (make_footnotes_node), * info/indices.c (info_index_apropos), * info/nodemenu.c (list_visited_nodes): Duplicate 'nodename' field of new node. * info/footnotes.c (FOOTNOTE_HEADER_FORMAT): Removed. (make_footnotes_node): Don't call name_internal_node. * info/indices.c (info_index_apropos), * info/infodoc.c (create_internal_info_help_node): Don't clear N_IsInternal flag on new node. * info/info-utils.c (info_copy_references): Check if argument is null. 2014-09-08 Gavin Smith * info/indices.c (create_virtindex_file_buffer): Deleted. (create_virtindex_node): Merged into caller in info_virtual_index. (info_virtual_index): Don't create a FILE_BUFFER to hold generated node. Remove word "Info" from heading in node. (index_index): Comment changed. * info/info-utils.c (printed_representation): Return byte length 0 for "Info tags" so that they are hidden on the screen. * info/t/index-search.sh: New test. 2014-09-07 Gavin Smith * info/window.c (set_window_pagetop): Set goal column as well as point when moving point into displayed part of node. * info/infokey.c (compile): Use KEYMAP_META instead of Meta to allow binding key chords including Meta. * info/terminal.c (term_bt, term_kB, terminal_initialize_terminal) (initialize_byte_map): Get 'BackTab' key byte sequence from 'kB' capability instead of 'bt'. 2014-09-07 Gavin Smith * info/session.c (info_clear_search): New user command. * doc/info-stnd.texi (Searching Commands): Document it. 2014-09-07 Gavin Smith * info/session.c (move_to_goal_column): Merged into callers. (point_next_line, point_prev_line): Call window_compute_line_map for new line. (info_next_line, info_prev_line): Keep goal column when a numeric argument is used resulting in a new node being put in the window. (info_beginning_of_line, info_end_of_line): Don't call window_compute_line_map. (info_end_of_line): Go one past the last character in line, instead of right on it, for consistency with Emacs and readline. 2014-09-04 Gavin Smith * info/display.c (display_update_one_window): Clear lines with highlights in them properly. * info/display.c (display_update_window_1): Go to new line properly when highlighted region crosses line. * info: (all files) Change use of quotation marks. Quote 'thusly' instead of `thusly' in user messages. * doc/info-stnd.texi (Invoking Info) <--no-raw-escapes>: Change explanation of what this option does. 2014-09-01 Gavin Smith * info/session.c (info_move_to_prev_xref, info_move_to_next_xref): Skip nodes if no references in previous or next node, as was done before. Cycle round the node's references when cursor-movement-scrolls=Off. (info_move_to_xref): Handling of cursor-movement-scrolls removed. * info/session.c (ask_for_search_string): Don't crash if the user pressed return without typing anything. * info/t/search-empty.sh: New test. * info/terminal.c: (terminal_begin_standout, terminal_end_standout) (terminal_begin_standout_hook, terminal_end_standout_hook): New functions and function pointers. * info/display.c (display_update_window_1): For each line which contains part of a search match, display it using terminal_begin_standout and terminal_end_standout in this function and mark it as invalid in 'the_display'. Remove unused argument. 2014-08-30 Gavin Smith * info/session.c (incremental_search): Update an automatic footnotes window if we change node. * info/session.c (get_input_key_internal): Don't time-out key press if 'key-time' is 0. * doc/info-stnd.texi (Variables): Document 'key-time' variable. * info/variables.c (info_variables): Rename 'preprocess-nodes' user variable to 'hide-note-references'. * doc/info-stnd.texi (Variables): Document 'hide-note-references' variable. 2014-08-30 Gavin Smith * info/session.c (incremental_search): Go back to being case-insensitive if all upper-case letters are deleted. * info/t/inc-sea-insensitive.sh: New test. 2014-08-29 Gavin Smith * info/window.c (recalculate_line_starts, calculate_line_starts): Renamed. Don't free 'line_starts' and 'log_line_no'. Callers updated. (window_toggle_wrap): Call display_scroll_line_starts as was done before. 2014-08-26 Gavin Smith * info/session.c (info_follow_menus): Free error argument before overwriting it. (info_search_in_node_internal): Set goal column after search. (info_search_previous): Work correctly when the match is an exact number of screen-fulls away. * info/window.c (window_new_screen_size): Try to resize windows evenly. 2014-08-26 Gavin Smith * info/m-x.c (info_execute_command): Free a string. Allow arbitarily long prompts. * info/info.c (main): Exit with exit() instead of 'return' to avoid memory leak report from valgrind for main's local variables. (initial_fb): New static variable, taken out of 'main' function. (get_initial_file): Don't clobber 'filename' field of dir entry. * info/search.c (find_node_in_binding): Free last string allocated in a loop. * info/session.c (info_search_in_node_internal): Free 'search_string' field of WINDOW before overwriting it. * info/dir.c (lookup_dir_entry), * info/info-utils.c (info_copy_reference, info_copy_references): Comments changed. * info/t/Init-test.inc: Commented-out line added showing how to run tests under valgrind. * info/t/Init-inter.inc: Get name of running "ginfo" process from a variable. 2014-08-25 Gavin Smith * info/dir.c (insert_text_into_node): Include terminating null byte from node contents. * info/info-utils.c (scan_node_contents): Free match list before returning. * info/info.c (main, initial_file): Make initial_file file-level variable. (get_initial_file): Set initial_file variable instead of returning a value. (add_initial_nodes): Use info_reference_free instead of free on REFERENCE variables. Duplicate arguments to info_new_reference so we can free them. * info/session.c (info_follow_menus): Always free initial_node argument before returning. * info/t/Init-test.inc: Remove out-of-date comment. * info/t/file.sh: Source Cleanup.inc. * info/t/tab.sh: Remove unnecessary line to delete temporary files. 2014-08-25 Gavin Smith * info/display.c (find_diff): Add braces round "if" command. (display_update_window_1): Remove unused variable. * info/session.c (isearch_terminate_search_key): Removed. * info/session.h: Add missing declarations for get_input_key, get_another_input_key. * info/session.c (fill_input_buffer): Remove unused variable. * info/terminal.c (add_seq_to_byte_map): Take char * argument and cast to unsigned char *. * info/search.h (enum search_result): Change 'search_failure' value to 'search_invalid'. * info/session.c (info_search_in_node_internal): Return value properly. Don't clobber error message printed for invalid regular expression. (ask_for_search_string): Return value properly. * info/search.c (make_binding): Merged into caller. 2014-08-25 Gavin Smith * info/window.c (set_window_pagetop): If point would end up past bottom of displayed part of node, put it on the last displayed line. 2014-08-24 Gavin Smith * info/session.c (_scroll_forward, _scroll_backward): Arguments changed. All callers updated. Don't display an error message when staying in the same node. * doc/info-stnd.texi (Variables): Mention what mouse is used for. (Node Commands) : Add missing closing parenthesis and 'vi-like operation' text. * doc/texinfo.texi (Overview): Remove two extra words. 2014-08-23 Gavin Smith * info/variables.c (info_variables): New user variable 'mouse'. * info/terminal.c (mouse_protocol): New variable. * info/terminal.h (MP_NONE, MP_NORMAL_TRACKING): New preprocessor definitions. * info/terminal.c (terminal_initialize_terminal): Check if mouse tracking was turned off. * info/variables.c (describe_variable): Allow arbitarily long values for variables. * doc/info-stnd.texi (Variables): Document 'mouse' variable. 2014-08-23 Karl Berry * Texinfo/Convert/Plaintext.pm (converter_initialize): put push_top_formatter after setting 'fillcolumn' such that it is taken into account. 2014-08-22 Gavin Smith * info/session.c (info_read_and_dispatch): Consider ESC to be the same as Meta-. * info/infomap.c (default_emacs_like_info_keys) (default_vi_like_info_keys): Refer to key sequences starting ESC with KEYMAP_META instead. 2014-08-22 Gavin Smith * info/texinfo.texi: Remove extra space in menu references to "@- @hyphenation" node. Report from Vincent Belaïche. * info/info-stnd.texi (Searching Commands): Add reference to explain regular expressions. 2014-08-21 Gavin Smith * info/session.c (info_parse_and_select): Initialize line_number field of reference. 2014-08-21 Gavin Smith * doc/texinfo.texi (Appendix F Info Format Specification): Update including quoting mechanism, use of non-ASCII characters in node names, tag table being optional in non-split files, use of "(dir)" in node lines. Mention possibility of formfeed characters in section separators. 2014-08-21 Gavin Smith * info/display.c (decide_if_in_match): New function. (display_update_window_1): Call it. * info/display.c (find_diff): Return offset of first ESC in line if the lines differ and there is one. Return -1 if no difference. Handle multicolumn characters with wcwidth. (display_node_text): Use offset into new line contents set by find_diff. 2014-08-21 Gavin Smith * info/infomap.c (default_emacs_like_info_keys): Add ESC x key sequence for execute-command. 2014-08-21 Karl Berry * Texinfo/Convert/Plaintext.pm (converter_initialize): propagate FILLCOLUMN. Report from Mahlon Smith, 19 Aug 2014 14:28:01. 2014-08-20 Gavin Smith * info/session.c (info_menu_item): Check for case when there are no menu entries in the node. 2014-08-20 Gavin Smith * doc/info-stnd.texi (Searching Commands): Consistent formatting for commands without key bindings. Mention alternative for searching backwards. Remove reference to Emacs regular expressions, as those are slightly different. Mention what happens if you don't give a string for 'i'. Mention 'highlight-searches' variable. (Variables): Add 'highlight-searches'. 2014-08-20 Gavin Smith * info/session.c (info_search_next, info_search_previous): Call info_search_internal directly instead of via info_search_1. : Scroll up or down by a whole number of screen-fulls to make match visible. This makes traversing matches with "}" and "{" less disorienting. * info/session.c (info_search_1): Argument 'start' removed. (DFL_START): Deleted. 2014-08-20 Gavin Smith * info/session.c (info_search_in_node_internal): Don't call window_adjust_pagetop. (info_search_1, incremental_search): Call it here instead. 2014-08-20 Gavin Smith * info/indices.c (do_info_index_search, info_virtual_index): Remove check against min_search_length. * info/session.c (info_search_1): Don't allocate for search_string here. (info_search_next, info_search_previous): Check if search_string is null. 2014-08-18 Gavin Smith * info/indices.c (info_virtual_index): Place index marker tag in generated node. 2014-08-18 Gavin Smith * info/echo-area.c (info_read_in_echo_area) (info_read_completing_internal, info_read_completing_in_echo_area) (info_read_maybe_completing) (info_read_completing_in_echo_area_with_exclusions): WINDOW argument removed. All uses updated. * info/session.c (ask_for_search_string): WINDOW argument removed. 2014-08-17 Gavin Smith * info/session.c (info_search_1): Argument removed. Don't call ask_for_search_string. (info_search_case_sensitively, info_search, info_search_backward): Do it here instead. (ask_for_search_string): Don't display "[]" in prompt if no previous search string. Check if search string is too long here instead of in info_search_1. 2014-08-17 Gavin Smith * info/session.c (incremental_search): Use same call to info_search_internal for both regex and non-regex searches. * info/t/inc-sea-forward-nonregex.sh: New test. 2014-08-17 Gavin Smith * info/session.c (incremental_search): Remove unused argument. When searching backward again, position one byte before current match. (info_search_internal, info_search_in_node_internal): Always start search at argument given, not at point. Callers updated. * info/t/inc-sea-forward.sh: New test. * info/t/search.info: Remove spaces between two matches and more matches after target to increase chance of ending up in the wrong place. 2014-08-16 Gavin Smith * info/display.c (display_update_window_1): Check if the next search match starts immediately after the last one. 2014-08-16 Gavin Smith * info/info.c (add_initial_nodes): Error message if --node used without a filename being specified. * info/t/node-no-file.sh: New test. 2014-08-15 Gavin Smith * info/session.c (match_in_match_list): Arguments changed. (info_search_in_node_internal): Function declared static. Arguments changed. Remove node name search. (info_search_internal): Rewritten to have single call to info_search_in_node_internal. (info_target_search_node): Removed. (info_select_reference): Call updated. * info/footnotes.c (make_footnotes_node): Only search until end of node. 2014-08-13 Gavin Smith * info/search.c (regexp_escape_string): New function. (regexp_search): New argument controlling whether to search for string literally. Callers updated. * info/session.c (info_search_in_node_internal): Call regexp_search function for literal searches. * info/footnotes.c (make_footnotes_node): Use strstr instead of info_search_in_node_internal. 2014-08-12 Gavin Smith * info/session.c (info_set_node_of_window): Clear search matches here instead of in window_set_node_of_window in window.c. (match_in_match_list): When searching backward, include the starting byte in the area. * info/window.h (SEARCH_STATE): Moved to session.c. Store starting position of search instead of position of point. * info/window.c (window_get_state, window_set_state): Moved to session.c. * info/session.c (pop_isearch, push_isearch): Take extra argument to save and restore starting search position. (incremental_search): Save initial point position. Clear search if search string is erased. * info/session.c (info_search_in_node_internal): Check search if forwards when setting search start to 'body_start'. 2014-08-10 Gavin Smith * info/session.c (incremental_search): Backspace always deletes last character in search pattern. Do search again to update displayed highlights. 2014-08-10 Gavin Smith * info/search.c (regexp_search): Arguments changed. Don't take WINDOW argument. * info/info-utils.c (scan_node_contents) * info/session.c (info_search_in_node_internal) Call to regexp_search updated. * info/session.c (match_in_match_list): Don't take WINDOW argument. Callers updated. 2014-08-09 Gavin Smith * info/session.c (match_in_match_list): Arguments changed. Output index of match in list. (info_search_in_node_internal): Argument removed. Always return start of match. All callers updated. Check whether to set cursor point at end of match. (info_search_internal): Arguments changed. All callers updated. 2014-08-08 Gavin Smith * info/session.c (ask_for_search_string): Split out from info_search_1. (incremental_search): Remove check on local variable for non-regexp searches. 2014-08-08 Gavin Smith * info/session.c (incremental_search): Code after 'after_search' label moved to start of loop. 'insert_and_search' label removed. Use conditionals instead of goto. Combine two conditionals handling C-g press. Move conditional construct checking what a pressed key meant up a level. Remove 'search_now' and 'exit_search' labels. 2014-08-08 Gavin Smith * info/session.c (match_in_match_list, info_search_1) (incremental_search) Consistently name 'resbnd' arguments and local variables which are SEARCH_BINDING's giving the result of a search. 2014-08-08 Gavin Smith * info/infomap.c (default_emacs_like_info_keys): Display RET, PgUp, PgDown in help message. * info/info.c (info_short_help): Say to show key bindings with "H" instead of "h". * info/session.c (forget_node): Permit removing last node from window. (info_history_node): Check we are not removing the last node, and display an error message if that is the case. * info/echo-area.c (ea_possible_completions): Remove completion nodes from window history. 2014-08-08 Gavin Smith * info/search.c (regexp_expand_newlines_and_tabs): Split out from regexp_search. (regexp_search): Arguments changed. Check if search was the same as last time moved to calling code. * info/session.c (match_in_match_list): Split out from regexp_search in search.c. (info_search_in_node_internal): Check if regexp_search needs to be called and call match_in_match_list. Search in node name disabled. * info/info-utils.c (scan_node_contents): Loop through matches returned from regexp_search. 2014-08-07 Gavin Smith * info/window.h (WINDOW): New fields 'search_string', 'search_is_case_sensitive'. * info/search.c (regexp_search): Always search entire body of node. Don't save information about searches in static variables; save and retrieve it in passed WINDOW instead. Always free regex_t object. * info/session.c (info_search_in_node_internal): Set node of window before calling regexp_search. (info_set_node_of_window): Free matches for old node. * info/filesys.c (convert_eols): Convert null bytes in Info tags to spaces. * info/session.c (allfiles_create_node): Add index tag with spaces instead of nulls. * info/nodes.h (INFO_TAG_REGEXP): New preprocessor definition. * info/info-utils.c (scan_info_tag): Function separated out from scan_node_contents. (scan_node_contents): Include INFO_TAG_REGEXP in regexp search. Don't change start of search. * info/tag.c (tag_expand): Process tags with spaces instead of null bytes. * info/window.c (info_tag): Expect Info tag with space instead of null byte. * info/info-utils.c (printed_representation): Call info_tag in right place. * info/Makefile.am: search-after-tag.sh removed from XFAIL_TESTS. * info/t/search-after-tag.sh: Source info/t/Init-inter.inc as intended. 2014-08-06 Gavin Smith * info/display.c (display_update_window_1): Output sequence turning on or off standout mode before end of line. Remove unused local variable. (display_node_text): WINDOW argument removed. Checks for displaying off screen or out of window moved to caller. 2014-08-03 Gavin Smith * info/signals.c (redisplay_after_signal) (info_signal_proc) : Don't call terminal_unprep_terminal and terminal_prep_terminal. This prevents flickering between the "normal" and "alternate" screens in an xterm when resizing. * info/display.c (display_update_one_window): Always display line continuation character in rightmost column. Don't display an extra character if line wrapping is off. * info/window.c (window_toggle_wrap): Don't free two arrays that were already freed. Disable call to display_scroll_line_starts. 2014-08-03 Gavin Smith * info/search.c (regexp_search): Take WINDOW argument to save results of a search. All callers updated. * info/window.h (WINDOW): New fields 'matches', 'match_count'. * info/session.c (info_search_in_node_internal): Use of regexp_search updated. * info/variables.c (info_variables): New user variable 'highlight-searches'. * info/display.c (highlight_searches_p): New variable. (display_update_window_1): New function, based on process_node_text in window.c. Highlight search results if this is turned on. Use struct text_buffer functions to build printed screen line. (display_update_one_window): Call display_update_window_1 instead of process_node_text. * info/terminal.c (term_so, term_se): New variables. (terminal_initialize_terminal): Initialize them. * info/session.c (info_set_node_of_window): Clear displayed search matches. 2014-07-28 Gavin Smith * info/nodes.c (info_get_node_of_file_buffer): Set body_start to 0 for "*" node. * info/session.c (info_next_line, info_prev_line): Don't change goal column. * info/window.c (window_chars_to_goal): Merged into caller. * info/t/goal-column.sh: New test. * info/t/infodir/intera.info: Node "Goal column" added. 2014-07-27 Gavin Smith * info/session.c (info_search_in_node): Merged into callers in info_target_search_node and make_footnotes_node. * info/search.c (regexp_search): Store previous start and end of search. Recalculate matches if new search range is outside these. When looking for matches, check that they are within the search range. * info/t/search-skip-screen.sh: New test. * info/t/infodir/search.info: New file. * info/info-utils.c (copy_input_to_output): Use < instead of <= to avoid adjusting anchor just outside of range. Check if a count of bytes went negative by mistake. * info/t/anchor-positions.sh: New test. * info/t/infodir/anchor-positions.info: New file. * info/session.c (key_time): New variable. (get_input_key_internal): Use it instead of hardcoded value. (info_variables): Add 'key-time' user variable. 2014-07-26 Gavin Smith * info/session.c (info_search_1): Unused 'key' argument removed. Rely on info_search_internal to print an error message. (info_search_internal): Print an error message if search failed if not in interactive search. * info/window.c (set_window_pagetop): Comment changed. * info/info.c (info_error_was_printed): Variable removed. All accesses removed. * info/t/file.sh: Check subnode dumping is on when not outputting to a terminal. 2014-07-25 Gavin Smith * info/infokey.c (compile): Keep going for unrecognized or invalid actions. * info/t/Infokey-config: Add lines with invalid actions. * info/signals.c (old_TERM): New variable. (mask_termsig, initialize_info_signal_handler, info_signal_proc): Trap SIGTERM as was done for SIGINT to allow cleanup of terminal state. 2014-07-24 Gavin Smith * info/infokey.c (compile): Don't allow binding to menu-digit. * info/session.c (info_next_line, info_prev_line): Don't actually move cursor until we have set the right column. * info/terminal.c (terminal_begin_using_terminal): Check 'Km' capability is what we expect it to be. 2014-07-24 Gavin Smith * info/infokey.c (compile) : Use = where intended. (compile) : Remove unused variable. * info/infomap.c (keymap_bind_keyseq): Remove unused variable. (fetch_user_maps): Remove unused variables. (section_to_keymaps): Remove unused variable. 2014-07-24 Gavin Smith * info/window.c (collect_line_starts, _calc_line_starts): Renamed. * info/window.h (WINDOW): Change type of pagetop field to long. Remove declaration of removed function. * info/nodes.h (NODE): Change type of line_number field to long. * info/window.c (window_log_to_phys_line): Type of arguments and return value changed. * info/display.c (display_update_display): Arguments changed. All callers updated. (display_update_one_window): Allow interrupting redisplay when clearing empty screen lines after the end of a node. * info/info.c, info/session.c (allfiles_create_node): Moved betweeen files. * info/session.c (begin_multiple_window_info_session): Never call info_session; rely on caller to do it. (display_startup_message): Declared static. * info/session.c (info_session): Arguments changed. (info_session, close_info_session): Function split out. * info/info.c (main): Call to info_session updated. (main) <--index-search>: Call info_read_and_dispatch and close_info_session instead of info_session. * info/session.c (fill_input_buffer): Call close_info_session if reading input failed. 2014-07-22 Gavin Smith * info/session.c (forward_move_node_structure): Get first menu entry properly. Remove code repeating what was done in forget_node. 2014-07-21 Gavin Smith * info/man.c (get_manpage_contents): Try getting manpage with -a if not found in the section given. (get_manpage_from_formatter): Split out from get_manpage_contents. Don't set a signal handler for SIGCHLD. Wait for child process to exit before returning. (reap_children): Merged into caller. (read_from_fd): Comment added. 2014-07-18 Gavin Smith * info/t/Init-inter.inc (run_ginfo): Try to get process ID of ginfo process. * info/t/Timout-test.inc: Kill ginfo if we have its PID. * info/t/resize-in-completions.sh: New test. * info/t/Infokey-config: Set automatic-footnotes=On. 2014-07-15 Gavin Smith * info/nodes.c (info_find_file): Call xstrdup on a string so we can free it later. * info/t/relative-reference.sh: New test. * info/t/Init-inter.inc (run_ginfo): Inform about program failure on pipe. * info/t/Timeout-test.inc: Check for failure message. 2014-07-15 Gavin Smith * info/t/Init-inter.inc (run_ginfo): New function to wrap call of program for interactive tests. * info/t/Timeout-test.inc: New file. * info/t/Cleanup.inc: Indicate test failure if program timed out. * info/t/adjust-anchors.sh, info/t/body-start.sh, info/t/end-of-line.sh, info/t/goto-quoted.sh, info/t/index.sh, info/t/index-long-nodeline.sh, info/t/menu-sequence.sh, info/t/search-after-tag.sh, info/t/split-file-menu.sh, info/t/split-index.sh, info/t/tab.sh: Use run_ginfo and Timout-test.inc. * info/t/index-apropos.sh: Remove --restore option from ginfo invocation. 2014-07-14 Gavin Smith * info/session.c (info_handle_pointer, info_select_reference): Return non-zero on success. (forward_move_node_structure, backward_move_node_structure): Don't use info_error_was_printed to detect errors. Rely on info_handle_pointer to print an error message. (info_global_prev_node, info_global_next_node, info_visit_menu): Don't access info_error_was_printed. * info/echo-area.c (read_and_dispatch_in_echo_area): Don't clear info_error_was_printed as it is not used by any of the echo area functions. Remove unnecessary cast. 2014-07-14 Gavin Smith * info/echo-area.c (info_read_in_echo_area) (info_read_completing_internal): Call window_clear_echo_area after getting user input. * info/indices.c (do_info_index_search, info_index_apropos) (info_virtual_index) * info/m-x.c (read_function_name, set_screen_height) * info/nodemenu.c (select_visited_node) * info/session.c (info_menu_or_ref_item, info_menu_sequence) (info_goto_node, info_goto_invocation_node, info_man, info_view_file) * info/variables.c (set_variable, read_variable_name): Don't call window_clear_echo_area. 2014-07-13 Gavin Smith * info/t/adjust-anchors.sh: New test. * info/t/infodir/anchors.info: New file. 2014-07-11 Gavin Smith * info/info-utils.c (scan_node_contents): Call info_find_subfile to get pointer to subfile contents when setting node_offset. * info/session.c (info_search_internal): Don't free node if search was successful because a reference to it was retained. (This reverses change on 2014-07-05.) 2014-07-11 Gavin Smith * info/info-utils.c (nodestart): Removed. (node_offset): New variable. (scan_node_contents): Initialize node_offset. (copy_input_to_output): Calculate anchor pointer correctly. 2014-07-07 Karl Berry * util/texi2dvi (run_recode): remove fn (and call) and --recode and --recode-from options. The implementation has been incorrect for years and no one has noticed. (SED): new variable to allow overriding. http://lists.gnu.org/archive/html/bug-texinfo/2014-07/msg00003.html 2014-07-07 Gavin Smith info: Avoid crashes when resizing screen very small, based on report from Samuel Marshall 2014-07-06. * info/signals.c (signal_block_winch, signal_unblock_winch) (sigwinch_block_count): New functions and variable. (info_signal_proc) : Don't call the saved signal handler. Increment signwinch_block_count. Only unblock the SIGWINCH signal once we have finished our business. * info/display.c (display_clear_display, display_update_display) (display_update_one_window): Block SIGWINCH signals. (display_node_text, display_update_one_window): Check that we are accessing array representing display within its bounds. * info/window.c (window_new_screen_size): Don't shrink a window below 1 line. When screen height is very small, set the height of one window left so that it will have the right height when the screen is bigger again. (echo_area_required): Removed. 2014-07-06 Gavin Smith * info/dir.c (lookup_dir_entry): Free return value of get_dir_node. * info/window.c (window_delete_window): Free line map on window close. * info/nodes.c (info_find_file): Free a string before exit. * info/info-utils.c (scan_reference_label): Free empty string before exit. * system.h [O_BINARY, !O_BINARY] (HAS_SLASH): New macro. * info/filesys.c (info_find_fullpath) * info/info.c (main) * info/nodes.c (info_find_file): Call it. * info/t/split-index.sh, info/t/next-quoted.sh: Feed input keystrokes with background process. 2014-07-05 Gavin Smith * info/info-utils.c (parse_top_node_line): Free string before loop exit. * info/infopath.c (infopath_add_dir): Free argument if not retained. (build_infopath_from_path): Call infopath_add_dir instead of infopath_add. 2014-07-05 Gavin Smith * info/dir.c (dir_entry_of_infodir) * info/footnotes.c (make_footnotes_node) * info/session.c (info_intuit_options_node): Free return value of info_get_node. * info/info.c (add_initial_nodes): Free a string. * info/session.c (info_goto_invocation_node): Don't use info_error_was_printed to check for an error. (dump_node_to_stream): Free NODE object at more exit points from function. (info_search_internal): Free variable before exiting function. 2014-07-05 Gavin Smith * info/session.c (node_printed_rep): Keep pointer to storage to returned string in static pointer to avoid memory leaks by callers. (info_menu_sequence): Don't clear echo area if there was an error message. If a component in the sequence is invalid, go to the last node reached. 2014-07-05 Gavin Smith * info/nodes.h (NODE): Fields 'parent', 'filename' removed. Fields 'fullpath', 'subfile' added. (N_Subfile): New symbol. * info/nodes.c (info_load_file): Arguments changed. Callers updated. Set N_Subfile flag for subfiles. * info/nodes.c (init_file_buffer_tag, get_nodes_of_info_file) (get_nodes_of_tag_table, info_create_node, get_filename_and_nodename) (info_get_node_of_file_buffer, info_node_of_tag) * info/dir.c (build_dir_node) * info/footnotes.c (make_footnotes_node) * info/indices.c (create_virtindex_node) * info/info-utils.c (name_internal_node) * info/info.c (add_initial_nodes, allfiles_create_node) * info/infodoc.c (info_get_info_help_node) * info/man.c (get_manpage_node) * info/session.c (info_handle_pointer, info_follow_menus) (info_menu_sequence, node_printed_rep, info_intuit_options_node) (info_goto_invocation_node, info_display_file_info) (file_buffer_of_window, info_search_internal) * info/window.c (window_make_modeline): Access changed fields of NODE objects. Use fullpath field instead of checking if parent is set and falling back to filename. * info/nodemenu.c (format_node_info): Use struct text_buffer to hold returned string. * info/window.c (pad_to): Removed. * info/session.c (gc_file_buffers_and_nodes): Free subfiles if no window contains a node from the subfile. 2014-07-03 Gavin Smith * info/nodes.h (INFO_MENU_REGEXP, INFO_MENU_ENTRY_REGEXP) (INFO_XREF_REGEXP): New symbols. * info/info-utils.c (scan_node_contents): Use them instead of literal strings. 2014-07-02 Gavin Smith * info/terminal.c (term_Km): New variable. (terminal_begin_using_terminal, terminal_end_using_terminal): Enter and leave mouse tracking mode. (add_seq_to_byte_map, initialize_byte_map): Function split out. (initialize_byte_map): Bind term_Km sequence to KEY_MOUSE. * info/infomap (KEY_MOUSE): New symbol. (KEYMAP_META_BASE, KEYMAP_SIZE): Updated. * info/session.c (mouse_reporting_on, mouse_reporting_off) (mouse_event_handler): New functions. (mouse_cb, mouse_cx, mouse_cy): New variables. (get_input_key): Set them if mouse event occurred. (get_input_key_internal): Initialize variable properly. (info_read_and_dispatch): Call mouse_event_handler if mouse event received. 2014-07-01 Gavin Smith * info/session.c (get_input_key): Try to ignore sequences in the input stream produced by unrecognized keys. (get_input_key, get_input_key_internal): Wrapper around get_input_key. 2014-07-01 Gavin Smith * info/pseudotty.c: Read bytes from file descriptor 3 and feed into master side of pseudoterminal. * info/t/Init-intera.inc, info/t/Init-inter.inc: File renamed. Create a pair of named pipes to communicate with pseudotty program. Get name of pseudoterminal slave device using shell builtin 'read'. * info/t/Cleanup.inc: Delete named pipes. * info/t/body-start.sh, info/t/end-of-line.sh, info/t/goto-quoted.sh, info/t/index-apropos.sh, info/t/index-long-nodeline.sh, info/t/index.sh, info/t/last-no-history.sh, info/t/menu-sequence.sh, info/t/next-quoted.sh, info/t/quoted-label-and-target.sh, info/t/quoted-label-as-target.sh, info/t/quoted-target.sh, info/t/search-after-tag.sh, info/t/split-file-menu.sh, info/t/split-index.sh, info/t/tab.sh: Specify input keystrokes by feeding into named pipe instead of using --dribble option. * info/t/README: Updated. 2014-06-29 Gavin Smith * info/footnotes.c (info_get_or_remove_footnotes): Null check to avoid crash when resizing window while displaying completions. 2014-06-29 Gavin Smith * info/session.c (incremental_search): Call get_input_key instead of info_get_input_byte. * info/session.c (fill_input_buffer): New function to call info_gather_typeahead. Try to read input again if interrupted by a signal, as was done in info_get_input_byte. (info_gather_typeahead): Return code says if there was a read error. (info_any_buffered_input_p, get_input_key, info_search_internal): Call fill_input_buffer instead. (info_get_input_byte): Removed. (info_gather_typeahead): [--dribble] Call dribble to save input bytes. (get_input_key): [--dribble] Don't call dribble. 2014-06-29 Gavin Smith * info/session.c (info_get_another_input_byte): Removed. * info/echo-area.c (ea_quoted_insert): Call get_another_input_key instead. 2014-06-28 Gavin Smith * info/session.c (info_set_pending_input): Function removed. (info_gather_typeahead): Don't call info_set_pending_input. * info/session.c (info_numeric_arg_digit_loop): Call get_another_input_key instead of info_get_another_input_byte. * info/session.h (DECLARE_INFO_COMMAND): Pass key argument as int rather than unsigned char. All declarations updated. * info/makedoc.c (process_one_file): Change function declarations output in funs.h. 2014-06-28 Gavin Smith * info/infokey.h (ISMETA, META, UNMETA, ISCONTROL, INFOKEY_RADIX) (INFOKEY_MAX_SECTIONLEN): Removed. * info/infokey.h, info/infomap.h (INFOKEY_FILE, A_MAX_COMMAND) (A_INVALID, CONTROL): Remaining definitions moved between files. infokey.h merged into infomap.h. * info/infomap.c (keymap_discard_keymap, find_function_keyseq) (remove_function_keyseq): Remove unused. (default_emacs_like_info_keys, default_emacs_like_ea_keys) (default_vi_like_info_keys, default_vi_like_ea_keys) (section_to_keymaps): Remove flag saying whether to suppress default keybindings. * info/session.c (incremental_search): Use get_input_key to distinguish between Escape being pressed and arrow keys. Don't push unused key presses back into input buffer. * info/terminal.c (term_kx): Remove unused variable (same as term_kD). * info/pcterm.c (pc_initialize_terminal): Use term_kD instead of term_kx. * info/infomap.c: (read_init_file): Correct condition. (default_emacs_like_info_keys, default_emacs_like_ea_keys) (default_vi_like_info_keys, default_vi_like_ea_keys): Use KEY_DELETE instead of DEL to prevent duplicate key bindings in help buffer. * info/terminal.c (initialize_bytemap): Interpret a DEL character as the Delete key. (terminal_initialize_terminal): Remove duplicated assignments. * info/infodoc.c (pretty_keyseq_internal): Merged into pretty_keyseq. (pretty_keyseq): Use struct text_buffer. * info/infodoc.c (describe_key): Call get_input_key to get key press. * info/session.c (info_dispatch_on_key): Use tolower where intended. * info/doc.h (DocInfoCmd): Macro removed. Uses updated. * info/infomap.c (add_function_keyseq): Don't override already recorded key sequences. (default_emacs_like_info_keys, default_vi_like_info_keys): Put preferred sequence to display first. 2014-06-28 Gavin Smith * info/infokey.h: (SK_RIGHT_ARROW, SK_LEFT_ARROW, SK_UP_ARROW, SK_DOWN_ARROW, SK_PAGE_UP) (SK_PAGE_DOWN SK_HOME, SK_END, SK_DELETE, SK_INSERT, SK_CTL_LEFT_ARROW) (SK_CTL_RIGHT_ARROW, SK_CTL_DELETE, SK_BACK_TAB): Removed. (struct sect): Removed. * info/infomap.h (BYTEMAP_ENTRY): New typedef. (BYTEMAP_NONE, BYTEMAP_KEY, BYTEMAP_MAP, BYTEMAP_ESC): New symbols. * info/terminal.c (byte_seq_to_key): New variable. (initialize_byte_map): New function. (terminal_initialize_terminal): Call it. * info/infomap.h (KEY_RIGHT_ARROW, KEY_LEFT_ARROW, KEY_UP_ARROW, KEY_DOWN_ARROW) (KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_HOME, KEY_END, KEY_DELETE, KEY_INSERT) (KEY_CTL_LEFT_ARROW, KEY_CTL_RIGHT_ARROW, KEY_CTL_DELETE) (KEY_BACK_TAB): New symbols. (KEYMAP_SIZE, KEYMAP_META_BASE, KEYMAP_META): New symbols. * info/infomap.c (keymap_make_keymap, keymap_discard_keymap): Make keymap as big as KEYMAP_SIZE. (default_emacs_like_info_keys, default_emacs_like_ea_keys) (default_vi_like_info_keys, default_vi_like_ea_keys): Arrays of int instead of arrays of char. Use KEY_* symbols instead of SK_* sequences. Use KEYMAP_META macro instead of Meta. Avoid some duplication where both a sequence with ESC Key and Meta-Key were bound. Don't specify sequences produced by special keys. (section_to_keymaps): Process new format specifying key bindings. (decode_keys): Removed. (find_function_keyseq, add_function_keyseq, remove_function_keyseq): Keys are represented with type int instead of char. (keymap_copy_keymap): Removed. (keymap_bind_keyseq): Don't override already bound key sequences. No longer static. (keymap_make_keymap): Don't bind upper-case characters to info_do_lowercase_version. (read_init_file): Do it here instead. * info/session.c (info_get_input_char, info_get_input_byte): Renamed. (info_get_another_input_char, info_get_another_input_byte): Renamed. (info_get_key_from_typeahead, get_byte_from_input_buffer): Renamed. (info_gather_typeahead): Declared static. New argument added saying whether to wait for input. (info_dispatch_on_key, dispatch_error, add_char_to_keyseq): Arguments changed from char to int. (info_keyseq): Type changed. (info_dispatch_on_key) : Updated to match new meaning of key numbers. (get_another_input_key): New function based on info_get_another_input_byte. (info_dispatch_on_key): Call it. (get_input_key): New function. (read_and_dispatch): Call it. * info/echo-area.c (read_and_dispatch_in_echo_area): Call get_input_key instead of info_get_input_char. * info/doc.h (FUNCTION_KEYSEQ): Type of keyseq field changed. * info/infokey.c (compile): Arguments changed. Apply key bindings from init file directly instead of compiling into an intermediate representation. (add_to_section): Removed. * info/infodoc.c (dump_map_to_text_buffer): Arguments changed. Handle arrays of int representing key sequences instead of arrays of char. Keymap array has size KEYMAP_SIZE instead of 256. (pretty_keyname, pretty_keyseq, pretty_keyseq_internal): Arguments changed. Callers updated. (pretty_keyname): Handle named keys. (pretty_keyseq_internal): Don't handle named keys specially. 2014-06-20 Gavin Smith * info/echo-area.c (read_and_dispatch_in_echo_area): Copy of info_read_and_dispatch with special casing for echo area made unconditional. Callers updated. * info/session.c (info_read_and_dispatch): Special casing for echo area removed. * info/window.c (WINDOW): Field 'keymap' removed. All reads or writes changed to use info_keymap or echo_area_keymap directly. 2014-06-20 Gavin Smith * info/session.c (info_set_pending_input): Place argument in info_input_buffer instead of pending_input_character. (pending_input_charater, info_clear_pending_input) (info_input_pending_p): Deleted. (info_push_typeahead, info_input_buffer_space_available): Merged into calling code. * info/session.h (return_if_control_g): Macro removed. Code placed in calling code in info_search_internal. 2014-06-20 Gavin Smith * info/infokey.c (compile): Set Info variables as was done in section_to_vars. * info/infomap.c (section_to_vars): Removed. (user_vars, user_vars_len): Removed. (read_init_file): Don't call section_to_vars. (fetch_user_maps): Don't set user_vars. (filesize, getint): Remove unused. * info/infokey.c (error_message): Merged into calling code. * NEWS, doc/info-stnd.texi, util/dir-example: Document infokey change. 2014-06-19 Gavin Smith * info/infokey.c (lookup_action): Use function_doc_array instead of function_key_array. * info/makeinfo.c (process_one_file): Argument removed. (main, process_one_file): Don't create key.c. (key_filename, key_header, key_header_1): Remove unused. * info/key.h: File deleted. 2014-06-19 Gavin Smith * info/infokey.c (program_name, print_version_p, print_help_p) (input_filename, output_filename, long_options, mkpath) (write_infokey_file, suggest_help, short_help, main): Remove unused. * info/infomap.c (fetch_user_maps): Remove disabled code loading compiled .info file. * info/infokey.h (INFOKEY_SRCFILE) (INFOKEY_NMAGIC, INFOKEY_MAGIC_SO, INFOKEY_MAGIC_S1) (INFOKEY_MAGIC_S2, INFOKEY_MAGIC_S3, INFOKEY_SECTION_INFO) (INFOKEY_SECTION_EA, INFOKEY_SECTION_VAR, INFOKEY_MAGIC_EO) (INFOKEY_MAGIC_E1, INFOKEY_MAGIC_E2, INFOKEY_MAGIC_E3) (INFOKEY_MAX_DEFLEN): Remove unused. 2014-06-19 Gavin Smith * info/Makefile.am (bin_PROGRAMS): infokey removed (infokey_LDADD, infokey_SOURCES, nodist_infokey_SOURCES): Removed. (check_DATA): Removed. (ginfo_SOURCES): infokey.c, infokey.h, key.c, key.h added. * info/infokey.c (program_name): Declared static to stop name conflict. (main): Disabled. (compile, error_message): No longer declared static. * info/infokey.c, info/infokey.h (struct sect): Definition moved. * info/infokey.h (INFOKEY_FILE): Change to .infokey (_infokey for [__MSDOS__]). * info/infomap.c (sections): New variable. (fetch_user_maps): Call compile and set variables based on output. * info/echo-area.c, info/footnotes.c, info/indices.c, info/infodoc.c, info/m-x.c, info/nodemenu.c, info/session.c, info/variables.c: Warning about reordering DECLARE_INFO_COMMAND's removed. * info/t/Init-test.inc: Use uncompiled infokey file as init file. 2014-06-19 Gavin Smith * info/infodoc.c, info/infomap.c, info/makedoc.c, info/pcterm.c, info/session.c, info/terminal.c, info/doc.h, info/info.h: [INFOKEY]: Made unconditional. 2014-06-17 Gavin Smith * info/terminal.c (term_bt): New variable. (terminal_initialize_terminal): Initialize term_bt from termcap "bt" capability. * info/infokey.h (SK_BACK_TAB): New symbol. * info/infomap.c (default_emacs_like_info_keys): Bind back tab to move-to-prev-xref. (decode_keys): Check for SK_BACK_TAB in binding. * info/infodoc.c (pretty_keyseq_internal): Add "BackTab" to key names for help window. * doc/info-stnd.texi (Selecting Xrefs): Document back tab binding. * doc/info-stnd.texi (Node Commands): Document "M-x man". * info/info-utils.c (scan_reference_target): [preprocess-nodes=On]: Formatting tweak. (scan_node_contents): Require whitespace after "*note" for it to be recognized. Make menus with no blank line after "* Menu:" work again. 2014-06-15 Gavin Smith * info/t/search-after-tag.sh: New test. * info/t/infodir/intera.info: Add node for new test. 2014-06-15 Gavin Smith * info/info-utils.c (read_bracketed_filename): Split out from info_parse_node and rewritten for clarity. (read_quoted_string): Set output parameter to null on error. (avoid_see_see): Include '(' character when searching backward. (scan_reference_target): Call read_bracketed_filename instead of info_parse_node to get filename. (scan_node_contents): Check if cross-reference within parentheses was a "*note". * info/t/file-file-with-dot.sh: New test. 2014-06-13 Gavin Smith * info/session.c (forget_node): Don't forget the last node in the history. * info/t/last-no-history.sh: New test. * info/info.c (add_initial_nodes): For split files, store the name of the top-level file instead of the subfile. * info/t/split-file-menu.sh: New test. * info/info.c (allfiles_create_node): Set filename to an empty string so that "*no file*" won't be shown in window mode line. Surround node name with asterisks. 2014-06-12 Gavin Smith * info/info.h, info/makedoc.c, info/doc.h, info/infomap.c, info/infodoc.c: [NAMED_FUNCTIONS]: Made unconditional. * info/infodoc.c (default_emacs_like_ea_keys): Commented out entry for "M-x" removed. * info/footnotes.c (make_footnotes_node): Disabled code removed. * info/session.c (info_next_window, info_prev_window): Don't include echo area in window loop. 2014-06-11 Gavin Smith * info/session.c (info_follow_menus): Return value changed. All callers updated. * info/nodes.c (info_get_node_with_defaults) (get_filename_and_nodename): Use a NODE instead of a WINDOW to give the defaults. * info/menu-sequence.sh: New test. * info/dir-menus-sloppily.sh: Sequence of menu labels corrected. 2014-06-11 Gavin Smith * info/info-utils.c (info_parse_node): Don't parse line number part of menus. Return value and arguments changed. All callers updated. (info_parsed_line_number): Removed. (scan_reference_target): Parse line number part of menus. * info/info-utils.h (PARSE_NODE_DFLT, PARSE_NODE_SKIP_NEWLINES) (PARSE_NODE_VERBATIM, PARSE_NODE_START): Removed. * info/nodes.c (info_get_node, info_get_node_with_defaults) (get_filename_and_nodename): Arguments changed. All callers updated. 2014-06-11 Gavin Smith * info/info-utils.c (save_conversion_state, reset_conversion): New functions. (scan_node_contents): Call them. (read_quoted_string): New parameter added. All callers updated. (scan_reference_label): Comment changed. (scan_reference_target): Return value says whether syntax was understood. Call read_quoted_string directly instead of via info_parse_node. * info/session.c (info_move_to_xref): Check if list of references in node is empty. Don't handle cursor-movement-scrolls variable. Unused function parameters removed. (info_follow_menus): Use PARSE_NODE_VERBATIM instead of PARSE_NODE_DFLT. (info_move_to_prev_xref, info_move_to_next_xref): Go to reference in next node if cursor-movement-scrolls is On. Call the other function if the count was negative. * info/session.c (forget_node): Call info_get_or_remove_footnotes. 2014-06-10 Gavin Smith * info/session.c (read_nodename_to_kill, kill_node, info_kill_node): Removed. (info_history_node): Call forget_node. (forget_node): Call set_window_pagetop and window_compute_line_map. * info/infomap.c (default_emacs_like_info_keys) (default_vi_like_info_keys): kill-node binding removed. * NEWS, * doc/info-stnd.texi (Node Commands): M-x kill-node command removed. 2014-06-10 Gavin Smith * info/window.c (window_set_node_of_window): Call window_compute_line_map. 2014-06-09 Gavin Smith * info/dir.c (dir_entry_of_infodir): Return null if nothing found. * info/window.h (WINDOW): Declare hist_index, hist_slots with size_t instead of int. * info/session.h: Add declaration of forget_window_and_nodes and forget_node. * info/infopath.c (build_infopath_from_path): Remove unused variable. * info/session.c (point_backward_word, info_next_line, info_prev_line) (kill_node): Remove unused local variables. 2014-06-09 Gavin Smith * doc/info-stnd.texi (Variables) : Updated to state that the default value is 1 (changed in 4.12 release). 2014-06-09 Gavin Smith * info/session.c (info_last_executed_command): Removed. (info_session, info_abort_key, info_dispatch_on_key): Don't set info_last_executed_command. (info_search_internal): Comment updated. 2014-06-08 Gavin Smith * info/window.c, info/session.c (window_scroll_step): Moved between files. * info/session.c, info/window.c (set_window_pagetop): Moved between files. * info/session.c (info_show_point): Handle scroll-step variable. (window_adjust_pagetop): Call window_line_of_point. Call set_window_pagetop to scroll display. Always centre current line ignoring scroll-step variable. * info/session.c (info_next_line, info_prev_line): Call point_next_line and point_prev_line to handle traversing node hierarchy. * info/window.c (window_initialize_windows, window_make_window): Initialize goal_column fields to 0. (window_get_goal_column): Removed. * info/session.c (info_read_and_dispatch): Don't reset goal_column. (move_to_new_line, move_to_goal_column): Renamed. Only move to goal column. (info_show_point): Save goal_column. Callers updated. (info_move_to_prev_xref, info_move_to_next_xref): Don't call move_to_new_line. (info_move_to_window_line): Call info_show_point. (info_end_of_node): Call info_show_point. 2014-06-08 Karl Berry * util/texi2dvi: use THUMBPDF_CMD instead of THUMBPDF. Report/suggestion from Kurt Hornik, 8 Jun 2014 09:49:47. 2014-06-08 Gavin Smith * info/info.c (get_initial_file): For inexact dir match, discard command-line argument after processing, and clear error message. 2014-06-08 Gavin Smith * info/nodes.h (N_IsDir): New flag. * info/dir.c (build_dir_node): Set N_IsDir on flags for return node. * info/info-utils.c (scan_reference_marker): Split out from scan_node_contents. (scan_reference_label): Arguments changed. Don't create REFERENCE object. Don't skip whitespace at start of label. Return value says whether the syntax was valid. (scan_reference_target) Look at flags field of NODE to tell if it is an index node. Look at type field of REFERENCE to tell whether it is a menu entry. [preprocess-nodes=On]: Display menu item descriptions on same line if there is space. (scan_node_contents): Call info_new_reference. Check if reference text was contained within parentheses. 2014-06-08 Karl Berry * doc/texinfo.texi (Raw Formatter Commands): fix grammar. * doc/info.texi (Help-^L): "mode line", "screenful", stand-alone and Emacs Info both use the mode line. Use x instead of weird C-x 0 to get rid of help msg. Suggestion from Benno Schulenberg, 07 May 2014 23:06:54. * doc/info-stnd.texi: "mode line", "screenful". 2014-06-05 Gavin Smith * info/session.c (gc_file_buffers_and_nodes): Check equality with 'filename' field as well as 'fullpath' field of FILE_BUFFER. * info/echo-area.c (restore_calling_window): Remove handling of window pagetops. Don't call display update functions. Remove disabled code. (ea_possible_completions): Remove handling of window pagetops. * info/window.c (window_make_window): Don't call window_adjust_pagetop. It's possible that the new window could be closed without the old window having been selected in the meantime, and this would leave the point where it was. * info/session.c (info_next_window, info_prev_window): Call window_adjust_pagetop on newly active window. * info/window.c (window_change_window_height): Don't call window_adjust_pagetop. (window_set_node_of_window): Don't call window_adjust_pagetop if there is no node. * info/window.c (window_new_screen_size): Call window_adjust_pagetop on active window after resizing all the windows. 2014-06-05 Gavin Smith * info/nodes.h (N_IsIndex): New macro. * info/info-utils.c (scan_node_contents): Record if an index tag was seen. * info/session.c (forward_move_node_structure) (backward_move_node_structure): Don't go down menus in index nodes. 2014-06-05 Gavin Smith * info/nodes.c: Check if return value of file_buffer_of_window is null. (INFO_NO_TAGS, INFO_GET_TAGS): Removed. Uses updated. 2014-06-05 Gavin Smith * info/session.c (free_history_node): New function. Free references for internal nodes. (forget_node, forget_window_and_nodes): Call free_history_node. (info_split_window): Copy references if node in window is an internal one. (info_delete_window): Formatting. (info_delete_window_internal): Remove out-of-date comment. * info/session.c (gc_file_buffers_and_nodes): New function to replace info_gc_file_buffers and gc_pointers. All callers updated. (add_gcable_pointer, gcable_pointers, gcable_pointers_index) (gcable_pointers_slots): Moved from info/gc.c. * info/gc.c, info/gc.h: Files removed. (Copyright years were a subset of those in session.c.) * info/nodes.c (info_loaded_files_index): New variable. (remember_info_file): Merged into info_load_file. (forget_info_file): Declared as static. * info/nodes.h: Changes to comments and formatting. 2014-06-03 Gavin Smith * info/session.c (remember_window_and_node, info_set_node_of_window): remember_window_and_node merged. * info/window.c (window_make_window): Arguments changed. Don't set node of window. All callers updated. * info/session.c (info_split_window): Call info_set_node_of_window instead of remember_window_and_node. * info/footnotes.c (info_get_or_remove_footnotes): Reorganized, Comments changed. 2014-06-03 Gavin Smith * info/session.c (info_split_window): Always operate on active window. * info/window.c (window_make_window) * info/session.c (info_split_window) * info/echo-area.c (ea_possible_completions) [!SPLIT_BEFORE_ACTIVE]: Made unconditional. 2014-06-03 Gavin Smith * info/session.c (info_search_in_node_internal, info_search_internal): Replace calls to set_remembered_pagetop_and_point, window_set_node_of_window and remember_window_and_node with call to info_set_node_of_window. (set_remembered_pagetop_and_point): Merged into info_set_node_of_window. 2014-06-03 Gavin Smith * info/footnotes.c (info_get_or_remove_footnotes): Call info_set_node_of_window instead of window_set_node_of_window. * info/session.c (remember_window_and_node): Declared static. 2014-06-03 Gavin Smith * info/pseudotty.c: Call posix_openpt instead of getpt. * info/t/Init-intera.inc: Don't redirect stderr. Set LIBC_FATAL_STDERR_. * info/t/body-start.sh, info/t/end-of-line.sh, info/t/goto-quoted.sh, info/t/index-long-nodeline.sh, info/t/index.sh, info/t/next-quoted.sh, info/t/quoted-label-and-target.sh, info/t/quoted-label-as-target.sh, info/t/quoted-target.sh, info/t/split-index.sh, info/t/tab.sh: Don't exit immediately if no output file was created and always proceed to cleanup. 2014-06-01 Gavin Smith * info/session.c (forget_node, forget_windows_and_nodes): Free NODE objects in window history list. (info_split_window): Copy the NODE object when creating a new window. * info/echo-area.c (restore_calling_window): Call forget_node to properly erase completions window from window history and restore previous node. (ea_possible_completions): Call info_set_node_of_window instead of window_set_node_of_window to save point and pagetop. (calling_window_point, calling_window_pagetop): Delete unused. * info/nodemenu.c (list_visited_nodes): Call info_set_node_of_window instead of set_remembered_pagetop_and_point, window_set_node_of_window and remember_window_and_node individually. (get_visited_nodes) Remove unnecessary check. * info/indices.c (do_info_index_search, info_index_apropos) * info/infodoc.c (info_find_or_create_help_window): Call info_set_node_of_window instead of window_set_node_of_window. * info/session.c (set_remembered_pagetop_and_point): Declared static. 2014-06-01 Gavin Smith * info/session.c (info_print_node, print_node): print_node merged into info_print_node. (remember_window_and_node): Remove check for remembering the same node twice. (info_scroll_backward_page_only_set_window): Call the right function. * info/dir.c (dir_buffer, create_dir_buffer): Removed. (dir_node): New static variable. (get_dir_node): Store dir node as a simple NODE variable, not in the tags table of a FILE_BUFFER. Comment updated. 2014-06-01 Gavin Smith * info/window.h (WINDOW): Fields nodes, pagetops, points nodes_index, nodes_slots removed. Replaced with hist, hist_index and hist_slots. * info/gc.c (gc_pointers) * info/nodemenu.c (get_visited_nodes): Iterate over hist array in WINDOW. * info/session.c (set_remembered_pagetop_and_point) (remember_window_and_node, forget_window_and_nodes) (info_handle_pointer, kill_node, info_gc_file_buffers): Access window node history in hist field of WINDOW. (remember_window_and_node): Use add_pointer_to_array macro. (forget_node): New function. (forward_move_node_structure, kill_node): Call forget_node. 2014-06-01 Gavin Smith * info/session.c: Some reordering of definitions and section comments. No functional changes intended. 2014-05-31 Gavin Smith * info/infodoc.c (dump_map_to_text_buffer): Hide "echo-area-insert" entries in help window. * info/session.c (info_win_find_node): Merged into info_handle_pointer. 2014-05-31 Gavin Smith * info/window.h (WINDOW): 'current' field removed. * info/window.c (set_remembered_pagetop_and_point) (remember_window_and_node, forward_move_node_structure, kill_node): Use nodes_index field instead. (We cannot go forward in the node history, so the current node is always the last one in the list.) 2014-05-31 Gavin Smith * info/session.c (forget_windows_and_nodes): Don't free node structures in a window's history when it is deleted. (info_handle_pointer): Don't save pagetop and point - done when info_set_node_of_window is called. (remember_window_and_node): NODE argument removed. All callers updated. 2014-05-31 Gavin Smith * info/window.h (WINDOW): Fields added from INFO_WINDOW: nodes, pagetops, points, current, nodes_index, nodes_slots. Field 'window' not added. * info/info.h (INFO_WINDOW): Typedef deleted. * info/session.c (info_windows, info_windows_index) (info_windows_slots): Removed. (get_info_window_of_window, consistency_check_info_windows): Removed. (set_remembered_pagetop_and_point, remember_info_and_node) (forget_window_and_nodes, info_handle_pointer, (forward_move_node_structure, read_nodename_to_kill) (info_gc_file_buffers, kill_node): Access data in WINDOW objects instead of INFO_WINDOW objects. (info_win_find_node): Argument type changed from INFO_WINDOW to WINDOW. (info_split_window, kill_node): Loops over info_windows removed. * info/nodemenu.c (get_visited_nodes) * info/gc.c (gc_pointers): Iterate over 'windows' instead of 'info_windows'. 2014-05-29 Gavin Smith * info/info.c (add_initial_nodes) : Look for case-ignoring initial substring in indices if no exact match found. * info/info.c (main): Set preprocess_nodes=0 when dumping output to a file. * info/session.c (dump_nodes_to_file): Checks for DUMP_APPEND removed. * info/session.h (DUMP_APPEND): Remove unused. * info/info-utils.c (info_new_reference): New function. * info/info.c (get_initial_file, add_initial_nodes) (info_find_matching_files): Call info_new_reference. 2014-05-28 Gavin Smith * info/session.c (point_next_line, point_prev_line): Check for whether we should call forward_move_node_structure or backward_move_node_structure added. (point_prev_line): Go to end of previous line instead of start. (info_forward_char, info_backward_char, info_forward_word) (info_backward_word): Rely on checks in point_next_line, point_prev_line. (point_next_line, point_prev_line, point_forward_char) (point_backward_char, point_forward_word, point_backward_word): Rely on line map already being calculated for current line. (point_skip_ws_forward): Merged into point_forward_word. (point_skip_ws_backward): Merged into point_backward_word. (looking_at_alnum): New function. (_looking_at_newline, looking_at_newline): Renamed. (point_forward_word, point_backward_word): Call looking_at_alnum. (move_to_new_line): First argument deleted. All callers updated. Some definitions moved in file for better organization. 2014-05-27 Gavin Smith * info/info.c (add_initial_nodes) <--show-options>: Avoid loading extra node if we came here from a dir entry. (allfiles_create_node): Use numbers as labels, as it was before. Using the label as the node spec caused problems when the referenced node didn't exist. Output index tag to show destinations when preprocess-nodes=On. 2014-05-27 Gavin Smith * info/info-utils.c (info_get_menu_entry_by_label): New argument for sloppy menu reading. * info/info.c (get_initial_file): Calls to lookup_dir_entry updated. Try reading dir files sloppily if no exact match was found. Function reorganized. (add_initial_nodes, main): Handle case when we were invoked like "--node (emacs)Buffers". (info_find_matching_files): Check for dir entries as well. * info/dir.c (lookup_dir_entry): New argument for whether to search inexactly. Callers updated. (dir_entry_of_infodir): New function. * info/session.c (entry_in_menu): Removed. Caller in info_intuit_options_node updated. (info_win_find_node): Null check. * info/filesys.c (info_add_extension): No longer static. 2014-05-25 Gavin Smith * info/infodoc.c (create_internal_info_help_node): Show program version in help window. * info/session.c (info_info_version): New command to show version of program. * NEWS, * doc/info-stnd.texi (Miscellanous Commands): Document "M-x info-version". 2014-05-25 Karl Berry * doc/info-stnd.texi (Invoking info): tweaks to invocation examples; mention GROFF_SGR, etc. 2014-05-25 Gavin Smith * info/window.c (window_new_screen_size): Call forget_window_and_nodes instead of window_deletion_notifier. (window_deletion_notifier): Removed. * info/session.c (initialize_window_session): Don't set window_deletion_notifier to forget_window_and_nodes. * info/window.c (window_physical_lines): Delete unused. * info/session.c (internal_next_line): Delete unused. (info_menu_digit): Formatting. 2014-05-25 Gavin Smith * info/session.c (info_scroll_forward, info_scroll_backward) (info_scroll_forward_set_window, info_scroll_backward_set_window) (info_scroll_forward_page_only, info_scroll_backward_page_only) (info_scroll_forward_page_only_set_window) (info_scroll_backward_page_only_set_window) (info_scroll_half_screen_down, info_scroll_half_screen_up) (info_down_line, info_up_line): Rely on checks in _scroll_forward and _scroll_backward for negative arguments. (_scroll_forward, _scroll_backward): 'key' argument removed. Callers updated. 2014-05-25 Gavin Smith * info/filesys.c (info_file_find_next_in_path): Use infopath_next to iterate over INFOPATH. Don't take a path argument. Callers updated. (info_file_in_path): Don't take a path argument. All callers updated. * info/filesys.c, info/infopath.c (extract_colon_unit): Function definition moved. * info/infopath.c (INFO_DIR): New typedef. (infodirs, infodirs_index, infodirs_slots): New variables. (infopath_add): Always add directory to end of search path, checking if it doesn't exist or if it is a duplicate. Check for inode == 0 for MS-Windows copied from dir.c:new_dir_file_p. Argument 'where' removed. All callers updated. (infopath_add_dir) New function. (infopath_first, infopath_next): Return values not freed by caller. Callers updated. (infopath, infopath_string): Function renamed. Return value to be freed by caller. Caller updated. (build_infopath_from_path): Rely on duplicate detection in infopath_add. Add directories to search path instead of returning a string containing their names. (compact_infopath, infopath_clear,infopath_base, infopath_size) (infopath_dirty, nextdir): Removed. * info/infopath.h (INFOPATH_PREPEND, INFOPATH_APPEND, INFOPATH_INIT): Removed. * info/dir.c (dir_file_list_entry_type, new_dir_file_p): Removed. (build_dir_node): Rely on duplicates being removed in INFOPATH to avoid a duplicate dir file. 2014-05-24 Gavin Smith * info/indices.c (apropos_in_all_indices): Fix code for avoiding reading the same file twice. 2014-05-23 Gavin Smith * info/indices.c (info_indices_of_file_buffer): Slightly more informative comment. * info/filesys.c (info_find_fullpath): Disabled code removed. * info/window.c: Inaccurate section label comment removed. (window_make_window): Disabled code removed. 2014-05-21 Gavin Smith * info/t/Init-intera.inc: Account for incomplete output from pseudotty. 2014-05-21 Gavin Smith * info/indices.c (info_index_apropos): Use text_buffer_* functions directly. Don't create apropos window if nothing found. * info/infodoc.c (dump_map_to_message_buffer) (dump_map_to_text_buffer): Renamed. Take struct text_buffer * argument. (create_internal_info_help_node): Don't use *_message_buffer functions. * info/nodemenu.c (get_visited_nodes): Don't use *_message_buffer functions. * info/window.c (build_message_node): Don't use *_message_buffer functions. (message_buffer, build_message_buffer, message_buffer_to_node) (initialize_message_buffer, printf_to_message_buffer): Removed. 2014-05-21 Karl Berry * doc/texinfo.tex (\documentlanguage): \let_ inside \tex, no need for extra group it seems; and call \documentlanguagetrywithoutunderscore without braces, so we get the expected parsing-off of the _ (or not). Report from German Arias, help-texinfo 18 May 2014 20:26:02. 2014-05-21 Gavin Smith * info/echo-area.c (ea_possible_completions): Use text_buffer_* functions instead of *_message_buffer functions. * info/window.c (text_buffer_to_node): New function. 2014-05-21 Gavin Smith * info/infodoc.c (dump_map_to_message_buffer): Don't call character_width or message_buffer_length_this_line. * info/window.c (message_buffer_length_this_line, character_width) (string_width): Removed. (message_buffer): No longer static. * info/window.c (calculate_line_starts): Merged into recalculate_line_starts. 2014-05-21 Gavin Smith * info/footnotes.c (info_get_or_remove_footnotes): If window too small to split to show footnotes window, don't crash. 2014-05-20 Gavin Smith * info/window.c (window_initialize_windows): Use xzalloc to allocate an object with all bytes 0. * info/info.h (zero_mem): Removed. * info/t/Init-intera.inc: Extra line of output reporting on progress. * info/session.c (info_end_of_line): Get end of line from line_map object. * info/window.c (window_scan_line, window_compute_line_map): Functions merged. (add_line_map): Merged into the new window_compute_line_map. (window_end_of_line): Removed. * info/t/end-of-line.sh: New test. 2014-05-19 Gavin Smith * info/t/Init-intera.inc: Confirm pts file exists before redirecting stdin, stdout and stderr. * info/t/README: File added. * info/info-utils.c (printed_representation): Proper cursor positioning for multi-column characters. 2014-05-19 Gavin Smith * info/nodemenu.c (get_visited_nodes): Don't reuse a local variable for an unrelated purpose. Declared static. Argument not set to anything other than null in calling code removed. All callers updated. * (select_visited_node): Don't free objects too early and always free them before function exit. * info/window.c (message_buffer_to_node): Comment changed. 2014-05-19 Gavin Smith * doc/info-stnd.texi (Invoking Info): Mention differences in groff terminal output. 2014-05-18 Gavin Smith * info/info-utils.c (scan_reference_label): Simpler logic for setting start and end fields of reference. (skip_input): Don't touch output_bytes_difference if not rewriting node. * info/info-utils.c (scan_reference_target): [preprocess_nodes=On] Better condition for which line to output file specifier on. * info/pseudotty.c: Don't exit on a read error. 2014-05-18 Gavin Smith * info/dir.c (build_dir_node): Unused local variable deleted. * info/indices.c (info_next_index_match): Unused local variable deleted. * info/info-utils.c (info_parse_node): Return 0 if nothing passed. (scan_reference_label): Unused local variable deleted. (scan_node_contents): Unused local variable deleted. * info/info.c (get_initial_file, add_initial_nodes) (allfiles_create_node, main): Unused local variables deleted. (node_file_name): Deleted. * info/man.c (xrefs_of_manpage): Unused variables deleted. (locate_manpage_xref): Deleted. * info/nodemenu.c (select_visited_node): Unused local variable removed. * info/nodes.c (get_nodes_of_info_file, get_file_character_encoding) (set_tag_nodelen, info_node_of_tag): Ununsed local variables removed. (get_filename_and_nodename): Specify return type as void. * info/session.c (begin_multiple_window_session) (info_scroll_forward_set_window, info_scroll_backward_set_window) (info_scroll_backward_page_only_set_window) (info_menu_or_ref_item, info_move_to_xref, info_follow_menus): Unused local variables deleted. (info_display_file_info): Use "%ld" instead of "%d". (dump_nodes_to_file): Use an initialized variable to print an error message. Unused variable deleted. * info/search.c (regexp_search, find_node_in_binding): Unused variables deleted. * info/terminal.c (terminal_prep_terminal): Always return an explicit value. * info/window.c (window_make_modeline): Use "%ld" instead of "%d" in format argument to sprintf. (process_node_text): Unused variable deleted. 2014-05-18 Gavin Smith * info/t (all files): Set srcdir variable before including any shell snippets. Suggested by Patrice Dumas. Other fixes for tests in out-of-source builds. * info/info-utils.c (printed_representation): Corrected output lengths for META-x and DEL. Function comment corrected. (init_output_stream): Always initialize output_bytes_difference. (copy_converting): Remove unnecessary cast. (scan_reference_label): [QUOTE_NODENAMES] Skip quoting bytes properly. * info/pseudotty.c: Don't open slave side of pseudoterminal line. Report on progress to stderr. * info/filesys.c (info_add_extension): Return null pointer properly if nothing found. 2014-05-18 Patrice Dumas * tp/Texinfo/Convert/Converter.pm (output): warn about incompatibilities between output and split only if split. * tp/tests/Makefile.am, tp/tests/reference/, tp/tests/t/: add tests for stdout. * install-info/tests/Makefile.am (EXTRA_DIST): use the correct file ii-0054-input-info-file.gz. * tp/texi2any.pl: put installation directory last in @INC, in order to have -I perl arguments take precedence. Report from Aharon Robbins. * tp/texi2any.pl: no warning for non empty @part for docbook and HTML since non empty parts are formatted correctly for those formats. 2014-05-17 Gavin Smith * info/window.c (process_node_text): Formatting and tweaks to carrying character over from one line to another. Return proper value. * info/t/Init-intera.inc: Use usleep instead of sleep to speed up tests. 2014-05-17 Gavin Smith * info/window.c (process_node_text, info_tag) * info/info-utils.c (printed_representation): do_tags argument removed. All callers updated. * info/tag.c (handle_tag): Removed. 2014-05-17 Gavin Smith * info/window.c (process_node_text): Don't split printed representations like "^X" across lines. * info/info-utils.c (printed_representation): Take mbi_iterator_t argument and handle Info tags and terminal escape sequences. * info/window.c (process_node_text, window_scan_line): Use of printed_representation updated. * info/window.c (info_tag): No longer static. 2014-05-14 Gavin Smith * info/window.c (process_node_text): First argument changed from void * to WINDOW *. Callers updated. * info/display.c (display_node_text): * info/window.c (_calc_line_starts): Receive WINDOW * argument. * info/window.h (WINDOW): New field line_slots. * info/info.h (add_pointer_to_array): Work for integer types. * info/info.h (add_element_to_array): Synonym for add_pointer_to_array. * info/display.c (struct display_node_closure): Removed. * info/window.c (struct calc_closure, calc_closure_expand): Removed. 2014-05-14 Gavin Smith * info/window.h (WINDOW): line_starts changed to pointer to (array of) offsets. This stops the need to write expressions like "win->line_starts[line] - win->node->contents" in many places. All uses updated. * info/window.c (process_node_text): Set line_starts. * info/window.c (process_node_text, _calc_line_starts) * info/display.c (display_node_text): Consistent variable naming among local variable names in process_node_text and the arguments for the functions it calls. 2014-05-14 Gavin Smith * info/session.c (info_select_reference): Code merged from info_next_index_match: Call window_log_to_phys_line. * info/indices.c (info_next_index_match): Call info_select_reference. * info/Makefile.am: Remove index-long-nodeline.sh from XFAIL_TESTS. 2014-05-13 Gavin Smith * info/info-utils.c (scan_node_contents, scan_reference_label): [preprocess-nodes=On] Perform character encoding on reference label. (scan_reference_target): Sometimes output newline before file indicator. (avoid_see): Use length from input for comparison. 2014-05-13 Gavin Smith * info/info-utils.c (scan_reference_label) Declared static. (scan_reference_target): Argument added. Declared static. [preprocess-nodes=On]: Add space before output "(" if not at start of line. Hide full stop terminating reference if it looks like (*note Label:(file)node.) Caller updated. (safe_string_index): Utility function. (avoid_see_see): New function. (scan_node_contents): Call avoid_see_see. 2014-05-11 Gavin Smith * info/info-utils.c (info_parse_node): Don't include terminating character in returned length. (scan_reference_target): [preprocess-nodes=On] Hide terminating '.' in a menu entry. * info/search.c: (find_node_in_binding): Don't view '.' as terminating character in nodeline. * info/session.c (dump_node_to_stream): Use PARSE_NODE_VERBATIM as argument to info_get_node. * info/t/file-node-with-dot.sh: New test. * info/t/file-node: Comment updated. 2014-05-11 Gavin Smith * info/info.c (add_initial_nodes): Discard dir entry from initial node list if --node was used. * info/session.c (info_move_to_xref): Remove set of W_UpdateWindow. This was causing some screen flicker. * info/infodoc.c (info_get_help_window): Remove unnecessary set of W_UpdateWindow. * info/session.c (quit_info_immediately): Declared static. 2014-05-11 Gavin Smith * info/info-utils.c (scan_reference_target) : Deal with newline following colon in cross-reference better. (info_copy_references, copy_converting): Comments added. * info/info.c (get_initial_file): Call info_copy_reference on REFERENCE retrieved from dir. 2014-05-11 Patrice Dumas * Texinfo/Parser.pm, Texinfo/Structuring.pm(warn_non_empty_parts), t/test_utils.pl, texi2any.pl: warning for @part with text. * tp/Texinfo/Convert/DocBook.pm: add for non empty @part text. Report from Aharon Robbins. 2014-05-11 Gavin Smith * info/info.c (add_initial_nodes): When following menus, start at node in ref_list if there is one already. * info/session.c (info_folllow_menus): Comment about allocation added. * info/t/dir-file-index.sh, info/t/file-index.sh: New tests. * info/t/body-start.sh: New test. 2014-05-11 Gavin Smith * info/dir.c (dir_node, get_dir_node): Function renamed. (lookup_dir_entry): New function. Case insensitive lookup based on that in info_follow_menus. * info/info.c (get_initial_file): Call lookup_dir_entry. * info/session.c (info_follow_menus): Unnecessary test removed. * info/t/dir-file-sloppily.sh: New test. 2014-05-11 Patrice Dumas * tp/t/test_utils.pl(test): use SKIP and not TODO, as TODO is assumed to fail, while there is an unknown output since different perl verions treat NEL differently. * tp/Texinfo/Common.pm(is_content_empty), tp/t/test_is_content_empty.t: check if a tree item contains non empty content. 2014-05-10 Gavin Smith * info/info-utils.c (info_parse_node): Call read_quoted_string to get node name. (read_quoted_string) [QUOTE_NODENAMES]: Interpretation of quoting mechanism made conditional. (scan_reference_target): Add comment to clarify that references like "*note (filename)nodename::" are not supported. (scan_node_contents): Free output of read_quoted_string. * info/search.c (skip_node_characters): Function merged into info_parse_node. * info/nodes.c (get_nodes_of_info_file): Call get_quoted_string to read node name from node information line. * info/t/reference-quoted.sh: Deleted, replaced with new tests: * info/t/quoted-label-as-target.sh, info/t/quoted-target.sh, info/t/quoted-label-and-target.sh * info/info.c (get_initial_file): Store full path of file found from dir entry. 2014-05-10 Gavin Smith * info/info.c (get_initial_file): Special handling of "info -O info" moved from add_initial_nodes. Save node name found in dir. * info/infodoc.c (replace_in_documentation): Show "H" to close help window. * doc/info-stnd.texi: Tweaks to Invocation. 2014-05-09 Gavin Smith * doc/info-stnd.texi: Some text from documentation of --file option merged further up in node. 2014-05-09 Gavin Smith * info/infodoc.c (info_find_or_create_help_window) Close help window if in it already. Display error message if window cannot be created. Caller in info_get_help_window updated. * info/window.c (window_delete_window): Comment added warning about using this function. 2014-05-09 Gavin Smith * info/info-utils.c (deleted_lines): Variable deleted. All accesses removed. (scan_node_contents): [preprocess-nodes=On] Remove blank line after "* Menu:" marker. * info/nodemenu.c (nodemenu_format_info): Add blank line after "* Menu:" marker. (get_visited_nodes): Add blank line at start of node to avoid first line being interpreted as a node information line. * info/signals.c (redisplay_after_signal): [automatic-footnotes=On] Redisplay footnotes after a window resize to get the correct size. * info/footnotes.c (info_get_or_remove_footnotes): Mark footnotes windows with W_TempWindow. (Note: This flag was not used anywhere.) * info/window.c (window_delete_window): Prefer windows that are not marked with W_TempWindow. (For example, opening and closing a help window would result in an enlarged footnotes window being selected.) 2014-05-09 Gavin Smith * info/nodes.c (info_find_file): If full path to file has been given, look for a loaded file with that path exactly. (info_find_subfile): Check if subfile was loaded with file extensions added. (info_load_file): Don't retain reference to string argument. (get_filename_and_nodename): Use full path of file to follow references within a file. 2014-05-09 Gavin Smith * info/nodes.c (info_load_file): Function declared static. * info/info.c (main): Call info_find_file instead. 2014-05-09 Gavin Smith * info/info.c (all_files, main): all_files merged into main. (add_initial_nodes): Store full path of initial nodes instead of plain file name. (info_find_matching_files): Return type changed. * info/session.c (begin_multiple_window_info_session): Don't call initialize_info_session or display a welcome message. Caller in main updated. * info/info.c (dirname): Delete unused. * info/session.c (dump_node_to_file): Delete unused. 2014-05-09 Gavin Smith * info/infodoc.c (info_get_info_help_node): Don't split window to display Info tutorial. * info/session.c (begin_multiple_window_info_session): Unused variable removed. 2014-05-08 Gavin Smith * info/session.c (select_menu_digit): Return null if no menu. (info_menu_digit): Check if references field of node is null. (info_menu_or_ref_item): Abort if no references. (info_menu_item): Print error message if no references. 2014-05-08 Gavin Smith * info/session.c (initialize_terminal_and_keymaps): Don't quit if terminal is dumb, because we might not be running interactively. (initialize_info_session): Quit if terminal is dumb. * info/terminal.c (terminal_initialize_terminal): Comment corrected. (terminal_prep_terminal): Return 0 for a dumb terminal. * info/t/Init-test.inc: Run tests with TERM=dumb by default. * info/t/Init-intera.inc: Run interactive tests with TERM=vt100. Suggested by Karl Berry. 2014-05-08 Gavin Smith * info/info-utils.c (scan_node_contents): Pass offset relative to start of node contents of "*" starting reference to scan_reference_label. Report by Benno Schulenberg 8th May, 2014. 2014-05-08 Gavin Smith * info/session.c (begin_multiple_window_info_session): Deal with references to desired nodes being invalid and display dir node as a back-up. * info/filesys.h (DEFAULT_INFOPATH): "." moved to end of path. * info/t/file-relative-path.sh: New test. 2014-05-08 Gavin Smith * info/t/Init-intera.inc: Redirect stdin as well as stdout and stderr. * info/t (all files): Look in $srcdir for test data to faciliate VPATH builds. * info/t/file.sh: Use simple filename argument to --file. 2014-05-08 Gavin Smith * doc/info-stnd.texi: Give overview of invocation. 2014-05-08 Gavin Smith * info/info.c (main): If slash in first non-option argument, interpret as if it had been passed with --file. * info/session.c (info_select_reference): Null check for label field of REFERENCE. * info/t/relative-path.sh: New test. 2014-05-07 Gavin Smith * info/filesys.c (filesys_error_string): Correct comment about whether return value should be freed by caller or not. * info/info-utils.c (scan_reference_label): Remove superseded correction to 'end' field of REFERENCE. * info/nodes.h: Avoid double WINDOW typedef. Reported by Benno Schulenberg 06 May 2014. 2014-05-07 Karl Berry * Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm: unintended test commit, tweak doc * configure.ac (AC_INIT): go to 5.2dev, to reduce confusion with released versions. * doc/info-stnd.texi (@copying): Front-Cover Texts with a capital T. Implicitly reported by Benno, 06 May 2014 22:04:00. * doc/info.texi (Miscellaneous Commands): H is for get-help-window (the terse command list) and h is for get-info-help-node (the tutorial), as with Emacs Info. Except in vi mode, where h is also for get-help-window; is that what vi-ers want? * info/session.c (display_startup_message): mention get-info-help-node as well as get-help-window. * info/infomap.c (default_emacs_like_info_keys): switch h/H accordingly, as discussed and reported again by Benno, 06 May 2014 22:04:00. 2014-05-07 Gavin Smith * info/info.c (add_initial_nodes): Don't free return value of info_indices_of_file_buffer. * info/pseudotty.c: #define _GNU_SOURCE instead. Note added on the portability of various functions. * info/t/Init-intera.inc: Note added on problem with crashes during tests. 2014-05-06 Gavin Smith * info/session.c (begin_multiple_window_info_session): Take array of REFERENCE * arguments. Caller in info.c:main updated. (info_select_reference): Go to line number given by reference. All callers updated. (info_intuit_options_node): Return REFERENCE * instead of char *. Callers updated. * info/session.c (dump_nodes_to_file): Take reference array as a parameter. Callers updated. * info/info.c (ref_list, ref_slots, ref_index): New file-level variables. (get_initial_file): Add reference to man page to ref_list if we fell back to it. (add_initial_nodes): Add nodes to ref_list instead of user_nodenames. * info/session.c (info_follow_menus): Work for split files. * info/indices.c (info_indices_of_file_buffer): Comment added about whether return value should be freed. 2014-05-06 Patrice Dumas * tp/Makefile.am (install-exec-hook): use $(transform) for --program-suffix. Report from Glenn Morris. * Pod-Simple-Texinfo/lib/Pod/Simple/Texinfo.pm, Pod-Simple-Texinfo/pod2texi.pl: add texinfo_sectioning_style 'appendix' and command-line option --appendix-sections. 2014-05-05 Karl Berry * doc/texinfo.tex (\secfonts): increase \setleading to 17pt. 2014-05-05 Gavin Smith * info/info-utils.c (read_quoted_string): Include any quoting characters in returned length. Account for terminator character appearing immediately (for example, if input is malformed). (parse_top_node_line): Read fields with read_quoted_string. (scan_reference_label): Arguments changed. Call canonicalize_whitespace on reference label. Don't output "See". Caller in scan_node_contents updated. (colon_after_newline): Deleted. (scan_node_contents): Remove S_SkipDest flag from search so that results are at beginning of match instead of end. Use read_quoted_string to get reference labels. * info/session.c (info_handle_pointer): Read "Next" etc. pointers with PARSE_NODE_VERBATIM instead of PARSE_NODE_START. 2014-05-04 Gavin Smith * info/info-utils.c (read_quoted_string): New function. * info/search.c (find_node_in_binding): Call read_quoted_string. * info/t/goto-quoted.sh, info/t/reference-quoted.sh, info/t/next-quoted.sh: New tests. 2014-05-04 Gavin Smith * info/t/apropos-index.sh: New test. 2014-05-03 Gavin Smith * info/indices.c (info_indices_of_file_buffer, do_info_index_search) (index_entry_exists, apropos_in_all_indices, info_index_apropos) (info_virtual_index) Call free instead of info_free_references or info_reference_free, because the REFERENCE * objects in the array are still referenced elsewhere. * info/info-utils.c (info_concatenate_references): Don't free arguments. Always return a new array, even if either of the arguments are null. Callers updated. * info/indices.c (info_apropos): Merged into info.c:main. (APROPOS_NONE) Moved to indices.h. * info/info.c : Call apropos_in_all_indices only after infopath_init has been called. * info/indices.c (apropos_in_all_indices): Get file buffer directly, rather than loading a node first. * info/man.c (manpage_xrefs_in_binding): Delete unused. 2014-05-03 Gavin Smith * info/window.c (string_to_node): Function deleted. Caller in create_internal_info_help_node updated. * info/window.c, info/man.c (clean_manpage): Function moved. * info/window.c, info/info-utils.c (ansi_escape): Function moved. * info/info-utils.c (info_get_menu_entry_by_label): Arguments changed. * info/session.c (entry_in_menu): Arguments changed. 2014-05-02 Gavin Smith * info/info.c (all_files): Get working again, having been broken by recent changes to startup. Don't use info_follow_menus. * info/indices.c (allfiles_node): Declared global. (allfiles_create_node) Moved to info.c * info/info.c (node_file_name): Argument dirok deleted. (allfiles_create_node): Don't use numbers as labels of menu entries. Don't create a containing FILE_BUFFER for allfiles_node. (info_find_matching_files): Use add_pointer_to_array to build up list. Check for man pages directly (previously this was done in info_follow_menus). * info/info.h (add_pointer_to_array): Comment rewritten to match macro definition. 2014-05-02 Gavin Smith * info/footnotes.c (info_get_or_remove_footnotes): Don't display footnotes for "*" node. 2014-05-02 Gavin Smith * info/infodoc.c (create_internal_info_help_node): Don't print blank line at end of help window. This could result in scrolling too far down when paging down to the bottom. 2014-05-02 Gavin Smith * info/filesys.c: [!BUILDING_LIBRARY], [!BUILDING_LIBARARY]: #if checks conditional upon these macros removed. 2014-05-02 Gavin Smith * info/filesys.c (info_add_extension): Loop trying various file extensions moved from info_file_find_next_in_path. (info_find_fullpath): Account for null struct stat argument. Check case when path is not absolute, but contains intermediate subdirectories. * info/t/split.sh: New test. 2014-05-02 Gavin Smith * info/session.c (info_set_node_of_window): Argument 'remember' removed. All callers updated. (begin_multiple_window_info_session): Don't call remember_window_and_node when tiling. * info/indices.c (do_info_index_search): Take FILE_BUFFER argument. All callers updated. * info/info.c (main) : Don't set node of window before calling do_info_index_search. 2014-05-01 Gavin Smith * info/indices.c (info_indices_of_file_buffer): Store return value in index_index. 2014-05-01 Gavin Smith * info/info.c (get_initial_file, add_initial_nodes) (show_error_node) * info/session.c (begin_multiple_window_info_session) (info_follow_menus): Use char * to store error message, and only build NODE if necessary. * info/info.c (info_find_matching_files): Declared static. 2014-05-01 Gavin Smith * info/session.c (begin_multiple_window_info_session): Call initialize_info_session and display startup message or error. Caller updated. 2014-05-01 Gavin Smith * info/nodes.c (info_get_node_of_file_buffer): Order of arguments reversed. (info_node_of_file_buffer_tags): Merged into info_get_node_of_file_buffer. * info/session.c (initialize_info_session): Argument 'clear_screen' removed. 2014-05-01 Gavin Smith * info/filesys.c (info_absolute_file, info_add_extension): Function renamed. (info_find_fullpath): Call info_add_extension. (filesys_read_info_file): Use finfo as an output parameter instead of an input parameter. * info/indices.c (info_indices_of_window): Unused function deleted. (index_entry_exists): Use FILE_BUFFER argument instead of WINDOW. * info/info.c (single_file, main, get_initial_file) (add_initial_nodes): single_file split between main and new functions. --node flag works without using --file. Search in indices if following menus fails. * info/nodes.c (get_nodes_of_tags_table): Set filename on entries from filename field of FILE_BUFFER, not the fullpath field. (info_find_file): Deleted. (info_find_file_internal, info_find_file): Renamed and argument get_tags removed. (info_find_subfile): New function to be used instead of info_find_file_internal for retrieving subfiles. (info_load_file): No longer static. (make_file_buffer): Set encoding field of FILE_BUFFER. * info/session.c (begin_multiple_window_info_session): Work just as well for only one window. Don't call info_session. (begin_info_session): Function deleted. (display_startup_message_and_start, display_startup_message): Renamed, and don't call info_session. (initialize_info_session): Don't initialize the session with a given NODE. * info/session.c (info_follow_menus): Don't handle man pages or look for reference labels as files. Return name of destination node. All callers updated. (info_intuit_options_node): Don't take window argument and return name of node. Callers updated. (dump_nodes_to_file): Arguments changed. * info/t/Init-intera.inc: Redirect stderr as well as stdin. 2014-05-01 Karl Berry * util/gendocs.sh (copy_images): look for images in . as well as -I directories. Report from Arnold, 29 Apr 2014 15:43:08. * util/gendocs.sh (--no-html, --no-info, --no-tex): new options. 2014-04-29 Gavin Smith * info/indices.c (info_indices_of_file_buffer, index_entry_exists): Comments added. * info/infopath.c (infopath_clear) * info/filesys.c (convert_eols, filesys_read_compressed) (compressed_filename_p, filesys_decompressor_for_file): Declared static. * info/nodes.c (info_load_file): Deleted. (info_load_file_internal, info_load_file): Renamed. * info/footnotes.c (make_footnotes_node): Copy parent field to footnotes field. This caused problems with automatic-footnotes=On in split files. * info/filesys.c (info_find_fullpath). Return 0 on failure as documented, instead of the partial filename. Set filesys_error_number. Set new struct stat argument for loaded file. Don't limit length of path. (local_temp_filename, local_temp_filename_size): Removed. (info_file_find_next_in_path, info_file_in_path) (info_absolute_file): New argument struct stat *finfo. All callers updated. * info/nodes.c (info_find_file_internal, info_load_file): Call info_find_fullpath. This allows finding new files added earlier in the INFOPATH. Don't call stat directly or set filesys_error_number. * info/filesys.c (FILENAME_LIST, names_and_files) (names_and_files_index, names_and_files_slots, lookup_info_filename) (remember_info_filename, forget_file_names): Deleted. All accesses removed. 2014-04-29 Alexis Hildebrandt (tiny change) * doc/refcard/txirefcard.tex: use \raise instead of $^... for superscripted text, since ^ appears literally. Fix typos. 2014-04-27 Gavin Smith * info/t/dir-to-file.sh, info/t/dir-file.sh: Renamed. * info/t/dir-to-no-file.sh, info/t/dir-no-file.sh: Renamed. * info/t/no-file.sh, info/t/dir-nondir.sh, info/t/where-dir-file.sh: New tests. * t/infodir/dir: file-menu file listed. * info/t/Init-test.inc, info/t/dir-no-file.sh: Comments added. 2014-04-27 Karl Berry * util/texi2dvi (max_iters): change from -1 to 7. Infinite loops are bad. Report from Marius Hofert, 25 Apr 2014 08:10:44. 2014-04-26 Gavin Smith * info/t/file-nodes.sh, info/t/dir-file-node.sh: New tests. * info/Makefile.am: Add new tests. * info/t/index-long-nodeline.sh, t/index.sh, t/split-index.sh: Make "#!/bin/sh" first line. * info/dir.c: Call dir node "Top". 2014-04-24 Gavin Smith * info/dir.c (build_dir_node): Use header text from util/dir-example. * info/man.c (reference_section_starters, frs_binding) (find_reference_section): Disable with preprocessor. (xrefs_of_manpage): Look in whole man page for possible xrefs. Work even if name of reference is surrounded by ECMA-48 SGR sequences. 2014-04-24 Gavin Smith * info/info.h [HANDLE_MAN_PAGES]: #define removed. All usages updated. * info/man.c (get_manpage_node): Use correct variable. * info/nodes.c (info_load_file, get_node_length): Declared static. * info/session.c (nearest_xref): Unused function deleted. * info/dir.c (maybe_create_dir_node, dir_node, create_dir_buffer) (build_dir_node): maybe_create_dir_node split up and behaviour changed. (dir_buffer): New file-level variable. (insert_text_into_fb_at_binding, insert_text_into_node): Renamed and arguments changed. (add_menu_to_file_buffer, add_menu_to_node): Renamed and arguments changed. * info/nodes.c (info_find_file_internal): Special treatment of dir file buffers removed. (info_get_node_with_defaults): Call dir_node to get dir node. 2014-04-23 Gavin Smith * info/info-utils.c (info_parse_node): Don't use saven_filename or saven_nodename. (parsed_filename_size, parsed_nodename_size) (save_filename, saven_filename, save_nodename, saven_nodename) (save_string, saven_string): Functions and variables deleted. * info/info-utils.c (scan_reference_target): Better output for target specifications. * info/nodes.c (info_get_node_with_defaults): Always free data on exit. Eliminate extra check for if we were looking for a man page. 2014-04-23 Gavin Smith * info/man.c: (get_manpage_node): Arguments changed. Do not keep all the man page contents in one long buffer. (manpage_file_buffer): New variable. (create_manpage_file_buffer): Initialize manpage_file_buffer. (make_manpage_node): Function deleted. (manpage_node_of_file_buffer): Merged into get_manpage_node. (locate_manpage_xref, xrefs_of_manpage) (manpage_xrefs_in_binding, create_manpage_file_buffer): Functions declared static. * info/nodes.c (info_find_file_internal) (info_reload_file_buffer_contents, info_get_node_of_file_buffer): Special handling of man pages removed. (info_get_node_with_defaults): Call get_manpage_node to get man page nodes. * info/session.c (info_follow_menus): Call get_manpage_node instead of make_manpage_node. (info_man): Get man page via info_get_node instead of info_parse_and_select. Note: These changes stop the undocumented and probably unintended support of invoking the standalone Info program as "info '(filename)nodename'", which only worked by accident. 2014-04-23 Gavin Smith * info/window.h (WINDOW): Change size_t fields to long to avoid unwanted unsigned arithmetic. * info/session.c: Some re-ordering of functions, and comment added warning about what happens if you do this. * info/echo-area.c, info/infodoc.c, info/m-x.c, info/indices.c, info/footnotes.c, variables.c: Warning about reordering DECLARE_INFO_COMMAND declarations copied. * info/Makefile.am: Add infokey dependency for tests. * info/session.c (_scroll_forward, _scroll_backward): Remove logic applicable to only some of the scrolling functions. Don't scroll if already at bottom of node. Don't move point. (info_scroll_forward, info_scroll_backward) (info_scroll_forward_set_window, info_scroll_backward_set_window) (info_scroll_forward_page_only, info_scroll_backward_page_only) (info_scroll_forward_page_only_set_window) (info_scroll_backward_page_only_set_window) (info_down_line, info_up_line) (info_scroll_half_screen_down, info_scroll_half_screen_up): Call _scroll_forward and _scroll_backward. 2014-04-23 Gavin Smith * info/session.c (ea_explicit_arg, ea_numeric_arg_sign) (ea_numeric_arg): New variables. (info_universal_argument, info_initialize_numeric_arg) (info_numeric_arg_digit_loop, info_dispatch_on_key): Use new variables if in echo area. * info/echo-area.c (ea_delete, ea_rubout): Use ea_explicit_arg instead of info_explicit_arg. 2014-04-23 Gavin Smith * info/t/Init-test.inc: Set LC_ALL=C to avoid spurious test failures in non-English locale. 2014-04-22 Patrice Dumas * tp/texi2any.pl: unset OUTFILE when --output is given, even if it is a directory. * tp/Texinfo/Convert/Converter.pm: warn about output incompatible with splitting. 2014-04-22 Karl Berry * doc/texinfo.texi (@t{@@listoffloats}) [ifinfo]: do not output a real menu for Info, so readers can go forward with SPC as usual. Reported by Mohammad Akhlaghi, bug-texinfo 15 Apr 2014 18:03:41. 2014-04-22 Gavin Smith * info/info-utils.c (scan_reference_target): Better handling of case when a newline appears within a reference specification. (info_parse_node): Skip newlines at start of specification. 2014-04-22 Gavin Smith * info/info-utils.c (degrade_utf8): Replacements added for more characters spotted in documents. 2014-04-22 Gavin Smith * info/window.c (window_make_modeline): Subtract height of window from length of node when calculating percentage position in node so that it smoothly scales from 0% to 100%. 2014-04-22 Gavin Smith * info/info-utils.c (info_get_labeled_reference) (info_menu_entry_by_label): Renamed. Only look for menu items. * info/man.c (manpage_node_of_file_buffer): Set nodelen and nodestart field in returned NODE. (xrefs_of_manpage): If no references, return array with a single null entry instead of null. Set type fields to REFERENCE_XREF. * info/window.c: (window_make_modeline) If preprocess_nodes_p is set, display less information in status bar. * info/nodes.c (get_node_length): Function no longer static. Definition moved in file. 2014-04-22 Gavin Smith * info/info-utils.c, info/info-utils.h (info_menu_of_node) (info_xrefs_of_node, info_menu_items, info_xrefs) (info_references_internal): Functions deleted. * info/info-utils.c (info_parse_label): Function and associated macros deleted. 2014-04-22 Gavin Smith * info/echo-area.c (info_read_completing_internal) New argument exclude_func. All callers changed. (completion_exclude_func): New variable. (info_read_completing_in_echo_area_with_exclusions): New function. (build_completions): Exclude completions using completion_exclude_func. * info/session.c (exclude_cross_references, exclude_menu_items) (exclude_nothing): New static functions. * info/footnotes.c (make_footnotes_node) * info/indices.c (info_indices_of_file_buffer, select_visited_node) (apropos_in_all_indices) * info/nodemenu.c (select_visited_node) * info/session.c (forward_move_node_structure) (backward_move_node_structure) (info_handle_pointer, select_menu_digit) (info_menu_digit, info_menu_or_ref_item, info_visit_menu) (info_follow_menus, entry_in_menu, info_intuit_options_mode) (info_select_reference_this_line, info_move_to_xref) (dump_node_to_stream): Use node reference list from NODE.references instead of scanning text of node using functions that were in info-utils.c. Use NODE.up, NODE.next, NODE.prev instead of scanning node. (info_menu_or_ref_item): Arguments changed. All callers updated. (last_node_p): Function deleted. 2014-04-21 Gavin Smith * info/nodes.c (info_node_of_tag): Call scan_node_contents. * info/footnotes.c (make_footnotes_node): Copy references from main node to footnotes node. Set filename field from main node. * info/info-utils.c (info_copy_references): New function. (info_copy_reference): Copy type field. * info/indices.c (info_index_apropos, create_virtindex_node) * info/nodemenu.c (get_visited_nodes): Call scan_node_contents on new node. * info/info-utils.c (internal_info_node_p): Remove code disabled by preprocessor. * info/session.c (forget_window_and_nodes): Call info_free_references. 2014-04-21 Gavin Smith * info/info-utils.c, info/variables.c (preprocess_nodes_p): New variable. * info/info-utils.c (rewrite_p, input_start, inptr, input_length) (output_buf, anchor_to_adjust, nodestart, deleted_lines) (output_bytes_difference): New file-level variables. [HAVE_ICONV] (file_is_in_utf8, iconv_to_output, iconv_to_utf8): New file-level variables. (init_conversion, close_conversion, init_output_stream) (copy_direct, copy_converting, degrade_utf8) (copy_input_to_output, skip_input, write_extra_bytes_to_output) (write_tag_contents, underlining_on, underlining_off) (parse_top_node_line, scan_reference_label, scan_reference_target) (colon_after_newline, scan_node_contents): New function scan_node_contents and helper functions, based on info/info-utils.c:info_references_internal. * info/info-utils.c (info_parse_node): Return length of parsed node label. * info/info-utils.c (text_buffer_space_left): New function. [HAVE_ICONV] (text_buffer_iconv): New function. * info/nodes.h (FILE_BUFFER): New field 'encoding'. (LOCAL_VARIABLES_LABEL, CHARACTER_ENCODING_LABEL): New preprocessor symbols. * info/nodes.c (get_file_character_encoding): New function. (info_load_file_internal): Call get_file_character_encoding. * info/nodes.c (info_node_of_tag): Don't call tags_expand. * info/tags.c (tags_expand, tag_expand): Function renamed and behaviour changed. 2014-04-21 Gavin Smith * info/nodes.h (NODE): New fields references, up, prev, next. * info/info-utils.h, info/nodes.h (REFERENCE): New field 'type'. typedef declaration moved. * info/nodes.h (REFERENCE_XREF, REFERENCE_MENU_ITEM): New preprocessor symbols. * info/nodes.c (info_create_node): Initialize new fields of NODE. (free_info_tag): Free references field if set. 2014-04-21 Gavin Smith * info/nodes.c: (info_node_of_file_buffer_tags, info_node_of_tag): Function split out. (find_node_of_anchor): Function merged into info_node_of_tag. Don't assume anything about length of node separator. * info/indices.c (info_indices_of_file_buffer): Call info_node_of_tag instead of info_get_node. Free contents after each file searched to conserve memory. 2014-04-21 Gavin Smith * info/nodes.c: Minor formatting. (SUBFILE, get_tags_of_indirect_tags_table): Move typedef into body of function. (info_get_node_of_file_buffer): Unused variable deleted. * info/pseudotty.c: #define _XOPEN_SOURCE instead of _GNU_SOURCE. * info/t/infodir/split.info-2: Syntax fixed. 2014-04-17 Gavin Smith * info/Makefile.am: Two new tests. * info/t/long-nodeline.sh, info/t/long-nodeline.drib, info/t/split-index.sh, info/t/split-index.drib, info/t/infodir/split.info, info/t/infodir/split.info-1, info/t/infodir/split.info-2: New files. 2014-04-17 Gavin Smith * info/session.c (backward_move_node_structure): Null check. 2014-04-17 Gavin Smith * info/nodes.c (adjust_nodestart): Initialize variable. * info/info-utils.c (info_parse_label): Skip whitespace before label. * info/session.c (backward_move_node_structure): Check if next or up is a dir file properly. (forward_move_node_structure, backward_move_node_structure) (last_node_p): Avoid assignments in conditions. 2014-04-17 Gavin Smith * install-info/install-info.c: (main) Only output a warning in --remove operation if dir file not found, and exit successfully. (readfile, open_possibly_compressed_file): Do not exit program on error; pass back name of file with error and return null instead. (pfatal_with_name): Error message for empty file moved from open_possibly_compressed_file. 2014-04-16 Gavin Smith * info/nodes.c (info_node_of_file_buffer_tags): Use |= where intended. * info/nodes.c: Comments edited. 2014-04-16 Gavin Smith * info/nodes.c (init_file_buffer_tag): New function. Conditonally set N_HasTagsTable and N_TagsIndirect on tag table entries. (get_nodes_of_info_file, get_nodes_of_tag_table): Create tag table entries with info_create_node and init_file_buffer_tag. Set nodelen to -1 for all tags. (get_tags_of_indirect_tags_table): Set N_TagsIndirect in flags before calling get_nodes_of_tags_table so it will be set on tag table entries. * info/nodes.h: (N_WasRewritten): New preprocessor symbol. (NODE.content_cache): Field deleted. * info/nodes.c (adjust_nodestart): Do not read or write contents field of tag. Alter nodestart field. Call find_node_in_binding instead of find_node_separator. Arguments changed. (set_tag_nodelen): New function, split out from info_node_of_file_buffer_tags. (info_node_of_file_buffer_tags): Do not set N_HasTagsTable or N_TagsIndirect on returned node. If tags_expand expanded any tags, update contents field of tag and set N_WasRewritten flag. Set body_start on tag table entry instead of returned node. Acquire node by copying from tag table. * info/search.c (find_node_separator): Allow node separator to start anywhere from binding->start inclusive to binding->end exclusive. Add comment to clarify that we won't read past the end of allocated space. Reformat logical expression. * info/session.c (free_node_contents): New function. Free contents of rewritten nodes in tag table. (info_delete_window): Call info_gc_file_buffers. (info_gc_file_buffers): Call free_node_contents. (free_node_tag): Free tag->contents. 2014-04-16 Gavin Smith * info/nodes.h (NODE): Fields nodestart and content_cache added. * info/nodes.h (TAG): Structure type deleted. All variables and functions declared with this type changed to use NODE instead. * info/tag.c (tags_expand): size_t -> long in arguments. 2014-04-16 Gavin Smith * info/nodes.c (info_get_node_with_defaults): Free allocated strings on abnormal exit. 2014-04-16 Karl Berry * util/gendocs_template, * util/gendocs_template_min: update for current boilerplate (1.77). From Ineiev. 2014-04-16 Gavin Smith * info/pseudotty.c: #define _GNU_SOURCE to get getpt and ptsname declarations from . Avoid assignments in conditions. 2014-04-15 Karl Berry * util/texi2dvi (runbibtex): Let's not have two consecutive close-parens either, for consistency. 2014-04-15 Gavin Smith * info/t/Cleanup.inc, info/t/Init-intera.inc, info/t/Init-test.inc, info/t/index.sh, info/t/tab.sh: Use temporary files based on name of test. 2014-04-14 Gavin Smith * info/indices.c (info_indices_of_file_buffer): Don't consider anchors as index nodes even if they have "Index" in their name. 2014-04-14 Gavin Smith * info/nodes.c (info_create_node): New function initializing created NODE structures. * info/footnotes.c (make_footnotes_node) * info/indices.c (create_virtindex_node) * info/man.c (manpage_node_of_file_buffer) * info/nodes.c (info_get_node_of_file_buffer) (info_node_of_file_buffer_tags) * info/window.c (string_to_node, message_buffer_to_node): Call info_create_node. * info/session.c (kill_node): Copy whole NODE structure at once instead of field-by-field. 2014-04-13 Gavin Smith * info/session.c (forward_move_node_structure) (backward_move_node_structure): Remove accesses of info_parsed_filename and info_parsed_nodename. 2014-04-13 Gavin Smith * info/info-utils.c (info_parse_label): Return label with no parsing. All callers changed. * info/session.c (info_handle_pointer): Do not assume anything about the values of info_parsed_filename and info_parsed_nodename. Call info_get_node_with_defaults to get target node. All callers changed. * info/session.c (INFO_LABEL_FOUND): Macro deleted. 2014-04-13 Gavin Smith * info/nodes.c (get_filename_and_nodename): New static function setting defaults for node specifications. (info_get_node, info_get_node_with_defaults): New argument 'window' for info_get_node. Function renamed, with wrapper with old arguments. Call get_filename_and_nodename. (info_get_node_of_file_buffer): Remove unnecessary check for null nodename - done by calling code. * info/session.c (info_select_reference): Call info_get_node_with_defaults. (info_parse_and_select): Do not call info_parse_node. 2014-04-13 Gavin Smith * info/nodes.c: Reorder file into sections. No functional changes. 2014-04-13 Gavin Smith * info/t/file.sh, info/t/file-node.sh, info/t/dir.sh, info/t/dir-to-file.sh, info/t/dir-to-no-file.sh, info/t/dir-file-menu.sh, info/t/dir-file-no-menu.sh, info/t/dir-3-menus.sh, info/t/tab.sh, info/t/index.sh, info/t/help.sh: Copyright notices added. * info/t/index.sh: Source t/Cleanup.inc. 2014-04-13 Gavin Smith * util/texi2dvi (runbibtex): Avoid having two opening brackets in a row to improve portability of code. Reported by Richard Palo. (http://savannah.gnu.org/bugs/?42067) 2014-04-12 Gavin Smith * info/t/Init-intera.inc: New file for interactive tests. Wait for file containing name of pseudoterminal to be created by subprocess. * info/t/Cleanup.inc: File created: shell code for test cleanup and exit. * info/t/index.sh, info/t/tab.sh: Source new files. * info/t/Init-test.inc: Record that test isn't interactive to allow Cleanup.inc to be used for both kinds of tests. * info/pseudotty.c: Call fclose on stdout instead of fflush to encourage output file to be created quickly. 2014-04-12 Gavin Smith * info/Makefile.am: Rules and variables for test suite. * info/pseudotty.c: New program, used by tests. * info/t/Init-test.inc: File created for test scripts. * info/t/file.sh, info/t/file-node.sh, info/t/dir.sh, info/t/dir-to-file.sh, info/t/dir-to-no-file.sh, info/t/dir-file-menu.sh, info/t/dir-file-no-menu.sh, info/t/dir-3-menus.sh, info/t/tab.sh, info/t/index.sh, info/t/help.sh: Test scripts created. * info/t/index.drib, info/t/tab.drib, info/t/Infokey-config, info/t/node-target, info/t/infodir/dir, info/t/infodir/file-menu.info, info/t/infodir/file1.info, info/t/infodir/intera.info, info/t/infodir/sample.info: Files created with data for tests. 2014-04-08 Karl Berry * NEWS, * doc/texinfo.texi: mention --plaintext splitting. * doc/info-stnd.texi: tweak infopath-no-defaults and --init-file wording. * NEWS: mention these new features. 2014-04-08 Patrice Dumas * tp/Texinfo/Convert/Converter.pm (_id_to_filename, _sectioning_command_normalized_filename, _node_filename, _set_element_file, _top_node_filename, _get_element, _set_pages_files, output), * tp/Texinfo/Convert/HTML.pm: move generic functions to Converter.pm and modify default output() to follow the same rules as HTML.pm for splitting. * tp/Texinfo/Convert/Plaintext.pm (_convert_node): rename function as _convert_element. (convert_tree): add to be able to work with Converter.pm output(). * tp/Texinfo/Convert/Plaintext.pm, tp/Texinfo/Convert/Info.pm, tp/texi2any.pl: use default output() from Converter.pm for plaintext. Share less defaults with Info.pm. Allow splitting plaintext. 2014-04-07 Gavin Smith * info/infodoc.c (dump_map_to_message_buffer): Check if command is info_do_lowercase_variant. * info/window.c (message_buffer_length_this_line): Do not include leading newline in line length calculation. 2014-04-07 Gavin Smith * doc/info-stnd.texi: Document --init-file. 2014-04-07 Gavin Smith * info/info.c (long_options, main): New option --init-file. * info/infomap.c (initialize_info_keymaps, read_init_file): Function renamed and given new argument init_file. (fetch_user_maps): New argument. * info/session.c (initialize_terminal_and_keymaps): New argument. All callers changed. * info/variables.h (VARIABLE_ALIST): New field where_set. * info/variables.c (variable_by_name): Split out from read_variable_name. (set_variable_to_value): Check if variables were set already with a higher priority. Arguments changed. All callers updated. (set_variable): Call set_variable_to_value with SET_IN_SESSION. 2014-04-05 Gavin Smith * doc/info-stnd.texi: Document infopath-no-defaults. 2014-04-05 Gavin Smith * info/Makefile.am: Condense AM_CPPFLAGS definition slightly. * info/info.c (main): Make --directory options build up infopath in the order they were specified. Call infopath_init after options are read instead of before. * info/infopath.c, info/variables.c (info_variables) (infopath_no_defaults_p): New variable for user, info-no-defaults. * info/infopath.c (infopath_init): Do not include $infodir and $datadir/info in search path if info-no-defaults=On. 2014-04-05 Gavin Smith * info/session.c (initialize_terminal_and_keymaps) (initialize_info_session): Function split out. * info/info.c (main): Call initialize_terminal_and_keymaps before loading file. This is needed in case a variable in .infokey affects the loading of the file. 2014-04-05 Gavin Smith * info/info.c (long_options): Specify that --variable takes an argument, like its short equivalent -v. 2014-04-01 Gavin Smith * info/search.c (regexp_search): Remove unnecessary test for whether search results have to be recalculated. 2014-03-29 Gavin Smith * info/display.c (find_diff): increment i in the loop so we actually return the intended value. 2014-03-22 Karl Berry * doc/texinfo.texi (Info Format Tag Table): ^? not ^_, etc. Reported by Gavin Smith, 21 Mar 2014 18:56:27. 2014-03-19 Karl Berry * util/htmlxref.cnf (gdbint): gone (reported by Ineiev). (thales): new. 2014-03-17 Karl Berry * doc/texinfo.tex (\headitem): \gdef\headitemcrhook{\nobreak} (\headitemcrhook): \relax by default. (\multitable) <\everycr>: call it, to try to avoid page breaks after heading rows. 2014-03-14 Karl Berry * tp/texi2any.pl (D=s): handle -D 'var value', as C makeinfo did. Based on bug-texinfo mail from Guo Yixuan, 4 Mar 2014 17:29:34 -0500 (tiny change). (makeinfo_help): document it. * doc/texinfo.texi (Invoking @t{texi2any}): document it. 2014-02-25 Arnold Robbins Karl Berry * util/texindex.c (decode_command): increment arg_index again after looking at the argument, not before. This made -o unusable; therefore presumably no one has been using it, and it will be dropped. 2014-02-19 Karl Berry * install-info/tests/ii-0054-*, * install-info/tests/Makefile.am (TESTS, EXTRA_DIST): new test 54 for space in input name. 2014-02-19 Paul Eggert * install-info/install-info.c (open_possibly_compressed_file): Work even if the file name contains arbitrary shell metacharacters, for example: install-info --info-dir="/d/a b/info" "/d/a b/info/emacs.info.gz" Do this by running the decompressor on standard input, rather than by having the shell open the file. Return either stdin or a pipe. Don't bother with IS_PIPE arg; no longer needed. All callers changed. Check for freopen failure. 2014-02-16 Karl Berry * doc/texinfo.tex (\ifusebracesinindexes): new conditional for testing. (\indexnofonts): if set, output @{ as \{ in the sort string, instead of |a; likewise @}. Request from Arnold. 2014-02-15 Patrice Dumas * Texinfo/Convert/DocBook.pm: do not use lineannotation for @r, the semantics are not the same. Report from Aharon Robbins. * Texinfo/Convert/Plaintext.pm (_printindex_formatted), * Texinfo/Common.pm, * doc/texinfo.texi: new customization variable INDEX_SPECIAL_CHARS_WARNING to warn about invalid index entries in Info. Report from Glenn Morris. 2014-02-09 Karl Berry * doc/texinfo.tex (\cartouche): do not do \nonarrowing at all; we want @example, etc., to be indented normally inside @cartouche. Don't we? Report from Arnold, 09 Feb 2014 00:20:26. 2014-02-07 Alexis Hildebrandt (tiny change) * doc/refcard/txirefcard.tex: typos. 2014-02-06 Karl Berry * doc/texinfo.tex (\ure{pre,post}stretchamount): new macros. (\uref{pre,post}stretch): use them. (\raggedright): reset them to 0pt. Also increase rag to 2.4em. Bug report from Werner Lember, 06 Feb 2014 19:01:05. 2014-02-02 Karl Berry * doc/texinfo.texi (@t{@@documentencoding}): ISO-8859 ordering wrong. Report from Reinhard Kotucha, 2 Feb 2014 19:32:24. 2014-01-30 Karl Berry * doc/texinfo.tex (\commondummiesnofonts): \let\xeatspaces=\eatspaces so @macros that make index entries don't end up with spurious spaces in the output. Report from Arnold, 30 Jan 2014 22:11:42. 2014-01-16 Karl Berry * doc/texinfo.tex (\errfootnote): nested footnotes not supported. (\dofootnote): check for this. Report from Arnold. 2014-01-16 Sergey Poznyakoff * info/info.c (show_error_node): Avoid coredumping when writing output to a file. 2014-01-09 Sergey Poznyakoff Fix search boundary checking. Based on report from Gavin Smith * info/search.c (regexp_search): Save previous values of start and end bounds (sorted) and rescan the buffer if these differ from the actual values. Fix boundary checking (using end bound instead of the buffer length). Use x2nrealloc to grow matches buffer. 2014-01-06 Karl Berry * doc/texinfo.texi: 2014. * doc/texinfo.texi (@url): split into several nodes: (@t{@@url} Examples, URL Line Breaking, @t{@@url} PDF Output Format, PDF Colors). Document the PDF-only \urefurlonlylinktrue and \linkcolor, \urlcolor texinfo.tex features. 2014-01-01 Karl Berry * Pod-Simple-Texinfo/pod2texi.pl, * doc/texinfo.txi, * doc/refcard/txirefcard.tex, * info/info.c, * info/infokey.c, * install-info/install-info.c, * tp/texi2any.pl, * util/texi-elements-by-size, * util/texindex.c, * util/texi2dvi, * util/gendocs_template, * util/gendocs_template_min: 2014. 2013-12-25 Karl Berry * util/htmlxref.cnf (easejs): add. 2013-12-12 Ludovic Courtes (tiny change) * util/htmlxref.cnf (dmd, guix, lsh): add. 2013-11-26 Karl Berry * doc/texinfo.tex (\urlcolor, \linkcolor): just use black by default, for consistency and printing, etc. Another suggestion from Arnold. 2013-11-25 Karl Berry * contrib/perldoc-all/GNUmakefile (texi_pod_doc_incl): possibly remove a second > after X<...>. * util/gendocs.sh: remove $PACKAGE.info* before remaking, in case the number of Info files decreases. * doc/texinfo.tex (\urefbreakfinish): change the default PDF output to show the url even if the second arg is given, like DVI. Suggestion from Arnold Robbins. (\ifurefurlonlylink): new ``secret'' conditional for the previous PDF output: only show the second arg, with the url as the link target. 2013-11-09 Karl Berry * util/htmlxref.cnf (GRUB): new variable. (multiboot): new grub manual. webmasters #832039. 2013-11-07 Karl Berry * info/infomap.c (default_emacs_like_info_keys): somehow CONTROL('n') = A_info_next_line was lost. Report from Allan McRae, 06 Nov 2013 13:59:04. 2013-10-19 Patrice Dumas * tp/Texinfo/Structuring.pm: if SHOW_MENU is set, do not error out on lacking entry in menu. 2013-10-10 Karl Berry * doc/texinfo.texi (Short Sample Texinfo File): do not use @insertcopying in the top node, per rms's preference. 2013-09-26 Karl Berry * Version 5.2. 2013-09-19 Eli Zaretskii * info/info-utils.c (fncmp): For MS-DOS/MS-Windows, a new function for comparing file names disregarding letter-case and forward/backslash differences; for Posix platforms, a macro that expands into a strcmp call. (info_namelist_add): Use fncmp instead of strcmp. 2013-09-13 Karl Berry * pretest 5.1.90. 2013-09-12 Karl Berry * doc/texinfo.tex (\inlinefmtifelse, \inlineifset, \inlineifclear): new commands. * doc/refcard/txirefcard.tex, * doc/texinfo.texi (Inline Conditionals), (@t{@@set @@clear @@value}), (@t{@@inlineifset @@inlineifclear}), (Command Summary): document them. 2013-09-11 Karl Berry * doc/texinfo.tex (\onepageout): call new macro \commonheadfootline to make the headline/footline vboxes, which in turn calls \texinfochars. (\texinfochars): new macro; should reset all definitions done by @tex, but have skipped some for now out of laziness, since no one has noticed. (\expandablevalue): change formatting; note that _ in an @value string fails in non-typewriter output, and has been for a long time. (\activetilde, \activehat, \activeless, \activegtr): factor out the normal Texinfo definitions, now also used in \texinfochars. All this due to a bug report from Charlie Zender where ' in the @settitle caused failures when a page break occurred inside @tex, help-texinfo 08 Sep 2013 16:26:16. 2013-09-10 Karl Berry * doc/texinfo.texi (Two Arguments, Three Arguments): some node name requirements apply to arg#2 and arg#3 too. (Inline Conditionals): TeX can't properly deal with newline-delimited commands inside @inline*. 2013-09-09 Karl Berry * NEWS, * doc/texinfo.texi (Node Line Requirements, Menu Parts, Cross Reference Parts, Other Customization variables): mention Info warnings and INFO_SPECIAL_CHARS_WARNING. Other small tweaks. 2013-09-07 Patrice Dumas * tp/texi2any.pl: handle plaintext as other formats to set expanded formats. * tp/Texinfo/Parser.pm: accept matching braces in ignored @inline* commands. * tp/Texinfo/Common.pm(@variable_string_settables), tp/Texinfo/Convert/Info.pm(_node), tp/Texinfo/Convert/Plaintext.pm: add the INFO_SPECIAL_CHARS_WARNING customization variable, if false do not output warning messages on info characters in menu, cross-refs and node names. Use pending word in ref formatting to construct checked cross ref and node names. 2013-09-06 Patrice Dumas * tp/Texinfo/Parser.pm, tp/Texinfo/Convert/HTML.pm(_convert_inline_command), tp/Texinfo/Convert/Plaintext.pm, tp/Texinfo/Convert/DocBook.pm, tp/Texinfo/Convert/Text.pm, tp/Texinfo/Common.pm, tp/Texinfo/Convert/TexinfoXML.pm: implement @inlinefmtifelse, @inlineifclear, @inlineifset. 2013-09-01 Patrice Dumas * tp/Texinfo/Convert/Info.pm (_node): warn if node name contains a comma. 2013-08-31 Patrice Dumas * tp/Texinfo/Convert/Plaintext.pm: warn when cross-reference name contains a :, or node name contains a problematic character. Warn similarly when a menu entry name contains a :, or when the menu entry node contains a problematic character. 2013-08-27 Patrice Dumas * tp/Texinfo/Parser.pm: add \r to regexps to exclude it when excluding newlines. Report from Karl. 2013-08-26 Karl Berry * util/texi2dvi (run_bibtex): only run biber if is present in the bcf file. Allow override with BIBER envvar. Report from Jozef Vesely, 26 Aug 2013 14:26:26. 2013-08-26 Patrice Dumas * tp/Texinfo/Convert/Plaintext.pm (_align_lines): correct byte count in flushleft and center. 2013-08-24 Karl Berry (tiny change) * util/texi2dvi (run_bibtex): run biber if .bcf file exists. (xref_files_changed): check for biblatex rerun warning. Report from Jozef Vesely, 24 Aug 2013 12:15:40. 2013-08-24 Patrice Dumas * tp/Texinfo/Convert/Info.pm (output), tp/Texinfo/Convert/Plaintext.pm: collect text before first node and output the same header for every Info output files using that text. Based on a report from Juri Linkov and analysis of Sergey. Thread started at http://lists.gnu.org/archive/html/bug-gnu-emacs/2013-04/msg00039.html 2013-08-22 Karl Berry * info/*: update copyright notices. * info/infomap.c (default_{emacs,vi}_like_info_keys), * info/session.c (info_display_file_info): rename from info_display_file. * NEWS: mention display-file-info. * doc/info-stnd.texi (Invoking Info): mention new debugging level, more about -f. (Miscellaneous Commands): document =. * info/info.c (info_short_help): mention -1 for all debugging. 2013-08-20 Sergey Poznyakoff * info/info.h (add_pointer_to_array): Use x2nrealloc. Remove sixth argument. All uses updated. (maybe_free): Remove. Use free() instead. All uses updated. 2013-08-20 Karl Berry * configure.ac (AM_INIT_AUTOMAKE): require 1.14 for info-in-builddir. Noted by Patrice. * doc/texinfo.tex (\sectionheading): must do \global\let\prevsectiondefs, since we're inside a group. Otherwise, \thissection is lost in PDF output if an xref intervenes due to the color \mark. Report from Thien-Thi Nguyen, 16 Feb 2013 12:06:17. 2013-08-20 Sergey Poznyakoff Check for I/O errors when dumping nodes to file. Use a general-purpose interface for storing and looking up in a list of names. * info/info-utils.c (info_namelist_add) (info_namelist_free): New functions. * info/info-utils.h: Likewise. * info/info.c (namelist_add,namelist_free): Move to info-utils.c, redeclare as extern. (all_files): Update accordingly. * info/session.c [VERBOSE_NODE_DUMPING]: Replace with calls to debug. (write_node_to_stream) (dump_node_to_stream): Return error code. (dump_nodes_to_file): Check for I/O errors, (dumped_already): Change data type to struct info_namelist_entry *. (dumped_already_index, dumped_already_slots): Remove. (initialize_dumping): Rewrite. 2013-08-20 Sergey Poznyakoff Bind display-file to C-g in vi mode. * info/infomap.c (default_vi_like_info_keys): Bind display-file to C-g and abort to C-c. * info/session.c (info_gc_file_buffers): Fix null pointer dereference. * NEWS: Update. 2013-08-19 Karl Berry * doc/texinfo.texi (@t{@@unnumbered @@appendix}): mention special Docbook output for acknowledgements, colophon, etc. 2013-08-19 Sergey Poznyakoff New interactive command "display-file". * info/session.c (info_display_file): New command. * info/infomap.c: Bind '=' to display-file. 2013-08-19 Sergey Poznyakoff Don't return dir entries when called with -a. Fix interaction of -a and --output. * info/session.c (info_follow_menus): Add debugging output on level 3. In strict mode, return NULL if no matching node was found (by default initial node is returned). (dump_nodes_to_file,dump_node_to_file): Take flags in the last parameter. If DUMP_APPEND is set, append to the output file instead of overwriting it. * info/session.h (DUMP_APPEND, DUMP_SUBNODES): New flags. * info/filesys.c (info_file_find_next_in_path): Improve debugging output * info/info.c (all_files): Set DUMP_APPEND for all but the first call to dump_node_to_file. (main): Initialize dump_subnodes. 2013-08-18 Karl Berry * doc/texinfo.texi (Image Syntax): a bit more about Docbook. * doc/info-stnd.texi (Invoking Info), (Variables): editing throughout. * info/info.c (info_short_help): use MANUAL instead of FILENAME for -f. Report from Arne Babenhauserheide, 11 Apr 2013 11:05:37. 2013-08-18 Sergey Poznyakoff Improve info -a: process manpages, filter out duplicate names. * info/info-utils.c (info_reference_free): New function. (info_free_references): Use info_reference_free. * info/info-utils.h (info_reference_free): New proto. * info/info.c (info_find_matching_files): Return REFERENCE **. (namelist_add,namelist_free): New static functions. (all_files): Select unique file names. * info/session.c (info_split_window) [SPLIT_BEFORE_ACTIVE]: Declare pagetop. (info_menu_or_ref_item): Use info_reference_free. (info_follow_menus): Fix processing in strict mode. * info/filesys.c: Remove unused variable. * info/filesys.h (forget_file_names): New proto. * info/indices.c (apropos_in_all_indices): Use info_reference_free to free a pointer to REFERENCE. (info_virtual_index): Remove unused variable. (allfiles_create_node): Second argument is REFERENCE **. * info/indices.h (allfiles_create_node): Change signature. * info/man.c (manpage_xrefs_in_binding): Use info_reference_free. * info/nodes.c: Include tag.h * info/nodes.h (TAG): Change type to size_t. * info/window.h (window_log_to_phys_line): New proto. 2013-08-17 Sergey Poznyakoff The -x option takes a numeric argument. * NEWS: Document -a. * doc/info-stnd.texi: Document existing debugging levels. Document -x -1. * info/info.c (debug_level): Change type to unsigned. (long_options, short_options): -x now requires argument. (set_debug_level): New function. (main): Change -x handling. * info/info.h (debug_level): Change declaration. Minor fixes: * info/echo-area.c (ea_possible_completions) [SPLIT_BEFORE_ACTIVE]: Declare start here. (ea_scroll_completions_window): Remove unused variable. (pause_or_input): Likewise. 2013-08-17 Sergey Poznyakoff Fix -a functionality. * info/info.c (all_files): Clear cached data to avoid reading the same file again. 2013-08-16 Karl Berry * doc/texinfo.texi (Conventions): remove statement about CRLF not being recognized. It seems that both TeX and tp are agnostic about line endings. Report frmo vincent.belaiche@gmail.com, 21 Apr 2013 19:02:39. * README, * INSTALL, * tp/TODO, * doc/texinfo.texi, * doc/texi2oldapi.texi, * doc/refcard/txicmdcheck, * doc/refcard/txirefcard.tex, * doc/refcard/txivarcheck, * doc/Makefile.am, * util/tests/txitextest: texinfo.txi -> texinfo.texi. 2013-08-15 Karl Berry * doc/texinfo.texi (@settitle): typo (missing "to"), report from Alex Sassmannshausen, 26 Apr 2013 14:21:38. * doc/texinfo.texi (Indicating): rewrite intro to avoid implying that users can change at will what Texinfo's commands output. (Defining New Texinfo Commands): and avoid implying that macros should be used to redefine existing commands. Thread with Robert Dodier, starting 26 Apr 2013 09:33:42. * doc/texinfo.texi: @setfilename texinfo.info, not just texinfo, per automake 1.14 complaint. * configure.ac (AM_INIT_AUTOMAKE): add info-in-builddir, per automake 1.14 complaint. * doc/Makefile.am (info_TEXINFOS), * doc/texinfo.texi: rename from doc/texinfo.texi, per automake 1.14 deprecation. 2013-08-15 gettextize * gnulib/m4/po.m4: Upgrade to gettext-0.18.3. * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.18.3. 2013-08-15 Karl Berry * install-info/install-info.c (ensure_dirfile_exists): do not translate the ^_ byte; the Italian translation missed it, and it makes more sense to consider it a keyword anyway. Report from Thien-Thi Nguyen, 17 May 2013 11:16:41. 2013-08-13 Karl Berry * doc/info-stnd.texi (Variables, Searching Commands): tweak wording of search-skip-screen descriptions, etc. 2013-08-12 Patrice Dumas * tp/init/chm.pm: sort indices names to get a reproducible output. Report by Karl. * tp/Texinfo/Structuring.pm: set @command_unnumbered for the toplevel @-command if not @top. Report from Karl. 2013-08-11 Karl Berry * doc/texinfo.txi (Conventions): add item about form feed processing. 2013-08-11 Patrice Dumas * tp/Texinfo/Convert/HTML.pm(output): sort when processing renamed nodes to have a reproducible error output. Report by Karl. * Texinfo/Convert/Converter.pm(_informative_command_value, _informative_command): do not set informative command value if value is not defined. 2013-08-10 Patrice Dumas * tp/Texinfo/Convert/Line.pm, Texinfo/Convert/Paragraph.pm: preserve spaces coming from the document. Do not break words at non-breaking spaces. * Pod-Simple-Texinfo/t/Pod-Simple-Texinfo.t: correctly close =over with a =back, as reported by newer Pod::Simple. Report by Karl. Mark as TODO the test that changes depending on Pod::Simple version. Report by Karl. * tp/Texinfo/Parser.pm(_next_text): add a end of line at the end of files when there is one missing. Found out in https://bugzilla.redhat.com/show_bug.cgi?id=950644 * tp/Makefile.am: reorder alphabetically test input files. Distribute missing test files. * tp/t/test_utils.pl(test): allow for marking tests as TODO. Use this facility to mark a test of all_spaces that fails on perl 5.10 with NEL not being treated the same as in perl 5.14. 2013-08-09 Patrice Dumas * tp/Texinfo/Convert/DocBook.pm(_protect_text): convert formfeed to space instead of simply removing it. 2013-08-09 Karl Berry * doc/texinfo.tex (\codedashfinish): include an explicit space after the \let=, for @code{- a}. Report from Vincent Lefevre, 7 Aug 2013 04:07:10. 2013-08-08 Patrice Dumas * tp/Texinfo/Convert/Plaintext.pm: output ^L in ignorable spaces. 2013-08-07 Patrice Dumas * tp/Texinfo/Convert/HTML.pm(_default_protect_text), tp/init/html32.pm: protect ^L with an entity. * tp/Texinfo/Convert/Plaintext.pm: output ^L between paragraphs. 2013-08-06 Patrice Dumas * tp/Texinfo/Convert/TexinfoXML.pm(_xml_attributes): do not protect \f and \ in spaces or trailingspaces attributes. * tp/Texinfo/Convert/DocBook.pm(_protect_text): remove form-feed from output, as it is not allowed in XML. 2013-08-06 Patrice Dumas * Texinfo/Parser.pm: keep form-feed in @set value. * util/texinfo.dtd, util/txixml2texi.pl, tp/Texinfo/Convert/TexinfoXML.pm(_protect_text): output form-feed as entity in XML, when possible. Handle form-feeds in txixml2texi.pl too. * tp/Texinfo/Convert/TexinfoXML.pm(_xml_attributes), util/texinfo.dtd, util/txixml2texi.pl: protect form-feed in attributes by using an entity that becomes a literal \f. Double \ in attributes too. 2013-08-06 Karl Berry * doc/texinfo.tex (\smartitaliccorrection): also omit italic correction if next command is @. or @comma. Report from Vincent Lefevre, 5 Aug 2013 02:47:31. 2013-08-06 Patrice Dumas * Texinfo/Parser.pm: form-feed in paragraph stops the current paragraph. For that consider \f to be a separator. 2013-08-04 Patrice Dumas * Texinfo/Parser.pm: keep form-feed in macro arguments. 2013-07-29 Patrice Dumas * Texinfo//Common.pm (enumerate_item_representation), * Texinfo/Parser.pm: handle correctly @enumerate specification greater than 10. Report from Dmitry Shachnev. 2013-06-28 Karl Berry * contrib/perldoc-all/GNUmakefile (texi_pod_doc_incl): remove X<...> pod constructs, so we get good filenames. For perl-5.18.0. 2013-06-25 Patrice Dumas * tp/Texinfo/Convert/HTML.pm: use "prev" for rel attribute and not "previous", as prev is the preferred one. Report by Tom Tromey. 2013-06-21 Karl Berry * doc/texinfo.tex (\codedash): use \futurelet. (\codedashfinish): new definition for - inside @code et al., which does not allow a break after a - when it is preceded or followed by another -, or when it is first. (\code): initialize \codedashprev for the - as first char case. Report from Arnold Robbins, 04 Apr 2013 01:30:28 -0600. * texi2dvi (run_makeinfo): more verbose error message if our test reading texinfo.tex fails. Suggestion from Vincent B, 25 May 2013 23:10:58. 2013-06-08 Sergey Poznyakoff Skip the current screen when repeating searches. * NEWS: Update. * doc/info-stnd.texi: Document the -a (--all) option and the search-skip-screen. Mention '}' and '{' commands when discussing repeated searches. * doc/version-stnd.texi: Update. * doc/version.texi: Update. * info/session.c (search_skip_screen_p): New variable. (info_search_1): Take additional argument, supplying the starting position for the search. All uses changed (DFL_START): New define. (info_search_next,info_search_previous): If search_skip_screen_p is set, skip the lines displayed on the screen. * info/variables.c (info_variables): New variable "search-skip-screen". * info/variables.h (min_search_length): New proto. 2013-06-07 Karl Berry * doc/texinfo.txi (Preparing for @TeX{}): texinfo.cnf is a "configuration" file, other wording tweaks. 2013-06-07 Sergey Poznyakoff Handle "index" tag. * info/tag.c (tags_expand): Accept NULL handler as a no-op. (tagtab): Add an entry for "index". 2013-04-29 Stefano Lattarini (tiny change) * tp/Makefile.am, * tp/tests/Makefile.am: use $(MKDIR_P) instead of $(mkdir_p). 2013-04-16 Sergey Poznyakoff Restore the cursor position when going to the Up node. * info/session.c (info_win_find_node): New static. (info_handle_pointer): When handling Up pointer, restore the point (cursor position) as well. 2013-04-16 Sergey Poznyakoff Implement the --all (-a) option as per bug #38168. * info/infopath.c: New file. * info/Makefile.am (ginfo_SOURCES): Add new file. * info/tilde.c (tilde_expand_word): Argument is const char *. All uses changed. * info/info.c (all_matches_p): New variable. (long_options, short_options): New option --all (-a). (single_file, all_files): New functions. (main): Handle new option. * info/nodes.c (forget_info_file): Now extern. * info/nodes.h (forget_info_file): New proto. * info/indices.c (create_virtindex_file_buffer): Allow for NULL as the filename. (allfiles_create_node, info_all_files): New functions. * info/dir.c (maybe_build_dir_node): Use infopath_first and infopath_next to iterate over the INFOPATH. * info/filesys.c: Remove infopath functions. See infopath.c (info_file_in_path, info_file_find_next_in_path): New functions. * info/indices.h (allfiles_create_node): New prototype. * info/filesys.h (infopath): Remove extern. (infopath): New prototype. (zap_infopath): Rename to infopath_clear. (info_add_path): Rename to infopath_add. (infopath_init,infopath_first,infopath_next) (info_file_find_next_in_path): New prototypes. (INFOPATH_INIT): New constant. * info/session.c (info_read_and_dispatch): Do not set quit_info_immediately, it is done by info_quit. (info_follow_menus): Take an additional argument. (info_quit): Set quit_info_immediately. * info/session.h (quit_info_immediately): Extern. (info_follow_menus): Change signature. * info/infomap.c: Bind `C-x f' in Emacs mode, and `:a' in Vi mode to info_all_files. * doc/info-stnd.texi: Document the --all option. 2013-04-13 Sergey Poznyakoff * info/infomap.c: Fix indentation and style. 2013-04-13 Sergey Poznyakoff Implement new options for standalone info. * info/info.c (debug_level): New variable. (long_options): New options: -x (--debug) and -v (--variable). (short_options): Update accordingly. (main): Handle the new options. (vinfo_debug, info_debug): New functions. * info/info.h (info/info.h): New exern. (debug): New macros. (vinfo_debug, info_debug): New prototypes. (set_variable_to_value): Change the return type. * info/variables.c (set_variable_to_value): Compile unconditionally. Return 0/-1 depending on the success/failure of the operation. * info/filesys.c: Print additional debugging info. * info/infomap.c: Check the return from set_variable_to_value. * doc/info-stnd.texi: Document new options. * doc/version.texi: Update. * doc/version-stnd.texi: Update. * NEWS: Update. 2013-04-07 Patrice Dumas * configure.ac: set DIFF_A_OPTION to -a, and not DIFF_U_OPTION. * tp/Texinfo/Convert/Plaintext.pm: do not consider an empty line at the end of a preformatted format as counting as an empty line in order to output an empty line following the preformatted format too. Karl report. * tp/Texinfo/Convert/DocBook.pm: add support for special docbook sectioning elements with special node names and @unnumbered. Feature asked for by Aharon Robbins, syntax by Karl. 2013-03-31 Sergey Poznyakoff * info/indices.c (info_next_index_match): Fix improper string indexing. Based on report from Eli Zaretskii. 2013-03-31 Sergey Poznyakoff Fix \b[...\b] tag processing. * info/nodes.h (TAG) : New member. * info/nodes.c (get_nodes_of_info_file) (get_nodes_of_tags_table): Initialize TAG->content_cache. (info_node_of_file_buffer_tags): Use cached contents if available. Call tags_expand upon the first access to that node. (free_info_tag): Free content_cache. * info/tag.c (tag_image): Fix state machine. Ignore '='s, unless in state_kw. (tags_expand): Change return value and signature. Allocate memory only if at least one tag is actually expanded. * info/tag.h (tags_expand): Change prototype. * info/filesys.c (filesys_read_info_file): Do not call tags_expand on the entire buffer. 2013-03-20 Karl Berry Doc tweaks. * NEWS: more technalities about the macro-expansion incompatibility. * README-hacking: call change_perl_modules_version.sh for release. * doc/texinfo.txi: wording around PDF items. * doc/texinfo.tex: typos in comment. 2013-03-20 Eli Zaretskii * Makefile.am (SUBDIRS): If HOST_IS_WINDOWS, add 'info' to SUBDIRS even if HAVE_TERMLIBS is false. * configure.ac : Don't bother warning on MinGW as well. 2013-03-20 Karl Berry * man/Makefile.am (man_rule_0): set EXEEXT="" since it's no longer an executable. Report from Eli, 20 Mar 2013 20:47:52. (mi_perl5lib): set up another variable to shorten source lines. 2013-03-16 Patrice Dumas * tp/Texinfo/Parser.pm (_parse_texi): accept the same character in @value as in @set. 2013-03-14 Karl Berry * maintain/regenerate_cmd_tests.sh, * tests/run_parser_all.sh, * tests/many_input_files/tex_l2h.sh: use $0 in some diagnostics. * NEWS: mention switch from cvs to svn. * doc/texinfo.txi (Invoking @t{pod2texi}): svn url instead of cvs for Perl manual in Texinfo. * contrib/perldoc-all/perldoc-all.texi: likewise, and turn off all underfull/overfull messages since we can't do anything about them. * contrib/perldoc-all/README: 5.16.3. * contrib/perldoc-all/GNUmakefile (all): set save_size in environment to avoid TeX overflow. (install): new target. * doc/texinfo.tex (\nonfillstart): only reset to \hfuzz=12pt if it's less than that. * README-hacking: tweaks to release wording. 2013-03-12 Karl Berry * Version 5.1. 2013-03-11 Patrice Dumas * tp/init/tex4ht.pm (tex4ht_process_command): correct the warning, it should also give the reason of the error. Follow-up on Benno Schulenberg report. 2013-03-08 Karl Berry * pretest 5.0.91. * install-info/install-info.c (print_help): combine sentence for better translation. * tp/init/tex4ht.pm (tex4ht_process_command): omit : for consistency. Report from Benno Schulenberg, 08 Mar 2013 22:07:31. * util/texi2dvi: don't mention Debian specifically; I don't think tetex-bin has been the name for a while. * util/gendocs.sh: omit --split=node for the sake of pre-5.0 installations. Report to bug-gnulib from Martin von Gagern, 08 Mar 2013 19:20:36. 2013-03-05 Patrice Dumas * tp/Texinfo/Parser.pm (_close_current): close correctly stacks when closing $format_raw_commands. Report from Mat Booth. 2013-03-02 Karl Berry * pretest 5.0.90. * NEWS, * doc/texinfo.txi (Macro Details): behavior of newlines in macro definitions and line-delimited commands has changed. 2013-03-02 Patrice Dumas * tp/Texinfo/Parser.pm: put the first line in 'pending' instead of seeking back in the input stream. 2013-02-28 Patrice Dumas * tp/t/test_utils.pl: close generated files before doing the comparison. * tp/Texinfo/Convert/Plaintext.pm, tp/Texinfo/Convert/Info.pm: cache get_conf() results. Convert node names only once. * tp/texi2any.pl, doc/texinfo.txi (Customization Variables and Options): two new formats, parse and structure that respectively do the parsing phase, and the parsing and structuring phase, and no conversion. 2013-02-26 Karl Berry * doc/texinfo.txi (Generating HTML, HTML CSS): xref to Customization Variables. Suggestion from Vincent Belaiche. 2013-02-25 Patrice Dumas * tp/Texinfo/Parser.pm: use tell to find the position of the beginning of the line. Close line @-command with special @-commands if there is no comment ending the line. Report from Eli Zaretskii on bug-texinfo, 24 Feb 2013 17:53:15. * configure.ac, tp/defs.in, tp/tests/run_parser_all.sh: determine whether diff accepts -a and sets DIFF_A_OPTION to -a if so. 2013-02-24 Karl Berry * tp/Makefile.am (install-exec-hook): rm old makeinfo, possibly a binary, before making the link. Report from Ken Moffat, 23 Feb 2013 21:31:33. * doc/texinfo.txi (Other Customization Variables): OPEN_ and CLOSE_QUOTE_SYMBOL now apply to Info too. (@t{@@code}): mention this. (@t{@@set @@value}): grudgingly mention that some non-alphanumerics sometimes work in @set names. 2013-02-24 Patrice Dumas * configure.ac, tp/defs.in, tp/tests/*/*.sh, tp/tests/run_parser_all.sh: determine whether diff accepts -u and sets DIFF_U_OPTION to -u if so. Report that HP-UX diff do not accept -u from Richard Lloyd bug-texinfo, 19 Feb 2013 15:56:41. 2013-02-23 Patrice Dumas * tp/t/input_files/sample_utf8.texi: avoid having two nodes differing only in case, for case-sensitve filesystems. Report in http://savannah.gnu.org/bugs/?38380. * tp/Makefile.am, tp/maintain/*: modularize and rename scripts associated to standalone modules handling. * tp/Texinfo/Convert/Plaintext.pm: use OPEN_QUOTE_SYMBOL and CLOSE_QUOTE_SYMBOL. * tp/Texinfo/Parser.pm: allow more characters in flags. do not close a line after a special command @set... 2013-02-22 Karl Berry * doc/texinfo.txi (@t{@@set @@value}): mention that @set need not appear at the beginning of a line. (@t{@@enumerate}, @t{@@itemize}): clarify that at least one @item should be inside @itemize. * README-hacking: include potential CPAN update in release checks. 2013-02-22 Antonio Diaz Diaz (tiny change) * info/filesys.c (compress_suffixes): Add .lz/lzip. * install-info/install-info.c (open_possibly_compressed_file): Add lzip support. * doc/info-stnd.texi, * doc/texinfo.txi: mention it. bug-texinfo, 22 Feb 2013 19:08:02. 2013-02-22 Eli Zaretskii * install-info/ginstall-info.exe.manifest: new file. * install-info/Makefile.am (dist_bin_SCRIPTS) [HOST_IS_WINDOWS]: add it. bug-texinfo, 19 Feb 2013 19:39:51. * info/pcterm.c (pc_initialize_terminal): Move prototype outside of w32_info_init to the file level. bug-texinfo, 19 Feb 2013 19:40:48. 2013-02-22 Patrice Dumas * tp/Texinfo/Parser.pm: better handling of comments in @-commands with line specially handled (@set, @ifset, @unmacro...). Accept @set and @clear almost everywhere. Accept that @set and @clear are not at the beginning of a line. Do not warn for @end in style command, as it may be the @end of a conditional that is correct in that context. Improve error messages of @-commands with braces closed because of seeing a command before the closing brace. 2013-02-21 Karl Berry * NEWS: mention incompatibilities of text outside @item and irregular sectioning trees. 2013-02-20 Patrice Dumas * Makeinfo.am, texi2html/test/*/Makefile.am, tp/tests/*/Makefile.am, tp/maintain/regenerate_file_lists.pl, tp/tests/many_input_files/*.sh, tp/tests/run_parser_all.sh, texi2html/test/run_*.sh, texi2html/test/many_input_files/*.sh: adapt for SVN. * tp/MANIFEST: regenerate. * tp/Texinfo/Structuring.pm: lowering a section level is only a warning. 2013-02-18 Karl Berry (tiny change) * info/info-utils (va_copy) [__hpux]: define for HP-UX, From Richard Lloyd, 18 Feb 2013 11:52:10. * system.h (TEXINFO_PRINTFLIKE) [! __GNUC__]: define to nothing. 2013-02-17 Karl Berry * doc/refcard/txirefcard.tex: reduce to four pages again (by regretfully removing the Emacs section). 2013-02-16 Karl Berry * Version 5.0. * doc/texinfo.txi: remove zyx placeholder. 2013-02-13 Sergey Poznyakoff * info/window.c (window_make_window): Initialize allocated memory. (string_to_node): Likewise. * info/filesys.c (filesys_read_info_file): Always terminate the contents with 0. Fix 700354@bugs.debian.org. 2013-02-12 Karl Berry * pretest 4.13.97. 2013-02-10 Karl Berry * info/tag.c (tag_found_keyword): new fn, including a check for the text buffer being realloc-ed, invalidating kw. Sigh. (tag_image): call it (twice). 2013-02-10 Patrice Dumas * autogen.sh, tp/maintain/regenerate_cmd_tests.sh, tp/tests/*: Generate automatically test file scripts for each test in tp/tests/*. * tp/Makefile.am: run directly tap tests in Makefile.am. 2013-02-09 Patrice Dumas * configure.ac, tp/Makefile.am, tp/maintain/regenerate_file_lists.pl: prepare for running directly tap tests in Makefile.am. 2013-02-07 Karl Berry * contrib/booklet.mak: new contribution from John Darrington. * Pod-Simple-Texinfo/pod2texi.pl (preamble): back to inserting the default. * contrib/perldoc-all/GNUmakefile (pod2texi_args): omit it. 2013-02-04 Karl Berry * pretest 4.13.96. * contrib/perldoc-all/GNUmakefile (distclean): new target. * Makefile.am (dist-hook): use it. 2013-02-03 Karl Berry * contrib/perldoc-all: example making Texinfo from Perl's *.pod. * util/dir-example (Perl): add it. * util/gendocs.sh: add --source, --common, --split --no-ascii. Prettify output. * doc/Makefile.am (gendocs): use the version from our source hierarchy, since it's maintained here. * Pod-Simple-Texinfo/pod2texi.pl (preamble): null if making @include files. More doc. * doc/texinfo.txi (Invoking pod2texi): new node. 2013-02-03 Karl Berry * tp/Makefile.am: doc fix. * tp/maintain/regenerate_docstr.sh: do not depend on directories with their unpredictable timestamps. * tp/maintain/regenerate_file_lists.pl: copyright year update. * po_document/pl.po: new translation. * po_document/LINGUAS: add it. 2013-02-01 Karl Berry * doc/texinfo.tex (@normalturnoffactive): also reset -, so @code{@xref{-}} works. (\normaldash): rename from \realdash, for consistency. Change all uses. 2013-01-29 Karl Berry * doc/texinfo.txi (HTML Customization Files) : is no more. 2013-01-29 Patrice Dumas * po/POTFILES.in, tp/init/latex2html.pm: mark translations for error messages in latex2html.pm, and add file to po/POTFILES.in. 2013-01-28 Karl Berry * pretest 4.13.95. * README-hacking: .po files might not be literal copies. texinfo_document is new TP domain. * build-aux/config.sub: srclist-update. * tp/Makefile.am (dist_converters_DATA): add Texinfo/Convert/IXIN.pm Texinfo/Convert/IXINSXML.pm. 2013-01-27 Karl Berry * doc/texinfo.txi (HTML Customization Variables): split node out from Other Cust Var. (Other Customization Variables): new TEXINFO_OUTPUT_FORMAT replaces the individual special-output-format variables. * doc/refcard/txivarcheck: only check uppercase variable names, and do output manual-only names. * man/pod2texi.1: new file, made with pod2man. * man/Makefile.am (man_MANS): add it. 2013-01-27 Patrice Dumas * tp/texi2any.pl, tp/Texinfo/Common.pm, tp/DebugTexinfo/DebugTree.pm, util/detexinfo: remove output specific customization variables. 2013-01-25 Karl Berry * doc/texinfo.txi (Other Customization Variables) : new. : add indent_menu_descriptions. Also, use it to re-indent the menus and regenerate_master_menu. 2013-01-21 Karl Berry * doc/texinfo.txi (Raw Formatter Commands): be more emphatic about some processing being done inside raw regions, and the resulting unpredictable effects when Texinfo-level things are done there. 2013-01-20 Karl Berry * doc/texinfo.txi (Other Customization Variables) [TREE_TRANSFORMATIONS]: @ftable, text tweaks. (Top): update with texinfo-master-menu. * doc/info-stnd.texi: @t in node names, merge footnote text where reasonable. 2013-01-19 Patrice Dumas * util/texinfo.dtd: add number attribute for float and indexterm. 2013-01-19 Karl Berry * pretest 4.13.94. * README-hacking: tersely describe release steps. 2013-01-18 Karl Berry * doc/texinfo.txi (Customization Variables for Program Behavior) [TEXINFOSXML]: new output format. * tp/Makefile.am (dist_converters_DATA): add TexinfoSXML.pm. 2013-01-16 Patrice Dumas * tp/Texinfo/Convert/TexinfoXML.pm: replace tp/Texinfo/Convert/XML.pm. 2013-01-16 Karl Berry * doc/texinfo.txi (Marking Text): remaining node names needing @t. 2013-01-15 Karl Berry * po_document/LINGUAS: es.us-ascii is back, paperwork executed by Francisco Vila . * doc/texinfo.txi: use @t instead of @code in node names, to avoid extraneous quotes. 2013-01-15 Patrice Dumas * autogen.sh: adapt to shorter regenerate_docstr.sh and Makefile.docstr names. 2013-01-14 Karl Berry * doc/texinfo.txi (Conditionally Visible Text, Defining New Texinfo Commands, Formatting and Printing Hardcopy, Creating an Info File): node names with @. Fix more xrefs for new names. 2013-01-13 Karl Berry * doc/texinfo.txi (Special Insertions, Breaks, deffnx, documentencoding): node names with @, restructure. * po_document/LINGUAS (ja, es.us-ascii): remove. * tp/maintain/regenerate_docstr.sh: shorten name of regenerate_document_strings_make_rules.sh. * tp/Makefile.docstr: shorten name of generated file, too. * tp/Makefile.am: renames. 2013-01-12 Karl Berry * doc/texinfo.txi (Internationalization of Document Strings): small changes. 2013-01-11 Karl Berry * configure.ac (AC_PREREQ): remove, better to rely on AM_INIT_AUTOMAKE's implicit prereq. Suggestion from Stefano, 11 Jan 2013 12:12:53. * tp/tests/Makefile.am (long-check, all-check, tex-html-check): aliases for the names with s. 2013-01-11 Sergey Poznyakoff * info/window.c (calculate_line_starts): call window_line_map_init, 19 Dec 2012 14:10:30 +0200 2013-01-08 Patrice Dumas * po_document/fr.us-ascii.po: update by Jean-Charles Malahieude, with additional edits. * doc/texinfo.txi (Internationalization of Strings), doc/draft_api.texi (Internationalization of Strings Function): re-add the text about translated strings in the manual keeping only the perl api information in draft_api.texi. 2013-01-08 Karl Berry * doc/texinfo.txi (Lists and Tables, Floats): node names with @. 2013-01-07 Karl Berry * doc/texinfo.txi (Cross References, Quotations and Examples): node names with @ throughout chapter. 2013-01-06 Karl Berry * install-info/install-info.c (open_possibly_compressed_file): free in .gz case is wrong. * doc/texinfo.txi (Nodes): node names with @ throughout chapter. * doc/texinfo.txi (acronyn, Smallcaps): more about the problems of using them, and not recommending them. 2013-01-06 Patrice Dumas * configure.ac: prove is required for tp tests. 2013-01-05 Karl Berry * install-info/install-info.c (open_possibly_compressed_file): free the original in the .gz and (found by Andreas Schwab, 05 Jan 2013 12:28:05) .xz cases too. Reindent other parts of fn correctly. * doc/texinfo.txi (Chapter Structuring): node names with @ throughout chapter. 2013-01-05 Patrice Dumas * util/*.bat: remove spurious +, reported by Eli Z. 2013-01-04 Karl Berry * doc/texinfo.txi (end titlepage, setchapternewpage, headings on off, paragraphindent, exampleindent): continue conversion to node names with @. 2013-01-03 Thien-Thi Nguyen (tiny change) * doc/texinfo.txi (Combining Indices): @synindex uses the "roman font for merged-from". 2013-01-03 Karl Berry * doc/texinfo.txi (setfilename, settitle, copying, insertcopying, titlepage, titlefont center sp, title subtitle author, documentdescription, quotation, setfilename, settitle): continue conversion to node names with @. 2013-01-01 Karl Berry * pretest 4.13.93. * util/Makefile.am (texinfo.cat): remove rule and references; not aware of anything using it, current rule fails distcheck. * util/tests: move the TeX-related tests (all unused) here from util/. * contrib: new directory; move contributed files from util/ there. * Pod-Simple-Texinfo/pod2texi.pl, * doc/texinfo.txi, * doc/refcard/txirefcard.tex, * info/info.c, * info/infokey.c, * install-info/install-info.c, * tp/texi2any.pl, * util/texi-elements-by-size, * util/texindex.c, * util/texi2dvi, * util/gendocs_template, * util/gendocs_template_min: 2013. 2013-01-01 Karl Berry * doc/texinfo.tex: received official GPLv3 exception text for texinfo.tex (RT licensing #502113). Same wording / no change in permissions. 2012-12-31 Karl Berry * install-info/install-info.c (): mention --add-once, --align, --calign, --maxwidth, --max-width, inadvertently omitted when implemented. Also don't mention removals working with --entry. Report from Benno Schulenberg, 26 Dec 2012 19:34:40. 2012-12-30 Eli Zaretskii * configure.ac: Use $host, not $target, to detect MS-Windows builds, and set HOST_IS_WINDOWS if so. * util/Makefile.am (bin_SCRIPTS): Decide whether to install Windows batch files using HOST_IS_WINDOWS. 2012-12-29 Karl Berry * util/htmlxref.cnf (gmp): use up-to-date version on gmplib.org. * util/srclist.txt (missing): sync from $AUTOMAKE. 2012-12-29 gettextize * gnulib/m4/po.m4: Upgrade to gettext-0.18.2. * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.18.2. 2012-12-29 Patrice Dumas * util/Makefile.am (texinfo.cat): use $(TEXINFO_DTD_VERSION) instead of @VERSION@. Report from Thien-Thi Nguyen. 2012-12-22 Karl Berry * util/Makefile.am (EXTRA_DIST): add *.bat. Report from Eli, 22 Dec 2012 17:33:58. 2012-12-19 Patrice Dumas * configure.ac, tp/Texinfo/*, tp/t/*: use the correct next version number for DTD and in other places. 2012-12-17 Karl Berry * pretest 4.13.92. 2012-12-15 Karl Berry * doc/texinfo.txi: use "sectioning" as the general term in a few places. (Other Customization Variables) : more on default. 2012-12-11 Eli Zaretskii * configure.ac (TGT_IS_WINDOWS): New conditional. * util/Makefile.am (bin_SCRIPTS) [TGT_IS_WINDOWS]: add Windows batch files to bin_SCRIPTS. 2012-12-14 Ineiev (tiny change) * configure.ac (HAVE_TERMLIBS): new conditional. End with repeated warning about no terminal library for visibility. * Makefile.am (SUBDIRS) [HAVE_TERMLIBS]: only include info/ if new conditional is true. * man/Makefile.am (man_MANS) [HAVE_TERMLIBS]: likewise for making info.1 and infokey.1. 2012-12-14 Thien-Thi Nguyen (tiny change) * doc/texinfo.txi (Three Arguments): Add @findex xrefautomaticsectiontitle. 2012-12-14 Karl Berry * doc/texinfo.txi (Other Customization Variables): edit wording of defaults, etc. 2012-12-10 Patrice Dumas * configure.ac, tp/Makefile.am, tp/texi2any.pl, tp/Texinfo/Common.pm, tp/Texinfo/Convert/XML.pm, tp/maintain/catalog.xml.in, tp/t/test_utils.pl, doc/texinfo.txi (Other Customization Variables): Add a new configure variable TEXINFO_DTD_VERSION that holds the version of the dtd. Add the corresponding customization variable in tp/. 2012-12-08 Patrice Dumas * doc/texinfo.txi (Command Contexts): @verb is not accepted in simple text commands and sectioning commands. 2012-12-02 Karl Berry * configure.ac (TERMLIB_VARIANTS): try tinfo first. Suggestion from Andreas Schwab, 02 Dec 2012 10:00:44. 2012-12-02 Colin Watson Build gnulib/lib directory in native-tools pass when cross-compiling (bug #37852). * Makefile.am (SUBDIRS) [TOOLS_ONLY]: Add gnulib/lib. 2012-12-02 Karl Berry * install-info/tests/defs.in (TMPDIR): define if not defined. 2012-12-02 Patrice Dumas * configure.ac: remove gnulib module regex snippet, it is already in gnulib/m4/gnulib-comp.m4. * configure.ac, tp/Texinfo/Convert/Unicode.pm: check that Encode is available, and use perl >= 5.7.3, required for Encode. Report from Stefano Lattarini. 2012-12-01 Sergey Poznyakoff Fix bug #37822 (incomplete redraw of screen). * info/display.c (display_scroll_display): Fix a "fencepost" error when scrolling down. * info/terminal.c: Improve conditional. 2012-12-01 Sergey Poznyakoff Fix cursor positioning after index searches (bug #37823). * info/window.h (WINDOW): Use size_t instead of int. (log_line_no): New member. (process_node_text): Change signature. * info/window.c (window_new_screen_size,recalculate_line_starts) (window_toggle_wrap,window_delete_window): Handle the log_line_no array. (calc_closure_expand): New static function. (_calc_line_starts): Update log_line_no. Use calc_closure_expand instead of the add_pointer_to_array macro. (calculate_line_starts): Fill in log_line_no. (window_log_to_phys_line): New function. (process_node_text): Keep track of logical line numbers. * info/display.c (display_node_text): Change signature. * info/indices.c (info_next_index_match): Convert logical line number to physical line. * info/tag.c (tags_expand): Remove unused variables. (handle_tag): Fix return type. * info/tag.h (handle_tag): Fix return type. 2012-11-30 Patrice Dumas * doc/texinfo.txi (Invoking texi2any), tp/texi2any.pl: add -c as an alias for --set-customization-variable (Karl idea). * doc/texinfo.txi (Other Customization Variables): explain default values for customization variables. 2012-11-30 Karl Berry * install-info/tests/defs.in (mktemp): define minimal replacement if not found in PATH. It is lacking on AIX 6 (Ineiev) and mingw (Eli). 2012-11-28 Karl Berry * install-info/tests/defs.in (path_spec, EGREP): need these for findprog. 2012-11-26 Karl Berry * pretest 4.13.91. * configure.ac: invoke gl_REGEX, after gnulib-tool --add-import regex. This will now be used on all systems except recent-enough libc. * doc/texinfo.txi (Command Syntax): Explicitly mention whitespace after @-command names being (usually) ignored. * doc/texinfo.txi (Not Ending a Sentence): Attempt to document the sentence-ending heuristic more clearly. Suggestion from Eli Zaretskii in , draft from Paul Eggert in bug-texinfo 24 Nov 2012 18:02:27. * install-info/defs.in (findprog): new fn, from texi2dvi. * install-info/tests/ii-0050-test, * install-info/tests/ii-0041-test: use it to check for zdiff (not available on bare Solaris) and skip tests if needed. 2012-11-25 Karl Berry * doc/texinfo.txi: consistently use "uppercase" and "lowercase", rather than with spaces or dashes. * system.h (const): do not #undef around gettext.h. Suggested by Eli. We'll see. 2012-11-16 Eli Zaretskii * info/pcterm.c (gettextinfo): exit rather than xexit. (tputs, tgoto, tgetent): use const. * info/session.c [!FIONREAD]: require F_GETFL and F_SETFL as well as O_NDELAY for this branch. * info/terminal.c (tputs) [! HAVE_TERMCAP_H]: declare puts as returning int. 2012-11-23 Karl Berry * doc/texinfo.txi (makeinfo Pointer Creation): be more explicit about what to do. Suggestion from Richard Jackson, help-texinfo 18 Feb 2003 23:54:07. 2012-11-22 Patrice Dumas * */*.pl */Makefile.am: use #! /usr/bin/env perl for shebangs in case perl is not in /usr/bin. Subbstitute $(PERL) in the shebang for scripts that are modified using configure generated values. * man/Makefile.am: remove $(srcdir) from targets. 2012-11-20 Patrice Dumas * Texinfo/Common.pm, Texinfo/Parser.pm, doc/texinfo.txi (Other Customization Variables): if IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME is set (the default case), spaces after an @-command name that take braces are ignored. Report from John Darrington. 2012-11-17 Patrice Dumas * configure.ac, Pod-Simple-Texinfo/Makefile.am, doc/tp_api/Makefile.am: new conditionals, BUILD_PERL_API_TEXI and POD_SIMPLE_TEXINFO_TESTS to avoid rebuilding the texinfo files from pod documentnation if Pod::Simple::PullParser, and avoid running the Pod-Simple-Texinfo tests if Test::More is not present. 2012-11-17 Sergey Poznyakoff Use the text attribute to represent "image" tag. Provide a general-purpose solution, so new tags can be easily added. This fixes bug #37686. * info/tag.c: New file * info/tag.h: New file * info/Makefile.am: Add new files. * info/dir.c: Use size_t instead of long to represent file size. * info/display.c (handle_tag) (handle_tag_start,handle_tag_end): Remove. * info/display.h (handle_tag): Remove. * info/filesys.c (filesys_read_info_file): Use size_t instead of long to represent file sizes and offsets. Call tags_expand to expand info tags. (filesys_read_compressed): Do not call convert_eols, leave that for filesys_read_info_file. * info/filesys.h (filesys_read_info_file) (filesys_read_compressed): Use size_t instead of long to represent file sizes and offsets. * info/info-utils.c (text_buffer_alloc): New function. * info/info-utils.h (MIN_TEXT_BUF_ALLOC): New define. (text_buffer_alloc): New proto. (text_buffer_reset,text_buffer_base) (text_buffer_off): New macros. * info/nodes.c: Use size_t instead of long to represent file sizes and offsets. * info/nodes.h (FILE_BUFFER) : Change type to size_t. * NEWS: Update. 2012-11-16 Eli Zaretskii Support for MS-Windows screen and keyboard in Info. (bug-texinfo 17 Jan 2012 08:41:10 +0200) * system.h (SET_SCREEN_SIZE_HELPER) [__MINGW32__]: Define. * info/tilde.c (tilde_expand_word) [__MINGW32__]: Don't call getpwuid or getpwnam; instead, consider "." as "home" if HOME is not set in the environment. Support tilde_expansion_failure_hook. * info/terminal.c [_WIN32]: Include pcterm.h. (terminal_initialize_terminal) [__MINGW32__]: Don't access `ospeed'. (terminal_prep_terminal, terminal_unprep_terminal) [__MINGW32__]: Ifdef away the TIOC code for Windows. * info/termdep.h [__MINGW32__]: Don't include sgtty.h. [_WIN32]: Add a prototype for `sleep'. * info/signals.c (redisplay_after_signal) (reset_info_window_sizes): Make these 2 functions extern from static, as they are called on MS-Windows from other files. * info/session.c (read) [__MINGW32__]: Redirect read and _read to w32_read. (info_gather_typeahead) [__MINGW32__]: Call w32_chars_avail to find out how many typeahead is available. * info/pcterm.c [_WIN32]: Definitions for the MS-Windows build. (w32_info_prep, w32_info_unprep, w32_cleanup, w32_info_init) (gettextinfo, textattr, textmode, ScreenGetCursor) (ScreenSetCursor, ScreenClear, clreol, ScreenVisualBell) (movetext, ScreenRows, ScreenCols, _set_screen_lines) (w32_set_screen_dimensions) [_WIN32]: New; screen output and cursor control functions for MS-Windows. (sleep, w32_our_tty, define_seq, w32keyseq, w32_kbd_read) (w32_chars_avail, w32_read) [_WIN32]: New; keyboard input functions and their subroutines for MS-Windows. (pc_prep_terminal) [_WIN32]: Call w32_info_prep. (pc_unprep_terminal) [_WIN32]: Call w32_info_unprep. Restore the screen buffer size to what we found on startup. (pc_initialize_terminal) [_WIN32]: Let term_name be "w32console". Condition MSDOS key definitions on __MSDOS__. (kill) [_WIN32]: Don't clear the screen and don't write "stopped" message on MS-Windows. Special suspend code for MS-Windows. * info/man.c [__MINGW32__]: Don't include sys/ioctl.h. Fix a crash in viewing man pages. * info/man.c (get_manpage_contents) [!PIPE_USE_FORK]: Fix a crasher due to addition of "-a" to the man command line arguments. Miscellaneous MS-Windows related fixes. * info/infokey.c (main): On MS-Windows, consider the current directory a "home" if HOME is not defined in the environment. * info/infomap.c (fetch_user_maps): Likewise. * info/info.c