Monnier's patch).
* viper.el (viper-emacs-state-mode-list): add egg-status-buffer-mode.
(viper-version): version update.
(viper-go-away,viper-setup-hooks): function changed (Stefan Monnier's
patch).
(viper--lookup-key,viper-catch-tty-ESC,viper-uncatch-tty-ESC,
viper-setup-ESC-to-escape): new functions (Stefan Monnier's
patch).
* viper-cmd.el: (viper-del-forward-char-in-insert): new function.
(viper-save-kill-buffer): check if buffer is modified.
(viper-envelop-ESC-key): function deleted (Stefan Monnier's patch).
(viper-intercept-ESC-key): function changed (Stefan Monnier's patch).
* viper-keym.el (viper-ESC-key): constant changed (Stefan Monnier's
patch).
* ediff.el (ediff-files-command,ediff3-files-command): new functions.
(ediff-merge-command,ediff-merge-with-ancestor-command): new functions.
(ediff-directories-command,ediff-directories3-command): new functions.
(ediff-merge-directories-command): new function.
(ediff-merge-directories-with-ancestor-command): new function.
All the above are command-line interfaces to ediff: facilitate calling
Emacs with the appropriate ediff functions invoked.
(ediff-version): version update.
lisp/simple.el (default-font-height, window-screen-lines): New
functions.
(line-move, line-move-partial): Use them instead of
frame-char-height and window-text-height. This makes scrolling
text smoother when the buffer's default face uses a font that is
different from the frame's default font.
it does its own dialog, which can't be cancelled.
* src/nsfns.m: Remove panelOK.
(ns_fd_data): New.
(ns_run_file_dialog): New function.
(Fns_read_file_name): Fill in ns_fd_data, post an event and start the
event loop, so file dialog is popped up by ns_run_file_dialog, called
by sendEvent (Bug#14578).
(EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
* src/nsterm.h (NSSavePanel): Update comment.
(NSAPP_DATA2_RUNFILEDIALOG): Define.
(ns_run_file_dialog): Declare.
* src/nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
(window-state-put-stale-windows): New variable.
(window--state-put-2): Save list of windows without matching buffer.
(window-state-put): Remove "bufferless" windows if possible.
(ido-enable-virtual-buffers): New variable.
(ido-buffer-internal, ido-toggle-virtual-buffers)
(ido-make-buffer-list): Use it.
(ido-exhibit): Support turning on and off virtual buffers
automatically.
mode command and externally. Fix various related bugs. Clarify
Commentary and improve some documentation strings and code.
(todo-delete-file): New command.
(todo-check-file): New function.
(todo-show): Handle external deletion of the file we're trying to
show. Replace called-interactively-p by an optional
prefix argument to avoid problematic interaction with catch form
when byte compiled (bug#14702).
(todo-quit): Handle external deletion of the archive's todo file.
Make sure the buffer that was visiting the archive file is still
live before trying to bury it.
(todo-category-completions): Handle external deletion of any
category completion files.
(todo-jump-to-category, todo-basic-insert-item): Recalculate list
of todo files, in case of external deletion.
(todo-add-file): Replace unnecessary setq by let-binding.
(todo-find-archive): Check whether there are any archives.
Replace unnecessary setq by let-binding.
(todo-archive-done-item): Use find-file-noselect to get the
archive buffer whether or not the archive already exists. Remove
superfluous code. Use file size instead of buffer-file-name to
check if the archive is new; if it is, update list of archives.
(todo-default-todo-file): Allow nil to be a valid value for when
there are no todo files.
(todo-reevaluate-default-file-defcustom): Use corrected definition
of todo-default-todo-file.
(todo-key-bindings-t+a+f): Add key binding for todo-delete-file.
(todo-delete-category, todo-show-categories-table)
(todo-category-number): Clarify comment.
(todo-filter-items): Clarify documentation string.
(todo-show-current-file, todo-display-as-todo-file)
(todo-reset-and-enable-done-separator): Tweak documentation string.
(todo-done-separator): Make separator length window-width, since
bug#2749 is now fixed.
Fixes: debbugs:14688
both "gvfs-monitor-dir" and "inotifywait".
(tramp-sh-file-inotifywait-process-filter): Renamed from
`tramp-sh-file-notify-process-filter'.
(tramp-sh-file-gvfs-monitor-dir-process-filter)
(tramp-get-remote-gvfs-monitor-dir): New defuns.
call of `occur-read-primary-args' to interactive spec.
* lisp/ibuffer.el (ibuffer-mode-map): Bind "M-s a C-o" to
`ibuffer-do-occur' like in buff-menu.el.
Fixes: debbugs:14673
`Buffer-menu-multi-occur'. Add it to the menu.
(Buffer-menu-mode): Document it in docstring.
(Buffer-menu-multi-occur): New command.
Fixes: debbugs:14673
* lisp/info.el (Info-find-node, Info-find-in-tag-table)
(Info-find-node-in-buffer, Info-find-node-2, Info-goto-node):
Add option for exact case matching of nodes.
* lisp/info-xref.el (info-xref): New custom group.
(info-xref-case-fold): New option.
(info-xref-goto-node-p): Pass info-xref-case-fold to Info-goto-node.
middle of block statement initially, lower the depth. Remove
FIXME comment, not longer valid. Remove middle of block statement
detection, no need to do that anymore since we've been using
`ruby-parse-region' here.
(desktop-restore-frames): Rename from desktop-save-windows.
(desktop-restore-in-current-display): New customization option.
(desktop--excluded-frame-parameters): Add `font'.
(desktop--save-frames): Rename from desktop--save-windows.
(desktop--restore-in-this-display-p): New function.
(desktop--make-full-frame): Remove unwanted width/height from
full(width|height) frames.
(desktop--restore-frames): Rename from desktop--restore-windows.
Obey desktop-restore-current-display. Do not delete old frames or
select a new frame unless we were able to restore at least one frame.
restarts.
* remember.el (remember-data-file): Add :set callback to affect
notes buffer (if any).
(remember-notes): New command.
(remember-notes-buffer-name, bury-remember-notes-on-kill):
New defcustoms for the `remember-notes' function.
(remember-notes-save-and-bury-buffer): New command.
(remember-notes-mode-map): New variable.
(remember-mode): New minor mode.
(remember-notes--kill-buffer-query): New function.
* lisp/startup.el (initial-buffer-choice): Add notes to custom type.
* src/buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
before checking whether buffer is modified. This lets
`kill-buffer-query-functions' cancel killing of the buffer or save
its content before `kill-buffer' asks user the "Buffer %s
modified; kill anyway?" question.
* remember.el (remember-append-to-file):
Don't mix `find-buffer-visiting' and `get-file-buffer'.
* lisp/files.el (find-file-noselect): Simplify conditional expression.
src/xdisp.c (Fmove_point_visually): Invalidate the cursor position
when moving point by using the current glyph matrix. This avoids
the need to force redisplay when this function is called in a
loop.
lisp/bindings.el (right-char, left-char): Don't call sit-for, this is
no longer needed. Use arithmetic comparison only for numerical
arguments.
* net/shr.el (shr-make-table-1): Add a sanity check that allows
progression on degenerate tables.
(shr-rescale-image): ImageMagick animated images currently doesn't
work.
It is still experimental and disabled by default.
* lisp/desktop.el (desktop--save-windows): Put the selected frame at
the head of the list.
(desktop--make-full-frame): New function.
(desktop--restore-windows): Try to re-select the frame that was
selected upon saving. Do not abort if some frames fail to restore,
just show an error message and contnue. Set up maximized frames so
they have default non-maximized dimensions.
src/xdisp.c (Fmove_point_visually): New function.
lisp/bindings.el (visual-order-cursor-movement): New defcustom.
(right-char, left-char): Provide visual-order cursor motion by
calling move-point-visually. Update the doc strings.
doc/emacs/basic.texi (Moving Point): Document visual-order-cursor-movement
and its effect on right-char and left-char.
doc/lispref/display.texi (Bidirectional Display): Document move-point-visually.
etc/NEWS: Document the new feature.
properties :inhibit-null-byte-detection,
:inhibit-iso-escape-detection, and :prefer-utf-8.
(set-buffer-file-coding-system): If :charset-list property of
CODING-SYSTEM is `emacs', do not check if CODING-SYSTEM is
appropriate for setting.