aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | Use region cache to speedup bidi_find_paragraph_start.Dmitry Antipov2013-08-061-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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'.
* | Invalidate region caches only if buffer text is going to be changed.Dmitry Antipov2013-08-061-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Revert introduction of isearch-filter-predicates.Stefan Monnier2013-08-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | New macro to iterate over live buffers similar to frames.Dmitry Antipov2013-08-051-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Fix some minor races in hosts lacking mkostemp.Paul Eggert2013-08-041-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Minor fix of the last commit.Eli Zaretskii2013-08-041-0/+1
| |
* | Implement mkostemp for MS-Windows.Eli Zaretskii2013-08-041-0/+6
| | | | | | | | | | | | | | | | | | | | | | 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
* | * dispnew.c (glyph_matrix_count, glyph_pool_count):Dmitry Antipov2013-08-041-0/+8
| | | | | | | | | | | | | | 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.
* | * composite.h: Minor fixups.Paul Eggert2013-08-031-0/+9
| | | | | | | | | | | | | | | | (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.
* | * composite.h (compose_region): Remove the leftover.Dmitry Antipov2013-08-031-0/+1
| |
* | Do not use global Lisp_Object in composition macros.Dmitry Antipov2013-08-031-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Drop FRAME_PTR typedef.Dmitry Antipov2013-08-031-0/+12
| | | | | | | | | | | | | | | | | | | | | | * 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.
* | Make defvar affect the default binding outside of any let.Stefan Monnier2013-08-021-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Fix X GC leak in GTK and raw (no toolkit) X ports.Dmitry Antipov2013-08-021-0/+10
| | | | | | | | | | | | | | | | | | * 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.
* | * nsterm.h (EmacsView): Add maximizing_resize, put it and old_titleJan Djärv2013-08-021-0/+10
| | | | | | | | | | | | | | | | | | | | | | 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
* | * insdel.c (adjust_after_replace, replace_range, del_range_2):Dmitry Antipov2013-08-021-0/+6
| | | | | | | | | | Do not check whether undo is enabled because record_insert and record_delete does that themselves.
* | * w32term.c (x_unfocus_frame): Remove unused dummy function.Dmitry Antipov2013-08-021-0/+1
| |
* | * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontnameDmitry Antipov2013-08-021-0/+11
| | | | | | | | | | | | | | | | | | | | 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.
* | Fix typos in ChangeLogs.Juanma Barranquero2013-08-021-4/+4
| |
* | * fileio.c, fns.c (merge): Move extern decl from here ...Paul Eggert2013-08-011-0/+5
| | | | | | | | * lisp.h (merge): ... to here.
* | Fix last font-related change.Dmitry Antipov2013-08-011-0/+10
| | | | | | | | | | | | | | | | | | * 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.
* | * frame.h (FRAME_MOUSE_UPDATE):Dmitry Antipov2013-08-011-0/+6
| | | | | | | | | | * nsterm.m (ns_frame_up_to_date): Omit redundant check whether hlinfo->mouse_face_mouse_frame is non-NULL.
* | Avoid redundant Lisp_Object <-> struct frame conversions in font API.Dmitry Antipov2013-08-011-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | * xterm.c (any_help_event_p, x_draw_glyph_string_background):Dmitry Antipov2013-08-011-0/+5
| | | | | | | | | | | | | | (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.
* | Do not use pure Xism x_wm_set_icon_position in non-X ports.Dmitry Antipov2013-08-011-0/+10
| | | | | | | | | | | | | | | | | | * 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.
* | * xterm.c (x_flush): Call XFlush once per each X display, notDmitry Antipov2013-08-011-0/+4
| | | | | | | | | | | | 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.
* | * xterm.c (last_mouse_press_frame): Remove theDmitry Antipov2013-08-011-0/+6
| | | | | | | | | | leftover which is not really used any more. (handle_one_xevent, syms_of_xterm): Adjust users.
* | Drop unnecessary functions that deals with frame pixel size.Dmitry Antipov2013-07-311-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | * frame.c (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.Dmitry Antipov2013-07-311-0/+3
| | | | | | | | | | (Fset_frame_size, Fset_frame_position): Use decode_live_frame and mention nil frame in docstring.
* | * frame.c (Fmake_terminal_frame): Use store_in_alist to setupDmitry Antipov2013-07-311-0/+5
| | | | | | | | frame parameters and call to Fmodify_frame_parameters just once.
* | * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.Dmitry Antipov2013-07-311-0/+12
| | | | | | | | | | | | | | | | | | | | | | (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.
* | Fix tempfile bug on platforms lacking mkostemp and mkstemp.Paul Eggert2013-07-301-0/+6
| | | | | | | | | | | | | | * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]: Do not assume that emacs_close (INT_MAX) is a no-op. Fixes: debbugs:14986
* | * xfaces.c (make_face_cache): For struct face_cache, preferDmitry Antipov2013-07-301-0/+6
| | | | | | | | | | xmalloc to xzalloc and so avoid redundant call to memset. (Finternal_set_lisp_face_attribute): Fix comment typo and style.
* | * fringe.c (draw_window_fringes, update_window_fringes)Dmitry Antipov2013-07-301-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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.
* | * frame.c (Fmodify_frame_parameters): Always check 2nd arg withDmitry Antipov2013-07-301-0/+5
| | | | | | | | CHECK_LIST. Rewrite the loop to avoid useless local variable.
* | * fns.c (toplevel): Remove comment before Fsafe_length becauseDmitry Antipov2013-07-291-0/+5
| | | | | | | | it checks for QUIT.
* | * frame.c (delete_frame): Avoid unnecessary 'this_f' test.Paul Eggert2013-07-281-0/+4
| | | | | | | | Fixes: debbugs:14970
* | Fix bug #14970 with crashes when deleting many frames on MS-Windows.Eli Zaretskii2013-07-281-0/+9
| | | | | | | | | | | | | | | | 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.
* | Fix focus-out events on MS-Windows.Eli Zaretskii2013-07-271-0/+7
| | | | | | | | | | | | | | 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.
* | Fix documentation of list-processes and process-list.Eli Zaretskii2013-07-261-0/+2
| | | | | | | | | | | | src/process.c (Fprocess_list): Doc fix. lisp/simple.el (list-processes): Doc fix.
* | Fix bug #14841 with invisible frames on MS-Windows.Eli Zaretskii2013-07-261-0/+8
| | | | | | | | | | | | | | | | src/w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame being re-exposed only if it didn't ask to become visible. <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it was previously iconified. (x_iconify_frame): Mark the frame iconified.
* | Fix minor problems found by static checking.Paul Eggert2013-07-261-0/+6
| | | | | | | | | | * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static. (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
* | Add support for lexical variables to the debugger's `e' command.Stefan Monnier2013-07-261-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/debug.el (debug): Don't let-bind the debugger-outer-* vars, except for debugger-outer-match-data. (debugger-frame-number): Move check for "on a function call" from callers into it. Add `skip-base' argument. (debugger-frame, debugger-frame-clear): Simplify accordingly. (debugger-env-macro): Only reset the state stored in non-variables, i.e. current-buffer and match-data. (debugger-eval-expression): Rewrite using backtrace-eval. * lisp/subr.el (internal--called-interactively-p--get-frame): Remove. (called-interactively-p): * lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip): Use the new `base' arg of backtrace-frame instead. * src/eval.c (set_specpdl_old_value): New function. (unbind_to): Minor simplification. (get_backtrace_frame): New function. (Fbacktrace_frame): Use it. Add `base' argument. (backtrace_eval_unrewind, Fbacktrace_eval): New functions. (syms_of_eval): Export backtrace-eval. * src/xterm.c (x_focus_changed): Simplify.
* | * fileio.c (Finsert_file_contents): Avoid double-close.Paul Eggert2013-07-251-0/+4
| | | | | | | | Fixes: debbugs:14936
* | Fix bug #14780 with unreachable lines near end of buffer.Eli Zaretskii2013-07-241-0/+6
| | | | | | | | | | src/xdisp.c (redisplay_window): Instead of moving point out of scroll margin, reject the force_start method, and try scrolling.
* | * src/alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined (Bug#14944).Ken Brown2013-07-241-0/+5
| |
* | * src/eval.c (Fprogn): Do not check that BODY is a proper list.Paul Eggert2013-07-241-0/+7
| | | | | | | | | | | | | | | | | | This undoes the previous change. The check slows down the interpreter, and is not needed to prevent a crash. See <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>. * doc/lispref/eval.texi (Special Forms): Mention 'lambda'. Also, say that non-well-formed expressions result in unspecified behavior, though Emacs will not crash.
* | No need for configure to create etc/ and lisp/ any moreGlenn Morris2013-07-231-0/+4
| | | | | | | | | | | | | | | | * configure.ac (etc, lisp): No need to create specially. Configure already creates lisp when generating lisp/Makefile; src/Makefile now creates etc when needed. * src/Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
* | Port to GNU/Linux systems with tinfo but not ncurses.Paul Eggert2013-07-231-0/+6
| | | | | | | | | | | | | | | | * configure.ac (USE_NCURSES): New symbol. * src/dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX, to decide whether ncurses is being used. Without this change, GCC complains about tgetent not being declared, on a system that has tinfo installed but ncurses not installed.
* | * eval.c (Fprogn): Check that BODY is a proper list.Paul Eggert2013-07-231-0/+2
| |