changeset 19241:eb1cef5fa337

new version
author Michael Kifer <kifer@cs.stonybrook.edu>
date Sat, 09 Aug 1997 04:30:41 +0000
parents c962562027d4
children a7d44588be35
files lisp/ediff-init.el lisp/ediff-mult.el lisp/ediff.el lisp/emulation/viper-init.el lisp/emulation/viper-util.el lisp/emulation/viper.el
diffstat 6 files changed, 556 insertions(+), 315 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ediff-init.el	Sat Aug 09 03:44:54 1997 +0000
+++ b/lisp/ediff-init.el	Sat Aug 09 04:30:41 1997 +0000
@@ -131,6 +131,7 @@
 	   )
   ))
 
+
 ;; A-list is supposed to be of the form (A . symb) (B . symb)...)
 ;; where the first part of any association is a buffer type and the second is
 ;; an appropriate symbol. Given buffer-type, this function returns the
@@ -708,30 +709,6 @@
 	  ((memq op '(< <=)) t))))
   
   
-;;;; warn if it is a wrong version of emacs
-;;(if (or (ediff-check-version '< 19 35 'emacs)
-;;	(ediff-check-version '< 19 15 'xemacs))
-;;    (progn
-;;      (with-output-to-temp-buffer ediff-msg-buffer
-;;	(switch-to-buffer ediff-msg-buffer)
-;;	(insert
-;;	 (format "
-;;
-;;This version of Ediff requires 
-;;
-;;\t Emacs 19.35 and higher
-;;\t OR
-;;\t XEmacs 19.15 and higher
-;;
-;;It is unlikely to work under Emacs version %s
-;;that you are using... " emacs-version))
-;;	(if noninteractive
-;;	    ()
-;;	  (beep 1)
-;;	  (beep 1)
-;;	  (insert "\n\nType any key to continue...")
-;;	  (ediff-read-event)))
-;;      (kill-buffer ediff-msg-buffer)))
 
 ;; A fix for NeXT Step
 ;; Should probably be eliminated in later versions.
@@ -827,35 +804,35 @@
 	  (t ""))   ; none
     ))
 
-(defun ediff-set-face (ground face color)
-  "Set face foreground/background."
-  (if (ediff-has-face-support-p)
-      (if (ediff-valid-color-p color)
-	  (if (eq ground 'foreground)
-	      (set-face-foreground face color)
-	    (set-face-background face color))
-	(cond ((memq face
-		     '(ediff-current-diff-face-A
-		       ediff-current-diff-face-B
-		       ediff-current-diff-face-C
-		       ediff-current-diff-face-Ancestor))
-	       (copy-face 'highlight face))
-	      ((memq face
-		     '(ediff-fine-diff-face-A
-		       ediff-fine-diff-face-B
-		       ediff-fine-diff-face-C
-		       ediff-fine-diff-face-Ancestor))
-	       (copy-face 'secondary-selection face)
-	       (set-face-underline-p face t))
-	      ((memq face
-		     '(ediff-even-diff-face-A
-		       ediff-odd-diff-face-A 
-		       ediff-even-diff-face-B ediff-odd-diff-face-B
-		       ediff-even-diff-face-C ediff-odd-diff-face-C
-		       ediff-even-diff-face-Ancestor
-		       ediff-odd-diff-face-Ancestor))
-	       (copy-face 'secondary-selection face))))
-    ))
+;;(defun ediff-set-face (ground face color)
+;;  "Set face foreground/background."
+;;  (if (ediff-has-face-support-p)
+;;      (if (ediff-valid-color-p color)
+;;	  (if (eq ground 'foreground)
+;;	      (set-face-foreground face color)
+;;	    (set-face-background face color))
+;;	(cond ((memq face
+;;		     '(ediff-current-diff-face-A
+;;		       ediff-current-diff-face-B
+;;		       ediff-current-diff-face-C
+;;		       ediff-current-diff-face-Ancestor))
+;;	       (copy-face 'highlight face))
+;;	      ((memq face
+;;		     '(ediff-fine-diff-face-A
+;;		       ediff-fine-diff-face-B
+;;		       ediff-fine-diff-face-C
+;;		       ediff-fine-diff-face-Ancestor))
+;;	       (copy-face 'secondary-selection face)
+;;	       (set-face-underline-p face t))
+;;	      ((memq face
+;;		     '(ediff-even-diff-face-A
+;;		       ediff-odd-diff-face-A 
+;;		       ediff-even-diff-face-B ediff-odd-diff-face-B
+;;		       ediff-even-diff-face-C ediff-odd-diff-face-C
+;;		       ediff-even-diff-face-Ancestor
+;;		       ediff-odd-diff-face-Ancestor))
+;;	       (copy-face 'secondary-selection face))))
+;;    ))
 
 (defun ediff-set-face-pixmap (face pixmap)
   "Set face pixmap on a monochrome display."
@@ -870,216 +847,410 @@
   (if (and (ediff-has-face-support-p) ediff-emacs-p)
       (add-to-list 'facemenu-unlisted-faces face)))
       
-(defvar ediff-current-diff-face-A
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-current-diff-face-A)
-	(ediff-hide-face 'ediff-current-diff-face-A)
-	(or (face-differs-from-default-p 'ediff-current-diff-face-A)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face
-		    'foreground 'ediff-current-diff-face-A "firebrick")
-		   (ediff-set-face
-		    'background 'ediff-current-diff-face-A "pale green"))
-		  (t
-		   (if ediff-xemacs-p
-		       (copy-face 'modeline 'ediff-current-diff-face-A)
-		     (copy-face 'highlight 'ediff-current-diff-face-A))
-		   )))
-	'ediff-current-diff-face-A))
-  "Face for highlighting the selected difference in buffer A.")
+(defgroup ediff-highlighting nil
+  "Hilighting of difference regions in Ediff"
+  :prefix "ediff-"
+  :group 'ediff)
+
+;;(defvar ediff-current-diff-face-A
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-current-diff-face-A)
+;;	(or (face-differs-from-default-p 'ediff-current-diff-face-A)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face
+;;		    'foreground 'ediff-current-diff-face-A "firebrick")
+;;		   (ediff-set-face
+;;		    'background 'ediff-current-diff-face-A "pale green"))
+;;		  (t
+;;		   (if ediff-xemacs-p
+;;		       (copy-face 'modeline 'ediff-current-diff-face-A)
+;;		     (copy-face 'highlight 'ediff-current-diff-face-A))
+;;		   )))
+;;	'ediff-current-diff-face-A))
+;;  "Face for highlighting the selected difference in buffer A.")
+
+(defface ediff-current-diff-face-A
+  '((((class color)) (:foreground "firebrick" :background "pale green"))
+    (t (:inverse-video t)))
+  "Face for highlighting the selected difference in buffer A."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-current-diff-face-A 'ediff-current-diff-face-A)
+(ediff-hide-face 'ediff-current-diff-face-A)
+;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
+;; This means that some user customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (copy-face 'modeline 'ediff-current-diff-face-A))
+
+
 
-(defvar ediff-current-diff-face-B
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-current-diff-face-B)
-	(ediff-hide-face 'ediff-current-diff-face-B)
-	(or (face-differs-from-default-p 'ediff-current-diff-face-B)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face
-		    'foreground 'ediff-current-diff-face-B "DarkOrchid")
-		   (ediff-set-face
-		    'background 'ediff-current-diff-face-B "Yellow"))
-		  (t 
-		   (if ediff-xemacs-p
-		       (copy-face 'modeline 'ediff-current-diff-face-B)
-		     (copy-face 'highlight 'ediff-current-diff-face-B))
-		   )))
-	'ediff-current-diff-face-B))
-  "Face for highlighting the selected difference in buffer B.")
+;;(defvar ediff-current-diff-face-B
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-current-diff-face-B)
+;;	(or (face-differs-from-default-p 'ediff-current-diff-face-B)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face
+;;		    'foreground 'ediff-current-diff-face-B "DarkOrchid")
+;;		   (ediff-set-face
+;;		    'background 'ediff-current-diff-face-B "Yellow"))
+;;		  (t 
+;;		   (if ediff-xemacs-p
+;;		       (copy-face 'modeline 'ediff-current-diff-face-B)
+;;		     (copy-face 'highlight 'ediff-current-diff-face-B))
+;;		   )))
+;;	'ediff-current-diff-face-B))
+;;  "Face for highlighting the selected difference in buffer B.")
     
+(defface ediff-current-diff-face-B
+  '((((class color)) (:foreground "DarkOrchid" :background "Yellow"))
+    (t (:inverse-video t)))
+  "Face for highlighting the selected difference in buffer B."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-current-diff-face-B 'ediff-current-diff-face-B)
+(ediff-hide-face 'ediff-current-diff-face-B)
+;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
+;; This means that some user customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (copy-face 'modeline 'ediff-current-diff-face-B))
+
+;;(defvar ediff-current-diff-face-C
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-current-diff-face-C)
+;;	(or (face-differs-from-default-p 'ediff-current-diff-face-C)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face
+;;		    'foreground 'ediff-current-diff-face-C "Navy")
+;;		   (ediff-set-face
+;;		    'background 'ediff-current-diff-face-C "Pink"))
+;;		  (t 
+;;		   (if ediff-xemacs-p
+;;		       (copy-face 'modeline 'ediff-current-diff-face-C)
+;;		     (copy-face 'highlight 'ediff-current-diff-face-C))
+;;		   )))
+;;	'ediff-current-diff-face-C))
+;;  "Face for highlighting the selected difference in buffer C.")
 
-(defvar ediff-current-diff-face-C
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-current-diff-face-C)
-	(ediff-hide-face 'ediff-current-diff-face-C)
-	(or (face-differs-from-default-p 'ediff-current-diff-face-C)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face
-		    'foreground 'ediff-current-diff-face-C "Navy")
-		   (ediff-set-face
-		    'background 'ediff-current-diff-face-C "Pink"))
-		  (t 
-		   (if ediff-xemacs-p
-		       (copy-face 'modeline 'ediff-current-diff-face-C)
-		     (copy-face 'highlight 'ediff-current-diff-face-C))
-		   )))
-	'ediff-current-diff-face-C))
-  "Face for highlighting the selected difference in buffer C.")
+(defface ediff-current-diff-face-C
+  '((((class color)) (:foreground "Navy" :background "Pink"))
+    (t (:inverse-video t)))
+  "Face for highlighting the selected difference in buffer C."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-current-diff-face-C 'ediff-current-diff-face-C)
+(ediff-hide-face 'ediff-current-diff-face-C)
+;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
+;; This means that some user customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (copy-face 'modeline 'ediff-current-diff-face-C))
+
+;;(defvar ediff-current-diff-face-Ancestor
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-current-diff-face-Ancestor)
+;;	(or (face-differs-from-default-p 'ediff-current-diff-face-Ancestor)
+;;	    (copy-face 
+;;	     'ediff-current-diff-face-C 'ediff-current-diff-face-Ancestor))
+;;	'ediff-current-diff-face-Ancestor))
+;;  "Face for highlighting the selected difference in the ancestor buffer.")
+
+(defface ediff-current-diff-face-Ancestor
+  '((((class color)) (:foreground "Black" :background "VioletRed"))
+    (t (:inverse-video t)))
+  "Face for highlighting the selected difference in buffer Ancestor."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-current-diff-face-Ancestor 'ediff-current-diff-face-Ancestor)
+(ediff-hide-face 'ediff-current-diff-face-Ancestor)
+;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
+;; This means that some user customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (copy-face 'modeline 'ediff-current-diff-face-Ancestor))
+
+;;(defvar ediff-fine-diff-pixmap "gray3"
+;;  "Pixmap to use for highlighting fine differences.")
+;;(defvar ediff-odd-diff-pixmap "gray1"
+;;  "Pixmap to use for highlighting odd differences.")
+;;(defvar ediff-even-diff-pixmap "Stipple"
+;;  "Pixmap to use for highlighting even differences.")
 
-(defvar ediff-current-diff-face-Ancestor
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-current-diff-face-Ancestor)
-	(ediff-hide-face 'ediff-current-diff-face-Ancestor)
-	(or (face-differs-from-default-p 'ediff-current-diff-face-Ancestor)
-	    (copy-face 
-	     'ediff-current-diff-face-C 'ediff-current-diff-face-Ancestor))
-	'ediff-current-diff-face-Ancestor))
-  "Face for highlighting the selected difference in the ancestor buffer.")
+;;(defvar ediff-fine-diff-face-A
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-fine-diff-face-A)
+;;	(or (face-differs-from-default-p 'ediff-fine-diff-face-A)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face 'foreground 'ediff-fine-diff-face-A
+;;				   "Navy")
+;;		   (ediff-set-face 'background 'ediff-fine-diff-face-A
+;;				   "sky blue"))
+;;		  (t
+;;		   (set-face-underline-p 'ediff-fine-diff-face-A t)
+;;		   (ediff-set-face-pixmap 'ediff-fine-diff-face-A
+;;					  ediff-fine-diff-pixmap)
+;;		   )))
+;;	'ediff-fine-diff-face-A))
+;;  "Face for highlighting the refinement of the selected diff in buffer A.")
 
-(defvar ediff-fine-diff-pixmap "gray3"
-  "Pixmap to use for highlighting fine differences.")
-(defvar ediff-odd-diff-pixmap "gray1"
-  "Pixmap to use for highlighting odd differences.")
-(defvar ediff-even-diff-pixmap "Stipple"
-  "Pixmap to use for highlighting even differences.")
 
-(defvar ediff-fine-diff-face-A
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-fine-diff-face-A)
-	(ediff-hide-face 'ediff-fine-diff-face-A)
-	(or (face-differs-from-default-p 'ediff-fine-diff-face-A)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face 'foreground 'ediff-fine-diff-face-A
-				   "Navy")
-		   (ediff-set-face 'background 'ediff-fine-diff-face-A
-				   "sky blue"))
-		  (t
-		   (set-face-underline-p 'ediff-fine-diff-face-A t)
-		   (ediff-set-face-pixmap 'ediff-fine-diff-face-A
-					  ediff-fine-diff-pixmap)
-		   )))
-	'ediff-fine-diff-face-A))
-  "Face for highlighting the refinement of the selected diff in buffer A.")
+(defface ediff-fine-diff-face-A
+  '((((class color)) (:foreground "Navy" :background "sky blue"))
+    (t (:underline t :stipple "gray3")))
+  "Face for highlighting the refinement of the selected diff in buffer A."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-fine-diff-face-A 'ediff-fine-diff-face-A)
+(ediff-hide-face 'ediff-fine-diff-face-A)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-fine-diff-face-A "gray3"))
+
+;;(defvar ediff-fine-diff-face-B
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-fine-diff-face-B)
+;;	(or (face-differs-from-default-p 'ediff-fine-diff-face-B)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face 'foreground 'ediff-fine-diff-face-B "Black")
+;;		   (ediff-set-face 'background 'ediff-fine-diff-face-B "cyan"))
+;;		  (t
+;;		   (set-face-underline-p 'ediff-fine-diff-face-B t)
+;;		   (ediff-set-face-pixmap 'ediff-fine-diff-face-B
+;;					  ediff-fine-diff-pixmap)
+;;		   )))
+;;	'ediff-fine-diff-face-B))
+;;  "Face for highlighting the refinement of the selected diff in buffer B.")
 
-(defvar ediff-fine-diff-face-B
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-fine-diff-face-B)
-	(ediff-hide-face 'ediff-fine-diff-face-B)
-	(or (face-differs-from-default-p 'ediff-fine-diff-face-B)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face 'foreground 'ediff-fine-diff-face-B "Black")
-		   (ediff-set-face 'background 'ediff-fine-diff-face-B "cyan"))
-		  (t
-		   (set-face-underline-p 'ediff-fine-diff-face-B t)
-		   (ediff-set-face-pixmap 'ediff-fine-diff-face-B
-					  ediff-fine-diff-pixmap)
-		   )))
-	'ediff-fine-diff-face-B))
-  "Face for highlighting the refinement of the selected diff in buffer B.")
+(defface ediff-fine-diff-face-B
+  '((((class color)) (:foreground "Black" :background "cyan"))
+    (t (:underline t :stipple "gray3")))
+  "Face for highlighting the refinement of the selected diff in buffer B."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-fine-diff-face-B 'ediff-fine-diff-face-B)
+(ediff-hide-face 'ediff-fine-diff-face-B)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-fine-diff-face-B "gray3"))
     
-(defvar ediff-fine-diff-face-C
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-fine-diff-face-C)
-	(ediff-hide-face 'ediff-fine-diff-face-C)
-	(or (face-differs-from-default-p 'ediff-fine-diff-face-C)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face 'foreground 'ediff-fine-diff-face-C "black")
-		   (ediff-set-face
-		    'background 'ediff-fine-diff-face-C "Turquoise"))
-		  (t
-		   (set-face-underline-p 'ediff-fine-diff-face-C t)
-		   (ediff-set-face-pixmap 'ediff-fine-diff-face-C
-					  ediff-fine-diff-pixmap)
-		   )))
-	'ediff-fine-diff-face-C))
-  "Face for highlighting the refinement of the selected diff in buffer C.")
+;;(defvar ediff-fine-diff-face-C
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-fine-diff-face-C)
+;;	(or (face-differs-from-default-p 'ediff-fine-diff-face-C)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face 'foreground 'ediff-fine-diff-face-C "black")
+;;		   (ediff-set-face
+;;		    'background 'ediff-fine-diff-face-C "Turquoise"))
+;;		  (t
+;;		   (set-face-underline-p 'ediff-fine-diff-face-C t)
+;;		   (ediff-set-face-pixmap 'ediff-fine-diff-face-C
+;;					  ediff-fine-diff-pixmap)
+;;		   )))
+;;	'ediff-fine-diff-face-C))
+;;  "Face for highlighting the refinement of the selected diff in buffer C.")
+
+(defface ediff-fine-diff-face-C
+  '((((class color)) (:foreground "Black" :background "Turquoise"))
+    (t (:underline t :stipple "gray3")))
+  "Face for highlighting the refinement of the selected diff in buffer C."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-fine-diff-face-C 'ediff-fine-diff-face-C)
+(ediff-hide-face 'ediff-fine-diff-face-C)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-fine-diff-face-C "gray3"))
 
-(defvar ediff-fine-diff-face-Ancestor
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-fine-diff-face-Ancestor)
-	(ediff-hide-face 'ediff-fine-diff-face-Ancestor)
-	(or (face-differs-from-default-p 'ediff-fine-diff-face-Ancestor)
-	    (progn
-	      (copy-face
-	       'ediff-fine-diff-face-C 'ediff-fine-diff-face-Ancestor)
-	      (ediff-set-face-pixmap 'ediff-fine-diff-face-Ancestor
-				     ediff-fine-diff-pixmap))
-	    )))
-  "Face highlighting refinements of the selected diff in ancestor buffer.
-Presently, this is not used, as difference regions are not refined in the
-ancestor buffer.")
+;;(defvar ediff-fine-diff-face-Ancestor
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-fine-diff-face-Ancestor)
+;;	(ediff-hide-face 'ediff-fine-diff-face-Ancestor)
+;;	(or (face-differs-from-default-p 'ediff-fine-diff-face-Ancestor)
+;;	    (progn
+;;	      (copy-face
+;;	       'ediff-fine-diff-face-C 'ediff-fine-diff-face-Ancestor)
+;;	      (ediff-set-face-pixmap 'ediff-fine-diff-face-Ancestor
+;;				     ediff-fine-diff-pixmap))
+;;	    )))
+;;  "Face highlighting refinements of the selected diff in ancestor buffer.
+;;Presently, this is not used, as difference regions are not refined in the
+;;ancestor buffer.")
+
+(defface ediff-fine-diff-face-Ancestor
+  '((((class color)) (:foreground "Black" :background "Green"))
+    (t (:underline t :stipple "gray3")))
+  "Face for highlighting the refinement of the selected diff in the ancestor buffer.
+At present, this face is not used and no fine differences are computed for the
+ancestor buffer."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-fine-diff-face-Ancestor 'ediff-fine-diff-face-Ancestor)
+(ediff-hide-face 'ediff-fine-diff-face-Ancestor)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap
+     'ediff-fine-diff-face-Ancestor "gray3"))
     
-(defvar ediff-even-diff-face-A
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-even-diff-face-A)
-	(ediff-hide-face 'ediff-even-diff-face-A)
-	(or (face-differs-from-default-p 'ediff-even-diff-face-A)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face
-		    'foreground 'ediff-even-diff-face-A "black")
-		   (ediff-set-face
-		    'background 'ediff-even-diff-face-A "light grey"))
-		  (t 
-		   (copy-face 'italic 'ediff-even-diff-face-A)
-		   (ediff-set-face-pixmap 'ediff-even-diff-face-A
-					  ediff-even-diff-pixmap)
-		   )))
-	'ediff-even-diff-face-A))
-  "Face used to highlight even-numbered differences in buffer A.")
+;;(defvar ediff-even-diff-face-A
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-even-diff-face-A)
+;;	(or (face-differs-from-default-p 'ediff-even-diff-face-A)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face
+;;		    'foreground 'ediff-even-diff-face-A "black")
+;;		   (ediff-set-face
+;;		    'background 'ediff-even-diff-face-A "light grey"))
+;;		  (t 
+;;		   (copy-face 'italic 'ediff-even-diff-face-A)
+;;		   (ediff-set-face-pixmap 'ediff-even-diff-face-A
+;;					  ediff-even-diff-pixmap)
+;;		   )))
+;;	'ediff-even-diff-face-A))
+;;  "Face used for highlighting even-numbered differences in buffer A.")
+
+(defface ediff-even-diff-face-A
+  '((((class color)) (:foreground "Black" :background "light grey"))
+    (t (:italic t :stipple "Stipple")))
+  "Face for highlighting even-numbered non-current differences in buffer A."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-even-diff-face-A 'ediff-even-diff-face-A)
+(ediff-hide-face 'ediff-even-diff-face-A)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-even-diff-face-A "Stipple"))
       
-(defvar ediff-even-diff-face-B
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-even-diff-face-B)
-	(ediff-hide-face 'ediff-even-diff-face-B)
-	(or (face-differs-from-default-p 'ediff-even-diff-face-B)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face
-		    'foreground 'ediff-even-diff-face-B "White")
-		   (ediff-set-face
-		    'background 'ediff-even-diff-face-B "Gray"))
-		  (t 
-		   (copy-face 'italic 'ediff-even-diff-face-B)
-		   (ediff-set-face-pixmap 'ediff-even-diff-face-B
-					  ediff-even-diff-pixmap)
-		   )))
-	'ediff-even-diff-face-B))
-  "Face used to highlight even-numbered differences in buffer B.")
+;;(defvar ediff-even-diff-face-B
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-even-diff-face-B)
+;;	(or (face-differs-from-default-p 'ediff-even-diff-face-B)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face
+;;		    'foreground 'ediff-even-diff-face-B "White")
+;;		   (ediff-set-face
+;;		    'background 'ediff-even-diff-face-B "Gray"))
+;;		  (t 
+;;		   (copy-face 'italic 'ediff-even-diff-face-B)
+;;		   (ediff-set-face-pixmap 'ediff-even-diff-face-B
+;;					  ediff-even-diff-pixmap)
+;;		   )))
+;;	'ediff-even-diff-face-B))
+;;  "Face used for highlighting even-numbered differences in buffer B.")
+
+(defface ediff-even-diff-face-B
+  '((((class color)) (:foreground "White" :background "Grey"))
+    (t (:italic t :stipple "Stipple")))
+  "Face for highlighting even-numbered non-current differences in buffer B."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-even-diff-face-B 'ediff-even-diff-face-B)
+(ediff-hide-face 'ediff-even-diff-face-B)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-even-diff-face-B "Stipple"))
     
-(defvar ediff-even-diff-face-C
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-even-diff-face-C)
-	(ediff-hide-face 'ediff-even-diff-face-C)
-	(or (face-differs-from-default-p 'ediff-even-diff-face-C)
-	    (progn
-	      (copy-face 'ediff-even-diff-face-A 'ediff-even-diff-face-C)
-	      (ediff-set-face-pixmap 'ediff-even-diff-face-C
-				     ediff-even-diff-pixmap)))
-	'ediff-even-diff-face-C))
-  "Face used to highlight even-numbered differences in buffer C.")
+;;(defvar ediff-even-diff-face-C
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-even-diff-face-C)
+;;	(ediff-hide-face 'ediff-even-diff-face-C)
+;;	(or (face-differs-from-default-p 'ediff-even-diff-face-C)
+;;	    (progn
+;;	      (copy-face 'ediff-even-diff-face-A 'ediff-even-diff-face-C)
+;;	      (ediff-set-face-pixmap 'ediff-even-diff-face-C
+;;				     ediff-even-diff-pixmap)))
+;;	'ediff-even-diff-face-C))
+;;  "Face used for highlighting even-numbered differences in buffer C.")
+
+(defface ediff-even-diff-face-C
+  '((((class color)) (:foreground "Black" :background "light grey"))
+    (t (:italic t :stipple "Stipple")))
+  "Face for highlighting even-numbered non-current differences in buffer C."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-even-diff-face-C 'ediff-even-diff-face-C)
+(ediff-hide-face 'ediff-even-diff-face-C)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-even-diff-face-C "Stipple"))
 
-(defvar ediff-even-diff-face-Ancestor
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-even-diff-face-Ancestor)
-	(ediff-hide-face 'ediff-even-diff-face-Ancestor)
-	(or (face-differs-from-default-p 'ediff-even-diff-face-Ancestor)
-	    (progn
-	      (copy-face
-	       'ediff-even-diff-face-C 'ediff-even-diff-face-Ancestor)
-	      (ediff-set-face-pixmap 'ediff-even-diff-face-Ancestor
-				     ediff-even-diff-pixmap)))
-	'ediff-even-diff-face-Ancestor))
-  "Face highlighting even-numbered differences in the ancestor buffer.")
+;;(defvar ediff-even-diff-face-Ancestor
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-even-diff-face-Ancestor)
+;;	(ediff-hide-face 'ediff-even-diff-face-Ancestor)
+;;	(or (face-differs-from-default-p 'ediff-even-diff-face-Ancestor)
+;;	    (progn
+;;	      (copy-face
+;;	       'ediff-even-diff-face-C 'ediff-even-diff-face-Ancestor)
+;;	      (ediff-set-face-pixmap 'ediff-even-diff-face-Ancestor
+;;				     ediff-even-diff-pixmap)))
+;;	'ediff-even-diff-face-Ancestor))
+;;  "Face highlighting even-numbered differences in the ancestor buffer.")
+
+(defface ediff-even-diff-face-Ancestor
+  '((((class color)) (:foreground "White" :background "Grey"))
+    (t (:italic t :stipple "Stipple")))
+  "Face for highlighting even-numbered non-current differences in the ancestor buffer."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-even-diff-face-Ancestor 'ediff-even-diff-face-Ancestor)
+(ediff-hide-face 'ediff-even-diff-face-Ancestor)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap
+     'ediff-even-diff-face-Ancestor "Stipple"))
 
 ;; Association between buffer types and even-diff-face symbols
 (defconst ediff-even-diff-face-alist
@@ -1088,69 +1259,130 @@
     (C . ediff-even-diff-face-C)
     (Ancestor . ediff-even-diff-face-Ancestor)))
 
-(defvar ediff-odd-diff-face-A
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-odd-diff-face-A)
-	(ediff-hide-face 'ediff-odd-diff-face-A)
-	(or (face-differs-from-default-p 'ediff-odd-diff-face-A)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face
-		    'foreground 'ediff-odd-diff-face-A "White")
-		   (ediff-set-face
-		    'background 'ediff-odd-diff-face-A "Gray"))
-		  (t 
-		   (copy-face 'italic 'ediff-odd-diff-face-A)
-		   (ediff-set-face-pixmap 'ediff-odd-diff-face-A
-					  ediff-odd-diff-pixmap)
-		   )))
-	'ediff-odd-diff-face-A))
-  "Face used to highlight odd-numbered differences in buffer A.")
+;;(defvar ediff-odd-diff-face-A
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-odd-diff-face-A)
+;;	(or (face-differs-from-default-p 'ediff-odd-diff-face-A)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face
+;;		    'foreground 'ediff-odd-diff-face-A "White")
+;;		   (ediff-set-face
+;;		    'background 'ediff-odd-diff-face-A "Gray"))
+;;		  (t 
+;;		   (copy-face 'italic 'ediff-odd-diff-face-A)
+;;		   (ediff-set-face-pixmap 'ediff-odd-diff-face-A
+;;					  ediff-odd-diff-pixmap)
+;;		   )))
+;;	'ediff-odd-diff-face-A))
+;;  "Face used for highlighting odd-numbered differences in buffer A.")
+
+(defface ediff-odd-diff-face-A
+  '((((class color)) (:foreground "White" :background "Grey"))
+    (t (:italic t :stipple "gray1")))
+  "Face for highlighting odd-numbered non-current differences in buffer A."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-odd-diff-face-A 'ediff-odd-diff-face-A)
+(ediff-hide-face 'ediff-odd-diff-face-A)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-odd-diff-face-A "gray1"))
       
-(defvar ediff-odd-diff-face-B
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-odd-diff-face-B)
-	(ediff-hide-face 'ediff-odd-diff-face-B)
-	(or (face-differs-from-default-p 'ediff-odd-diff-face-B)
-	    (cond ((ediff-color-display-p)
-		   (ediff-set-face
-		    'foreground 'ediff-odd-diff-face-B "Black")
-		   (ediff-set-face
-		    'background 'ediff-odd-diff-face-B "light grey"))
-		  (t 
-		   (copy-face 'italic 'ediff-odd-diff-face-B)
-		   (ediff-set-face-pixmap 'ediff-odd-diff-face-B
-					  ediff-odd-diff-pixmap)
-		   )))
-	'ediff-odd-diff-face-B))
-  "Face used to highlight odd-numbered differences in buffer B.")
+;;(defvar ediff-odd-diff-face-B
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-odd-diff-face-B)
+;;	(ediff-hide-face 'ediff-odd-diff-face-B)
+;;	(or (face-differs-from-default-p 'ediff-odd-diff-face-B)
+;;	    (cond ((ediff-color-display-p)
+;;		   (ediff-set-face
+;;		    'foreground 'ediff-odd-diff-face-B "Black")
+;;		   (ediff-set-face
+;;		    'background 'ediff-odd-diff-face-B "light grey"))
+;;		  (t 
+;;		   (copy-face 'italic 'ediff-odd-diff-face-B)
+;;		   (ediff-set-face-pixmap 'ediff-odd-diff-face-B
+;;					  ediff-odd-diff-pixmap)
+;;		   )))
+;;	'ediff-odd-diff-face-B))
+;;  "Face used for highlighting odd-numbered differences in buffer B.")
+
+(defface ediff-odd-diff-face-B
+  '((((class color)) (:foreground "Black" :background "light grey"))
+    (t (:italic t :stipple "gray1")))
+  "Face for highlighting odd-numbered non-current differences in buffer B."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-odd-diff-face-B 'ediff-odd-diff-face-B)
+(ediff-hide-face 'ediff-odd-diff-face-B)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-odd-diff-face-B "gray1"))
     
-(defvar ediff-odd-diff-face-C
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-odd-diff-face-C)
-	(ediff-hide-face 'ediff-odd-diff-face-C)
-	(or (face-differs-from-default-p 'ediff-odd-diff-face-C)
-	    (progn
-	      (copy-face 'ediff-odd-diff-face-A 'ediff-odd-diff-face-C)
-	      (ediff-set-face-pixmap 'ediff-odd-diff-face-C
-				     ediff-odd-diff-pixmap)))
-	'ediff-odd-diff-face-C))
-  "Face used to highlight odd-numbered differences in buffer C.")
+;;(defvar ediff-odd-diff-face-C
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-odd-diff-face-C)
+;;	(or (face-differs-from-default-p 'ediff-odd-diff-face-C)
+;;	    (progn
+;;	      (copy-face 'ediff-odd-diff-face-A 'ediff-odd-diff-face-C)
+;;	      (ediff-set-face-pixmap 'ediff-odd-diff-face-C
+;;				     ediff-odd-diff-pixmap)))
+;;	'ediff-odd-diff-face-C))
+;;  "Face used for highlighting odd-numbered differences in buffer C.")
+
+(defface ediff-odd-diff-face-C
+  '((((class color)) (:foreground "White" :background "Grey"))
+    (t (:italic t :stipple "gray1")))
+  "Face for highlighting odd-numbered non-current differences in buffer C."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-odd-diff-face-C 'ediff-odd-diff-face-C)
+(ediff-hide-face 'ediff-odd-diff-face-C)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-odd-diff-face-C "gray1"))
 
-(defvar ediff-odd-diff-face-Ancestor 
-  (if (ediff-has-face-support-p)
-      (progn
-	(make-face 'ediff-odd-diff-face-Ancestor)
-	(ediff-hide-face 'ediff-odd-diff-face-Ancestor)
-	(or (face-differs-from-default-p 'ediff-odd-diff-face-Ancestor)
-	    (progn
-	      (copy-face 'ediff-odd-diff-face-C 'ediff-odd-diff-face-Ancestor)
-	      (ediff-set-face-pixmap 'ediff-odd-diff-face-Ancestor
-				     ediff-odd-diff-pixmap)))
-	'ediff-odd-diff-face-Ancestor))
-  "Face used to highlight even-numbered differences in the ancestor buffer.")
+;;(defvar ediff-odd-diff-face-Ancestor 
+;;  (if (ediff-has-face-support-p)
+;;      (progn
+;;	(make-face 'ediff-odd-diff-face-Ancestor)
+;;	(or (face-differs-from-default-p 'ediff-odd-diff-face-Ancestor)
+;;	    (progn
+;;	      (copy-face 'ediff-odd-diff-face-C 'ediff-odd-diff-face-Ancestor)
+;;	      (ediff-set-face-pixmap 'ediff-odd-diff-face-Ancestor
+;;				     ediff-odd-diff-pixmap)))
+;;	'ediff-odd-diff-face-Ancestor))
+;;  "Face used for highlighting even-numbered differences in the ancestor buffer.")
+
+(defface ediff-odd-diff-face-Ancestor
+  '((((class color)) (:foreground "Black" :background "light grey"))
+    (t (:italic t :stipple "gray1")))
+  "Face for highlighting odd-numbered non-current differences in the ancestor buffer."
+  :group 'ediff-highlighting)
+;; An internal variable. Ediff takes the face from here. When unhighlighting,
+;; this variable is set to nil, then again to the appropriate face.
+(defvar ediff-odd-diff-face-Ancestor 'ediff-odd-diff-face-Ancestor)
+(ediff-hide-face 'ediff-odd-diff-face-Ancestor)
+;; Until custom.el for XEmacs starts supporting :stipple we do this.
+;; This means that some use customization may be trashed.
+(if (and ediff-xemacs-p
+	 (ediff-has-face-support-p)
+	 (not (ediff-color-display-p))) 
+    (ediff-set-face-pixmap 'ediff-odd-diff-face-Ancestor "gray1"))
 
 ;; Association between buffer types and odd-diff-face symbols
 (defconst ediff-odd-diff-face-alist
--- a/lisp/ediff-mult.el	Sat Aug 09 03:44:54 1997 +0000
+++ b/lisp/ediff-mult.el	Sat Aug 09 04:30:41 1997 +0000
@@ -93,7 +93,7 @@
 (provide 'ediff-mult)
 
 (defgroup ediff-mult nil
-  "Multi-file and multi-buffer processing in ediff"
+  "Multi-file and multi-buffer processing in Ediff"
   :prefix "ediff-"
   :group 'ediff)
 
--- a/lisp/ediff.el	Sat Aug 09 03:44:54 1997 +0000
+++ b/lisp/ediff.el	Sat Aug 09 04:30:41 1997 +0000
@@ -7,7 +7,7 @@
 ;; Keywords: comparing, merging, patching, version control.
 
 (defconst ediff-version "2.67" "The current version of Ediff")
-(defconst ediff-date "July 31, 1997" "Date of last update")  
+(defconst ediff-date "August 7, 1997" "Date of last update")  
 
 
 ;; This file is part of GNU Emacs.
--- a/lisp/emulation/viper-init.el	Sat Aug 09 03:44:54 1997 +0000
+++ b/lisp/emulation/viper-init.el	Sat Aug 09 04:30:41 1997 +0000
@@ -692,6 +692,15 @@
 
 ;;; Face-saving tricks
 
+;;(defcustom viper-replace-overlay-pixmap "gray3"
+;;  "Pixmap to use for search face on non-color displays."
+;;  :type 'string
+;;  :group 'viper)
+;;(defcustom viper-search-face-pixmap "gray3"
+;;  "Pixmap to use for search face on non-color displays."
+;;  :type 'string
+;;  :group 'viper)
+
 (defun viper-hide-face (face)
   (if (and (viper-has-face-support-p) viper-emacs-p)
       (add-to-list 'facemenu-unlisted-faces face)))
--- a/lisp/emulation/viper-util.el	Sat Aug 09 03:44:54 1997 +0000
+++ b/lisp/emulation/viper-util.el	Sat Aug 09 04:30:41 1997 +0000
@@ -1130,7 +1130,7 @@
    'forward 
    (cond ((eq viper-syntax-preference 'strict-vi)
 	  "")
-	 (t viper-ALPHA-char-class ))
+	 (t viper-ALPHA-char-class))
    (cond ((eq viper-syntax-preference 'strict-vi)
 	  (concat viper-strict-ALPHA-chars addl-chars))
 	 (t addl-chars))))
@@ -1141,7 +1141,7 @@
    'backward 
    (cond ((eq viper-syntax-preference 'strict-vi)
 	  "")
-	 (t viper-ALPHA-char-class ))
+	 (t viper-ALPHA-char-class))
    (cond ((eq viper-syntax-preference 'strict-vi)
 	  (concat viper-strict-ALPHA-chars addl-chars))
 	 (t addl-chars))))
--- a/lisp/emulation/viper.el	Sat Aug 09 03:44:54 1997 +0000
+++ b/lisp/emulation/viper.el	Sat Aug 09 04:30:41 1997 +0000
@@ -8,7 +8,7 @@
 
 ;; Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
 
-(defconst viper-version "2.96 of August 1, 1997"
+(defconst viper-version "2.96 of August 7, 1997"
   "The current version of Viper")
 
 ;; This file is part of GNU Emacs.