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

34743 commits

Author SHA1 Message Date
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
Eli Zaretskii
e95da6d36c Fix focus-out events on MS-Windows.
src/w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
 w32_detect_focus_change instead of doing part of its job by hand.
 This fixes the problem whereby FOCUS_OUT events were not sent to
 the event queue.
2013-07-27 16:08:03 +03:00
Eli Zaretskii
fec9206062 Fix documentation of list-processes and process-list.
src/process.c (Fprocess_list): Doc fix.

 lisp/simple.el (list-processes): Doc fix.
2013-07-26 21:48:05 +03:00
Juanma Barranquero
a04689de43 Fix typos in ChangeLogs. 2013-07-26 19:02:22 +02:00