diff options
author | Michael Kifer <[email protected]> | 2008-04-04 07:51:27 +0000 |
---|---|---|
committer | Michael Kifer <[email protected]> | 2008-04-04 07:51:27 +0000 |
commit | 2d84cc270a12a939502497ad4d56371e9562a98d (patch) | |
tree | 2553dc74513fea235847a7b9cfed0ca90d30880b /lisp/ediff-util.el | |
parent | d80c2c18c1fe064185ffbab1d0fc3ad4fd7f89c5 (diff) |
2008-04-04 Michael Kifer <[email protected]>
* ediff*el: replaced load with require in eval-when-compile.
* ediff-hook: deleted all invocations of (autoload ...).
* ediff-util.el (ediff-setup): make window-min-height a local variable
in ediff control window, and set its min height to 2.
(ediff-setup-control-buffer): dedicate the control window.
(ediff-toggle-multiframe): undedicate control window.
Work directly with ediff-setup-windows-multiframe and
ediff-setup-windows-plain.
* ediff-wind (ediff-choose-window-setup-function-automatically): new
function.
(ediff-window-setup-function): change initialization.
(ediff-setup-windows-automatic): deleted.
(ediff-setup-windows-plain-merge): make control window dedicated.
(ediff-destroy-control-frame): do not skip frames if working in a
single frame.
* emulation/viper-ex.el: move provide's forward, prevent ecursion in
eval-when-compile.
* emulation/viper-util.el: move provide's forward, prevent ecursion in
eval-when-compile.
Diffstat (limited to 'lisp/ediff-util.el')
-rw-r--r-- | lisp/ediff-util.el | 75 |
1 files changed, 40 insertions, 35 deletions
diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el index 9914b8cc97..ef5032075e 100644 --- a/lisp/ediff-util.el +++ b/lisp/ediff-util.el @@ -27,6 +27,8 @@ ;;; Code: +(provide 'ediff-util) + ;; Compiler pacifier (defvar ediff-patch-diagnostics) (defvar ediff-patchbufer) @@ -45,26 +47,18 @@ (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))) (eval-when-compile - (let ((load-path (cons (expand-file-name ".") load-path))) - (provide 'ediff-util) ; to break recursive load cycle - (or (featurep 'ediff-init) - (load "ediff-init.el" nil t 'nosuffix)) - (or (featurep 'ediff-help) - (load "ediff-help.el" nil t 'nosuffix)) - (or (featurep 'ediff-mult) - (load "ediff-mult.el" nil t 'nosuffix)) - (or (featurep 'ediff-wind) - (load "ediff-wind.el" nil t 'nosuffix)) - (or (featurep 'ediff-diff) - (load "ediff-diff.el" nil t 'nosuffix)) - (or (featurep 'ediff-merg) - (load "ediff-merg.el" nil t 'nosuffix)) - (or (featurep 'ediff) - (load "ediff.el" nil t 'nosuffix)) - (or (featurep 'ediff-tbar) - (featurep 'emacs) - (load "ediff-tbar.el" 'noerror nil 'nosuffix)) - )) + (require 'ediff-init) + (require 'ediff-help) + (if (not (featurep 'ediff-mult)) + (require 'ediff-mult)) + (require 'ediff-mult) + (require 'ediff-wind) + (if (not (featurep 'ediff-diff)) + (require 'ediff-diff)) + (require 'ediff-merg) + (require 'ediff) + (require 'ediff-tbar nil 'noerror) + ) ;; end pacifier @@ -306,6 +300,9 @@ to invocation.") (make-local-variable 'ediff-window-setup-function) (make-local-variable 'ediff-keep-variants) + (make-local-variable 'window-min-height) + (setq window-min-height 2) + (if (featurep 'xemacs) (make-local-hook 'ediff-after-quit-hook-internal)) @@ -581,6 +578,7 @@ to invocation.") (ediff-multiframe-setup-p) ediff-wide-display-p)) + (set-window-dedicated-p (selected-window) t) ;; In multiframe, toolbar is set in ediff-setup-control-frame (if (not (ediff-multiframe-setup-p)) (ediff-make-bottom-toolbar)) ; this checks if toolbar is requested @@ -1305,11 +1303,21 @@ which see." (if (featurep 'emacs) "" "X"))) (cond ((eq ediff-window-setup-function 'ediff-setup-windows-multiframe) + (setq ediff-multiframe nil) (setq window-setup-func 'ediff-setup-windows-plain)) ((eq ediff-window-setup-function 'ediff-setup-windows-plain) (if (ediff-in-control-buffer-p) (ediff-kill-bottom-toolbar)) - (setq window-setup-func 'ediff-setup-windows-multiframe))) + (if (ediff-buffer-live-p ediff-control-buffer) + (set-window-dedicated-p ediff-control-window nil)) + (setq ediff-multiframe t) + (setq window-setup-func 'ediff-setup-windows-multiframe)) + (t + (if (ediff-buffer-live-p ediff-control-buffer) + (set-window-dedicated-p ediff-control-window nil)) + (setq ediff-multiframe t) + (setq window-setup-func 'ediff-setup-windows-multiframe)) + ) ;; change default (setq-default ediff-window-setup-function window-setup-func) @@ -3406,13 +3414,11 @@ Without an argument, it saves customized diff argument, if available (unless (and buf-A-file-name (file-exists-p buf-A-file-name) (not (ediff-file-remote-p buf-A-file-name))) - (setq file-A - (ediff-make-temp-file ediff-buffer-A))) + (setq file-A (ediff-make-temp-file ediff-buffer-A))) (unless (and buf-B-file-name (file-exists-p buf-B-file-name) (not (ediff-file-remote-p buf-B-file-name))) - (setq file-B - (ediff-make-temp-file ediff-buffer-B))) + (setq file-B (ediff-make-temp-file ediff-buffer-B))) (or (ediff-buffer-live-p ediff-custom-diff-buffer) (setq ediff-custom-diff-buffer (get-buffer-create @@ -3424,14 +3430,16 @@ Without an argument, it saves customized diff argument, if available ediff-custom-diff-program ediff-custom-diff-buffer 'synchronize ediff-custom-diff-options ;; repetition of buf-A-file-name is needed so it'll return a file - (or file-A buf-A-file-name) - (or file-B buf-B-file-name)) + (or (and buf-A-file-name (file-exists-p buf-A-file-name) buf-A-file-name) + file-A) + (or (and buf-B-file-name (file-exists-p buf-B-file-name) buf-B-file-name) + file-B)) ;; put the diff file in diff-mode, if it is available (if (fboundp 'diff-mode) (with-current-buffer ediff-custom-diff-buffer (diff-mode))) - (and file-A (delete-file file-A)) - (and file-B (delete-file file-B)) + (and file-A (file-exists-p file-A) (delete-file file-A)) + (and file-B (file-exists-p file-B) (delete-file file-B)) )) (defun ediff-show-diff-output (arg) @@ -4045,13 +4053,12 @@ Mail anyway? (y or n) ") (if (featurep 'xemacs) (zmacs-deactivate-region) (deactivate-mark))) + (defun ediff-activate-mark () (if (featurep 'xemacs) (zmacs-activate-region) - (progn - (make-local-variable 'transient-mark-mode) - (setq mark-active t - transient-mark-mode t)))) + (make-local-variable 'transient-mark-mode) + (setq mark-active t transient-mark-mode t))) (defun ediff-nuke-selective-display () (if (featurep 'xemacs) @@ -4280,8 +4287,6 @@ Mail anyway? (y or n) ") (run-hooks 'ediff-load-hook) -(provide 'ediff-util) - ;; Local Variables: ;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) |