1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-03 20:42:08 -08:00
Commit graph

34970 commits

Author SHA1 Message Date
Dmitry Antipov
0791d107ed * w32term.c (w32_read_socket): Avoid temporary
variables in a call to x_real_positions.
* xterm.c (handle_one_xevent): Likewise.
2013-09-17 19:57:45 +04:00
Dmitry Antipov
2cd9881277 * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function.
(x_icon_type): Remove prototype.
(x_bitmap_icon) [!HAVE_NS]: Declare as such.
* frame.c (x_icon_type): Remove.
* w32term.c (x_make_frame_visible, x_iconify_frame):
* xterm.c (x_make_frame_visible, x_iconify_frame):
Use x_set_bitmap_icon to factor out common code.
2013-09-17 16:59:45 +04:00
Dmitry Antipov
a6c2ee1b72 * dispextern.h (check_x_display_info, x_get_string_resource):
Declare here just once and unify the latter.
* frame.c (check_x_display_info, x_get_string_resource):
* nsterm.h (check_x_display_info):
* xrdb.c (x_get_string_resource):
* xterm.h (check_x_display_info): Remove prototypes.
* nsfns.m (x_get_string_resource): Likewise.  Adjust definition.
* w32reg.c (x_get_string_resource): Likewise.
(w32_get_rdb_resource): Adjust user.
2013-09-17 16:27:21 +04:00
Dmitry Antipov
baed360360 * xterm.h (struct x_display_info): New member
x_pending_autoraise_frame, going to replace...
* xterm.c (pending_autoraise_frame): ...static variable.
(x_new_focus_frame, XTread_socket): Adjust users.
* w32term.h (struct w32_display_info): New member
w32_pending_autoraise_frame, going to replace...
* w32term.c (pending_autoraise_frame): ...global variable.
(x_new_focus_frame, w32_read_socket): Adjust users.
2013-09-17 12:24:20 +04:00
Glenn Morris
90582f05bc Add a major-mode for the *Messages* buffer
Ref: http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00135.html

* lisp/simple.el (messages-buffer-mode): New major mode.
(messages-buffer): New function.

* lisp/startup.el (normal-top-level): Switch mode of *Messages* buffer.

* src/xdisp.c (message_dolog): If we create *Messages*,
switch it to messages-buffer-mode.

* lisp/emacs-lisp/ert.el (ert--force-message-log-buffer-truncation)
(ert-run-test): Use `message-buffer' function.
(ert--force-message-log-buffer-truncation): Ignore read-only.

* lisp/help.el (view-echo-area-messages): Use `message-buffer' function.

* lisp/mail/emacsbug.el (report-emacs-bug): Use `message-buffer' function.

* lisp/gnus/gnus-util.el (gnus-message-with-timestamp-1):
Use `message-buffer' function if available.  Ignore read-only.

* etc/NEWS: Mention this.
2013-09-17 00:39:54 -07:00
Dmitry Antipov
33b83dd70c * xterm.c (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC. 2013-09-17 11:36:35 +04:00
Paul Eggert
b7ad2f7401 Don't overuse 'const' in types of locals.
* bidi.c (bidi_count_bytes):
* gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
(xg_event_is_for_scrollbar):
* xselect.c (x_handle_property_notify)
(x_handle_selection_notify, x_handle_dnd_message):
* xsettings.c, xsettings.h (xft_settings_event):
* xterm.c (x_handle_net_wm_state, handle_one_event)
(x_menubar_window_to_frame, x_detect_focus_change)
(construct_mouse_click, note_mouse_movement)
(x_scroll_bar_to_input_event, x_scroll_bar_expose)
(x_scroll_bar_handle_click, x_scroll_bar_note_movement)
(handle_one_xevent, x_handle_net_wm_state):
* xterm.h (x_handle_property_notify, x_handle_selection_notify)
(x_handle_dnd_message):
Avoid unnecessary 'const', typically the second 'const' in
'const foo * const arg', a 'const' that does not affect the API
and doesn't significantly help the human reader.
2013-09-17 00:06:42 -07:00
Dmitry Antipov
1893694e3e * xterm.c (handle_one_xevent): Do not call to x_clear_area
if GTK >= 2.7.0.
2013-09-17 10:57:30 +04:00
Dmitry Antipov
19452b8665 * configure.ac: Do not check for g_type_init because we
require glib >= 2.28 for GTK3, glib >= 2.10 for GTK2,
glib >= 2.26 for GSettings and glib >= 2.7.0 for GConf, so
suitable glib should provide g_type_init unconditionally.
* src/image.c (fn_g_type_init) [WINDOWSNT]: Define and load
only if Glib < 2.36.0.
(fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
* src/xsettings.c (init_gconf, init_gsettings): Do not check
for g_type_init.
2013-09-17 10:33:24 +04:00
Jan Djärv
3f386383dc * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
before calling g_type_init.
2013-09-16 20:17:35 +02:00
Jan Djärv
6434e34375 Fix syms_of_(mac|ms)font calls.
* font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...

* nsterm.m (syms_of_nsterm): ... to here.
2013-09-16 17:55:02 +02:00
Dmitry Antipov
83a119f8d8 * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
(ignore_next_mouse_click_timeout): Use Time as X does.
(handle_one_xevent): Avoid cast and use unsigned comparison.
2013-09-16 15:23:03 +04:00
Dmitry Antipov
61582e6aad Do not copy X event in handle_one_xevent except KeyPress case.
Wnen XEvent is processed, it is unlikely to be changed except
KeyPress case, so we can avoid copying and use const pointer to
const data to make sure that an event is not changed elsewhere.
* xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
const' and do not create local copy except for the KeyPress event.
Use casts to avoid a few glitches.  Adjust formatting.  Add comments.
(SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
(x_handle_net_wm_state, x_menubar_window_to_frame)
(x_detect_focus_change, construct_mouse_click, note_mouse_movement)
(x_scroll_bar_to_input_event, x_scroll_bar_expose)
(x_scroll_bar_handle_click, x_scroll_bar_note_movement):
* gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
* xselect.c (x_handle_property_notify, x_handle_selection_notify)
(x_handle_dnd_message):
* xsettings.c (xft_settings_event):
Use 'const XEvent * const' where appropriate.
* xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes.
2013-09-16 14:41:41 +04:00
Dmitry Antipov
f8eb15727a Fix X event waiting to handle multiple frames.
* frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
* xterm.c (pending_event_wait): Remove.  Adjust users.
(x_detect_focus_change): Pass frame arg.
(handle_one_xevent): Find related frame early and clear per-frame
wait_event_type only if this is an event for the relevant frame.
(x_wait_for_event): Use per-frame wait_event_type.
2013-09-16 11:27:51 +04:00
Jan Djärv
745d3809b6 Fix compilation for GNUStep due to font changes.
* font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
for syms_of_macfont.

* nsfns.m (Fx_create_frame): Fix font driver registration for
GNUStep.
2013-09-15 21:43:32 +02:00
Jan Djärv
d93ab42eb9 Forgot to add files. 2013-09-15 21:36:20 +02:00
Jan Djärv
3fa2054efd Port the font backend from the Mac port.
* configure.ac: Add check for OSX 10.5, required for macfont.o.

* etc/NEWS: Mention the macfont backend.

* src/Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.

* src/font.c (syms_of_font): Call syms_of_macfont.

* src/font.h: Declare syms_of_macfont.

* src/nsfns.m: Include macfont.h.
(Fx_create_frame): Register macfont driver, make a better default font.
(Fns_popup_font_panel): Get font from macfont driver, if used.

* src/nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
(nsfont_open): Set font driver type.
Set font->ascent and font->descent.  Figure out font instead of
ns_tmp_font, and flags instead of ns_tmp_flags.
Fix indentation. Remove call to ns_draw_text_decoration,
moved to nsterm.

* src/nsterm.m: Include macfont.h.
(ns_tmp_flags, ns_tmp_font): Remove.
(ns_compute_glyph_string_overhangs): Check for driver Qns.
(ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
ns_tmp_font.  Call ns_draw_text_decoration here instead of nsfont.m.
(changeFont:): Fix code style.  Check for font driver type when
getiing font.

* src/nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
(f)->descent.
2013-09-15 19:58:46 +02:00
Dmitry Antipov
0eed035504 Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999,
and it is always zero for others, so I assume that this is an ancient
leftover which nobody will want to change any more.
* xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
(VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
* frame.c (x_set_scroll_bar_width):
* w32fns.c (w32_createscrollbar):
* w32term.c (w32_set_vertical_scroll_bar):
* xfns.c (x_set_scroll_bar_default_width):
* xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
(x_scroll_bar_expose): Related users changed.
2013-09-15 12:28:30 +04:00
Dmitry Antipov
7f09455e58 * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
these modules are never compiled otherwise.
2013-09-15 11:48:25 +04:00
Dmitry Antipov
901049a661 * xterm.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
Define as such.
* w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
Remove unused Xisms.
2013-09-15 11:28:38 +04:00
Dmitry Antipov
c7cc32f7ab * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
Define once here...
* nsterm.h, w32term.h, xterm.h: ...and not here.
2013-09-15 11:06:05 +04:00
Dmitry Antipov
07013c6895 * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
(BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
2013-09-15 10:50:41 +04:00
Eli Zaretskii
08a209bff2 Fix src/ChangeLog entry of last commit. 2013-09-14 12:26:42 +03:00
Eli Zaretskii
0df00f5905 Fix bug #15375 with inaccurate docs of display margin width values.
doc/lispref/display.texi (Display Margins): State the units of measuring
 margin width.

 src/buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
 Doc fix.
2013-09-14 12:24:34 +03:00
Dmitry Antipov
97fc2468bd * frame.c (Fx_focus_frame) [HAVE_WINDOW_SYSTEM]: Fix last change. 2013-09-13 20:55:48 +04:00
Dmitry Antipov
fcd42c11c0 Unify Fx_focus_frame between all ports.
* src/frame.h (x_focus_frame): New prototype.
* src/xfns.c (Fx_focus_frame): Remove.
(syms_of_xfns): Do not defsubr it.
(x_focus_frame): X implementation.
* src/nsfns.m (Fx_focus_frame): Remove.
(syms_of_nsfns): Do not defsubr it.
(x_focus_frame): NS implementation.
* src/w32term.c (Fx_focus_frame): Remove.
(x_focus_on_frame): Rename to...
(x_focus_frame): W32 implementation.
* src/w32term.h (x_focus_on_frame): Remove prototype.
* src/w32fns.c (Fx_focus_frame): Remove.
(syms_of_w32fns): Do not defsubr it.
* src/frame.c (Fx_focus_frame): Define here.
(syms_of_frame): Defsubr here.
* src/gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
* lisp/frame.el (x-focus-frame): Mark as declared in frame.c.
2013-09-13 20:46:18 +04:00
Dmitry Antipov
aad3612f9e Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
All of them are replaced with FRAME_DISPLAY_INFO, defined in
each port to reference the port-specific window system data.
* msdos.h (FRAME_X_DISPLAY_INFO): Remove.
(FRAME_DISPLAY_INFO): Define.
* w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
(FRAME_DISPLAY_INFO): Define.  Adjust users.
* xterm.h (FRAME_X_DISPLAY_INFO): Remove.
(FRAME_DISPLAY_INFO): Define.  Adjust users.
* frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
* font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
* nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
* w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
* xselect.c, xterm.c: All related users changed.
2013-09-13 19:03:51 +04:00
Dmitry Antipov
9a650e62c8 * xterm.h (x_window_to_frame, x_any_window_to_frame)
(x_menubar_window_to_frame): Remove prototypes.
* xfns.c (x_window_to_frame, x_any_window_to_frame)
(x_menubar_window_to_frame, x_top_window_to_frame):
Move from here...
* xterm.c (x_window_to_frame, x_any_window_to_frame)
(x_menubar_window_to_frame, x_top_window_to_frame):
...to here and convert all but the last to static.
2013-09-13 10:00:20 +04:00
Eli Zaretskii
347ae3e143 lisp.mk (lisp): Add w32-common-fns.elc. 2013-09-12 19:05:12 +03:00
Xue Fuqiao
15c6d837a5 * src/charset.c (char_charset): Document an exception for char-charset. 2013-09-12 21:12:39 +08:00
Dmitry Antipov
27e90f7752 * xterm.h (x_display_info): New field last_user_time...
* xterm.c (toplevel): ...to replace static last_user_time.
(handle_one_xevent, x_ewmh_activate_frame): Adjust users.
2013-09-12 11:29:33 +04:00
Dmitry Antipov
8ffbc36b76 * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
scroll bar values to prevent thumb from disappear and update comment.
2013-09-12 10:29:13 +04:00
Glenn Morris
5ec0337a36 * src/emacs.c (usage_message): Possessive apostrophe tweak.
Likewise in some comments.
2013-09-11 13:31:29 -04:00
Dmitry Antipov
8d2db8be5b * nsterm.m (syms_of_nsterm): Use Qns.
* w32fns.c (Fx_open_connection): Remove old '#if 0' code.
* w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
* xfns.c (x_display_info_for_name, Fx_open_connection):
Remove old '#if 0' code.
(syms_of_xfns): Use Qx.
2013-09-11 20:03:42 +04:00
Dmitry Antipov
fb55b9d11e * termhooks.h (fullscreen_hook): Remove the leftover.
(struct terminal): Fix typo in comment.
2013-09-11 17:56:46 +04:00
Dmitry Antipov
927eec5579 Cleaning up a few X scroll bar bits.
* termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
* xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
New member last_seen_part, going to replace...
* xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
(xt_action_hook) [USE_LUCID]: Adjust user.
(xm_scroll_callback, xg_scroll_callback): Do not bloat with
Lucid-specific scroll bar support.
(xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
to int and adjust to use last_seen_part member.
(x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
(x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
Initialize last_seen_part.
2013-09-11 17:35:28 +04:00
Stefan Monnier
71b28baa2b * src/insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
insert-buffer-substring an empty string.
2013-09-11 08:28:01 -04:00
Paul Eggert
f5dacaaec0 * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
avoiding a GCC warning.
2013-09-11 03:24:48 -07:00
Dmitry Antipov
742516e020 Ifdef away frame tool bar code when it is not really used.
* frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
and minimize_tool_bar_window_p under the above.
(fset_current_tool_bar_string, fset_desired_tool_bar_string)
(fset_tool_bar_window): Likewise.
* dispnew.c (clear_current_matrices, clear_desired_matrices)
(adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
(change_frame_size_1):
* window.c (window_from_coordinates, Frecenter): Adjust users.
* window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
code is not really used.
* xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
(tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
(get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
[!USE_GTK && !HAVE_NS]: Define as such.
(Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
(note_mouse_highlight, expose_frame):
* xfns.c (x_set_tool_bar_lines):
* xterm.c (handle_one_xevent): Adjust users.
2013-09-11 12:56:33 +04:00
Paul Eggert
73f82c7e8e Fix corruption with multiple emacsclient -t instances.
This bug was introduced by my 2013-08-26 patch, which incorrectly
assumed that the terminfo implementation doesn't use termcap buffers.
* term.c (init_tty) [TERMINFO]: Remove optimization, as
these buffers apparently are used after all.
* termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
(struct tty_display_info): Define members termcap_term_buffer and
termcap_strings_buffer even if TERMINFO.

Fixes: debbugs:15222
2013-09-11 01:24:05 -07:00
Dmitry Antipov
53482f4115 Fix last change.
* data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
'usage' docstring entry to pacify make-docfile.
2013-09-11 11:20:20 +04:00
Barry O'Reilly
ebb9984728 Change comparison functions =, <, >, <=, >= to take many arguments.
* src/data.c: Change comparison functions' interface and
  implementation
* src/lisp.h: Make arithcompare available for efficient two arg
  comparisons
* src/bytecode.c: Use arithcompare
* src/fileio.c: Use new interface
* test/automated/data-tests.el: New tests for comparison functions
* etc/NEWS
2013-09-11 01:03:23 -04:00
Stefan Monnier
765da53c20 * keyboard.c (read_char): Fix last change.
Fixes: debbugs:15332
2013-09-10 23:31:06 -04:00
Stefan Monnier
533f258f36 * src/keyboard.c (read_char): Don't break immediate_echo.
Fixes: debbugs:15332
2013-09-10 22:41:00 -04:00
Stefan Monnier
8c27f5ff1d * lisp/subr.el (with-demoted-errors): Add `format' argument.
* src/eval.c (Feval): Document the new use of `lexical'.
2013-09-10 11:30:10 -04:00
Dmitry Antipov
0750a308d0 Review and drop old frame resize hack.
* frame.h (struct frame): Remove force_flush_display_p.
* dispnew.c (update_frame): Adjust user and don't call
flush_frame here.  The comment has said that there was an issues
with redisplaying fringes, but I don't see any differences with
and without this hack.  Hopefully we can continue without it.
* xdisp.c (clear_garbaged_frames): Adjust user and do not clear
current frame matrices twice if resized_p is set.
2013-09-09 20:47:43 +04:00
Dmitry Antipov
83fc055439 Do not populate pure Xism x_sync to other ports.
* frame.h (x_sync): Move under HAVE_X_WINDOWS.
* frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
* nsfns.m, w32xfns.c (x_sync): Remove no-op.
* w32term.h (x_sync): Remove prototype.
2013-09-09 18:01:02 +04:00
Dmitry Antipov
fd462129af Cleanup frame flushing.
* dispextern.h (struct redisplay_interface): Drop
flush_display_optional because flush_display is enough
for X and flushing via RIF is just a no-op for others.
* frame.h (flush_frame): New function.
* dispnew.c (update_frame):
* minibuf.c (read_minibuf):
* xdisp.c (echo_area_display, redisplay_preserve_echo_area):
Use it.
* keyboard.c (detect_input_pending_run_timers): Do not flush
all frames but selected one in redisplay_preserve_echo_area.
* nsterm.m (ns_flush): Remove no-op.
(ns_redisplay_interface): Adjust user.
* w32term.h (x_flush): Remove no-op.
(w32_redisplay_interface): Adjust user.
* xterm.c (x_flush): Simplify because we do not flush all
frames at once any more.  Adjust comment.
(x_redisplay_interface): Adjust user.
2013-09-09 16:15:45 +04:00
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