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.
Move the handling of MALLOC_CHECK_ envvar here.
(main): Moved from here.
[DOUG_LEA_MALLOC] (malloc_initialize_hook): New
function, assigned to the global __malloc_initialize_hook pointer.
(main): Move malloc_set_state call into malloc_initialize_hook
so that it happens as early as possible.
(get_bitmap_with_cache): Check if CreateBitmap failed.
Adjust cache size dynamically so cache is never larger than the
system limit of GDI resources.
Do cache clearing inline. Move global variables to local scope.
changes to xterm.c on 1996-10-31.
(x_set_window_size): use cancel_mouse_face.
(w32_read_socket): use cancel_mouse_face.
Update frame position when size is restored.
console window size.
(w32_console_read_socket): Call maybe_generate_resize_event
whenever input events are received, since we don't get told when
the window size changes (as opposed to the buffer size, which we
don't care about).
be smaller than the screen buffer width.
(write_glyphs): Remove redundant variable attrs. Use
FillConsoleOutputAttribute instead of WriteConsoleOutputAttribute.
/var/adm/wtmp files with no boot records.
(boot_time_initialized): New var.
(init_filelock): Initialize it.
(get_boot_time): Use it, instead of nonzero boot_time,
to test whether boot_time is initialized.
Don't invoke utmp routines when dumping.
(get_boot_time): First, try to get the boot time from the
current utmp file, as this can be much faster. Don't try to
get the boot time from utmp and/or wtmp more than once.
(get_boot_time_1): When passed null pointer, don't invoke utmpname.
New arg LATEST. All uses changed.
definition.
(w32_wnd_proc): Reinstall debugging output.
(w32_wnd_proc): Reinstall SetForegroundWindow change.
(syms_of_w32fns): Reinstall new initializer for
Vw32_phantom_key_code.
(x_to_w32_charset): Do partial matching of charset
names for most non-European charsets, to cope with wildcards or
missing spec dates.
(Fw32_send_sys_command): Post WM_SYSCOMMAND rather than sending it
to avoid deadlock when activating the menu bar.
if unibyte_display_via_language_environment is set.
(unibyte_display_via_language_environment):
Variable moved from xfns.c and elsewhere.
(syms_of_xfns): Set up Lisp var.
(dumpglyphs): On Windows NT, do output in Unicode even
for ASCII, if enabled, to avoid memory allocation overhead for
implicit Unicode conversion. Also, recognize that ASCII and
Latin-1 have a trivial conversion to Unicode, so x_2byte_buffer
lready contains the Unicode characters in that case.
(construct_drag_n_drop): Remove old code that was
trashing the drop location.
[jasonr]
(w32_write_glyphs, w32_clear_end_of_line,
w32_clear_frame, clear_cursor, x_display_bar_cursor,
x_display_box_cursor, x_set_window_size): Use phys_cursor_on
field in frame.
(do_line_dance): Updated WRT xterm.c. Use macros where possible.
(dumprectangle): Take into account the width of a left-side
scroll bar.
(w32_list_bdf_fonts): Initialize n_fonts.
(Fw32_shell_execute): New function; used to support browse-url.
(syms_of_w32fns): Register it.
(w32_load_system_font): Force max width to be average
char width for fixed-pitch fonts, to avoid unnecessary redisplay
slowdown.
(x_to_w32_charset): Define VIETNAMESE_CHARSET if not
already defined.
(syms_of_w32fns): Set Vw32_phantom_key_code to 255.
[jasonr]
(w32_wnd_proc) [WM_PAINT]: Use rectangle from
GetUpdateRect rather than BeginPaint.
(w32_wnd_proc): Attach to current foreground thread
when grabbing focus; necessary on NT 5.0.
(w32_wnd_proc) [W32_DEBUG_DISPLAY]: Add output for
debugging display messages.
(w32_to_x_charset): Put wildcard last in unknown charsets to avoid
false matching.
(decode_eol): Set produced/consumed values to zero if
src_bytes is <= 0 on entry.
[handa]
(setup_raw_text_coding_system): Call
setup_coding_system to initialize the fields of struct
coding_system correctly.
tables private to certain national keyboard layouts.
(struct dos_keyboard_map): Add a pointer to a private translation
table.
(jp_kbd_translate_table): Private table for the Japanese
keyboard.
(jp_keyboard): Japanese keyboard layout.
(it_kbd_translate_table): Private table for the Italian keyboard.
(it_keyboard): Use it_kbd_translate_table.
(keyboard_layout_list): Add the Japanese keyboard.
(dos_rawgetc): Use the keyboard-private translation table, if
available.
(abort) [__DJGPP_MINOR__ >= 2]: Raise SIGABRT.
HPOS got from w->last_point_x, call it with DID_MOTION 1.
(display_text_line): Stop the loop for processing overlay strings
when we reach the right edge of the window.
character height, not the cell height.
(Fw32_select_font): Initialize font dialog with current
default font.
(Vw32_system_coding_system): New variable.
(w32_strict_filenames): Add comment.
(w32_to_x_font): Decode font name using Vw32_system_coding_system.
(x_to_w32_font): Encode font name using Vw32_system_coding_system.
(syms_of_w32fns): Add w32-system-coding-system.
(Fx_create_frame): Formatting fix.
(w32_load_system_font): Keep trying to load non-existant font
if w32_strict_fontnames is nil. Formatting fix.
(syms_of_w32fns): Add w32-strict-fontnames.
is non-nil, try to convert unibyte character to multibyte. For
invalid multibyte character, show all bits by octal form.
(Fsingle_key_description): Check the varidity of charset for a
generic character.
(syms_of_emacs): Don't initialize them.
(handle_USR1_signal, handle_USR2_signal): Set event type to
user_signal instead of non_ascii_keystroke, and use plain integers
as code instead of Lisp symbols.
(Fprocess_running_child_p): New function.
(process_send_signal): If CURRENT_GROUP is `lambda'
then don't send the signal if the shell owns the terminal.
(Finterrupt_process): Doc change.
(current_lock_owner): Use that.
(get_boot_time): Use /proc/uptime if available.
Otherwise, if nothing found in wtmp, try wtmp.1.gz and so on.
(get_boot_time_1): New subroutine taken from get_boot_time.
static variables.
(set_clipboard_data): Save a copy of the text we put into
clipboard in last_clipboard_text.
(get_clipboard_data): If the clipboard text is identical to what
last_clipboard_text holds, pretend there's no data in the
clipboard.
list was reliable.
(enum_fontex_cb1, enum_fontex_cb2): New functions.
(w32_list_bdf_fonts): New parameter; max_names. Callers updated.
(w32_list_synthesized_fonts): New function.
(w32_list_fonts): Use maxnames. Use EnumFontFamiliesEx when
available instead of EnumFontFamilies. List synthesized fonts if
Vw32_enable_italics is non-nil.
the lwindow, rwindow and apps keys could not be used as function
keys, because they were being passed to TranslateMessage which
ignores them. Also, key was being changed to SPC.
(x_destroy_bitmap): Returns void not int.
(x_set_border_pixel): Returns void.
(w32_load_bdf_font): New function.
(w32_load_system_font): New function, was w32_load_font. List
fonts before loading. Explicitly set encoding for SJIS fonts.
Set default_ascent to 0 as comment indicates.
(w32_load_font): Call w32_load_system_font and w32_load_bdf_font.
(w32_unload_font): Support BDF fonts.
(w32_to_x_charset): Fix mappings to avoid wildcard mismatches.
Autodetect whether to use koi8-r instead of iso8859-5.
Associate "ksc5601.1987" with HANGUEL_CHARSET.
Associate "ksc5601.1992" with JOHAB_CHARSET.
(x_to_w32_charset): Make consistent with w32_to_x_charset.
(w32_to_x_font): Add resolution.
(x_to_w32_font): Use font resolution to calculate height if supplied.
(w32_font_match): Handle wildcards anywhere within field.
(enumfont_t): Remove unused head pointer.
(enum_font_cb2): Dereference elfLogFont.
(w32_list_bdf_fonts): New function.
(w32_list_fonts): Use one_w32_dispay_info instead of insisting on
valid frame. Remove MessageBox. Support BDF fonts.
(Fw32_find_bdf_fonts): New function.
(syms_of_w32fns): Add Vw32_bdf_filename_alist and
Sw32_find_bdf_fonts.
(dumpglyphs): Support BDF fonts. Use W32_TEXTOUT macro.
Simplify baseline calculation. Detect SJIS by font, not glyph.
Call SetTextAlign.
(syms_of_w32term): Remove "jisx0212-sjis" from
w32-charset-to-codepage-alist.
Replace "ksc5601" with "ksc5601.1987" in w32-charset-to-codepage-alist.
Add "ksc5601.1992' to w32-charset-to-codepage-alist.
(dumpglyphs): Move definitions out of block containing goto.
Remove redundant code for BIG5.
Use w32_codepage_for_font instead of
w32_codepage_for_charset. Add cast to int where float
operation is assigned to int.
(Vw32_charset_to_codepage_alist): New variable.
(w32_codepage_for_charset): Removed.
(w32_codepage_for_font): New function, replacing
w32_codepage_for_charset.
(syms_of_w32term): Add and initialize
w32-charset-to-codepage-alist.
current process.
(round_to_next): Obsolete function removed.
(preload_heap_section): New variable.
(data_region_size): Obsolete variable removed.
(allocate_heap): Modified to determine end of static heap section
used during preload, and use that as initial base address for
dynamic heap instead of hard-coded value.
(sbrk): Remove call to allocate_heap; handled by init_heap. Skip
calls to commit or decommit pages when allocating from static heap
section during preload.
(recreate_heap): Obsolete function removed.
(init_heap): New function to initialize internal sbrk heap
variables. Uses static heap section during preload, otherwise
calls allocate_heap to reserve a heap region dynamically.
(round_heap): Use ROUND_UP macro instead of round_to_next.
static "bss" section is used for heap space during preload, and
bss data is now written to the proper section area when dumping.
(need_to_recreate_heap): Renamed to using_dynamic_heap.
(heap_index_in_executable): Obsolete variable removed.
(data_section): New variable.
(data_start_va): Renamed to data_start.
(data_start_file): Obsolete variable removed.
(bss_section):
(extra_bss_size):
(bss_section_static):
(bss_start_static):
(bss_size_static):
(extra_bss_size_static):
(heap_section): New variables.
(_start): Remove code based on old unexec method. Call init_heap
to initialize sbrk heap.
(close_file_data): Update size of file when closing, so that
unexec doesn't have to work out exact size in advance.
(get_bss_info_from_map_file):
(get_section_size): Obsolete functions removed.
(rva_to_section): Fix minor bug, and add a work-around for a bug
in very old linkers.
(offset_to_section):
(relocate_offset): New functions.
(OFFSET_TO_RVA):
(RVA_TO_OFFSET):
(RVA_TO_SECTION_OFFSET):
(PTR_TO_RVA):
(PTR_TO_OFFSET):
(OFFSET_TO_PTR): New macros.
(get_section_info): Modify to support new unexec method;
determines address ranges in process that need dumping, and COFF
sections where data will be dumped. Allows for static and global
bss data to be in separate ranges. No longer relies on knowledge
of section names.
(copy_executable_and_dump_data_section): Renamed
copy_executable_and_dump_data. Completely rewritten to copy
executable section by section, so that raw data areas can be
expanded to hold dumped data as necessary. Allows for bss data to
be in same section as initialized data. Reduces size of static
heap section to that used during preload.
(dump_bss_and_heap):
(w32_fatal_reload_error):
(read_in_bss):
(map_in_heap): Obsolete functions removed.
(unexec): Rounds off preload heap to nearest page rather than
virtual allocation unit. Modified to match other changes.
character. Don't allow to put binary data into the clipboard.
Return zero in case of success, 1 or 2 otherwise.
(get_clipboard_data): Only bail out if the null character is in
the last 32-byte chunk of clipboard data
(Fw16_set_clipboard_data): Make ok and put_status be unsigned. If
they save binary data, print a message in the echo area saying the
text was not put into the clipboard.
(menu_bar_one_keymap): Initialize menu_bar_one_keymap_changed_items.
(menu_bar_item): Update and test menu_bar_one_keymap_changed_items.
(syms_of_keyboard): Staticpro and init it.
Use them instead of malloc, xmalloc, and xfree, for Lisp objects.
Don't set allocating_for_lisp in the callers; let lisp_malloc do it.
(n_interval_blocks, n_float_blocks): New variable.
(n_cons_blocks, n_vectors, n_symbol_blocks): New variable.
(n_marker_blocks, n_string_blocks): New variable.
(init_intervals, make_interval): Set a count variable.
Use lisp_malloc instead of setting allocating_for_lisp.
(init_float, make_float, init_cons, Fcons): Likewise.
(allocate_vectorlike, init_symbol, Fmake_symbol): Likewise
(init_marker, allocate_misc, init_strings): Likewise.
(make_uninit_multibyte_string): Likewise.
(gc_sweep, compact_strings): Decrement the count variables.
(uninterrupt_malloc): Don't store Emacs's hooks
into the old_..._hook variables.
by complete_deferred_msg.
(post_character_message): Cancel all deferred messages when
quit_char is typed, in order to break out of potential deadlocks.
(cancel_all_deferred_msgs): New function.
(complete_deferred_msg): Don't abort if msg not found; may have
been cancelled.
(Fw32_reconstruct_hot_key): Use pre-interned symbols.
(Fw32_send_sys_command): Wait for system command to
complete before returning.
Do free malloc'd memory even in case of failure.
Use xfree, not free.
(Fbase64_encode_region, Fbase64_encode_string):
Use xfree, not free.
(base64_decode_1): Don't fail for short lines.
(Fcall_process): Doc-string modified. Set CODING_MODE_LAST_BLOCK
bit in argument_coding.mode to tell encoding procedure to flush
data. While encoding arguments, if argument_coding uses CCL
program, initialize it again after encoding.
(Fcall_process_region): Doc-string modified. Handle the case that
NARGS is 3.
(ccl_driver) <CCL_End>: Pretend that all source text is consumed.
Set `ic' to the head of this command.
(ccl_driver) <CCL_ReadMultibyteChar2>: Return a single byte 8-bit
code for an invalid code.
(setup_ccl_program): If the arg VEC is nil, skip setting ups
based on VEC.
(init_charset_once): Intern and staticpro Qunknown. Initialize
all elements of Vcharset_symbol_table to Qunknown.
(find_charset_in_str): New arg MULTIBYTE. If it is zero, check
unibyte characters only. For an invalid composition sequence, set
CHARSETS[1] to 1.
(Ffind_charset_region): Call find_charset_in_str with an
appropriate MULTIBYTE arg. If undefined charsets are found,
include `unknown' is the return value.
(Ffind_charset_string): Likewise.
(Fsplit_char): If CHAR is invalid, return `(unknown CHAR)'.
(str_cmpchar_id): Max composite character code should be less than
GENERIC_COMPOSITION_CHAR.
final_char is invalid.
(decode_coding): If coding->type is coding_type_ccl, call
ccl_coding_driver even if SRC_BYTES is zero.
(code_convert_region): Update `inserted' correctly after calling
coding->post_read_conversion. Even after the code converter
consumed all source text, call it once more if it is
coding_type_ccl to flush out data.
CODING_MODE_LAST_BLOCK bit is not yet set in coding->mode, set it
and try decoding again.
(Fprocess_send_eof): If the coding system of PROCESS
requires flushing, call send_process with null-string at first.
to search for an invalid multibyte code.
In unibyte case, no need to check whether there are translations
in more than one charset; just set charset_base to 0.
(syms_of_msdos): DEFVAR_LISP it.
(IT_insert_glyphs, IT_delete_glyphs): New functions which abort
Emacs.
(internal_terminal_init): Set up insert_glyphs_hook and
delete_glyphs_hook to call them. Explicitly set char_ins_del_ok
to 0.
(unibyte_display_via_language_environment): New variable.
(syms_of_msdos): Devfar it.
(IT_write_glyphs): Honor glyph aliasing via Vglyph_table.
Encode the character codes of the glyphs according to the
terminal_coding in effect.
(Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift): New
variables.
(syms_of_w32fns): Init and register them.
(reset_modifiers): Use a more precise test for whether Emacs has
keyboard focus. Synchronize state of all keys that can be used as
modifiers, to overcome problems arising from hot-keys.
(w32_key_to_modifier): Be careful not to call intern() to avoid
requiring thread synchronization.
(w32_msg_pump): Handle new WM_EMACS_TOGGLE_LOCK_KEY message.
(w32_wnd_proc): Ensure lock key indicator lights are updated
promptly on Windows 9x, by passing key events on to the system.
(w32_wnd_proc): Use Vw32_phantom_key_code to stop system
responding to Windows key events when not wanted.
(w32_wnd_proc): Undo the mapping of Ctrl-Pause into cancel and
Ctrl-NumLock into pause by the system.
(w32_wnd_proc): Don't translate key combinations containing any
modifiers other than shift (and capslock).
(w32_wnd_proc): Reset modifier key states when receiving focus (we
can't determine the key states until we have keyboard focus).
(Fw32_toggle_lock_key): New function.
(syms_of_w32fns): Defsubr it.
(syms_of_keyboard): Init it.
(kbd_buffer_get_event) [WINDOWSNT]: Generate language-change
events.
(lispy_function_keys) [HAVE_NTGUI]: Remove names for modifier
keys; add name for Escape key; extend to 256 elements.
(parse_modifiers): Make non-static.
(Fbase64_encode_region, Fbase64_encode_string,
Fbase64_decode_region, Fbase64_decode_string): Don't allocate
more than MAX_ALLOCA bytes with alloca; otherwise use xmalloc.
(Vw32_pass_lwindow_to_system):
(Vw32_pass_rwindow_to_system):
(Vw32_lwindow_modifier):
(Vw32_rwindow_modifier):
(Vw32_apps_modifier):
(Vw32_enable_num_lock):
(Vw32_enable_caps_lock):
(Vw32_scroll_lock_modifier): New variables.
(modifier_set): Return toggle state for Scroll Lock.
(w32_key_to_modifier): New function. Returns chosen modifier bit
for given key.
(w32_get_modifiers): Returns modifier flags for
non-keyboard input events.
(construct_console_modifiers): Renamed from construct_modifiers;
recognize Windows and Apps keys as modifiers.
(w32_get_key_modifiers): New function. Returns modifier flags for
keyboard input events.
(map_keypad_keys): Make non-static. Use second arg as extended
flag.
(w32_grabbed_keys): New variable.
(HOTKEY, HOTKEY_ID, HOTKEY_VK_CODE, HOTKEY_MODIFIERS): New macros.
(register_hot_keys):
(unregister_hot_keys):
(lookup_vk_code):
(w32_parse_hot_key):
(Fw32_register_hot_key):
(Fw32_unregister_hot_key):
(Fw32_registered_hot_keys):
(Fw32_reconstruct_hot_key): New functions to support hotkeys.
(post_character_message): New function.
(w32_msg_pump): Handle new messages for using hotkeys and changing
keyboard layout/language.
(w32_wnd_proc): Major rework of keyboard input handling:
optionally recognize Windows keys and Apps key as modifiers;
optionally treat NumLock, CapsLock and ScrollLock as function
keys; let system translate keystrokes to characters to avoid
system bugs relating to dead-key handling; preserve shift
distinction for control characters; forward keyboard
layout/language changes to lisp; detect and convert hot-key events
to normal keystrokes.
(syms_of_w32fns): Register new functions and variables.
(w32_last_error): New function for use in debugging.
(map_keypad_keys):
(Vw32_enable_caps_lock):
(Vw32_enable_num_lock):
(Vw32_pass_lwindow_to_system):
(Vw32_pass_rwindow_to_system):
(Vw32_lwindow_modifier):
(Vw32_rwindow_modifier):
(Vw32_apps_modifier):
(Vw32_scroll_lock_modifier):
(w32_key_to_modifier): Add externs.
(w32_kbd_mods_to_emacs): Recognize Windows keys, Apps key, and
Scroll Lock as potential modifiers; exclude numpad keys from
effect by CapsLock; act on Vw32_enable_caps_lock; remove obsolete
code.
(is_dead_key): Copy from w32fns.c.
(w32_kbd_patch_key): Comment attempt to improve handling of
dead-keys, and system bug relating to same on Windows NT. Work
around the bug by calling ToUnicode and then converting to the
correct codepage.
(map_virt_key): Removed obsolete variable.
(lispy_function_keys): Add extern.
(key_event): Major rework of keyboard input handling: optionally
recognize Windows keys and Apps key as modifiers; optionally treat
NumLock, CapsLock and ScrollLock as function keys; let system
translate keystrokes to characters to avoid system bugs relating
to dead-key handling; preserve shift distinction for control
characters. Remove some obsolete code.
composition char ID more strictly.
(Fcmpchar_component): Call cmpchar_component with NOERROR arg
zero.
(Fcmpchar_cmp_rule): If CHARACTER should be composed relatively,
return 255.
(Fcompose_string): Signal error if STR contains a rule-based
composition character.
varidity of multibyte form.
(update_charset_table): Check validity of BYTES. Don't set
bytes_by_char_head here.
(init_charset_once): Set bytes_by_char_head completely.
(CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
(insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
CHECK_BYTE_COMBINING_FOR_INSERT.
(insert_from_buffer_1): Likewise.
(adjust_after_replace): Check the posibility of inhibitted byte
combining correctly.
(replace_range): Before signaling an error for inhibitted byte
combining, recover the buffer in a safe state.
(del_range_2): Check the posibility of inhibitted byte combining
correctly.
(syms_of_w32select): DEFVAR_LISP it.
(Fw32_set_clipboard_data): Use Vnext_selection_coding_system if
non-nil. Always convert multibyte strings.
(Fw32_get_clipboard_data): Use Vnext_selection_coding_system if
non-nil. Always convert a string that includes non-ASCII characters.
combined_before_bytes and combined_after_bytes into account.
(count_combining_after): Handle the case that LENGTH is zero.
(adjust_after_replace): Record deletion at correct buffer
position. Handle the case that LEN is zero.
(replace_range): Record deletion at correct buffer position.
(del_range_2): Call adjust_makers_for_replace to adjust makers for
combined bytes.
coding->spec.ccl.valid_codes for CCL based coding system.
(code_convert_region): Set point to FROM before inserting the
result of pre-write-funciton. Preserve original point.
(code_convert_string): If coding->type is coding_type_ccl, do
conversion even if the length of conversion region is zero.
Add ENCODE_BIG5 macro from coding.c.
(w32_no_unicode_output): New variable.
(w32_codepage_for_charset, w32_use_unicode_for_codepage): New
functions.
(BUILD_WCHAR_T, BYTE1, BYTE2): New macros.
(dumpglyphs): Rewrite based on xterm.c equivalent.
(x_new_font): Use functionality provided in fontset.c.
(x_new_fontset): New function based on the one in xterm.c.
(syms_of_w32term): Add w32-no-unicode-output flag.
(unibyte_display_via_language_environment): New global variable.
(x_set_font): Add support for setting fontsets.
(Fx_create_frame): Add check_w32(). Initialize fontsets. Fix
font names to match xlfd-tight-regexp.
(w32_load_font): Rewrite based on x_load_font.
(x_to_w32_charset, w32_to_x_charset): Add character sets. Use
`iso8859-1' rather than `ansi'.
(w32_to_x_font): Remove `-' from font name. Remove the `-' off the
end. Move charset into `charset registry' field.
(enum_font_cb2): Check charsets match. Include width in font list.
(w32_list_fonts): Rewrite based on x_list_fonts.
Moved from w32term.c to have access to enumfont_t struct.
(Fx_list_fonts): w32 specific version eliminated. Include
`x-list-fonts.c'.
(w32_get_font_info, w32_query_font, w32_find_ccl_program): New
functions for fontset support - adapted from x_ equivalents.
(syms_of_w32fns): New lisp variables initialised. Function
pointers for fontset.c set up.
(allocate_face, copy_face, face_eql, load_font,
Fpixmap_spec_p, free_frame_faces, new_computed_face,
frame_update_line_height, merge_faces, compute_base_face,
Fset_face_attribute_internal): Use fontset support based on xfaces.c.
(mouse_preempted): New variable.
(dos_rawgetc): Don't generate mouse events if mouse is preempted.
(XMenuActivate): Preempt the mouse during menu-handling loop.
Release the current time slice while idling in the menu-handling
loop. Leave the loop only if the user pressed, then released the
same button. Discard all mouse events that are pending in the
event queue before exiting.
and $TEMP, since the former is always set in msdos.c.
(Fcall_process_region): When looking for a place to put the
temporary files, check $TMPDIR as well.
(adjust_markers_for_replace): Correctly adjust marker positions.
Don't record these adjustment because they were recorded already.
(combine_bytes): Don't adjust markers here.
make_string_from_bytes.
(Ffind_charset_region): Include `composition' in the returned list
if the region contains any composite characters.
(Ffind_charset_string): Include `composition' in the returned list
if the string contains any composite characters.
(find_charset_in_str): Handle CMPCHARP arg correctly.
(check_all_windows): New function for debugging tests.
(syms_of_window): Initialize it.
(Qwindow_configuration_p): New variable.
(Fwindow_configuration_frame): New function.
(syms_of_window): defsubr it.
(Fset_window_configuration): Return t if frame is live.
Use Qwindow_configuration_p.
alwasy returns 0 or -1.
(decode_coding_iso2022): Adjusted for the above change.
(encode_coding_iso2022): When encoding the last block, flush out
tailing garbage bytes.
(setup_coding_system): Delete unnecessary code.
(shrink_decoding_region): Check translation table. If ASCII
should be translated, give up shrinking.
(shrink_encoding_region): Likewise.
(SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
(SHRINK_CONVERSION_REGION): New macro.
(code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
properties here.
(code_convert_region): In the case of encoding, always calulate
correct character number.
(code_convert_string): Call SHRINK_CONVERSION_REGION.
(code_convert_region1): Don't delete text properties here.
(check_composing_code): Fix previous change. Now it
alwasy returns 0 or -1.
(decode_coding_iso2022): Adjusted for the above change.
(encode_coding_iso2022): When encoding the last block, flush out
tailing garbage bytes.
(setup_coding_system): Delete unnecessary code.
(shrink_decoding_region): Check translation table. If ASCII
should be translated, give up shrinking.
(shrink_encoding_region): Likewise.
(SHRINK_CONVERSION_REGION_THRESHHOLD): New macro.
(SHRINK_CONVERSION_REGION): New macro.
(code_convert_region): Call SHRINK_CONVERSION_REGION. Delete text
properties here.
(code_convert_region): In the case of encoding, always calulate
correct character number.
(code_convert_string): Call SHRINK_CONVERSION_REGION.
(code_convert_region1): Don't delete text properties here.
sequence doesn't end properly, return -1.
(DECODE_CHARACTER_ASCII): Update coding->composed_chars.
(DECODE_CHARACTER_DIMENSION1): Likewise.
(decode_coding_iso2022): Check validity of a composing sequence.
(code_convert_string): If the length of text to be converted is
shrunk to zero, don't perform code conversion.
(shrink_decoding_region): Fix previous change.
Set the buffer to a nonzero value before calling
strftime, and check to see whether strftime has set the buffer to zero.
This lets us distinguish between an empty buffer and an error.
I'm installing this patch by hand now; it will be superseded whenever
the glibc sources are propagated back to fsf.org.
(ccl_driver): If BUFFER-MAGNIFICATION of the CCL program is 0,
cause error if the program is going to output some bytes. When
outputing a string to notify an error, check the case that
DST_BYTES is zero.
user or the CCL program executed an invalid command, return
CODING_FINISH_INTERRUPT.
(code_convert_region): Pay attention to the converters return
value CODING_FINISH_NORMAL and CODING_FINISH_INTERRUPT.
position if it is FROM.
(adjust_markers_for_combining): New function.
(combine_bytes): Call adjust_markers_for_combining instead of
adjust_markers_for_replace.
(adjust_after_replace): Record deletion of combining after bytes
with the correct position. Don't add combining bytes to the args
given to adjust_point. Handle correctly the case that there are
both before and after combining bytes.
(replace_range): Likewise. Record the actual deletion after
recoding deletions of combining bytes.