aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/ediff-util.el
diff options
context:
space:
mode:
authorMichael Kifer <[email protected]>2008-04-04 07:51:27 +0000
committerMichael Kifer <[email protected]>2008-04-04 07:51:27 +0000
commit2d84cc270a12a939502497ad4d56371e9562a98d (patch)
tree2553dc74513fea235847a7b9cfed0ca90d30880b /lisp/ediff-util.el
parentd80c2c18c1fe064185ffbab1d0fc3ad4fd7f89c5 (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.el75
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)