commit 7baf4f407ff3979824a942fbd2226ae57962fd41 Author: Gavin Smith Date: Thu Mar 20 22:52:26 2014 +0000 Character encoding conversion This change requires the iconv module to be added from gnulib. info-utils.c (input_length, convert_encoding_p, file_is_in_utf8) (iconv_to_output, iconv_to_utf8): New file-level variables. (init_conversion): New function. (init_output_stream): Arguments changed. Call init_conversion. (copy_direct, degrade_utf8, copy_converting): New functions. (copy_input_to_output): Conditionally convert character encoding of copied text. (scan_node_contents): Arguments changed. (text_buffer_space_left, text_buffer_iconv): New functions. nodes.c (get_file_character_encoding): New function. (info_load_file_internal): Call get_file_character_encoding. nodes.h (LOCAL_VARIABLES_LABEL, CHARACTER_ENCODING_LABEL): New preprocessor symbols. (FILE_BUFFER): New field 'encoding'. commit ac41ddb793934db73f6677bea19f39562ef76aba Author: Gavin Smith Date: Thu Mar 13 16:18:29 2014 +0000 info_utils.c (rewrite_p): New file-level variable. (scan_node_contents): Tag expansion, moved from tag.c:tags_expand. nodes.c (info_node_of_file_buffer_tags): Don't call tags_expand. tags.c (struct tag_handler, find_tag_handler): No longer static. (tags_expand): Function deleted. commit 8e656031f6fd3cb5c67b62a68dc6672f38c4114f Author: Gavin Smith Date: Wed Mar 12 16:39:47 2014 +0000 info-utils.c (scan_node_contents): Use struct text_buffer and functions to handle storage for rewritten node. commit 34ceded0c1eb35f37364b9b3562c2b1044e2ab05 Author: Gavin Smith Date: Tue Mar 11 17:17:36 2014 +0000 info-utils.c (input_start, inptr, anchor_to_adjust, nodestart): New file-level variables. (write_and_advance, skip_input, write_extra_bytes_to_output) (copy_input_to_output): Three new functions to replace write_and_advance. All callers changed. (scan_node_contents): Function argument changed. Adjust offsets of anchors in tag table if we are rewriting the node. Output a newline wherever a newline occurs in a reference node description. commit 94059a4e08514b9fc628cb9ba6006efa62d72d25 Author: Gavin Smith Date: Sun Mar 9 19:18:01 2014 +0000 * session.c (initialize_terminal_and_keymaps, initialize_info_session): Function split out. * 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. commit 2a5b217c3f70c00599e85187a964d3e3f6c30717 Author: Gavin Smith Date: Sun Mar 9 17:56:59 2014 +0000 Miscellaneous changes - * indices.c (info_indices_of_file_buffer): Quit if node is an anchor * info-utils.c (info_get_labeled_reference): Only look for menu items. * indices.c (apropos_in_all_indices): Free each file buffer after indices are read from file. * info-utils.c (info_concatenate_references) Do not free second argument and duplicate all strings which are fields in REFERENCE's found from the second argument. This allows freeing file structures in apropos_in_all_indices. * man.c (manpage_node_of_file_buffer): Set nodelen 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. * nodes.c (get_node_length): Function no longer static. * window.c: (window_make_modeline) If preprocess_nodes_p is set, display less information in status bar. commit 0261d86f0c3b97d0402bb7f0253ff57b1102555b Author: Gavin Smith Date: Sun Mar 9 17:30:33 2014 +0000 * info-utils.c, info-utils.h (info_menu_of_node, info_xrefs_of_node) (info_menu_items, info_xrefs, info_references_internal): Functions deleted. * info-utils.c (info_parse_label): Function and associated macros deleted commit 2c28487caaccff33c520215bb78541314f4f5b97 Author: Gavin Smith Date: Sun Mar 9 17:17:17 2014 +0000 * 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. * footnotes.c (make_footnotes_node) * indices.c (info_indices_of_file_buffer, select_visited_node) (apropos_in_all_indices) * nodemenu.c (select_visited_node) * session.c (forward_move_node_structure, backward_move_node_structure) (info_next_node, info_prev_node, info_up_node, 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_handle_pointer, info_goto_description): info_goto_description split out from info_handle_pointer. Do not assume anything about WINDOW->node now. Special handling of man pages removed. (kill_node): Copy whole NODE structure at once rather than field by field. (info_menu_or_ref_item): Arguments changed. All callers updated. (last_node_p): Function deleted. commit be41c3a70db77b11789389580e41b9605477a7a9 Author: Gavin Smith Date: Sun Mar 9 16:51:04 2014 +0000 * nodes.c (get_nodes_of_info_file): Set nodelen to -1 for all nodes. Initialize fields of NODE structure. (get_nodes_of_tag_table): Initialize fields of NODE structure. (info_node_of_file_buffer_tags): Call scan_node_contents on node contents. Tag expansion temporarily disabled. (info_get_node): Use xstrdup to allow calling info_parse_node in subsequent functions. (free_info_tag): Free tag.references if set. * nodes.h (NODE.content_cache): Field deleted. commit 2a949fb613257f464f03d61c3a2d7ea0434c89f9 Author: Gavin Smith Date: Sun Mar 9 16:27:22 2014 +0000 * info-utils.c, variables.c (preprocess_nodes_p): New variable. * info-utils.c (scan_node_contents, init_output_stream) (write_and_advance, underlining_on, underlining_off) (parse_top_node_line): New function and helper functions, based on info-utils.c:info_references_internal. (info_parse_node): Return length of parsed node label. * nodes.h (N_WasRewritten): New preprocessor symbol. commit 359b46ad56bb1b9225af58adeaa87bb588a072f3 Author: Gavin Smith Date: Sun Mar 9 15:41:52 2014 +0000 * nodes.h (NODE): New fields references, up, prev, next. * info-utils.h, nodes.h (REFERENCE): New field 'type'. typedef declaration moved. * nodes.h (REFERENCE_XREF, REFERENCE_MENU_ITEM): New preprocessor symbols. commit a46374196cf982831bd8b1cf4ef5ae117b11ff5c Author: Gavin Smith Date: Thu Mar 20 00:41:58 2014 +0000 search.c (regexp_search): Remove unnecessary check. commit bc107578774f3dec888a44effa4e372f032647e9 Author: Gavin Smith Date: Tue Mar 18 23:05:26 2014 +0000 Replace TAG structure with NODE commit 92167416c7f5f3607b107dd0bde6a252821c735d Author: Gavin Smith Date: Sun Mar 9 15:23:39 2014 +0000 svn version 5419