]> git.eshelyaron.com Git - emacs.git/commitdiff
2008-04-04 Michael Kifer <kifer@cs.stonybrook.edu>
authorMichael Kifer <kifer@cs.stonybrook.edu>
Fri, 4 Apr 2008 07:51:27 +0000 (07:51 +0000)
committerMichael Kifer <kifer@cs.stonybrook.edu>
Fri, 4 Apr 2008 07:51:27 +0000 (07:51 +0000)
* 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.

14 files changed:
lisp/ChangeLog
lisp/ediff-diff.el
lisp/ediff-help.el
lisp/ediff-hook.el
lisp/ediff-init.el
lisp/ediff-merg.el
lisp/ediff-mult.el
lisp/ediff-ptch.el
lisp/ediff-util.el
lisp/ediff-vers.el
lisp/ediff-wind.el
lisp/ediff.el
lisp/emulation/viper-ex.el
lisp/emulation/viper-util.el

index 27d8420133ff8e79628cb742ae2aea34bbc00676..d7539e35d917ceb816bc4da07d14ae75a902302e 100644 (file)
@@ -1,3 +1,30 @@
+2008-04-04  Michael Kifer  <kifer@cs.stonybrook.edu>
+       
+       * 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.
+       
 2008-04-04  Glenn Morris  <rgm@gnu.org>
 
        * calendar/cal-bahai.el (calendar-bahai-to-absolute): Rename
index 00060a9e974818e4681489f3ae477bfee341ced7..04d2697c9112a94c033081296d38b634fb99f7e5 100644 (file)
 ;;; Code:
 
 
+(provide 'ediff-diff)
+
 ;; compiler pacifier
 (defvar ediff-default-variant)
 (defvar null-device)
 (defvar longlines-mode)
 
 (eval-when-compile
-  (let ((load-path (cons (expand-file-name ".") load-path)))
-    (or (featurep 'ediff-init)
-       (load "ediff-init.el" nil t 'nosuffix))
-    (or (featurep 'ediff-util)
-       (load "ediff-util.el" nil t 'nosuffix))
-    ))
+  (require 'ediff-init)
+  (if (not (featurep 'ediff-util))
+      (require 'ediff-util))
+  )
 ;; end pacifier
 
 (require 'ediff-init)
@@ -1536,8 +1536,6 @@ affects only files whose names match the expression."
   )
 
 
-(provide 'ediff-diff)
-
 
 ;;; Local Variables:
 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
index 988fc9171acd6be243cdefadafe4814cf91a287e..ad66d0c00c89fc878eb4369be766d4cabad62adc 100644 (file)
 (defvar ediff-multiframe)
 
 (eval-when-compile
-  (let ((load-path (cons (expand-file-name ".") load-path)))
-    (or (featurep 'ediff-init)
-       (load "ediff-init.el" nil t 'nosuffix))
-    ))
+  (require 'ediff-init)
+  )
 ;; end pacifier
 
 (require 'ediff-init)
index 7c07303152b8cc42bbfec5f489aee1c1f352fc6b..4f45b2f8ffa6fb6d05b8958689c3b210cc03711e 100644 (file)
 ;;;###autoload
 (if (featurep 'xemacs)
     (progn
-    (defun ediff-xemacs-init-menus ()
-      (when (featurep 'menubar)
-       (add-submenu
-        '("Tools") ediff-menu "OO-Browser...")
-       (add-submenu
-        '("Tools") ediff-merge-menu "OO-Browser...")
-       (add-submenu
-        '("Tools") epatch-menu "OO-Browser...")
-       (add-submenu
-        '("Tools") ediff-misc-menu "OO-Browser...")
-       (add-menu-button
-        '("Tools") "-------" "OO-Browser...")
-       ))
+      (defun ediff-xemacs-init-menus ()
+       (when (featurep 'menubar)
+         (add-submenu
+          '("Tools") ediff-menu "OO-Browser...")
+         (add-submenu
+          '("Tools") ediff-merge-menu "OO-Browser...")
+         (add-submenu
+          '("Tools") epatch-menu "OO-Browser...")
+         (add-submenu
+          '("Tools") ediff-misc-menu "OO-Browser...")
+         (add-menu-button
+          '("Tools") "-------" "OO-Browser...")
+         ))
       (defvar ediff-menu
        '("Compare"
          ["Two Files..."  ediff-files t]
          ["Regions Line-by-line..." ediff-regions-linewise t]
          ))
       (defvar ediff-merge-menu
-      '("Merge"
-       ["Files..."  ediff-merge-files t]
-       ["Files with Ancestor..." ediff-merge-files-with-ancestor t]
-       ["Buffers..."  ediff-merge-buffers t]
-       ["Buffers with Ancestor..."
-        ediff-merge-buffers-with-ancestor t]
-       "---"
-       ["Directories..."  ediff-merge-directories t]
-       ["Directories with Ancestor..."
-        ediff-merge-directories-with-ancestor t]
-       "---"
-       ["Revisions..."  ediff-merge-revisions t]
-       ["Revisions with Ancestor..."
-        ediff-merge-revisions-with-ancestor t]
-       ["Directory Revisions..." ediff-merge-directory-revisions t]
-       ["Directory Revisions with Ancestor..."
-        ediff-merge-directory-revisions-with-ancestor t]
-       ))
+       '("Merge"
+         ["Files..."  ediff-merge-files t]
+         ["Files with Ancestor..." ediff-merge-files-with-ancestor t]
+         ["Buffers..."  ediff-merge-buffers t]
+         ["Buffers with Ancestor..."
+          ediff-merge-buffers-with-ancestor t]
+         "---"
+         ["Directories..."  ediff-merge-directories t]
+         ["Directories with Ancestor..."
+          ediff-merge-directories-with-ancestor t]
+         "---"
+         ["Revisions..."  ediff-merge-revisions t]
+         ["Revisions with Ancestor..."
+          ediff-merge-revisions-with-ancestor t]
+         ["Directory Revisions..." ediff-merge-directory-revisions t]
+         ["Directory Revisions with Ancestor..."
+          ediff-merge-directory-revisions-with-ancestor t]
+         ))
       (defvar epatch-menu
-      '("Apply Patch"
-       ["To a file..."  ediff-patch-file t]
-       ["To a buffer..." ediff-patch-buffer t]
-       ))
+       '("Apply Patch"
+         ["To a file..."  ediff-patch-file t]
+         ["To a buffer..." ediff-patch-buffer t]
+         ))
       (defvar ediff-misc-menu
-      '("Ediff Miscellanea"
-       ["Ediff Manual" ediff-documentation t]
-       ["Customize Ediff" ediff-customize t]
-       ["List Ediff Sessions" ediff-show-registry t]
-       ["Use separate frame for Ediff control buffer"
-        ediff-toggle-multiframe
-        :style toggle
-        :selected (if (and (featurep 'ediff-util)
-                           (boundp 'ediff-window-setup-function))
-                      (eq ediff-window-setup-function
-                          'ediff-setup-windows-multiframe))]
-       ["Use a toolbar with Ediff control buffer"
-        ediff-toggle-use-toolbar
-        :style toggle
-        :selected (if (featurep 'ediff-tbar)
-                      (ediff-use-toolbar-p))]))
-
+       '("Ediff Miscellanea"
+         ["Ediff Manual" ediff-documentation t]
+         ["Customize Ediff" ediff-customize t]
+         ["List Ediff Sessions" ediff-show-registry t]
+         ["Use separate frame for Ediff control buffer"
+          ediff-toggle-multiframe
+          :style toggle
+          :selected (if (and (featurep 'ediff-util)
+                             (boundp 'ediff-window-setup-function))
+                        (eq ediff-window-setup-function
+                            'ediff-setup-windows-multiframe))]
+         ["Use a toolbar with Ediff control buffer"
+          ediff-toggle-use-toolbar
+          :style toggle
+          :selected (if (featurep 'ediff-tbar)
+                        (ediff-use-toolbar-p))]))
+      
       ;; put these menus before Object-Oriented-Browser in Tools menu
       (if (and (featurep 'menubar) (not (featurep 'infodock))
               (not (featurep 'ediff-hook)))
        (symbol-value 'menu-bar-ediff-merge-menu))
   (defvar menu-bar-ediff-menu (make-sparse-keymap "Compare"))
   (fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu))
-
+  
   ;; define ediff-menu
   (define-key menu-bar-ediff-menu [window]
     '("This Window and Next Window" . compare-windows))
 
 (provide 'ediff-hook)
 
+
 ;;; arch-tag: 512f8656-8a4b-4789-af5d-5c6144498df3
 ;;; ediff-hook.el ends here
index 3339f9fd8378f3c47490e39c606ee8018068c97f..cd7532849fc4b6c855af3ad3af200a8c343febfa 100644 (file)
@@ -795,7 +795,7 @@ to temp files when Ediff needs to find fine differences."
 
 (if (ediff-has-face-support-p)
     (if (featurep 'xemacs)
-       (progn ; xemacs
+       (progn
          (defalias 'ediff-valid-color-p 'valid-color-name-p)
          (defalias 'ediff-get-face 'get-face))
       (defalias 'ediff-valid-color-p (if (fboundp 'color-defined-p)
@@ -805,7 +805,7 @@ to temp files when Ediff needs to find fine differences."
 
 (if (ediff-window-display-p)
     (if (featurep 'xemacs)
-       (progn   ; xemacs
+       (progn
          (defalias 'ediff-display-pixel-width 'device-pixel-width)
          (defalias 'ediff-display-pixel-height 'device-pixel-height))
       (defalias 'ediff-display-pixel-width
index 17352b03d500707dacadd11663876405bb8239fa..d441adcd6a17bca6012cf3a0b02e6e4465e9593d 100644 (file)
 (defvar ediff-window-config-saved)
 
 (eval-when-compile
-  (let ((load-path (cons (expand-file-name ".") load-path)))
-    (or (featurep 'ediff-init)
-       (load "ediff-init.el" nil t 'nosuffix))
-    (or (featurep 'ediff-util)
-       (load "ediff-util.el" nil t 'nosuffix))
-    ))
+  (require 'ediff-init)
+  (require 'ediff-util)
+  )
 ;; end pacifier
 
 (require 'ediff-init)
index 79e4e438a84bc5effad397ac0ea6828eadfd4461..ce42743a8d5179db5387cb553d6789466e8c0633 100644 (file)
 ;;; Code:
 
 
+(provide 'ediff-mult)
+
 (defgroup ediff-mult nil
   "Multi-file and multi-buffer processing in Ediff."
   :prefix "ediff-"
 
 ;; compiler pacifier
 (eval-when-compile
-  (let ((load-path (cons (expand-file-name ".") load-path)))
-    (or (featurep 'ediff-init)
-       (load "ediff-init.el" nil t 'nosuffix))
-    (or (featurep 'ediff-util)
-       (load "ediff-util.el" nil t 'nosuffix))
-    ))
+  (require 'ediff-init)
+  (if (not (featurep 'ediff-util))
+      (require 'ediff-util))
+  (if (not (featurep 'ediff-ptch))
+      (require 'ediff-ptch))
+  (require 'ediff)
+  )
 ;; end pacifier
 
 (require 'ediff-init)
@@ -2237,7 +2240,7 @@ If this is a session registry buffer then just bury it."
              overl (car overl-list)))
       overl)))
 
-(defsubst ediff-get-session-number-at-pos (point &optional meta-buffer)
+(defun ediff-get-session-number-at-pos (point &optional meta-buffer)
   (setq meta-buffer (if (ediff-buffer-live-p meta-buffer)
                        meta-buffer
                      (current-buffer)))
@@ -2399,8 +2402,6 @@ for operation, or simply indicate which are equal files.  If it is nil, then
     ))
 
 
-(provide 'ediff-mult)
-
 
 ;;; Local Variables:
 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
index 7d013cc76930fd0e9051cdde2379fe5a5b0f3f81..06fd8d20b64b1f49c2e8c602504db5cdceb14fd8 100644 (file)
@@ -27,6 +27,8 @@
 ;;; Code:
 
 
+(provide 'ediff-ptch)
+
 (defgroup ediff-ptch nil
   "Ediff patch support."
   :tag "Patch"
 (defvar ediff-shell)
 
 (eval-when-compile
-  (let ((load-path (cons (expand-file-name ".") load-path)))
-    (or (featurep 'ediff-init)
-       (load "ediff-init.el" nil t 'nosuffix))
-    (or (featurep 'ediff-mult)
-       (load "ediff-mult.el" nil t 'nosuffix))
-    (or (featurep 'ediff)
-       (load "ediff.el" nil t 'nosuffix))
-    ))
+  (require 'ediff-init)
+  (if (not (featurep 'ediff-mult))
+      (require 'ediff-mult))
+  (require 'ediff)
+  )
 ;; end pacifier
 
 (require 'ediff-init)
@@ -846,8 +845,6 @@ you can still examine the changes via M-x ediff-files"
 
 
 
-(provide 'ediff-ptch)
-
 
 ;;; Local Variables:
 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
index 9914b8cc973bf95188f43671a646efb433c2e87e..ef5032075e69cf2c78ed89b678e98f348d4f1874 100644 (file)
@@ -27,6 +27,8 @@
 ;;; Code:
 
 
+(provide 'ediff-util)
+
 ;; Compiler pacifier
 (defvar ediff-patch-diagnostics)
 (defvar ediff-patchbufer)
   (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)
index fa9b4505bf58075dd90faa054394d445004707f0..80a748ce65e7c88e3ab3517710341adfb5d976f0 100644 (file)
 
 (and noninteractive
      (eval-when-compile
-       (let ((load-path (cons (expand-file-name ".") load-path)))
-        (load "pcl-cvs" 'noerror)
-        (load "rcs" 'noerror)
-        ;; (load "vc" 'noerror) ; this sometimes causes compiler error
-        (or (featurep 'ediff-init)
-            (load "ediff-init.el" nil t 'nosuffix))
-        )))
+       (require 'pcvs nil 'noerror)
+       (require 'rcs nil 'noerror)
+       (require 'vc)
+       (require 'ediff-init)
+       ))
 ;; end pacifier
 
 (defcustom ediff-keep-tmp-versions nil
index 5b29ebcb411197a90f4b0a4cb47aafe8b258a462..e094c15bdfe327e448b8b5e18facb88c518cabb2 100644 (file)
 
 
 (eval-when-compile
-  (let ((load-path (cons (expand-file-name ".") load-path)))
-    (or (featurep 'ediff-init)
-       (load "ediff-init.el" nil t 'nosuffix))
-    (or (featurep 'ediff-util)
-       (load "ediff-util.el" nil t 'nosuffix))
-    (or (featurep 'ediff-help)
-       (load "ediff-help.el" nil t 'nosuffix))
-    (or (featurep 'ediff-tbar)
-       (featurep 'emacs)
-       (load "ediff-tbar.el" 'noerror nil 'nosuffix))
-    ))
+  (require 'ediff-init)
+  (require 'ediff-util)
+  (require 'ediff-help)
+  (require 'ediff-tbar nil 'noerror)
+  )
 ;; end pacifier
 
 (require 'ediff-init)
   :group 'frames)
 
 
-(defcustom ediff-window-setup-function 'ediff-setup-windows-automatic
+;; Determine which window setup function to use based on current window system.
+(defun ediff-choose-window-setup-function-automatically ()
+  (if (ediff-window-display-p)
+      'ediff-setup-windows-multiframe
+    'ediff-setup-windows-plain))
+
+(defcustom ediff-window-setup-function (ediff-choose-window-setup-function-automatically)
   "*Function called to set up windows.
-Ediff provides a choice of three functions: `ediff-setup-windows-plain', for
-doing everything in one frame, `ediff-setup-windows-multiframe', which sets
-the control panel in a separate frame, and
-`ediff-setup-windows-automatic' (the default), which chooses an appropriate
-behavior based on the current window system.  If the multiframe function
-detects that one of the buffers A/B is seen in some other frame, it will try
-to keep that buffer in that frame.
-
-If you don't like the two functions provided---write your own one.
+Ediff provides a choice of two functions: `ediff-setup-windows-plain', for
+doing everything in one frame and `ediff-setup-windows-multiframe', which sets
+the control panel in a separate frame. By default, the appropriate function is
+chosen automatically depending on the current window system.
+However, `ediff-toggle-multiframe' can be used to toggle between the multiframe
+display and the single frame display.
+If the multiframe function detects that one of the buffers A/B is seen in some
+other frame, it will try to keep that buffer in that frame.
+
+If you don't like any of the two provided functions, write your own one.
 The basic guidelines:
     1. It should leave the control buffer current and the control window
        selected.
@@ -98,8 +99,7 @@ The basic guidelines:
        Buffer C may not be used in jobs that compare only two buffers.
 If you plan to do something fancy, take a close look at how the two
 provided functions are written."
-  :type '(choice (const :tag "Automatic" ediff-setup-windows-automatic)
-                (const :tag "Multi Frame" ediff-setup-windows-multiframe)
+  :type '(choice (const :tag "Multi Frame" ediff-setup-windows-multiframe)
                 (const :tag "Single Frame" ediff-setup-windows-plain)
                 (function :tag "Other function"))
   :group 'ediff-window)
@@ -294,8 +294,7 @@ into icons, regardless of the window manager."
 ;; Select the lowest window on the frame.
 (defun ediff-select-lowest-window ()
   (if (featurep 'xemacs)
-      (select-window (frame-lowest-window)) ; xemacs
-    ;; emacs
+      (select-window (frame-lowest-window))
     (let* ((lowest-window (selected-window))
           (bottom-edge (car (cdr (cdr (cdr (window-edges))))))
           (last-window (save-excursion
@@ -337,12 +336,6 @@ into icons, regardless of the window manager."
        buffer-A buffer-B buffer-C control-buffer))
   (run-hooks 'ediff-after-setup-windows-hook))
 
-;; Set up windows using the correct method based on the current window system.
-(defun ediff-setup-windows-automatic (buffer-A buffer-B buffer-C control-buffer)
-  (if (ediff-window-display-p)
-      (ediff-setup-windows-multiframe buffer-A buffer-B buffer-C control-buffer)
-    (ediff-setup-windows-plain buffer-A buffer-B buffer-C control-buffer)))
-
 ;; Just set up 3 windows.
 ;; Usually used without windowing systems
 ;; With windowing, we want to use dedicated frames.
@@ -367,6 +360,7 @@ into icons, regardless of the window manager."
            ;; this lets us have local versions of ediff-split-window-function
            split-window-function ediff-split-window-function))
     (delete-other-windows)
+    (set-window-dedicated-p (selected-window) nil)
     (split-window-vertically)
     (ediff-select-lowest-window)
     (ediff-setup-control-buffer control-buffer)
@@ -426,6 +420,7 @@ into icons, regardless of the window manager."
            split-window-function ediff-split-window-function
            three-way-comparison ediff-3way-comparison-job))
     (delete-other-windows)
+    (set-window-dedicated-p (selected-window) nil)
     (split-window-vertically)
     (ediff-select-lowest-window)
     (ediff-setup-control-buffer control-buffer)
@@ -895,7 +890,7 @@ into icons, regardless of the window manager."
    (or
     ;; only one window
     (eq wind (next-window wind 'ignore-minibuffer (window-frame wind)))
-    ;; none is dedicated
+    ;; none is dedicated (in multiframe setup)
     (not (ediff-frame-has-dedicated-windows (window-frame wind)))
     )))
 
@@ -908,8 +903,8 @@ into icons, regardless of the window manager."
        fheight fwidth adjusted-parameters)
 
     (ediff-with-current-buffer ctl-buffer
-      (if (featurep 'xemacs)
-         (if (featurep 'menubar) (set-buffer-menubar nil)))
+      (if (and (featurep 'xemacs) (featurep 'menubar))
+         (set-buffer-menubar nil))
       ;;(setq user-grabbed-mouse (ediff-user-grabbed-mouse))
       (run-hooks 'ediff-before-setup-control-frame-hook))
 
@@ -921,9 +916,8 @@ into icons, regardless of the window manager."
            ediff-control-frame ctl-frame)
       ;; protect against undefined face-attribute
       (condition-case nil
-         (unless (featurep 'xemacs)
-           (when (face-attribute 'mode-line :box)
-             (set-face-attribute 'mode-line ctl-frame :box nil)))
+         (if (and (featurep 'emacs) (face-attribute 'mode-line :box))
+             (set-face-attribute 'mode-line ctl-frame :box nil))
        (error)))
 
     (setq ctl-frame-iconified-p (ediff-frame-iconified-p ctl-frame))
@@ -1048,11 +1042,12 @@ into icons, regardless of the window manager."
   (ediff-with-current-buffer ctl-buffer
     (if (and (ediff-window-display-p) (frame-live-p ediff-control-frame))
        (let ((ctl-frame ediff-control-frame))
-         (if (featurep 'xemacs)
-             (if (featurep 'menubar) (set-buffer-menubar default-menubar)))
+         (if (and (featurep 'xemacs) (featurep 'menubar))
+             (set-buffer-menubar default-menubar))
          (setq ediff-control-frame nil)
          (delete-frame ctl-frame))))
-  (ediff-skip-unsuitable-frames)
+  (if ediff-multiframe
+      (ediff-skip-unsuitable-frames))
   ;;(ediff-reset-mouse nil)
   )
 
index cdfb66d9c0037790bddfc3a9a9a662d076afaef5..5ef234d69ba90fa583264077e2932ac881ac6c1f 100644 (file)
 
 ;;; Code:
 
+(provide 'ediff)
 
 ;; Compiler pacifier
 (defvar cvs-cookie-handle)
 (defvar ediff-last-dir-patch)
 (defvar ediff-patch-default-directory)
+(defvar ediff-control-window)
 
 (eval-and-compile
   (unless (fboundp 'declare-function) (defmacro declare-function (&rest  r))))
 
 
 (eval-when-compile
-  (and noninteractive
-       (load "dired" nil t))
-  (let ((load-path (cons (expand-file-name ".") load-path)))
-    (provide 'ediff) ; to break recursive load cycle
-    (or (featurep 'ediff-init)
-       (load "ediff-init.el" nil t 'nosuffix))
-    (or (featurep 'ediff-mult)
-       (load "ediff-mult.el" nil t 'nosuffix))
-    (or (featurep 'ediff-ptch)
-       (load "ediff-ptch.el" nil t 'nosuffix))
-    (or (featurep 'ediff-vers)
-       (load "ediff-vers.el" nil t 'nosuffix))
-    ))
+  (require 'dired)
+  (require 'ediff-init)
+  (if (not (featurep 'ediff-mult))
+      (require 'ediff-mult))
+  (if (not (featurep 'ediff-util))
+      (require 'ediff-util))
+  (require 'ediff-wind)
+  (if (not (featurep 'ediff-ptch))
+      (require 'ediff-ptch))
+  (require 'ediff-vers)
+  )
 ;; end pacifier
 
 (require 'ediff-init)
@@ -1513,8 +1513,6 @@ With optional NODE, goes to that node."
 
 (run-hooks 'ediff-load-hook)
 
-(provide 'ediff)
-
 
 ;;; Local Variables:
 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
index af5780f0d72241feae88a11f46e31f15f8555b23..49988e285f0bb6707c828be112556dc82c0f318b 100644 (file)
@@ -46,7 +46,8 @@
 ;; in order to spare non-viperized emacs from being viperized
 (if noninteractive
     (eval-when-compile
-      (require 'viper-cmd)
+      (if (not (featurep 'viper-cmd))
+         (require 'viper-cmd))
       ))
 ;; end pacifier
 
index 7410e05f7b4374951c090b52d28292385d0673ce..8ea4805c90be1d6fb670b36c2fa43cfde728d52c 100644 (file)
@@ -26,6 +26,9 @@
 
 ;;; Code:
 
+(provide 'viper-util)
+
+
 ;; Compiler pacifier
 (defvar viper-overriding-map)
 (defvar pm-color-alist)
@@ -1557,9 +1560,6 @@ This option is appropriate if you like Emacs-style words."
 
 
 
-(provide 'viper-util)
-
-
 ;;; Local Variables:
 ;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
 ;;; End: