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.
init_frame_faces if non-interactive.
(Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
array with a call to msdos_stdcolor_name. The font name is now
"ms-dos", consistent with realize_tty_face.
prototype.
[MSDOS]: Add a DOS-specific version of load_color.
(lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
(lookup_derived_face): New function.
(realize_default_face): Support MSDOS frames.
[MSDOS]: If fore/background colors are unspecified, inherit them
from the frame.
(realize_face): Support MSDOS frames.
(realize_tty_face): Support MSDOS frames.
[MSDOS]: If the face color is not in Vface_tty_color_alist, call
load_color to try to find a suitable approximation. If the face
is inverse-video, swap the foreground and background colors.
Use default frame colors if the face doesn't specify them; invert
the colors if highlight is ON.
(IT_write_glyphs): Rewritten for the new redisplay engine.
(IT_change_line_highlight): Add (unused) parameter Y, since that's
how the hook is called by term.c.
(IT_copy_glyphs): New function, copies an area of the display in
video RAM.
(IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
redisplay now calls it even if char_ins_del_ok is zero.
(IT_set_frame_parameters): Prototype changed. Calls the new
load_color. Puts the new fore/background colors into the default
face on current frame.
(IT_menu_display): Rewritten to handle the new struct glyph
instead of a char array.
(XMenuActivate): Call lookup_derived_face to create and use
special faces for the pop-up and drop-down menus.
into account for full-width windows. Don't add scroll bar width
to width of clip rect.
(x_draw_glyph_string_box): Add 1 to right x of full width lines.
(x_set_glyph_string_background_width): Add 1 to background width.
(x_draw_glyphs): Take internal border into account for full-width
lines.
stored in the following CCL code. Adjusted for the change of
Vccl_program_table.
(resolve_symbol_ccl_program): Adjusted for the new style of
embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
is resolving failed.
(ccl_get_compiled_code): New function.
(setup_ccl_program): Function type changed from `void' to `int'.
Resolve symbols in CCL_PROG.
(Fccl_program_p): New function.
(Fccl_execute): Get compiled CCL code by just calling
setup_ccl_program.
(Fccl_execute_on_string): Likewise.
(Fregister_ccl_program): Adjusted for the change of
Vccl_program_table.
with an `x' are found before files starting with `w32'.
(ctagsfiles1): New.
(ctagsfiles2): New.
(TAGS): Use ctagsfiles[12] instead of ctagsfiles.
Add PNG library.
(obj): Add sound.o.
(LIBW): Use Xaw3d if present.
(LIBTIFF): Added.
(LIBJPEG): Added.
(LIBXPM): If not already defined, define to -lXpm.
(LIBX)[HAVE_X11]: Add LIBXPM.
(term.o): Add dependency on dispextern.h.
(alloc.o): Add dependency to dispextern.h.
(window.o): Depends on dispextern.h.
(alloc.o): Add dependency dispextern.h.
(window.o): Add dependency window.c -> dispextern.h
(term.o): term.c depends on dispextern.h
(survives_gc_p): New.
(mark_object): Mark objects referenced from glyphs, hash tables,
toolbar date, toolbar window, face caches, menu bar window.
Mark windows specially.
(Fgarbage_collect): Use message3_nolog.
(mark_face_cache): New.
(NSTATICS): Increased to 1024.
(mark_glyph_matrix): New.
(make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
(kbd_store_ptr): Declare it as a volatile pointer
instead of a pointer to a volatile input_event.
(kbd_buffer_store_event): Remove volatile modifier from
declaration of local variable `sp'.
(Fdiscard_input): Don't cast when assigning kbd_store_ptr
to kbd_fetch_ptr.
(make_lispy_event): Handle mouse on top lines.
(make_lispy_movement): Ditto.
(read_char): Rename local variable echo_area_message
because it shadows the global one.
(cmd_error_internal): Set echo_areA_message.
(command_loop_1): Test echo_areA_message.
(read_char): Ditto.
(record_menu_key): Set echo_area_message to nil.
(Fexecute_extended_command): Test echo_area_message.
(Fexecute_extended_command): Handle echo_area_message.
(toolbar_items): Call access_keymap with third
parameter 1, so that we don't get inherited toolbar item
definitions.
Ditto.
(kbd_buffer_get_event): Set flag to prevent recording
TOOLBAR_EVENT events in last_nonmenu_event.
(timer_check): Inhibit busy cursor around calls to
timer-event-handler. This busy cursor tends to be anoying if
fontifying stealthily.
(command_loop_1): Display busy cursor.
(Vshow_help_function): New.
(read_char): Use it.
(make_lispy_event): Add string and string position
info to mouse-click events.
(read_key_sequence): Handle `local-map' property of mode line
strings.
(Qend_scroll): New.
(scroll_bar_parts): Add it.
(scroll_bar_parts): Add Qtop and Qbottom.
(syms_of_keyboard): Add Qbottom.
(make_lispy_event): Handle scroll_bar_click
differently when using toolkit scroll bars.
(cmd_error_internal): Bug fix.
(syms_of_keyboard): Staticpro toolbar_item_properties
and toolbar_items_vectors.
(Qhelp_echo): New symbol.
(read_char): Handle `toolbar' and `help_echo' events.
(kbd_buffer_get_event): Handle HELP_ECHO input event.
(make_lispy_event): Handle TOOLBAR_EVENT.
(toolbar_items): New.
(process_toolbar_item): New.
(PROP): New.
(init_toolbar_items): New.
(append_toolbar_item): New.
(read_char_x_menu_prompt): Handle `toolbar' event.
(read_key_sequence): Ditto.
(syms_of_keyboard): Intern `:help'.
(toolbar_items): New.
(process_toolbar_item): New.
(parse_toolbar_item): New.
(init_toolbar_items): New.
(append_toolbar_item): New.
(detect_input_pending_run_timers): Likewise.
(detect_input_pending_run_timers): Call gobble_input
after redisplaying.
(clear_waiting_for_input): Return void.
(record_asynch_buffer_change): Return void.
(stop_polling): Return void.
(start_polling): Ditto.
(cmd_error_internal): Write to stderr if selected
frame is Vterminal_frame under X. This is the case when a font
cannot be loaded when Emacs starts. Replace test for
FRAME_MESSAGE_BUF with test for glyphs_initialized_p.
(quit_throw_to_read_char): Ditto.
(make_lispy_event): mouse clicks; don't do frame
glyph position calculations.
(make_lispy_movement): Use buffer_posn_from_coords and window
relative coordinates.
(make_lispy_event): For mouse clicks, use
x_y_to_hpos_vpos.
(make_lispy_event): Use BUFFER_POSN_FROM_COORDS
with window relative pixel coordinates. Use GLYPH_TO_PIXEL_-
COORDS mit new arguments.
(make_lispy_event): WINDOW_FROM_COORDINATES with
pixel coords.
(make_lispy_movement): Same.
(interrupt_signal): Cursor_to with 4 params.
(command_loop_1): Call DIRECT_OUTPUT_FOR_INSERT
for any character.
(scroll_up_aggressively): New.
(scroll_down_aggressively): New.
(struct buffer): indicate_empty_lines renamed from
indicate_zv_lines.
(struct buffer): New member indicate_zv_lines.
(struct buffer): New members left_margin_width
and right_margin_width.
(struct buffer): Add member minibuffer_prompt_length
if PROMPT_IN_BUFFER.
(Fcurrent_message): If echo_area_message is set,
return a substring of that string.
(Fformat): Add text properties to the result string
from properties of the format string and properties of string
arguments.
(make_buffer_string_both) [PROMPT_IN_BUFFER]: Prevent start > end.
(make_buffer_string) [PROMPT_IN_BUFFER]: If start
position is less than mini-buffer prompt width, use the prompt
width as start.
(make_buffer_string) [PROMPT_IN_BUFFER): Add prompt
length to start position.
(Fminibuffer_completion_help): Ditto.
(Fminibuffer_complete_word): Fix computation of
i_byte when prompts are inserted into minibuffers.
(read_minibuf): Use minibuf_prompt instead of prompt.
(read_minibuf): Add front-sticky text property for prompt.
(read_minibuf_unwind): Return Lisp_Object.
(read_minibuf): Put access to minibuffer_prompt_length
in #if PROMPT_IN_BUFFER.
(minibuffer-prompt-in-buffer): Bound if
PROMPT_IN_BUFFER.
(read_minibuf): Save the value of
minibuffer_prompt_length in minibuf_save_list.
(read_minibuf_unwind): Restore minibuffer_prompt_length.
(Fminibuffer_prompt_width): Return value from
current_buffer if PROMPT_IN_BUFFER.
(read_minibuf): If PROMPT_IN_BUFFER, insert prompt into
mini-buffer and make it read-only.
(Fminibuffer_complete_and_exit): If PROMPT_IN_BUFFER, use
minibuffer_prompt_length instead of BEGV.
(Fminibuffer_complete_word): Ditto.
(Fminibuffer_complete_word): Ditto.
(read_minibuf): Conditionally insert prompt into
buffer instead of handling prompts specially. Change other
functions accordingly. All such code is in #if PROMPT_IN_BUFFER.
(read_minibuf): Set MUST_BE_UPDATED_P instead of
building frame matrix.
(read_minibuf): FRAME_LEFT_SCROLL_BAR_WIDTH removed.
(read_minibuf): Build frame matrix.
(init_fns): New.
(Fmessage): Use message3.
(Fcurrent_message): If echo_area_message is set,
return a substring of that string.
(Fformat): Add text properties to the result string
from properties of the format string and properties of string
arguments.
(append_glyph): New.
(update_end): Turn cursor on only if selected window's
cursor_off_p flag is not set.
(TS_cursor_visible): Renamed from TS_visual_mode.
(TS_cursor_normal): Renamed from TS_end_visual_mode.
(TS_cursor_invisible): New.
(term_init): Initialize TS_cursor_invisible.
(tty_hide_cursor): New.
(tty_show_cursor): New.
(update_end): Show tty cursor.
(update_begin): Hide tty cursor to prevent cursor flickering
during redisplays triggered by timers (stealth fontification).
(estimate_mode_line_height): New.
(estimate_mode_line_height_hook): New.
(OUTPUT_IF): Make replacement text have statement form.
(OUTPUT1_IF): Ditto.
(TS_italic_mode, TS_end_italic_mode): Removed.
(TS_bold_mode): Removed.
(TS_underscore_mode, TS_end_underscore_mode): Removed.
(TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
(TS_enter_reverse_mode): New.
(TS_enter_underline_mode, TS_exit_underline_mode): New.
(TN_magic_cookie_glitch_ul): New.
(TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
(TS_exit_attribute_mode): New.
(TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
(TS_set_foreground, TS_set_background): New.
(reset_terminal_modes): Switch colors back to default.
(write_glyphs): Turn face on before writing text, turn it off
afterwards.
(insert_glyphs): Ditto.
(term_init): Initialize new terminal capability variables.
(turn_on_face): Turn a face on.
(turn_off_face): Turn a face off.
(global): Rewrite for new glyphs.
(scroll_bar_to_top): New.
(scroll_bar_to_bottom): New.
(event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
Some hooks with prototypes.
Add function prototypes.
into account.
(set_frame_size): Use FRAME_SCROLL_BAR_COLS
to determine vertical_scroll_bar_extra.
(EmacsFrameSetCharSize): Ditto.
(EmacsFrameDestroy): Remove call to free_frame_faces;
it's also called from x_destroy_window. Since this function is
called from X, freeing stuff allocated with xmalloc is dangerous
here, anyway.
(widget_store_internal_border): Return void.
(create_frame_gcs): Don't allocate relief GCs.
(setup_frame_gcs): Don't change relief GCs.
(setup_frame_gcs): Initialize relief GC's to line
width 1; remove references to relief_gc_line_width.
(create_frame_gcs): Create GC's for relief drawing.
(setup_frame_gcs): Initialize them.
(EmacsFrameDestroy): Free them.
(set_frame_size): Double trunc_area_extra.
(EmacsFrameSetCharSize): Ditto.
(set_frame_size): Set it.
(EmacsFrameSetCharSize): Ditto.
if faces haven't been initialized.
(Fx_create_frame): Call face-set-after-frame-default after
faces have been initialized, and widget has been created.
(scroll_bar): Add x_widget_low and x_widget_high.
(struct window): New member cursor_off_p.
(struct window): Remove phys_cursor_glyph.
(struct window): New members phys_cursor_ascent and
phys_cursor_descent.
(struct window): New flag pseudo_window_p.
(struct window): Add left_margin_width, right_margin_width.
New member last_cursor.
(WINDOW_LEFT_MARGIN): Remove FRAME_LEFT_SCROLL_BAR.
(WINDOW_TO_FRAME_VPOS): Convert window vpos
to frame vpos.
(WINDOW_TO_FRAME_HPOS): Convert window hpos to frame hpos.
(FRAME_TO_WINDOW_VPOS): Convert frame vpos to window vpos.
(FRAME_TO_WINDOW_HPOS): Convert frame hpos to window hpos.
(WINDOW_TOPMOST_P): Added.
(struct window): Rewrittenf for new glyphs.
from positions returned.
(top-level): Added image support, busy cursor, tooltips, file
selection box.
(x_report_frame_params): Don't report `outer-window-id'
if widget not present.
(x_set_font): Don't call face-set-after-frame-default
if faces haven't been initialized.
(Fx_create_frame): Call face-set-after-frame-default after
faces have been initialized, and widget has been created.
(x_set_scroll_bar_foreground): New.
(x_set_scroll_bar_background): New.
(x_default_scroll_bar_color_parameter): New.
(Fx_create_frame): Call it.
(Fx_create_frame): Initialize scroll bar pixel color
values in x_output structure.
(Qscroll_bar_foreground, Qscroll_bar_background): New.
(syms_of_xfns): Initialize these symbols.
(x_frame_parms): Add entries for scroll bar colors.
(Fx_create_frame): Try 12pt Courier font first.
(Fx_create_frame): Add toolbar height to frame height.
(x_frame_parms): Add `toolbar-lines'.
(x_set_toolbar_lines): New.
(x_set_internal_border_width): Correct call to
widget_store_internal_border_width.
(x_destroy_bitmap): Use xfree instead of free. Return
void.
(init_x_parm_symbols): Return void.
(x_report_frame_params): Ditto.
(x_set_border_pixel): Ditto.
(syms_of_xfns): Ditto.
(x_destroy_all_bitmaps): Use xfree instead of free.
(Fx_close_connection): Use xfree instead of free.
Only free fonts from filled font table entries.
(display_x_get_resource): Make it externally visible.
(x_set_font): First store real font name in frame
parameters, then call recompute_basic_faces.
(Fx_face_fixed_p): Removed.
(Fx_list_fonts): Moved to xfaces.c.
(xmenu_show) [LESSTIF_VERSION]: Add workaround for remaining
button grab under LessTif
(HAVE_BOXES): Define if USE_X_TOOLKIT.
(HAVE_BOXES): Define if using Lucid menus.
(single_submenu): Set button_type of menu to
BUTTON_TYPE_NONE.
(single_submenu): Likewise for panes and menu items.
(set_frame_menubar): Set button_type of menu bar to none.
(xmenu_show): Likewise.
(single_submenu): Set widget values selected slot.
(xmenu_show): Likewise.
(push_menu_item): Add parameters `type' and
`selected'. Store it in menu_items.
(MENU_ITEMS_ITEM_TYPE): New.
(MENU_ITEMS_ITEM_SELECTED): New.
(MENU_ITEMS_ITEM_LENGTH): Increase by two.
(popup_get_selection): Use xmalloc/xfree instead of
malloc/free.
for Motif list boxes from double-click-time.
(x_load_resources): Add default resoures for file
selection dialog.
(x_load_resources): Add grey background colors as
defaults for menus, scroll bars, and dialogs.
(x_load_resources): Add font defaults for menus and
dialogs.
scroll bars, mouse-sensitive mode line, help-echo, busy-cursor.
(x_calc_absolute_position): Subtract menu bar height
for YNegative, if using X toolkit.
(XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
in scroll bars.
(SET_SAVED_MENU_EVENT): Give it statement form.
(XTflash): Don't flash the toolbar window.
(XTread_socket): Workaround for LessTif popup menus
in case of ButtonPress events.
(XTread_socket): Set inhibit_busy_cursor.
(syms_of_ntterm): Register it.
(initialize_w32_display): Set initial frame size accordingly,
respecting the LINES and COLUMNS environment variables if set.
after we set to the target buffer. If the output goes to a
unibyte buffer, suppress character code conversion.
(Fcall_process): Don't use initializer on coding_systems.
(Fcall_process_region): Likewise.
of WaitForMultipleObjects when user input is allowed, so we can
handle incoming window messages. Call drain_message_queue when
there are messages waiting; this ensures that windows created
indirectly from the lisp thread get processed properly, and don't
hang other applications by failing to respond to broadcasts.