only scan the newly added objects.
(print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
unconditionally force it to stay in the table.
(Fbitmap_spec_p): Replaces Fpixmap_spec_p.
(load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
Fpixmap_spec_p and Qpixmap_spec_p.
(load_face_colors, check_lface_attrs,
merge_face_vector_with_property,
Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
(syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
Fbitmap_spec_p.
selected_window.
(Fdisplay_buffer): Call it with window parameter instead of
setting selected_window.
(Fenlarge_window, Fshrink_window): Ditto.
(shrink_mini_window): If there is no recorded height and position
info, resize mini-window to height 1.
(change_window_height): Call window_min_size with new parameter.
(shrink_window_lowest_first, save_restore_orig_size,
grow_mini_window, shrink_mini_window): New.
(make_window, replace_window): Initialize orig_top and
orig_height.
(enlarge_window): Renamed from change_window_height. Make it
static.
(Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
enlarge_window instead of change_window_height.
that window start is out of range.
(handle_display_prop, handle_single_display_prop): Replace
marginal area specifications like `left-margin' with `(margin
left-margin)'.
(Qmargin): New.
(syms_of_xdisp): Initialize Qmargin.
(command_loop_1, safe_run_hooks, kbd_buffer_get_event,
timer_check, make_lispy_event, menu_bar_items,
menu_bar_one_keymap, menu_bar_item, parse_menu_item,
parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
read_key_sequence): Ditto. Fread_key_sequence,
Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
(read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
used when GOBBLE_FIRST_EVENT is defined in #ifdef
(Fexecute_extended_command): Cast XINT to long for %ld.
(toplevel) [HAVE_UNISTD_H]: Include unistd.h.
(toplevel): Include sys/types.h.
(compact_strings): Add parentheses around assignments in
conditional context.
(toplevel): Put declaration of unused function clear_marks
in #if 0 like its definition.
ambiguous else warning.
(split_interval_left): Remove unused variables.
(previous_interval, adjust_intervals_for_deletion,
set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
(icount, idepth, zero_length): Move into #if 0 section below
original position where these are used.
unused variables.
(mark_shell_size_user_specified): Put in #if 0 because not used.
(create_frame_gcs): Put in #if 0 because currently unused.
(first_frame_p): Ditto.
is misleading.
(Ferror_message_string): Remove unused variables.
(print_object): Cast argument of sprintf to long for `%ld'
specifier. Remove unused variable.
not USE_TOOLKIT_SCROLL_BARS.
(x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
(x_produce_glyphs): Remove unused variable(s).
(x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
x_set_toolkit_scroll_bar_thumb): Ditto.
(x_scroll_bar_create): Move local variable to the
conditionally compiled section of code where it is used.
(x_scroll_bar_create): Remove unused variable(s).
(x_scroll_bar_remove, XTread_socket): Ditto.
(XTread_socket) <ConfigureNotify>: Move variables used for
non-toolkit case into conditionally compiled section of code.
(x_set_border_pixel): Ditto.
(x_set_menu_bar_lines): Put local variable used only for
non-toolkit case in #ifdef/#endif.
(x_figure_window_size): Remove unused variable(s).
(x_figure_window_size, x_window, lookup_image,
xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
png_load, jpeg_load, gif_load, x_create_tip_frame,
x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
(Vprint_gensym_alist): Removed.
(Vprint_circle, Vprint_continuous_numbering, print_number_index
Vprint_number_table): New variables.
(PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
(PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
(print, print_preprocess, print_preprocess_string, print_object):
New/modified functions with print-circle feature. Use
Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
(syms_of_print): Defined new Lisp variables `print-circle',
`print-continuous-numbering', `print-number-table'.
(syms_of_xfaces): Defsubr accordingly.
(lface_from_face_name): Resolve face aliases.
(Qmode_line): Replaces Qmodeline.
(realize_basic_faces): Use Qmode_line.
(syms_of_xfaces): Initialize Qmode_line.
(Qframe_update_face_colors): New.
(syms_of_xfaces): Initialize call.
(update_face_from_frame_parameter): Call that function when
the frame's background changes.
to exact size if exact_p is non-zero.
(display_echo_area_1): Call resize_mini_window with
new parameter.
(redisplay_internal): Ditto.
(resize_echo_area_axactly): New.
(hscroll_window_tree): Choose cursor row from
desired or current matrix.
(redisplay_internal): Hscroll before updating.
new parameter.
(read_minibuf): Use prompt_end_charpos instead
of minibuffer_prompt_length.
(read_minibuf_unwind): Ditto.
(Fminibuffer_complete_and_exit): Ditto.
(Fminibuffer_complete_word): Ditto.
(Fminibuffer_prompt_end): Ditto.
(read_minibuf): Return mini-buffer contents
without the prompt.
(read_minibuf): Set minibuf_prompt_width to the
current column after inserting prompt.
(Fminibuffer_prompt_width): Return minibuf_prompt_width.
of minibuffer_prompt_length.
(Fline_beginning_position): Ditto.
(make_buffer_string_both): Take out the code
to handle mini-buffer prompts.
(Fbuffer_string): Handle the prompt here, instead.
as background color specification instead of an integer.
(image-cache-eviction-delay): Replaces image-eviction-seconds.
(Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
(clear_image_cache, syms_of_xfns): Use it.
(Qpostscript): Replaces Qghostscript.
(gs_type): Use it.
(gs_image_p): Ditto.
(syms_of_xfns): Initialize Qpostscript.
(Finternal_set_lisp_face_attribute): Modify frame parameters
if attributes of certain faces are changed.
(update_face_from_frame_parameter): New.
(realize_basic_faces): Realize new basic faces.
(Qscroll_bar, Qcursor, Qborder, Qmouse): New.
(syms_of_xfaces): Intialize new symbols.
(Qfringe): Replaces Qmargin.
under newly created scroll bar.
(expose_window): If window is not yet fully initialized, do
nothing. This can happen when toolkit scroll bars are used and a
window is split. Reconfiguring the scroll bars will generate an
expose for a newly created window.
(x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
New. Allocate color for lwlib widgets.
(x_alloc_nearest_color): Change parameter list include the
frame on which to allocate colors. Gamma-correct colors.
(x_alloc_lighter_color): Call x_alloc_lighter_color with new
parameter list.
(Vresize_mini_config, resize_mini_frame,
resize_mini_initial_height): Removed.
(syms_of_xdisp): Remove references to these variables.
(resize_mini_window): Don't save window configuration, freeze
window starts instead. Enlarge window until displaying an empty
buffer, then shrink it. Make the function externally visible.
(redisplay_window): Treat frozen window start like forced start,
but accept point outside of the window.
here.
(XTset_vertical_scroll_bar): Clarify position computations. Clear
under newly created scroll bar. Put toolkit scroll bars in the
middle of the area reserved for the scroll bar.
(count_combining_before): Adjust the way to check byte-combining
possibility for the new handling of multibyte sequence. Call
count_combining_composition for a composite character.
(count_combining_after): Likewise.
(SPLIT_CHARACTER_SEQ): New macro.
(SPLIT_MULTIBYTE_SEQ): New macro.
(CHAR_COMPONENT_VALID_P): New macro.
(non_ascii_char_to_string): Generate a multibyte sequence as far
as possible.
(string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
(split_non_ascii_string): Likewise.
(multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
(char_printable_p): New function.
(translate_char): Check character by NATNUMP instead of INTEGERP.
(unibyte_char_to_multibyte): Call char_valid_p instead of
VALID_MULTIBYTE_CHAR_P.
(Fmake_char_internal): Check the arguments more rigidly.
(Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
(char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
(Fmultibyte_char_to_unibyte): Check the validity of character by
CHAR_VALID_P.
(chars_in_text): Call multibyte_chars_in_text.
(multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
(Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
are negative.
(MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
(VALID_MULTIBYTE_CHAR_P): This macro deleted.
(PARSE_COMPOSITE_SEQ): New macro.
(PARSE_CHARACTER_SEQ): New macro.
(PARSE_MULTIBYTE_SEQ): New macro.
(CHAR_PRINTABLE_P): New macro.
(STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
(STRING_CHAR_AND_LENGTH): Likewise.
(STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
(INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
(DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
(Fforward_comment, scan_lists, scan_sexps_forward)
(Fparse_partial_sexp): Add support for nested comments.
(forw_comment): New subroutine used in them.
(ISBLANK, ISGRAPH, ISPRINT, ISALNUM, ISALPHA, ISLOWER)
(ISPUNCT, ISSPACE, ISUPPER): New definitions for emacs only.
(ISWORD): New macro.
(re_opcode_t): Add 2 bytes of flag bits to charset and charset_not.
(CHARSET_RANGE_TABLE): Update definition.
(CHARSET_RANGE_TABLE_BITS): New macro.
(print_partial_compiled_pattern): Skip charset's range table.
(struct range_table_work_area): New field `bits'.
(SET_RANGE_TABLE_WORK_AREA_BIT): New macro.
(BIT_ALNUM, BIT_ALPHA, BIT_WORD, BIT_GRAPH, BIT_LOWER, BIT_PRINT)
(BIT_PUNCT, BIT_SPACE, BIT_UPPER): New macros.
(CLEAR_RANGE_TABLE_WORK_USED): Clear field `bits'.
(RANGE_TABLE_WORK_BITS): New macro.
(IS_CHAR_CLASS): Check for "word".
(regex_compile): Set the `bits' field for some character classes.
Handle the `word' class. Store the `bits' field into the range table.
(re_compile_fastmap): Handle flag bits in range table.
(re_match_2_internal): For charset and charset_not,
handle flag bits in the range table.
elements if HIDE_LISP_IMPLEMENTATION is defined, to help detect code that uses
knowledge of the Lisp internals that it shouldn't have.
(XFLOAT_DATA): New macro.
Vmax_mini_window_height is nil. Otherwise, use a default if
Vmax_mini_window_height is not ot a number.
(syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
Auto-detect .sbss section.
(round_up): Make it static.
(unexec): Declare alignment as Elf Word. Skip ``Program
segment above .bss'' test on MIPS without .sbss.
Copy sections .got and .sdata1 sections. Adjust offsets in
sections .sdata, .lit4, .lit8, .got and .sdata1.
before calling try_window.
(echo_area_display): If height has changed, update other windows.
(resize_mini_frame, resize_mini_initial_height): New.
(resize_mini_window): Save/restore window configuration
differently.
resizing mini-window.
(unwind_with_echo_area_buffer): Use
set_buffer_internal_1 instead of set_buffer_internal.
(with_echo_area_buffer): Ditto.
(Vresize_mini_config): New.
(resize_mini_window): Use it to save restore original window
configuration
(syms_of_xdisp): Initialize it.
(reconsider_clip_changes): New.
(redisplay_internal, redisplay_window): Call it.
(mark_window_display_accurate, redisplay_internal): Set current
matrix' buffer, begv, zv.
overlay_unchanged_modified): Removed.
(with_echo_area_unwind_data): Don't save beg/end_unchanged.
(unwind_with_echo_area_buffer): Don't restore them.
(debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
(text_outside_line_unchanged_p, redisplay_internal,
try_scrolling): Use/set buffer-specific beg/end_unchanged.
(redisplay_window): Let try_window_id be called if more than one
window is displayed. Use/set buffer-specific beg/end_unchanged.
(get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
try_window_id):
Use buffer-specific beg/end_unchanged.
(beg_unchanged, end_unchanged, unchanged_modified,
overlay_unchanged_modified): Remove extern declarations.
only if buffer is displayed somewhere.
(modify_overlay): Use BUF_COMPUTE_UNCHANGED.
(reset_buffer): Set clip_changed to 0 and
prevent_redisplay_optimizations_p to 1.
(Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
(modify_overlay): Compute beg/end_unchanged
per buffer.
(Fget_buffer_create): Initialize new members of the buffer
structure.
well.
(redisplay_internal): Resize mini-window only if text might
have changed.
(display_echo_area): Reset displayed echo_area_buffer to nil
at the end if we're displaying a nil message.
new parameter.
Remove conditional compilation on
NO_PROMPT_IN_BUFFER.
(get_next_display_element): Display \r as ^M.
(minibuffer_scroll_overlap): Removed because not used
anywhere.
(unwind_redisplay): Return nil.
(clear_garbaged_frames): New.
(redisplay_internal): Use it.
(echo_area_display): Ditto.
(resize_mini_window): Mew.
(display_echo_area_1): Use it to resize echo area window.
(redisplay_internal): Use it to resize active mini-window.
(echo_area_glyphs, echo_area_message,
echo_area_glyphs_length, previous_echo_glyphs,
previous_echo_area_message, previous_echo_area_glyphs_length):
Removed.
(Vmessage_stack, echo_area_buffer, echo_buffer,
display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
(message2_nolog): Use set_message and clear_message.
(message3): Rename parameter len to nbytes to make clear what
it is.
(message3_nolog): Ditto. Use set_message and clear_message.
(update_echo_area): Rewritten.
(with_echo_area_buffer): New.
(with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
(setup_echo_area_for_printing): New.
(display_echo_area, display_echo_area_1): New.
(current_message, current_message_1): New.
(push_message, restore_message, pop_message,
check_message_stack): New.
(truncate_echo_area): Rewritten.
(truncate_message_1): New.
(set_message, set_message_1, clear_message): New.
(echo_area_display): Rewritten.
(redisplay_internal): Check for needed echo area update
differently.
(redisplay_preserve_echo_area): Rewritten.
(redisplay_window): Check for mini-window displaying echo area
message differently.
(syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
Remove initialzation of removed variables.
(init_xdisp): Remove references to removed variables.
(glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
glyph_to_str_cpy): Remove that section because GLYPHs are no
longer used in that way.
(PRINTDECLARE): Add multibyte.
(PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
(printbufidx): Removed.
(printchar, strout): Rewritten.
NO_PROMPT_IN_BUFFER.
(Fminibuffer_prompt_end): New.
(syms_of_minibuf): Defsubr it. Remove
minibuffer-prompt-in-buffer.
(Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
Extend documentation.
(read_minibuf): Use clear_message instead of
setting echo_area_glyphs.
(Fminibuffer_completion_help): Ditto.
new parameter.
(ok_to_echo_at_next_pause): Make it a pointer to
a struct kboard.
(echo_kboard): New.
(echo_now): Set echo_kboard to the current kboard.
(cancel_echoing): Set echo_kboard to null.
(cmd_error_internal): Use clear_message, remove references
to echo_area_glyphs and echo_area_message.
(command_loop_1): Check for echo area messages differently.
(read_char): Likewise.
(record_menu_key): Use clear_message.
(Fexecute_extended_command): Check for echo area messages
differently. Use push_message, restore_message, pop_message.
function.
(hash_remove): Ditto.
(cmpfn_eq): Removed.
(cmpfn_eql): Don't test with EQ.
(cmpfn_equal): Ditto.
(make_hash_table): Set comparison function for `eq' to null.
(change_frame_size): Ditto.
(change_frame_size_1): Ditto. Deley size changes if redisplaying
and not called from a safe place.
(window_change_signal): Call change_frame_size with new parameter.
(set_window_cursor_after_update): Do the
cursor_in_echo_area case only for a mini-window showing
a message. Don't let cursor end up after the end of a row.
(adjust_frame_message_buffer): Removed references
to echo_area_glyphs and previous_echo_glyphs.
(direct_output_for_insert): Check for mini-window displaying
echo area message differently.
(update_frame): Likewise.
(set_window_cursor_after_update): Likewise. In echo area,
don't try to set cursor on rows that aren't enabled.
FRAME_X_WINDOW (f) being null at the of the function. If widgets
cannot be created we will already have crashed earlier. Call
lw_set_main_areas with a null menu-bar widget, so that we have
a reasonable default.
(Fx_create_frame): Rearranged so that Lisp errors during frame
initialization cause less damage. Initialize menu bar widget
here.
(redisplay_internal): Register unwind_redisplay with
register_unwind_protect.
(try_window_reusing_current_matrix): If new start > old start,
give up if start pos of first reusable row is not equal to new
start.
and `right-bitmap-area' if position is in the bitmap areas. This
avoids an error when clicking on the bitmap areas. Instead, they
are currently treated like clicks inside the window.
(coordinates_in_window): Return 5 and 6 for bitmap areas.
(Qleft_bitmap_area, Qright_bitmap_area): New.
(syms_of_window): Initialize new symbols.
(Vshow_trailing_whitespace): Added.
(init_iterator): Remove initialization code for
show_trailing_whitespace_p.
(redisplay_internal): Don't try cursor movement in this_line
if showing trailing whitespace.
(redisplay_window): Likewise for cursor movement in current
matrix and try_window_id.
(try_window_reusing_current_matrix): Likewise.
(trailing_whitespace_p): Return 0 if trailing whitespace is
in front of point.
(display_line): Use Vshow_trailing_whitespace instead of
former iterator member show_trailing_whitespace_p.
(syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
Vshow_trailing_whitespace instead of former iterator member
show_trailing_whitespace_p.
(direct_output_forward_char): Don't do it if hightlighting
trailing whitespace.
(syms_of_xfaces): Make it a user-variable.
(DEFAULT_FONT_LIST_LIMIT): New.
(sorted_font_list): If Vfont_list_limit is an integer > 0, list
maximally that number of fonts, otherwise use
DEFAULT_FONT_LIST_LIMIT.
(Fx_font_family_list): Bind `font-list-limit' to higher values
until we have all fonts.
(Fxfont_list): Additionally return the full names of fonts and
their registry and encoding.
(syms_of_window): Initialiaze it.
(check_all_windows): Add return type void.
(window_fixed_size_p): New. Return non-zero if window
is fixed-size.
(window_min_size_1): New.
(window_min_size): Handle fixed-size windows.
(size_window): New. Rewritten combination of set_window_height and
set_window_width that handles fixed-size windows.
(set_window_height): Call it.
(set_window_width): Call it.
(Fsplit_window): Give an error on attempt to split a fixed-size
window.
(change_window_height): Partly rewritten to handle fixed-size
windows.
If window starts out "too small", set its too_small_ok flag.
If window's too_small_ok flag is set, don't delete it
unless it is so small it would cause a crash.
just swap glyphs pointers between current and desired row.
(build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
desired matrix method string to current matrix.
colors returned in frame parameters if the frame has reverse in
its parameter alist.
(Fmake_terminal_frame): Make a unique copy of face_alist for
each frame.
Ffile_attributes_lessp): New functions.
(Fdirectory_files): Use directory_files_internal.
(syms_of_dired): Initialize Fdirectory_files_and_attributes,
Ffile_attributes_lessp.
is larger than its logical ascent, use the physical ascent, and
make the row taller. Set row's overlapping_p flag.
(init_iterator): Reset physical line height info
after producing special glyphs.
(display_toolbar_line): Set physical line height info.
(compute_line_metrics): Ditto.
(display_line): Ditto.
(display_string): Ditto.
(reseat_at_next_visible_line_start): New parameter
on_newline_p.
(set_iterator_to_next): After delivering last char
from display vector, reseat on next visible line start if
dpvec_char_len < 0.
(next_element_from_buffer): Set dpvec_char_len to -1 for
selective display.
(direct_output_for_insert): Ditto.
(direct_output_for_insert): Don't use this method if
row is overlapped by others.
(update_text_area): Write full line if current line is overlapped.
(redraw_overlapped_rows): New.
(update_window): Call it.
(redraw_overlapping_rows): New.
(update_window): Call it.
(scrolling_window): Make sure overlapped_p flag in current rows is
unchanged.
(row_equal_p): Take rows overlapped_p flag into account.
(adjust_glyphs): Block input while adjusting matrices.
(direct_output_for_insert): Don't use this
optimization for rows that overlap others.
(update_window_line): Return non-zero if display has changed.
(update_text_area): Ditto.
(update_window): Record if display has been changed.
(blank_row): Compute glyph row's physical height.
(row_equal_p): Take physical row heights into account.
(direct_output_for_insert): Ditto.
(update_text_area): Ditto.
(SUBSTITUTE): New macro.
(seen_list): New variable.
(substitute_object_in_subtree): New function.
(substitute_object_recurse): New function.
(substitute_in_interval): New function.