* viper-cmd.el (viper-special-read-and-insert-char): use
read-key-sequence.
(viper-after-change-undo-hook): enhancements.
(viper-after-change-undo-hook): new hook.
(viper-undo): use viper-after-change-undo-hook.
(viper-add-newline-at-eob-if-necessary): widen before making changes.
(viper-next-line-at-bol): If point is on a widget or a button, simulate
clicking on that widget/button.
* viper.el (viper-mode): allow for a separate cursor color in Emacs
state.
* ediff-diff (ediff-test-patch-utility): catch errors.
(ediff-actual-diff-options, ediff-actual-diff3-options): new variables.
(ediff-set-actual-diff-options): new function.
(ediff-reset-diff-options, ediff-toggle-ignore-case):
use ediff-set-actual-diff-options.
(ediff-extract-diffs): catch errors.
(ediff-whitespace): add nonbreakable space.
(ediff-same-file-contents): catch errors.
* ediff-mult.el (ediff-collect-custom-diffs): save
coding-system-for-read.
* ediff-vers.el (ediff-keep-tmp-versions): new var.
(ediff-vc-internal, ediff-vc-merge-internal): use
ediff-delete-version-file.
(ediff-delete-version-file): new function.
* ediff-wind.el (ediff-control-frame-parameters): set frame fringes.
* ediff.el (ediff-directories, ediff-directory-revisions,
ediff-merge-directories, ediff-merge-directories-with-ancestor,
ediff-directories-internal, ediff-merge-directory-revisions,
ediff-merge-directory-revisions-with-ancestor,
ediff-directories3): use read-directory-name.
* viper-cmd.el (viper-insert-state-post-command-sentinel,
viper-change-state-to-vi, viper-change-state-to-emacs):
made aware of cursor coloring in the emacs state.
(viper-special-read-and-insert-char): use read-char-exclusive.
(viper-minibuffer-trim-tail): workaround for fields in minibuffer.
* viper-init.el (viper-emacs-state-cursor-color): new variable.
* viper-util.el (viper-save-cursor-color,
viper-get-saved-cursor-color-in-replace-mode,
viper-get-saved-cursor-color-in-insert-mode,
viper-restore-cursor-color): make aware of the cursor color in emacs
state.
(viper-get-saved-cursor-color-in-emacs-mode): new function.
* ediff-diff.el (ediff-ignore-case, ediff-ignore-case-option,
ediff-ignore-case-option3, ediff-actual-diff-options,
ediff-actual-diff3-options): new variables to control case sensitivity.
(ediff-make-diff2-buffer, ediff-setup-fine-diff-regions,
ediff-setup-diff-regions3): made aware of case-sensitivity.
(ediff-toggle-ignore-case): new function.
(ediff-extract-diffs, ediff-extract-diffs3): preserve point in buffers.
* ediff-help.el (ediff-long-help-message-narrow2,
ediff-long-help-message-compare2, ediff-long-help-message-compare3,
ediff-long-help-message-word-mode): add ignore-case command.
(ediff-help-for-quick-help): add ignore-case command.
* ediff-merg.el: move provide to the end.
* ediff-ptch.el: move provide to the end.
* ediff-wind.el: move provide to the end.
* ediff-mult.el: move provide to the end.
(ediff-set-meta-overlay): enable follow-link.
* ediff.el: move provide to the end.
Break recursive load cycle in eval-when-compile.
(ediff-patch-buffer): better heuristics.
* ediff-util.el: move provide to the end.
Break recursive load cycle in eval-when-compile.
(ediff-setup-keymap): add binding for #c. Replaced some defsubsts with
defuns.
(ediff-submit-report): pass the values of ediff-diff3-program,
ediff-diff3-options.
* ediff-merge.el (ediff-merge-region-is-non-clash): new defsubst.
(ediff-merge-region-is-non-clash-to-skip): previouslu called
ediff-merge-region-is-non-clash.
* ediff-mult.el (ediff-append-custom-diff,ediff-meta-show-patch): use
insert-buffer-substring.
* ediff-ptch.el (ediff-fixup-patch-map): use better heuristics for
selecting files to patch. Also bug fixes.
* ediff-util.el (ediff-setup): bug fix.
(ediff-next-difference): Never skip clashes that differ in white space
only.
* ediff-wind.el (ediff-setup-control-frame,ediff-destroy-control-frame):
check the menubar feature.
* viper-cmd.el (viper-normalize-minor-mode-map-alist,
viper-refresh-mode-line): use make-local-variable to localize some vars
instead of make-variable-buffer-local. Suggested by Stefan Monnier.
* viper-init.el (viper-make-variable-buffer-local): delete alias.
(viper-restore-cursor-type,viper-set-insert-cursor-type): use
make-local-variable instead of make-variable-buffer-local. Suggested by
Stefan Monnier.
* viper.el (viper-mode): don't use viper-make-variable-buffer-local.
(viper-comint-mode-hook): use make-local-variable on
require-final-newline.
(viper-non-hook-settings): don't use make-variable-buffer-local.
* ediff-init.el (ediff-frame-char-height): use frame-selected-window.
* ediff-util.el (ediff-file-checked-in-p): changed progn with and
* ediff-wind.el (ediff-skip-unsuitable-frames): distinguish selected
frame from frame of selected window
(ediff-frame-has-dedicated-windows): don't select any frames to avoid
changing selected windows
(ediff-setup-control-frame): make sure auto-rase is properly set for
the control frame
* viper-util.el (viper-read-key-sequence): fixed so it'll read
fast key sequences in emacs native mode
(viper-events-to-keys): deleted
* viper.el (describe-key, describe-key-briefly): get rid of
viper-events-to-keys.
* ediff-init.el (ediff-has-gutter-support): Steven Turnbull's patch.
* ediff-wind.el (ediff-setup-control-frame): Use
ediff-has-gutter-support.
* ediff-util.el (ediff-dispose-of-variant-according-to-user):
check if buff is alive.
* ediff.el: typo in comment.
* viper-init.el (viper-cond-compile-for-xemacs-or-emacs):
new macro that replaces viper-emacs-p and viper-xemacs-p in many
cases. Used to reduce the number of warnings.
* viper-cmd.el: use viper-cond-compile-for-xemacs-or-emacs.
(viper-standard-value): moved here from viper.el.
(viper-set-unread-command-events): moved to viper-util.el
(viper-check-minibuffer-overlay): make sure
viper-minibuffer-overlay is moved to cover the entire input field.
* viper-util.el: use viper-cond-compile-for-xemacs-or-emacs.
(viper-read-key-sequence, viper-set-unread-command-events,
viper-char-symbol-sequence-p, viper-char-array-p): moved here.
* viper-ex.el: use viper-cond-compile-for-xemacs-or-emacs.
* viper-keym.el: use viper-cond-compile-for-xemacs-or-emacs.
* viper-mous.el: use viper-cond-compile-for-xemacs-or-emacs.
* viper-macs.el (viper-char-array-p, viper-char-symbol-sequence-p,
viper-event-vector-p): moved to viper-util.el
* viper.el (viper-standard-value): moved to viper-cmd.el.
Use viper-cond-compile-for-xemacs-or-emacs.
* ediff-help.el: use ediff-cond-compile-for-xemacs-or-emacs.
* ediff-hook.el: use ediff-cond-compile-for-xemacs-or-emacs.
* ediff-init.el (ediff-cond-compile-for-xemacs-or-emacs): new
macro designed to be used in many places where ediff-emacs-p or
ediff-xemacs-p was previously used. Reduces the number of
warnings.
Use ediff-cond-compile-for-xemacs-or-emacs in many places in lieue
of ediff-xemacs-p.
(ediff-make-current-diff-overlay, ediff-highlight-diff-in-one-buffer,
ediff-convert-fine-diffs-to-overlays, ediff-empty-diff-region-p,
ediff-whitespace-diff-region-p, ediff-get-region-contents):
moved to ediff-util.el.
(ediff-event-key): moved here.
* ediff-merge.el: got rid of unreferenced variables.
* ediff-mult.el: use ediff-cond-compile-for-xemacs-or-emacs.
* ediff-util.el: use ediff-cond-compile-for-xemacs-or-emacs.
(ediff-cleanup-mess): improved the way windows are set up after
quitting ediff.
(ediff-janitor): use ediff-dispose-of-variant-according-to-user.
(ediff-dispose-of-variant-according-to-user): new function
designed to be smarter and also understands indirect buffers.
(ediff-highlight-diff-in-one-buffer,
ediff-unhighlight-diff-in-one-buffer,
ediff-unhighlight-diffs-totally-in-one-buffer,
ediff-highlight-diff, ediff-highlight-diff,
ediff-unhighlight-diff, ediff-unhighlight-diffs-totally,
ediff-empty-diff-region-p, ediff-whitespace-diff-region-p,
ediff-get-region-contents, ediff-make-current-diff-overlay):
moved here.
(ediff-format-bindings-of): new function by Hannu Koivisto
<azure@iki.fi>.
(ediff-setup): make sure the merge buffer is always widened and
modifiable.
(ediff-write-merge-buffer-and-maybe-kill): refuse to write the
result of a merge into a file visited by another buffer.
(ediff-arrange-autosave-in-merge-jobs): check if the merge file
is visited by another buffer and ask to save/delete that buffer.
(ediff-verify-file-merge-buffer): new function to do the above.
* ediff-vers.el: load ediff-init.el at compile time.
* ediff-wind.el: use ediff-cond-compile-for-xemacs-or-emacs.
* ediff.el (ediff-windows, ediff-regions-wordwise,
ediff-regions-linewise): use indirect buffers to improve
robustness and make it possible to compare regions of the same
buffer (even overlapping regions).
(ediff-clone-buffer-for-region-comparison,
ediff-clone-buffer-for-window-comparison): new functions.
(ediff-files-internal): refuse to compare identical files.
(ediff-regions-internal): get rid of the warning about comparing
regions of the same buffer.
* ediff-diff.el (ediff-convert-fine-diffs-to-overlays): moved here.
Plus the following fixes courtesy of Dave Love:
Doc fixes.
(ediff-word-1): Use word class and move - to the
front per regexp documentation.
(ediff-wordify): Bind forward-word-function outside loop.
(ediff-copy-to-buffer): Use insert-buffer-substring rather than
consing buffer contents.
(ediff-goto-word): Move syntax table setting outside loop.
* viper-cmd.el (viper-change-state): Got rid of make-local-hook.
(viper-special-read-and-insert-char): Make C-m work right in the r
comand.
(viper-buffer-search-enable): Fixed format string.
* viper-ex.el (ex-token-alist): Use ex-set-visited-file-name
instead of viper-info-on-file.
(ex-set-visited-file-name): New function.
* viper.el (viper-emacs-state-mode-list): Added mail-mode.
* ediff-mult.el (ediff-meta-mark-equal-files): Added optional
action argument.
* ediff-init.el: Fixed some doc strings.
* ediff-util.el (ediff-after-quit-hook-internal): New variable.
Got rid of make-local-hook.
* ediff-wind.el (ediff-setup-control-frame): Got rid of
make-local-hook.
* ediff-util.el: Copyright years.
(ediff-choose-syntax-table): New function.
(ediff-setup): Use ediff-choose-syntax-table.
* ediff-init.el (ediff-with-syntax-table): New macro, uses
with-syntax-table.
* ediff.el: Date of last update, copyright years.
* ediff-wind (ediff-setup-control-frame): Nill->nil.
* viper-ex.el (ex-token-list,ex-cmd-execute): Revamped, courtesy
of Scott Bronson.
(ex-cmd-assoc,ex-cmd-one-letr): New functions.
(viper-check-sub,viper-get-ex-command,viper-execute-ex-command):
Deleted functions.
(viper-get-ex-com-subr,viper-ex,ex-mark): Changed to use the new
ex-token-list.
* viper-util.el: Spaces, indentation.
* viper.el: Changed version, modification time.
* viper-cmd.el (viper-preserve-cursor-color): new test that avoids
rewrawing the screen when changing cursor color.
(viper-insert-state-pre-command-sentinel,
viper-replace-state-pre-command-sentinel,
viper-replace-state-post-command-sentinel): use
viper-preserve-cursor-color.
Many functions changed to use viper= instead of = when comparing
characters.
* viper-util.el (viper-memq-char,viper=): new functions for
working with characters.
(viper-change-cursor-color): fixed buglet.
Many functions changed to use viper= instead of = when comparing
characters.
* viper.el (viper-insert-state-mode-list): added eshell.
* ediff-init.el (ediff-before-setup-hook): new hook.
Several typos fixed in various docstrings.
* ediff-merg.el (ediff-show-clashes-only): docstring typo fixed.
* ediff-nult.el (ediff-before-session-group-setup-hooks): new
hook.
(ediff-show-meta-buffer): run ediff-before-session-group-setup-hooks.
* ediff-util.el (ediff-setup): run ediff-before-setup-hook.
(ediff-other-buffer): use selected buffers if in Buffer-menu buffer.
(ediff-get-selected-buffers): new function.
* ediff-vers.el (ediff-vc-internal,ediff-rcs-internal,
ediff-vc-merge-internal,ediff-rcs-merge-internal): use
save-window-excursion.
* ediff-wind.el (ediff-skip-unsuitable-frames): more robust
termination check in while loop.
* ediff.el (ediff-get-default-file-name): better defaults when in
dired buffer.
(ediff-files,ediff-merge-files,ediff-files3,
ediff-merge-files-with-ancestor): use ediff-get-default-file-name.
translate all ESC key sequences.
(viper-goto-mark-subr): restore markers for files for which
they were saved.
* viper-init.el (viper-translate-all-ESC-keysequences): new variable.
* viper-util.el (viper-set-replace-overlay-glyphs,
viper-set-replace-overlay): always check if the replacement
overlay is live.
* viper.el (viper-vi-state-mode-list): added major modes.
* ediff-wind.el: minor comment changes.
* ediff.el: copyright notice date fix.
Commented out (redraw-display), to improve speed.
Got rid of toolbars in control frame in xemacs
Changed window-min-height from 1 to 2
(ediff-diff-at-point,ediff-toggle-multiframe): bug fixes.
(ediff-destroy-control-frame,ediff-window-display-p): new functions.
Converted xemacs *screen* nomenclature to *frame*.
Incorporated overlay strings. Ediff no longer runs under emacs
19.28 and earlier and XEmacs 19.11 and earlier.
Changed window-system to ediff-window-display.
(ediff-toggle-multiframe): fixed.
(ediff-destroy-control-frame): new function.
designated-minibuffer-frame while making the new frame.
And delete the old frame if its minibuffer is not in that frame.
(ediff-setup-windows-multiframe-compare)
(ediff-setup-windows-multiframe-merge): Don't mess with
default-minibuffer-frame here and don't kill the old control frame.