1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-21 23:50:36 -08:00
Commit graph

34922 commits

Author SHA1 Message Date
Paul Eggert
4b73fc7347 Port --without-x --enable-gcc-warnings to Fedora 19.
* configure.ac (WERROR_CFLAGS): Omit redundant use of
-Wmissing-field-initializers, -Wswitch, -Wtype-limits,
-Wunused-parameter.  If there is no window system, also omit
-Wsuggest-attribute=const and -Wsuggest-attribute=noreturn; this
is needed for Fedora 19.
* src/gfilenotify.c (globals_of_gfilenotify):
Call g_type_init only if using an older glib version that needs it.
2013-09-06 17:20:56 -07:00
Dmitry Antipov
77394d40d9 * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
(last_glyphless_glyph_merged_face_id): Remove declarations.
* dispextern.h (merge_glyphless_glyph_face): Add prototype.
* xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
(last_glyphless_glyph_merged_face_id): Now static.
(merge_escape_glyph_face): New function, refactored from...
(get_next_display_element): ...here.
(merge_glyphless_glyph_face): New function, refactored from...
(produce_glyphless_glyph): ...here...
* term.c (produce_glyphless_glyph): ...and here.
2013-09-06 20:40:12 +04:00
Stefan Monnier
306d67bd4c * src/eval.c (eval_sub): Only call Ffunction if necessary. 2013-09-06 10:28:05 -04:00
Dmitry Antipov
7f6c6450a1 Attempt to make redisplay more selective when changing cursor type.
* frame.h (struct frame): New bitfield cursor_type_changed.
* xdisp.c (cursor_type_changed): Remove.
(try_cursor_movement, redisplay_window, try_window_id)
(set_frame_cursor_types, try_window_reusing_current_matrix):
Adjust to use per-frame bitfield.
(redisplay_internal): Look for cursor type change on each visible
frame and consider all frames if cursor type has been changed on
the frame other than selected.  If cursor type has been changed on
selected frame only, do not use fast update.
2013-09-06 12:49:14 +04:00
Dmitry Antipov
8bda01d3a5 Fix ChangeLog typo. 2013-09-06 11:08:19 +04:00
Dmitry Antipov
bd0443bb87 Attempt to make redisplay more selective when changing fonts.
* frame.h (struct frame): New bitfield fonts_changed.
* dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
(adjust_frame_glyphs): Add prototype.
* dispnew.c (fonts_changed_p): Remove.
(adjust_glyphs): Remove becase we do not
adjust matrices on all frames at once any more.
(adjust_frame_glyphs): Block and unblock input here.
(adjust_glyph_matrix): Use fonts_changed.
(change_frame_size_1): Use adjust_frame_glyphs.
* font.c (font_open_entity): Use fonts_changed.
* frame.c (set_menu_bar_lines, Fmake_terminal_frame):
* w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
* window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
(Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
(shrink_mini_window, Fresize_mini_window_internal)
(window_scroll_pixel_based, Fset_window_configuration)
(apply_window_adjustment, Fset_window_vscroll):
* xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
Use adjust_frame_glyphs.
* xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
(try_window_reusing_current_matrix, try_window_id, display_line)
(IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
(redisplay_internal): Consider fonts_changed and adjust frame
matrices for each frame only if the frame is visible.  If font
has been changed on some frame during full redisplay, retry
only visible frames where the font has been actually changed.
2013-09-06 11:00:29 +04:00
Dmitry Antipov
b969582835 Cache current header and mode line height for each window.
* window.h (struct window): New fields mode_line_height
and header_line_height.
* window.c (make_window): Initialize them.
* dispextern.h (CURRENT_MODE_LINE_HEIGHT)
(CURRENT_HEADER_LINE_HEIGHT): Use them.  Adjust comment.
(current_mode_line_height, current_header_line_height):
Remove declaration.
* xdisp.c (current_mode_line_height, current_header_line_height):
Remove.
(pos_visible_p, init_xdisp): Adjust user.
(redisplay_window): Invalidate mode_line_height and
header_line_height if current and desired matrices do not agree.
2013-09-05 20:25:20 +04:00
Dmitry Antipov
667383058f * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER.
* xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
2013-09-05 16:08:50 +04:00
Dmitry Antipov
257b3b03cb Make --without-x compatible with --enable-gcc-warnings.
* configure.ac: If both --without-x and --enable-gcc-warnings are
specified, use -Wno-unused-variable, -Wno-unused-but-set-variable
and -Wno-unused-but-set-parameter.
* src/font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
* src/font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
members under HAVE_WINDOW_SYSTEM.
* src/keyboard.c (make_lispy_focus_out): Likewise.
(record_menu_key): Move under HAVE_MENUS.
* src/xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
(syms_of_xdisp): Adjust user.
(window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
(start_hourglass, cancel_hourglass):
* src/xfaces.c (toplevel): Likewise with PT_PER_INCH,
clear_font_table_count, CLEAR_FONT_TABLE_COUNT
and CLEAR_FONT_TABLE_NFONTS.
(set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
Declare only if HAVE_WINDOW_SYSTEM.
(lface_same_font_attributes_p, clear_face_gcs): Define only
if HAVE_WINDOW_SYSTEM.
2013-09-05 10:25:12 +04:00
Dmitry Antipov
98b7f4bdef * frame.c (check_minibuf_window): Update 'frame' with frame pointer.
* xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]:
Don't pass C integer to XINT (tiny fix for 2013-09-03 change).
2013-09-05 07:51:37 +04:00
Stefan Monnier
a7e43722c7 * src/cmds.c (Fself_insert_command): Don't pass a non-integer to XINT. 2013-09-04 22:27:13 -04:00
Paul Eggert
0c90b9eed9 * alloc.c (make_event_array): First arg is now ptrdiff_t, not int.
This fixes a type error on hosts where ptrdiff_t is wider than int.
2013-09-04 15:34:04 -07:00
Stefan Monnier
6629638eb3 * src/keyboard.c (read_key_sequence_vs): New function.
(Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out
common code.
2013-09-04 16:32:22 -04:00
Stefan Monnier
d99760fa44 * src/callint.c (Fcall_interactively): Always return a vector for 'K'. 2013-09-04 16:22:37 -04:00
Paul Eggert
224e313d3b Makefile improvements.
* Makefile.in (lib): Depend on am--refresh, to avoid a race.
(src): Remove duplicate dependency on FRC.
Invoke just one submake, not two.  Avoid the need for 'pwd'.
* lwlib/Makefile.in (all): Put this first.  Don't use double-colon
rules, as they are not portable according to POSIX.  Mark as phony.
* oldXMenu/Makefile.in (all, tags): Don't use double-colon rules, as they
are not portable according to POSIX.  Mark as phony.
* src/Makefile.in (config.status): Don't use double-colon rules, as
they are not portable according to POSIX.  Fix shell typo with `;
I guess this rule has never been tested?
(VCSWITNESS): New macro, to override any environment var.
2013-09-03 23:45:44 -07:00
Dmitry Antipov
6d6ed1af81 * xterm.h (struct x_display_info): Do not track X connection
fd separately because it is always available from Display.
* xterm.c (x_term_init, x_delete_terminal, x_delete_display):
Adjust users.
2013-09-04 08:02:56 +04:00
Stefan Monnier
fde38d4978 * lisp/finder.el (finder-compile-keywords): Don't mess with windows.
* lisp/net/eww.el (eww-display-raw): Remove unused argument `charset'.
Update call to it.
(eww-change-select): Remove unused var `properties'.
(eww-make-unique-file-name): Remove unused var `base'.
2013-09-03 15:49:54 -04:00
Dmitry Antipov
bc923770d2 * buffer.c (drop_overlay):
* fileio.c (restore_point_unwind): Prefer unchain_marker to
Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
2013-09-03 18:40:09 +04:00
Dmitry Antipov
b1cf96dec7 * buffer.c (Fmake_overlay, Fmove_overlay):
* intervals.c (set_point_from_marker):
* print.c (PRINTPREPARE): Prefer signal_error
to plain error and report unsuitable marker too.
2013-09-03 17:29:38 +04:00
Dmitry Antipov
ec5e750402 * xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed. 2013-09-03 16:41:35 +04:00
Dmitry Antipov
d1ae6a0bca * xterm.h (struct x_output): Remove set-but-unused
leftovers 'left_before_move' and 'top_before_move'.
* xterm.c (x_set_offset): User changed.
2013-09-03 16:02:01 +04:00
Dmitry Antipov
d1fc6c21a8 * xterm.h (struct scroll_bar): Prefer int to Lisp_Object
for 'dragging' member.
* gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
* xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback)
(xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
(x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
(x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
(x_scroll_bar_handle_click, x_scroll_bar_note_movement)
(x_scroll_bar_report_motion): Related users changed.
2013-09-03 13:35:47 +04:00
Jan Djärv
0ce9f6de64 * nsfont.m (INVALID_GLYPH): New define.
(nsfont_encode_char): Use INVALID_GLYPH.
(ns_uni_to_glyphs): Ditto, check for NSNullGlyph.

Fixes: debbugs:15138
2013-09-03 08:56:25 +02:00
Martin Rudalics
9718b207e9 Move Flast_nonminibuf_frame from dispnew.c to frame.c.
* dispnew.c (Flast_nonminibuf_frame): Move from here ...
* frame.c (Flast_nonminibuf_frame): ... to here.
2013-09-02 19:23:26 +02:00
Dmitry Antipov
b594a96c87 * xterm.c (x_last_mouse_movement_time): Revert last change.
This code should use XDisplayMotionBufferSize to check display's
motion history first, and there are few other issues as well.
(x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
(handle_one_xevent): Adjust user.
2013-09-02 19:48:59 +04:00
Martin Rudalics
8b09823660 In check_minibuf_window don't abort if no window was found (Bug#15247).
* frame.c (check_minibuf_window): Don't abort if no window was
found (Bug#15247).
2013-09-02 14:22:21 +02:00
Dmitry Antipov
fc85e20be1 * xterm.c (handle_one_xevent): Use event.xunmap and not event.xmap when
handling UnmapNotify event.
2013-09-02 15:24:11 +04:00
Dmitry Antipov
def74bdc48 * xterm.c (x_last_mouse_movement_time) [X_MOTION_HISTORY]: Fix last change. 2013-09-02 14:37:06 +04:00
Dmitry Antipov
84e70bbae4 Use XGetMotionEvents to ask the last mouse motion time from X server.
* xterm.c (X_MOTION_HISTORY): Default to 1.
(x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
(x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
(note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
Ifdef away legacy code.
(XTmouse_position, x_scroll_bar_report_motion):
Use x_last_mouse_movement_time.
2013-09-02 12:45:32 +04:00
Dmitry Antipov
1fccc53063 * msdos.c (last_mouse_window): Move to...
(dos_rawgetc): ...this function and adjust comment.
* nsterm.m (last_window): Rename to last_mouse_window, move to...
(mouseMoved): ...this function and adjust comment.
* w32term.c (last_window): Likewise with...
(w32_read_socket): ...this function.
* xterm.c (last_window): Likewise with...
(handle_one_xevent): ...this function.
2013-09-02 10:45:04 +04:00
Dmitry Antipov
b7da754d21 * window.h (Vmouse_window, Vmouse_event): Remove the leftovers. 2013-09-02 10:12:26 +04:00
Dmitry Antipov
0ab10992ed * xterm.c (toplevel): Drop obsolete comment and move compose_status...
(handle_one_xevent): ...to here.
(STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
otherwise.
2013-09-02 09:59:35 +04:00
Dmitry Antipov
0c7f856e9f * msdos.c (IT_set_terminal_window): Remove no-op.
(initialize_msdos_display): Adjust terminal setup.
* w32console.c (w32con_set_terminal_window): Remove no-op.
(initialize_w32_display): Adjust terminal setup.
* w32term.c (w32_set_terminal_window): Remove no-op.
(w32_create_terminal): Adjust terminal setup.
* xterm.c (XTset_terminal_window): Remove no-op.
(x_create_terminal): Adjust terminal setup.
2013-09-02 07:39:06 +04:00
Dmitry Antipov
a892a94c42 * nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes):
Remove no-ops.
(ns_create_terminal): Adjust terminal setup.
* w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes):
Remove no-ops.
(w32_create_terminal): Adjust terminal setup.
* xterm.c (XTset_terminal_modes, XTreset_terminal_modes):
Remove no-ops.
(x_create_terminal): Adjust terminal setup.
2013-09-01 20:39:20 +04:00
Dmitry Antipov
cf91889acb * dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent.
(CLIP_TEXT_POS_FROM_MARKER): New macro.
* dispnew.c (buffer_posn_from_coords):
* window.c (Fwindow_end, displayed_window_lines):
* xdisp.c (redisplay_mode_lines): Use it.
2013-09-01 20:21:48 +04:00
Jan Djärv
5b0891df61 * fontset.c (face_for_char): Check char in the current face font first
if HAVE_NS.

Fixes: debbugs:15138
2013-09-01 11:59:19 +02:00
Martin Rudalics
0a357e98dc In temp_output_buffer_show make sure window returned by display_buffer is live (Bug#15213).
* window.c (temp_output_buffer_show): Make sure window returned
by display_buffer is live (Bug#15213).
2013-08-31 11:22:53 +02:00
Dmitry Antipov
9d7693d74c Minor cleanup to avoid forward declarations.
* coding.h (struct ccl_spec): Remove forward declaration.
* composite.h (toplevel): Include font.h.
(struct composition_it, struct face, struct font_metrics):
Remove forward declaration.
* dispextern.h (struct image, struct atimer): Likewise.
* emacsgtkfixed.h (struct frame): Likewise.
* emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
* font.h (struct font_driver, struct font, struct glyph_string)
(struct face): Remove forward declaration.
* fontset.h (struct face, struct font): Likewise.
* frame.h (toplevel): Style cleanup.
(enum output_method): Move to...
* termhooks.h (enum output_method): ...here.
(struct glyph, struct frame, struct ns_display_info)
(struct x_display_info, struct w32_display_info):
Remove forward declaration.
* xterm.h (toplevel): Include termhooks.h.
(struct font, struct window, struct glyph_matrix, struct frame)
(struct input_event, struct face, struct image): Remove forward
declaration.
* gtkutil.h (struct _widget_value): Likewise.
* keyboard.h (toplevel): Include termhooks.h.
(struct input_event): Remove forward declaration.
2013-08-30 16:17:44 +04:00
Dmitry Antipov
032f74518a * intervals.c (set_point_from_marker): New function.
* editfns.c (Fgoto_char):
* process.c (Finternal_default_process_filter):
* window.c (select_window_1): Use it.
* buffer.h (set_point_from_marker): Add prototype.
2013-08-29 20:36:54 +04:00
Eli Zaretskii
3f940c5aa6 A possible fix for bug #14333 with hanging at exit on MS-Windows.
src/w32.c (term_winsock): Call release_listen_threads before calling
 WSACleanup.
 (_sys_wait_accept): Wait for accept event in a loop with a finite
 timeout, instead of waiting indefinitely.  Will hopefully avoid
 hanging during exit because WSACleanup deadlocks waiting for the
 event object to be released.
 src/w32proc.c (release_listen_threads): New function, signals all
 the reader threads that listen for connections to stop waiting.
 src/w32.h (release_listen_threads): Add prototype.
2013-08-29 18:32:04 +03:00
Dmitry Antipov
20de2834a5 * lisp.h (XSETMARKER): Remove unused macro (it doesn't work
anyway because XMISCTYPE is a function and can't be an lvalue).
2013-08-29 19:28:45 +04:00
Dmitry Antipov
101ed2bbbd * alloc.c (Fmake_marker, build_marker): Zero need_adjustment
field of new marker (for sanity and safety).
2013-08-29 15:22:28 +04:00
Dmitry Antipov
1f5cf2009a * xterm.c (x_clear_area): Lost 7th arg because it is always False.
(x_after_update_window_line, x_scroll_bar_create):
(x_scroll_bar_set_handle, XTset_vertical_scroll_bar):
(handle_one_xevent, x_clear_frame_area):
* gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos):
* xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users.
* xterm.h (x_clear_area): Adjust prototype.
2013-08-29 11:27:27 +04:00
Dmitry Antipov
d2b3681358 Hook scanning and indentation functions to find_newline. This helps
to avoid duplicated code and renders more respect to newline cache.
* lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
* cmds.c (Fforward_line):
* indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
Use find_newline and avoid unnecessary point movements.
* search.c (scan_newline): Implement on top of find_newline.
2013-08-29 11:03:18 +04:00
Stefan Monnier
3ec7babc5c * src/eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
scoped code.

Fixes: debbugs:11258
2013-08-28 14:27:26 -04:00
Jan Djärv
5ab473cdda * nsterm.m (last_window): New variable.
(EV_TRAILER2): New macro.
(EV_TRAILER): Call EV_TRAILER2.
(mouseMoved:):  Add support for mouse-autoselect-window
on nextstep.

Fixes: debbugs:6888
2013-08-28 18:20:15 +02:00
Andreas Schwab
78779650d6 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
(SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR):
Remove unused macro definitions.
(CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE)
(SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA): Only
define if emacs.
2013-08-28 15:50:55 +02:00
Dmitry Antipov
c3c4768d2b Prefer enum glyph_row_area to int where appropriate.
* dispextern.h (enum glyph_row_area): Add ANY_AREA member.
Fix comment.
(window_box, window_box_width, window_box_left, window_box_left_offset)
(window_box_right, window_box_right_offset): Adjust prototypes.
* xdisp.c (window_box, window_box_width, window_box_left)
(window_box_left_offset, window_box_right, window_box_right_offset):
Use enum glyph_row_area.  Adjust users and tweak comment where needed.
(window_box_edges): Likewise.  Lost 2nd arg since it is always ANY_AREA.
* nsterm.m (ns_clip_to_row):
* w32term.c (w32_clip_to_row):
* xterm.c (x_clip_to_row): Likewise.
2013-08-28 15:00:03 +04:00
Dmitry Antipov
6bdcbfe1e3 * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
(Fprevious_overlay_change): Fast path for buffer with no overlays.
2013-08-28 12:33:12 +04:00
Paul Eggert
50b13cdedb * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
for portability to hosts where /bin/sh has problems.
2013-08-27 23:01:52 -07:00