]> code.delx.au - gnu-emacs/blobdiff - lisp/ediff-merg.el
(mailclient-send-it): Fix message.
[gnu-emacs] / lisp / ediff-merg.el
index 13414747b11e876bcb6c357fc6cb8ea7c8054867..35ea4348d0e98aee5585d78af594fc3d9dd4cb70 100644 (file)
@@ -1,15 +1,16 @@
 ;;; ediff-merg.el --- merging utilities
 
-;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;;   2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 ;;; Code:
 
-(provide 'ediff-merg)
 
 ;; compiler pacifier
 (defvar ediff-window-A)
 (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 nil 'nosuffix))
-    (or (featurep 'ediff-util)
-       (load "ediff-util.el" nil nil 'nosuffix))
-    ))
+  (require 'ediff-util))
 ;; end pacifier
 
 (require 'ediff-init)
 
 (defcustom ediff-quit-merge-hook 'ediff-maybe-save-and-delete-merge
-  "*Hooks to run before quitting a merge job.
+  "Hooks to run before quitting a merge job.
 The most common use is to save and delete the merge buffer."
   :type 'hook
   :group 'ediff-merge)
 
 
 (defcustom ediff-default-variant 'combined
-  "*The variant to be used as a default for buffer C in merging.
+  "The variant to be used as a default for buffer C in merging.
 Valid values are the symbols `default-A', `default-B', and `combined'."
   :type '(radio (const default-A) (const default-B) (const combined))
   :group 'ediff-merge)
 
 (defcustom ediff-combination-pattern
   '("<<<<<<< variant A" A ">>>>>>> variant B" B  "####### Ancestor" Ancestor "======= end")
-  "*Pattern to be used for combining difference regions in buffers A and B.
+  "Pattern to be used for combining difference regions in buffers A and B.
 The value must be a list of the form
-(STRING1 bufspec1  STRING2 bufspec2 STRING3 bufspec3 STRING4)
+\(STRING1 bufspec1  STRING2 bufspec2 STRING3 bufspec3 STRING4)
 where bufspec is the symbol A, B, or Ancestor. For instance, if the value is
 '(STRING1 A  STRING2 Ancestor STRING3 B STRING4) then the
 combined text will look like this:
@@ -80,16 +73,16 @@ STRING4
   :group 'ediff-merge)
 
 (defcustom ediff-show-clashes-only nil
-  "*If t, show only those diff regions where both buffers disagree with the ancestor.
+  "If t, show only those diff regions where both buffers disagree with the ancestor.
 This means that regions that have status prefer-A or prefer-B will be
-skipped over.  nil means show all regions."
+skipped over.  A value of nil means show all regions."
   :type 'boolean
   :group 'ediff-merge
   )
 (make-variable-buffer-local 'ediff-show-clashes-only)
 
 (defcustom ediff-skip-merge-regions-that-differ-from-default nil
-  "*If t, show only the regions that have not been changed by the user.
+  "If t, show only the regions that have not been changed by the user.
 A region is considered to have been changed if it is different from the current
 default (`default-A', `default-B', `combined') and it hasn't been marked as
 `prefer-A' or `prefer-B'.
@@ -102,11 +95,18 @@ Buffer B."
   )
 (make-variable-buffer-local 'ediff-skip-merge-regions-that-differ-from-default)
 
+;; check if there is no clash between the ancestor and one of the variants.
+;; if it is not a merge job then return true
+(defsubst ediff-merge-region-is-non-clash (n)
+  (if (ediff-merge-job)
+      (string-match "prefer" (or (ediff-get-state-of-merge n) ""))
+    t))
+
 ;; If ediff-show-clashes-only, check if there is no clash between the ancestor
 ;; and one of the variants.
-(defsubst ediff-merge-region-is-non-clash (n)
+(defsubst ediff-merge-region-is-non-clash-to-skip (n)
   (and ediff-show-clashes-only
-       (string-match "prefer" (or (ediff-get-state-of-merge n) ""))))
+       (ediff-merge-region-is-non-clash n)))
 
 ;; If ediff-skip-changed-regions, check if the merge region differs from
 ;; the current default. If a region is different from the default, it means
@@ -352,7 +352,7 @@ Combining is done according to the specifications in variable
        (reverse delim-regs-list)
        )))
 
-(eval-when-compile (defvar state-of-merge)) ; dynamic var
+(defvar state-of-merge)                        ; dynamic var
 
 ;; Check if the non-preferred merge has been modified since originally set.
 ;; This affects only the regions that are marked as default-A/B or combined.
@@ -382,11 +382,14 @@ Combining is done according to the specifications in variable
        )))
 
 
-;;; Local Variables:
-;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
-;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1)
-;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
-;;; End:
+(provide 'ediff-merg)
+
+
+;; Local Variables:
+;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
+;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1)
+;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
+;; End:
 
-;;; arch-tag: 9b798cf9-02ba-487f-a62e-b63aa823dbfb
+;; arch-tag: 9b798cf9-02ba-487f-a62e-b63aa823dbfb
 ;;; ediff-merg.el ends here