* lisp/bookmark.el: Fix deletion of bookmarks.
(bookmark-bmenu-list): Don't toggle filenames if alist is empty.
(bookmark-bmenu-execute-deletions): Only skip first line if it's
the header.
(bookmark-exit-hook-internal): Save even if list is empty.
Alan Mackenzie [Wed, 3 Apr 2013 17:50:39 +0000 (17:50 +0000)]
Handle `parse-partial-sexp' landing inside a comment opener
(Bug#13244). Also adapt to the new values of element 7 of a parse
state.
* progmodes/cc-engine.el (c-state-pp-to-literal): New optional
parameter `not-in-delimiter'. Handle being inside comment opener.
(c-invalidate-state-cache-1): Reckon with an extra "invalid"
character in case we're typing a '*' after a '/'.
(c-literal-limits): Handle the awkward "not-in-delimiter" cond arm
instead by passing the parameter to c-state-pp-to-literal.
* progmodes/cc-fonts.el (c-font-lock-doc-comments): New handling
for elt. 7 of a parse state.
Paul Eggert [Tue, 2 Apr 2013 01:54:56 +0000 (18:54 -0700)]
Prefer < to > in range checks such as 0 <= i && i < N.
This makes it easier to visualize quantities on a number line.
This patch doesn't apply to all such range checks,
only to the range checks affected by the 2013-03-24 change.
This patch reverts most of the 2013-03-24 change.
* alloc.c (xpalloc, Fgarbage_collect):
* ccl.c (ccl_driver, resolve_symbol_ccl_program):
* character.c (string_escape_byte8):
* charset.c (read_hex):
* data.c (cons_to_unsigned):
* dispnew.c (update_frame_1):
* doc.c (Fsubstitute_command_keys):
* doprnt.c (doprnt):
* editfns.c (hi_time, decode_time_components):
* fileio.c (file_offset):
* fns.c (larger_vector, make_hash_table, Fmake_hash_table):
* font.c (font_intern_prop):
* frame.c (x_set_alpha):
* gtkutil.c (get_utf8_string):
* indent.c (check_display_width):
* keymap.c (Fkey_description):
* lisp.h (FIXNUM_OVERFLOW_P, vcopy):
* lread.c (read1):
* minibuf.c (read_minibuf_noninteractive):
* process.c (wait_reading_process_output):
* search.c (Freplace_match):
* window.c (get_phys_cursor_glyph):
* xdisp.c (redisplay_internal):
* xsmfns.c (smc_save_yourself_CB):
Prefer < to > for range checks.
* dispnew.c (sit_for): Don't mishandle NaNs.
This fixes a bug introduced in the 2013-03-24 change.
* editfns.c (decode_time_components): Don't hoist comparison.
This fixes another bug introduced in the 2013-03-24 change.
Stefan Monnier [Mon, 1 Apr 2013 13:28:19 +0000 (09:28 -0400)]
* lisp/electric.el (electric-pair-inhibit-predicate): New var.
(electric-pair-post-self-insert-function): Use it.
(electric-pair-default-inhibit): New function, extracted from
electric-pair-post-self-insert-function.
Eli Zaretskii [Mon, 1 Apr 2013 07:28:56 +0000 (10:28 +0300)]
Minor fixes in the nt/ subdirectory.
nt/README: A better documentation of ddeclient.exe.
nt/README.W32: A better documentation of ddeclient.exe.
nt/paths.h (PATH_EXEC): Add nt/oo-spd/i386 and nt/oo/i386
subdirectories.
Dmitry Antipov [Sun, 31 Mar 2013 05:45:54 +0000 (09:45 +0400)]
* frame.h (struct frame): Drop scroll_bottom_vpos
member becaue all real users are dead long ago.
(FRAME_SCROLL_BOTTOM_VPOS): Remove.
* xdisp.c (redisplay_internal): Adjust user.
Paul Eggert [Sat, 30 Mar 2013 17:30:06 +0000 (10:30 -0700)]
Merge from gnulib
This incorporates:
2013-03-29 stdalign: port to stricter ISO C11
This helps to run 'configure' on MS-Windows; see Eli Zaretskii in
<http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00999.html>.
Leo Liu [Sat, 30 Mar 2013 13:49:00 +0000 (21:49 +0800)]
* etc/NEWS: Mention `kmacro-to-register' and new eldoc feature.
* lisp/kmacro.el (kmacro-call-macro): Add optional arg MACRO.
(kmacro-execute-from-register): Pass the keyboard macro to
kmacro-call-macro or repeating won't work correctly.
Jan Djärv [Sat, 30 Mar 2013 09:57:27 +0000 (10:57 +0100)]
* nsmenu.m (ns_update_menubar): Correct NSTRACE.
(x_activate_menubar): Update the menu with title that matches
ns_get_pending_menu_title, and call
ns_check_pending_openmenu.
(menuWillOpen:): New method.
(menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
Dmitry Antipov [Fri, 29 Mar 2013 15:50:21 +0000 (19:50 +0400)]
* indent.c (current_column_bol_cache): Remove leftover which is not
used in Fmove_to_column any more.
(current_column, scan_for_column): Adjust users.
* keyboard.c (last_point_position_buffer, last_point_position_window):
Remove leftovers which are not used for recording undo any more.
(command_loop_1, syms_of_keyboard): Adjust users.
* xdisp.c (last_max_ascent): Remove leftover which is not used in
redisplay_window any more.
(move_it_to): Adjust user.
Stefan Monnier [Fri, 29 Mar 2013 14:23:24 +0000 (10:23 -0400)]
* lisp/mpc.el: Use defvar-local and setq-local.
(mpc--proc-connect): Connection failures are not bugs.
(mpc-mode-map): `follow-link' only applies to the buffer's content.
(mpc-volume-map): Bind to the up-events.
Stefan Monnier [Thu, 28 Mar 2013 16:33:06 +0000 (12:33 -0400)]
* lisp/emacs-lisp/edebug.el (edebug-mode): Make it a minor mode.
(edebug--recursive-edit): Use it.
(edebug-kill-buffer): Don't let-bind kill-buffer-hook.
(edebug-temp-display-freq-count): Don't let-bind buffer-read-only.
Dmitry Antipov [Thu, 28 Mar 2013 14:04:49 +0000 (18:04 +0400)]
* window.h (struct window): Replace hchild, vchild and buffer slots
with the only contents slot. This is possible because each valid
window may have either the child window (in vertical or horizontal
combination) or buffer to display (for the leaf window). Using that,
a lof of operations to traverse and/or change window hierarchies may
be simplified. New member horizontal is used to distinguish between
horizontal and vertical combinations of internal windows.
(WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
(WINDOW_VERTICAL_COMBINATION_P): New macros.
(WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
* window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
Use contents slot, not buffer, where appropriate.
(wset_combination): New function.
(wset_buffer): Add eassert.
(Fframe_first_window): Simplify the loop reaching first window.
(Fwindow_buffer): Use WINDOW_LEAF_P.
(Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
(Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
(unshow_buffer): Convert initial debugging check to eassert.
(replace_window, recombine_windows, Fdelete_other_windows_internal)
(make_parent_window, window_resize_check, window_resize_apply)
(resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
(Fset_window_configuration, delete_all_child_windows, save_window_save):
Adjust to match struct window changes.
(window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
(mark_window_cursors_off, count_windows, get_leaf_windows)
(foreach_window_1): Simplify the loop.
* alloc.c (mark_object): Do not check for the leaf window because
internal windows has no glyph matrices anyway.
* dispnew.c (clear_window_matrices, showing_window_margins_p)
(allocate_matrices_for_window_redisplay, fake_current_matrices)
(allocate_matrices_for_frame_redisplay, free_window_matrices)
(build_frame_matrix_from_window_tree, mirror_make_current)
(frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
(update_window_tree, set_window_update_flags): Simplify the loop.
(sync_window_with_frame_matrix_rows): Enforce live window.
Use contents slot, not buffer, where appropriate.
* frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
and WINDOW_HORIZONTAL_COMBINATION_P.
(make_frame_visible_1): Simplify the loop.
Use contents slot, not buffer, where appropriate.
* xdisp.c (hscroll_window_tree, mark_window_display_accurate)
(redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
(expose_window_tree): Likewise.
Use contents slot, not buffer, where appropriate.
* textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
to avoid deleted windows. Use contents slot instead of buffer.
* buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
* indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
* nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
* xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
Dmitry Antipov [Thu, 28 Mar 2013 02:41:05 +0000 (06:41 +0400)]
* xdisp.c (with_echo_area_buffer_unwind_data): Save window
start marker...
(unwind_with_echo_area_buffer): ...to restore it here. This
is needed to ensure that...
(redisplay_window): ...both window markers are valid here,
which is verified by eassert.
* editfns.c (save_excursion_save): Do not assume that
selected_window always displays the buffer.
Eli Zaretskii [Wed, 27 Mar 2013 16:03:15 +0000 (18:03 +0200)]
Fix bug #14063 with reverting the *Colors* buffer.
lisp/facemenu.el (list-colors-callback): New defvar.
(list-colors-redisplay): New function.
(list-colors-display): Install list-colors-redisplay as the
revert-buffer-function.
Stefan Monnier [Wed, 27 Mar 2013 14:33:03 +0000 (10:33 -0400)]
* lisp/case-table.el (case-table-get-table): New function.
* lisp/case-table.el: Use lexical-binding.
(case-table-get-table): New function.
(get-upcase-table): Use it. Mark as obsolete. Adjust callers.
* src/casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
the upcase table.
Eli Zaretskii [Wed, 27 Mar 2013 08:31:16 +0000 (10:31 +0200)]
Fix rules in nt/makefile.w32-in for parallel builds on MS-Windows.
nt/makefile.w32-in (ALL): Depend on *.exe files, not on phony names
without the .exe suffix.
(addpm, ddeclient, cmdproxy, addsection, preprep): Remove phony
targets.
(.PHONY): Remove.
Aidan Gauland [Tue, 26 Mar 2013 22:08:58 +0000 (11:08 +1300)]
Added eshell-tramp module
* lisp/eshell/em-unix.el: Moved su and sudo to...
* lisp/eshell/em-tramp.el: ...Eshell tramp module
* doc/misc/eshell.texi: Updated manual to reflect changes.
External su and sudo commands are now the default; the internal,
TRAMP-using variants can still be used by enabling the eshell-tramp
module.
Eli Zaretskii [Tue, 26 Mar 2013 14:26:24 +0000 (16:26 +0200)]
More MinGW64 related fixes.
nt/addsection.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Do not
define for MinGW64.
nt/preprep.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Do not define
for MinGW64.
Eli Zaretskii [Tue, 26 Mar 2013 08:21:27 +0000 (10:21 +0200)]
Fix more incompatibilities between MinGW.org and MinGW64 headers
Reported by ׃scar Fuentes in
http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00699.html
and in
http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00707.html.
nt/inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS) [_W64]: Define to 1.
For MinGW64, include sys/types.h and time.h.
nt/inc/sys/time.h (struct timeval) [!_W64]: Guard definition with _W64.
(struct timezone) [!_TIMEZONE_DEFINED]: Guard definition with
_TIMEZONE_DEFINED.
nt/addpm.c (_WIN32_IE) [_W64]: For MinGW64, don't define to 0x400.
nt/inc/sys/stat.h: Remove _CRTIMP from prototypes of fstat, stat,
lstat, and fstatat.
lib-src/ntlib.c (struct timespec) [!_TIMEZONE_DEFINED]: Define the
struct only if _TIMEZONE_DEFINED is not defined.
src/w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
src/w32.c (REPARSE_DATA_BUFFER): Guard with
MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
Stefan Monnier [Tue, 26 Mar 2013 03:38:18 +0000 (23:38 -0400)]
* lisp/desktop.el (desktop--v2s): Rename from desktop-internal-v2s.
Change return value to be a sexp. Delay `get-buffer' to after
restoring the desktop.
Un-indent after "pass" and "return" statements
* lisp/progmodes/python.el (python-indent-block-enders): New var.
(python-indent-calculate-indentation): Use it.
* test/automated/python-tests.el
(python-indent-block-enders): New test.
(python-info-current-defun-2): Fix test.
nt/inc/ms-w32.h (struct timespec): Don't define if
_TIMESPEC_DEFINED is already defined.
(sigset_t) [!_POSIX]: Typedef for MinGW64.
(_WIN32_WINNT, WIN32_LEAN_AND_MEAN): Move definitions before
including the first system header, to avoid redefinition if some
system header defines a default value.
nt/inc/sys/time.h (struct itimerval): Don't define if
_TIMESPEC_DEFINED is already defined.
Michael Albinus [Mon, 25 Mar 2013 09:16:31 +0000 (10:16 +0100)]
* net/tramp.el (tramp-drop-volume-letter): Make it an ordinary
defun. Defining it as defalias could introduce too eager
byte-compiler optimization. (Bug#14030)
Juri Linkov [Sun, 24 Mar 2013 21:47:52 +0000 (23:47 +0200)]
* lisp/replace.el (list-matching-lines-prefix-face): New defcustom.
(occur-1): Pass `list-matching-lines-prefix-face' to the function
`occur-engine' if `face-differs-from-default-p' returns t.
(occur-engine): Add `,' inside backquote construct to evaluate
`prefix-face'. Propertize the prefix with the `prefix-face' face.
Pass `prefix-face' to the functions `occur-context-lines' and
`occur-engine-add-prefix'.
(occur-engine-add-prefix, occur-context-lines): Add optional arg
`prefix-face' and propertize the prefix with `prefix-face'.
Dmitry Antipov [Sun, 24 Mar 2013 05:29:35 +0000 (09:29 +0400)]
* xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
to be optional or nil. Adjust comment and convert it to docstring.
* xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
* frame.c (display_x_get_resource, Fx_get_resource): Break long line.