From the mhtml-mode series. Some of the uses of cl-lib are not
necessary.
* lisp/align.el: Don't require cl-lib.
(align-region): Use apply instead of cl-member-if.
* lisp/emulation/viper.el: Don't require cl-lib.
(viper-mode, this-major-mode-requires-vi-state): Use apply instead of
cl-member-if.
* lisp/subr.el (provided-mode-derived-p): New function.
(derived-mode-p): Use it.
* lisp/emulation/viper.el (viper-mode): Use derived-mode-p.
(this-major-mode-requires-vi-state): Use provided-mode-derived-p.
(set-viper-state-in-major-mode): Use derived-mode-p.
* doc/lispintro/emacs-list-intro.texi (Miscellaneous):
* doc/misc/cl.texi (Conditionals):
* doc/misc/speedbar.texi (Major Display Modes): Use string-to-number,
not string-to-int.
* lisp/emulation/viper.el (viper-go-away): Use major-mode, not
default-major-mode.
* lisp/textmodes/reftex-toc.el (reftex-toc-visit-location): show-window
here is not a function call, but shorten the binding names anyways.
Also, use pop-to-buffer-same-window instead of switch-to-buffer cf
Bug#22244.
* lisp/textmodes/sgml-mode.el (html-tag-alist): Use read-string, not
read-input.
* lisp/emulation/viper.el (viper--deactivate-advice-list): Destructure
args to advice-remove.
(viper--advice-add): Use cons not list.
Addresses bug#23625
* lisp/emulation/viper-cmd.el: Use lexical-binding.
(viper-change-state-to-vi, viper-change-state-to-emacs): Allow dummy
args, for use in advice-add.
(viper--init-message): Rename from init-message.
(viper-minibuffer-standard-hook): Adjust accordingly.
(viper-undo): Remove unused var `modified'.
(viper-read-string-with-history, viper-set-searchstyle-toggling-macros):
Don't use dynamic vars as args.
(viper-submit-report): Clarify use of dynamic vars.
* lisp/emulation/viper.el: Use lexical-binding and nadvice.
Remove redundant :group keywords. Group the (if viper-mode) at top-level.
Use add-function rather than a `(lambda ...).
(viper--advice-list): New var.
(viper--advice-add, viper--deactivate-advice-list): New funs.
(viper-go-away, viper-set-hooks, viper-non-hook-settings): Use them.
(viper-non-hook-settings): Don't hook into find-file any more.
This patch should not change behavior. It typically omits backslashes
where they are redundant (e.g., in the string literal "^\$").
In a few places, insert backslashes where they make regular
expressions clearer: e.g., replace "^\*" (equivalent to "^*") with
"^\\*", which has the same effect as a regular expression.
Also, use ‘\ %’ instead of ‘\%’ when avoiding confusion with SCCS IDs,
and similarly use ‘\ $’ instead of ‘\$’ when avoiding confusion with
RCS IDs, as that makes it clearer that the backslash is intended.
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.
* NEWS: Document these changes.
* leim/quail/uni-input.el (ucs-input-deactivate):
Rename from ucs-input-inactivate.
* leim/quail/hangul.el (hangul-input-method-deactivate):
Rename from hangul-input-method-inactivate.
* emulation/viper-init.el (viper-deactivate-input-method-action):
Rename from viper-inactivate-input-method-action.
(viper-deactivate-input-method):
Rename from viper-inactivate-input-method.
* lisp/follow.el (follow-inactive-menu): Rename from follow-deactive-menu.
* lisp/international/mule-cmds.el (deactivate-input-method):
Rename from inactivate-input-method.
Also run input-method-deactivate-hook.
(deactivate-current-input-method-function):
Rename from inactivate-current-input-method-function.
(input-method-deactivate-hook): New hook.
(input-method-inactivate-hook): Mark obsolete.
* lisp/international/quail.el (quail-activate):
Also run quail-deactivate-hook.
(quail-deactivate): Rename from quail-inactivate.
* lisp/international/robin.el (robin-activate):
Also run robin-deactivate-hook.
(robin-deactivate): Rename from robin-inactivate.
* viper-cmd.el: use viper-last-command-char instead of
last-command-char/last-command-event.
(viper-prefix-arg-value): do correct conversion of event-char for
XEmacs.
* viper-util.el, viper.el: use viper-last-command-char instead of
last-command-char/last-command-event.
* ediff-init.el, ediff-mult.el, ediff-util.el: relpace
last-command-char and last-command-event with (ediff-last-command-char) everywhere.
* ediff-vers.el (ediff-rcs-get-output-buffer): make sure the buffer is
created in fundamental mode.
* ediff.el (ediff-version): revert the change of interactive-p to
called-interactively-p.
* viper-cmd.el (viper-insert-isearch-string): new function.
(viper-if-string): redefine C-s in the minibuffer to insert the last
incremental search string.
* ediff-init.el (ediff-coding-system): use escape-quoted in case of
XEmacs.
* ediff-merg.el (ediff-merge-region-is-non-clash-to-skip,
ediff-merge-region-is-non-clash,
ediff-skip-merge-region-if-changed-from-default-p): use defun.
Also check if the job is really a merge job.
* ediff.el (ediff-current-file): new function.
* viper.el: date change.
* viper-cmd.el (viper-envelop-ESC-key):
viper-translate-all-ESC-keysequences is now a function.
* viper-init (viper-translate-all-ESC-keysequences): make this variable
* viper*.el (viper-search-wrap-around-t): replace with
viper-search-wrap-around.
* ediff*.el: replace 3-argument 'require' statements with 1-argument
ones (wrapped in if's). For compatibility with the current stable
version of XEmacs.
* viper-macs.el (viper-read-fast-keysequence): use viper-read-event
instead of viper-read-key.
* viper.el (viper-mode): move the check for fundamental mode.
* viper-utils.el (viper-get-saved-cursor-color-in-replace-mode)
viper-get-saved-cursor-color-in-insert-mode): get rid of redundant
let-statements.
* viper*.el: replaced load with require in eval-when-compile.