1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-28 00:01:33 -08:00
Commit graph

34746 commits

Author SHA1 Message Date
Dmitry Antipov
628fdc567a Do not reset window modification event counters excessively.
These leftovers and poor man's tricky methods to catch extra
redisplay's attention are no longer needed.
* frame.c (set_menu_bar_lines_1):
* minibuf.c (read_minibuf_unwind):
* window.c (Fset_window_start, set_window_buffer, window_resize_apply)
(grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
(window_scroll_line_based, Fset_window_configuration):
* xdisp.c (redisplay_window): Do not reset last_modified and
last_overlay_modified counters.
2013-08-08 08:42:40 +04:00
Dmitry Antipov
e5eefe9b96 Fix typo in ChangeLog entry. 2013-08-07 21:03:46 +04:00
Jan Djärv
8fd9c92e1f * xselect.c (x_send_client_event): Set send_event and serial, memset
data.l as it might be bigger than data.b.   Use 24 bit mask to
XSendEvent.

Fixes: debbugs:15034
2013-08-07 18:59:23 +02:00
Eli Zaretskii
03eb60c17a xdisp.c: Fix a typo in a comment for the last commit. 2013-08-07 18:14:23 +03:00
Eli Zaretskii
0ee18172b3 Fix bug #14616 with unnecessary redrawing of TTY frames.
src/xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
 for TTY frames that are not the top frame on their console.
2013-08-07 16:49:47 +03:00
Martin Rudalics
16ddd1a690 In w32fullscreen_hook really maximize frame when asked for (Bug#14841).
* w32term.c (w32fullscreen_hook): Really maximize frame when
asked for (Bug#14841).
2013-08-07 15:34:17 +02:00
Dmitry Antipov
d2a95ffb4e Prefer selected_window to Fselected_window, likewise for frames.
* buffer.c (Fbuffer_swap_text):
* data.c (Fvariable_binding_locus):
* window.c (run_window_configuration_change_hook): Adjust users.
* w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
Use decode_live_frame.
2013-08-07 17:21:59 +04:00
Dmitry Antipov
170da1ec69 Be more careful if selected window shows the buffer other than current,
use window_outdated only if this is not so.  This change should also
address some weird issues discussed in Bug#13012.
* window.h (window_outdated): New prototype.
* window.c (window_outdated): Now here.  Convert from static and
always assume window's buffer.
(Fwindow_end, Fwindow_line_height): Use it.
* xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
and always assume window's buffer.
(redisplay_window): Adjust user.
(redisplay_internal): Call to reconsider_clip_change once and
check whether mode line should be updated only if selected window
shows current buffer.
(run_window_scroll_functions): Use eassert for debugging check.
(Fmove_point_visually, note_mouse_highlight): Use window_outdated.
2013-08-07 14:32:08 +04:00
Dmitry Antipov
56b5d5b1a1 * window.c (window_scroll, window_scroll_pixel_based)
(window_scroll_line_based): Use bool for booleans.
2013-08-06 20:51:41 +04:00
Paul Eggert
2878ba7ef3 * process.c: Fix minor off-by-one issues in descriptor counts.
This shouldn't fix any real bugs, but it cleans up the code a bit.
(max_process_desc, max_input_desc): -1, not 0, means none.
All uses changed.
(delete_input_desc): New function.
(delete_write_fd, delete_keyboard_wait_descriptor): Use it.
(deactivate_process): Scan backwards when recomuting max_process_desc;
that should be faster.
(init_process_emacs): Initialize max_input_desc.
2013-08-06 07:17:25 -07:00
Dmitry Antipov
e30b79c1c5 Use region cache to speedup bidi_find_paragraph_start.
* src/buffer.h (struct buffer): New member bidi_paragraph_cache.
Rename cache_long_line_scans to cache_long_scans.
* src/buffer.c (bset_cache_long_line_scans): Rename to
bset_cache_long_scans.
(Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
(Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
into account.
(syms_of_buffer): Rename cache-long-line-scans to
cache-long-scans.  Adjust docstring.
* src/search.c (newline_cache_on_off):
* src/indent.c (width_run_cache_on_off): Adjust users.
* src/bidi.c (bidi_paragraph_cache_on_off): New function.
(bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
* src/insdel.c (prepare_to_modify_buffer): Invalidate
bidi_paragraph_cache if enabled.
* doc/lispref/positions.texi (Motion by Screen Lines):
* doc/lispref/display.texi (Truncation): Rename `cache-long-line-scans'
to `cache-long-scans'.
2013-08-06 10:53:09 +04:00
Dmitry Antipov
00012b8625 Invalidate region caches only if buffer text is going to be changed.
* lisp.h (modify_region_1): Remove 3rd arg and rename to...
(modify_text): ...new prototype.
(prepare_to_modify_buffer_1): New prototype.
* textprop.c (modify_region): Rename to...
(modify_text_properties): ...new function.
(add_text_properties_1, set_text_properties, Fremove_text_properties)
(Fremove_list_of_text_properties): Adjust users.
* insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
(modify_text): ...new function.
(prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
(prepare_to_modify_buffer_1): ...new function.
* casefiddle.c (casify_region):
* editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
(Ftranspose_regions): Use modify_text.
2013-08-06 09:30:18 +04:00
Stefan Monnier
dc6c0edad7 Revert introduction of isearch-filter-predicates.
Rely on add-function instead.
* lisp/loadup.el: Preload nadvice.
* lisp/isearch.el (isearch-filter-predicates): Rename it back to
isearch-filter-predicate.
(isearch-message-prefix): Use advice-function-mapc and advice
properties to get the isearch-message-prefix.
(isearch-search, isearch-lazy-highlight-search): Revert to funcall
instead of run-hook-with-args-until-failure.
(isearch-filter-visible): Not obsolete any more.
* lisp/replace.el (perform-replace): Revert to funcall
instead of run-hook-with-args-until-failure.
* lisp/wdired.el (wdired-change-to-wdired-mode): Use add-function.
* lisp/dired-aux.el (dired-isearch-filenames-mode): Rename from
dired-isearch-filenames-toggle; make it into a proper minor mode.
Use add/remove-function.
(dired-isearch-filenames-setup, dired-isearch-filenames-end):
Call the minor-mode rather than add/remove-hook.
(dired-isearch-filter-filenames):
Remove isearch-message-prefix property.
* lisp/info.el (Info--search-loop): New function, extracted from Info-search.
Funcall isearch-filter-predicate instead of
run-hook-with-args-until-failure isearch-filter-predicates.
(Info-search): Use it.
(Info-mode): Use isearch-filter-predicate instead of
isearch-filter-predicates.
* src/lisp.mk (lisp): Add nadvice.elc.
* lib-src/makefile.w32-in (lisp2): Add nadvice.elc.

Fixes: debbugs:14714
2013-08-05 14:05:46 -04:00
Dmitry Antipov
8f3a2c2659 New macro to iterate over live buffers similar to frames.
* buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
(Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
Declare buffer-related variables here to offload lisp.h.
* buffer.c (Vbuffer_alist): Adjust comment.
(Fget_file_buffer, get_truename_buffer, Fother_buffer)
(other_buffer_safely):
* data.c (store_symval_forwarding):
* dispnew.c (Fframe_or_buffer_changed_p):
* fileio.c (Fdo_auto_save):
* filelock.c (unlock_all_files):
* minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
2013-08-05 08:14:43 +04:00
Paul Eggert
e0fdb69430 Fix some minor races in hosts lacking mkostemp.
Gnulib's emulation of mkostemp doesn't have races that Emacs's does.
* configure.ac (mkostemp): Remove check for this function;
gnulib does the check now.
(mkstemp): Remove check for this no-longer-used function.
* lib/mkostemp.c, lib/secure_getenv.c, lib/tempname.c, lib/tempname.h:
* m4/mkostemp.m4, m4/secure_getenv.m4, m4/tempname.m4:
New files, copied from Gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Add mkostemp.
* lib-src/movemail.c (main):
* lib-src/update-game-score.c (write_scores):
Use mkostemp (which now works on all platforms, due to changes
in the portability layer) rather than mktemp (which has a race)
or mkstemp (which we no longer bother with).
* src/callproc.c (create_temp_file):
* src/filelock.c (create_lock_file):
Assume mkostemp, since it's now provided by Gnulib.

Fixes: debbugs:15015
2013-08-04 09:56:56 -07:00
Eli Zaretskii
484ab23924 Minor fix of the last commit. 2013-08-04 18:43:10 +03:00
Eli Zaretskii
63f5c6c20d Implement mkostemp for MS-Windows.
nt/mingw-cfg.site (ac_cv_func_mkostemp): New var with value of "yes".
 nt/inc/ms-w32.h (mkostemp): Declare prototype.
 nt/config.nt (HAVE_MKOSTEMP): Define to 1.

 src/w32.c (mkostemp): New function.
 (mktemp): Remove, no longer used.  Most of the code reused in mkostemp.

Fixes: debbugs:15015
2013-08-04 18:32:12 +03:00
Dmitry Antipov
f0b79313d9 * dispnew.c (glyph_matrix_count, glyph_pool_count):
Move under GLYPH_DEBUG and ENABLE_CHECKING.
(new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
(free_glyph_pool, check_glyph_memory): Likewise for
all users.  Adjust comments where appropriate.
2013-08-04 08:07:18 +04:00
Paul Eggert
98f638d640 * composite.h: Minor fixups.
(composition_registered_p): Rename from COMPOSITION_REGISTERD_P
to fix a misspelling, and change it to an inline function while
we're at it (it need not be a macro).  All uses changed.
(composition_method, composition_valid_p):
Rewrite to avoid assignments in if-conditions.
2013-08-03 14:09:57 -07:00
Dmitry Antipov
416a3e013f * composite.h (compose_region): Remove the leftover. 2013-08-03 22:23:23 +04:00
Dmitry Antipov
75c59fb3ec Do not use global Lisp_Object in composition macros.
* composite.h (composition_temp): Remove declaration.
(COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
(composition_method, composition_valid_p): ...inline functions.
* composite.c (composition_temp): Remove.
(run_composition_function, update_compositions)
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal):
* coding.c (handle_composition_annotation):
* xdisp.c (handle_composition_prop, check_point_in_composition):
Related users changed.
2013-08-03 22:16:43 +04:00
Dmitry Antipov
a10c82694e Drop FRAME_PTR typedef.
* composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
* ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
* menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
* nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
* w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
* w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
* xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
All related users changed.
2013-08-03 07:29:03 +04:00
Stefan Monnier
a104f656c8 Make defvar affect the default binding outside of any let.
* src/eval.c (default_toplevel_binding): New function.
(Fdefvar): Use it.
(unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
(Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
(syms_of_eval): Export them.
* src/data.c (Fdefault_value): Micro cleanup.
* src/term.c (init_tty): Use "false".
* lisp/custom.el (custom-initialize-default, custom-initialize-set)
(custom-initialize-reset, custom-initialize-changed): Affect the
toplevel-default-value (bug#6275, bug#14586).
* lisp/emacs-lisp/advice.el (ad-compile-function): Undo previous workaround
for bug#6275.
* test/automated/core-elisp-tests.el: New file.
2013-08-02 17:16:33 -04:00
Dmitry Antipov
4b5c9326ce Fix X GC leak in GTK and raw (no toolkit) X ports.
* xterm.c (x_free_frame_resources): If white and black relief
GCs are allocated, always free them here.
* xfns.c (x_make_gc): Omit redundant initialization.
* widget.c (create_frame_gcs): Remove the leftover.
(EmacsFrameDestroy): Do nothing because all GCs are now freed
in x_free_frame_resources.
2013-08-02 17:22:23 +04:00
Jan Djärv
b19aa63653 * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
inside NS_IMPL_COCOA.

* nsterm.m (windowWillResize:toSize:): Only change title if
! maximizing_resize && FULLSCREEN_NONE.  strdup title before
modifying it.
(viewDidEndLiveResize): New method.

Fixes: debbugs:15005
2013-08-02 11:42:23 +02:00
Dmitry Antipov
3521bd09b3 Fix last change. 2013-08-02 12:32:32 +04:00
Dmitry Antipov
af1f7e0682 * insdel.c (adjust_after_replace, replace_range, del_range_2):
Do not check whether undo is enabled because record_insert and
record_delete does that themselves.
2013-08-02 11:07:08 +04:00
Dmitry Antipov
7ee0f047a3 * w32term.c (x_unfocus_frame): Remove unused dummy function. 2013-08-02 08:21:51 +04:00
Dmitry Antipov
65b02bb9dc * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
member which is not really used any more.
(FRAME_XIC_BASE_FONTNAME): Remove.
* xfns.c (xic_free_fontset): Adjust user.
* xmenu.c (mouse_position_for_popup, x_activate_menubar)
(update_frame_menubar, set_frame_menubar, free_frame_menubar)
(create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
(xdialog_show): Use eassert for debugging check.
2013-08-02 07:55:24 +04:00
Juanma Barranquero
44e18199d9 Fix typos in ChangeLogs. 2013-08-02 00:53:03 +02:00
Paul Eggert
6318cde023 * fileio.c, fns.c (merge): Move extern decl from here ...
* lisp.h (merge): ... to here.
2013-08-01 23:24:02 +01:00
Dmitry Antipov
6c1a09ba9a Fix last font-related change.
* w32font.h (w32font_list_internal, w32font_match_internal):
Fix prototype.
* w32uniscribe.c (uniscribe_list, uniscribe_match):
(uniscribe_list_family): Adjust to match font API change.
MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
2013-08-01 20:09:20 +04:00
Dmitry Antipov
f8c2020882 * frame.h (FRAME_MOUSE_UPDATE):
* nsterm.m (ns_frame_up_to_date): Omit redundant check
whether hlinfo->mouse_face_mouse_frame is non-NULL.
2013-08-01 18:54:29 +04:00
Dmitry Antipov
fdb396e222 Avoid redundant Lisp_Object <-> struct frame conversions in font API.
* font.h (struct font_driver): Change list, match, and list_family
functions to accept struct frame * as first arg.
* font.c (font_score, font_compare, font_sort_entities): Remove
prototypes.
(font_sort_entities, font_list_entities, font_select_entity):
(font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
match font API change.
* xfont.c (xfont_list, xfont_match, xfont_list_family):
* ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
* ftxfont.c (ftxfont_list, ftxfont_match):
* xftfont.c (xftfont_list, xftfont_match):
* nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
* w32font.c (w32font_list, w32font_match, w32font_list):
(w32font_list_internal, w32_font_match_internal): Likewise.
* xfaces.c (Fx_family_fonts): Adjust user.
2013-08-01 14:33:25 +04:00
Dmitry Antipov
2f935d86fd * xterm.c (any_help_event_p, x_draw_glyph_string_background):
(x_display_ok): Use bool for booleans.
(x_draw_glyph_string_background, cvt_string_to_pixel):
(cvt_pixel_dtor): Drop unnecessary prototypes.
* xterm.h (x_display_ok): Adjust prototype.
2013-08-01 11:33:58 +04:00
Dmitry Antipov
52b8a085f7 Do not use pure Xism x_wm_set_icon_position in non-X ports.
* frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
only if HAVE_X_WINDOWS is in use.
* frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
* nsterm.m (x_wm_set_icon_position): Remove no-op.
* w32term.c (x_wm_set_icon_position): Likewise.
* w32fns.c (x_icon): Adjust user.
2013-08-01 10:38:49 +04:00
Dmitry Antipov
1ca6cc28eb * xterm.c (x_flush): Call XFlush once per each X display, not
frame.  This is better because this code always unconditionally
skips non-X frames in Vframe_list and issues the only XFlush if
we have more than one X frame on the same X display.
2013-08-01 09:56:20 +04:00
Dmitry Antipov
c791c18e23 * xterm.c (last_mouse_press_frame): Remove the
leftover which is not really used any more.
(handle_one_xevent, syms_of_xterm): Adjust users.
2013-08-01 09:28:24 +04:00
Dmitry Antipov
f435830ea4 Drop unnecessary functions that deals with frame pixel size.
* frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
(x_pixel_height): Drop prototypes.
* msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
(x_pixel_height): Drop implementations.
* frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
which should be always valid for window frame.
(Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
* w32menu.c (Fx_popup_dialog):
* xmenu.c (Fx_popup_dialog): Likewise for both.
2013-07-31 16:50:59 +04:00
Dmitry Antipov
4c131798b5 * frame.c (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
(Fset_frame_size, Fset_frame_position): Use decode_live_frame and mention nil
frame in docstring.
2013-07-31 16:09:16 +04:00
Dmitry Antipov
84231434a2 * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
frame parameters and call to Fmodify_frame_parameters just once.
2013-07-31 11:45:34 +04:00
Dmitry Antipov
959067a112 * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
(x_figure_window_size): Likewise.  Adjust to return long.
(syms_of_frame): Do not DEFSYM Qterminal_live_p.
(toplevel): Move Qterminal_live_p to...
* terminal.c (toplevel): ...here, make it static, and...
(syms_of_terminal): ...DEFSYM here.
* frame.h (Qterminal_live_p): Remove declaration.
(make_frame, x_figure_window_size): Adjust prototype.
* nsfns.m (Fx_create_frame): Use long for window flags.
2013-07-31 10:05:05 +04:00
Paul Eggert
f4b169ce67 Fix tempfile bug on platforms lacking mkostemp and mkstemp.
* callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
Do not assume that emacs_close (INT_MAX) is a no-op.

Fixes: debbugs:14986
2013-07-30 23:44:43 +02:00
Dmitry Antipov
bee6a2c7dc * xfaces.c (make_face_cache): For struct face_cache, prefer
xmalloc to xzalloc and so avoid redundant call to memset.
(Finternal_set_lisp_face_attribute): Fix comment typo and style.
2013-07-30 17:40:46 +04:00
Dmitry Antipov
d7e6881a2e * fringe.c (draw_window_fringes, update_window_fringes)
(compute_fringe_widths):
* w32term.c (x_draw_glyph_string):
* window.c (candidate_window_p, Frecenter):
* xfaces.c (realize_basic_faces, realize_default_face)
(Fbitmap_space_p, Finternal_set_lisp_face_attribute)
(x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
* xfns.c (x_set_cursor_color, xic_free_xfontset):
* xmenu.c (Fx_menu_bar_open_internal):
* xselect.c (x_reply_selection_request, Fx_get_atom_name):
* xsettings.c (xft_settings_event):
* xterm.c (x_draw_glyph_string, x_had_errors_p):
Use bool for booleans.  Adjust style and comments where
appropriate.
* dispextern.h (draw_window_fringes, update_window_fringes)
(compute_fringe_widths):
* xterm.h (x_had_errors_p): Adjust prototype.
2013-07-30 09:56:18 +04:00
Dmitry Antipov
ec3058af96 * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
CHECK_LIST.  Rewrite the loop to avoid useless local variable.
2013-07-30 08:35:44 +04:00
Dmitry Antipov
218e063750 * fns.c (toplevel): Remove comment before Fsafe_length because
it checks for QUIT.
2013-07-29 21:28:07 +04:00
Paul Eggert
e560aba9d1 * frame.c (delete_frame): Avoid unnecessary 'this_f' test.
Fixes: debbugs:14970
2013-07-28 21:36:23 +02:00
Eli Zaretskii
2e5ce5ded7 Fix bug #14970 with crashes when deleting many frames on MS-Windows.
src/w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
 frame which got the message is still alive, before dereferencing
 its pointer.
 src/frame.c (delete_frame): Test "this" frame's minibuffer window to
 be a live window, before using it as such.
2013-07-28 18:22:27 +03:00
Paul Eggert
94fea300fd Spelling fixes. 2013-07-28 00:14:07 +02:00