changeset 30089:f7f64f1ccc38

2000-07-05 Michael Kifer <kifer@cs.sunysb.edu> * ediff-diff.el (ediff-wordify): use syntax table. * ediff-init.el (ediff-has-face-support-p): use ediff-color-display-p. (ediff-color-display-p): use display-color-p, changed to defun from defsubst. Got rid of special cases for NeXT and OS/2. * ediff-wind.el (ediff-setup-control-frame): set proper modeline face.
author Michael Kifer <kifer@cs.stonybrook.edu>
date Thu, 06 Jul 2000 05:36:21 +0000
parents 2ed241fb45f7
children 6ea3040d5833
files lisp/ChangeLog lisp/ediff-diff.el lisp/ediff-init.el
diffstat 3 files changed, 44 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Jul 05 22:07:21 2000 +0000
+++ b/lisp/ChangeLog	Thu Jul 06 05:36:21 2000 +0000
@@ -1,3 +1,14 @@
+2000-07-05  Michael Kifer  <kifer@cs.sunysb.edu>
+	
+	* ediff-diff.el (ediff-wordify): use syntax table.
+	* ediff-init.el (ediff-has-face-support-p): use
+	ediff-color-display-p.
+	(ediff-color-display-p): use display-color-p, changed to defun
+	from defsubst.
+	Got rid of special cases for NeXT and OS/2.
+	* ediff-wind.el (ediff-setup-control-frame): set proper modeline
+	face.
+	
 2000-07-05  Stefan Monnier  <monnier@cs.yale.edu>
 
 	* emacs-lisp/lucid.el: Require CL.
--- a/lisp/ediff-diff.el	Wed Jul 05 22:07:21 2000 +0000
+++ b/lisp/ediff-diff.el	Thu Jul 06 05:36:21 2000 +0000
@@ -1216,7 +1216,7 @@
   "*Characters constituting white space.
 These characters are ignored when differing regions are split into words.")
 
-(defvar ediff-word-1 "\\(a-zA-Z---_\\|\w\\)"
+(defvar ediff-word-1 "a-zA-Z---_"
   "*Characters that constitute words of type 1.
 More precisely, [ediff-word-1] is a regexp that matches type 1 words.
 See `ediff-forward-word' for more details.")  
@@ -1253,13 +1253,19 @@
       (> (skip-chars-forward ediff-word-4) 0)
       ))
 
+
 (defun ediff-wordify (beg end in-buffer out-buffer &optional control-buf)
-  (let (sv-point string)
+  (let (inbuf-syntax-tbl sv-point string)
     (save-excursion
      (set-buffer in-buffer)
+     (setq inbuf-syntax-tbl (syntax-table))
      (setq string (buffer-substring-no-properties beg end))
 
      (set-buffer out-buffer)
+     ;; Make sure that temp buff syntax table is the same a the original buf
+     ;; syntax tbl, because we use ediff-forward-word in both and
+     ;; ediff-forward-word depends on the syntax classes of characters.
+     (set-syntax-table inbuf-syntax-tbl)
      (erase-buffer)
      (insert string)
      (goto-char (point-min))
@@ -1271,7 +1277,8 @@
        ;; different invocations
        (if control-buf
 	   (funcall 
-	    (ediff-with-current-buffer control-buf ediff-forward-word-function))
+	    (ediff-with-current-buffer 
+		control-buf ediff-forward-word-function))
 	 (funcall ediff-forward-word-function))
        (setq sv-point (point))
        (skip-chars-forward ediff-whitespace)
--- a/lisp/ediff-init.el	Wed Jul 05 22:07:21 2000 +0000
+++ b/lisp/ediff-init.el	Thu Jul 06 05:36:21 2000 +0000
@@ -63,8 +63,8 @@
 (defun ediff-has-face-support-p ()
   (cond ((ediff-window-display-p))
 	(ediff-force-faces)
-	(ediff-emacs-p (or (x-display-color-p)
-			   (memq (ediff-device-type) '(pc))))
+	((ediff-color-display-p))
+	(ediff-emacs-p (memq (ediff-device-type) '(pc)))
 	(ediff-xemacs-p (memq (ediff-device-type) '(tty pc)))))
 
 (defun ediff-has-toolbar-support-p ()
@@ -739,22 +739,15 @@
 	  ((memq op '(< <=)) t))))
   
   
-
-;; A fix for NeXT Step
-;; Should probably be eliminated in later versions.
-(if (and (ediff-window-display-p) (eq (ediff-device-type) 'ns))
-    (progn
-      (fset 'x-display-color-p (symbol-function 'ns-display-color-p))
-      (fset 'x-color-defined-p (symbol-function 'ns-color-defined-p))
-      (fset 'x-display-pixel-height (symbol-function 'ns-display-pixel-height))
-      (fset 'x-display-pixel-width (symbol-function 'ns-display-pixel-width))
-      ))
-
-
-(defsubst ediff-color-display-p ()
-  (if ediff-emacs-p
-      (x-display-color-p)
-    (eq (device-class (selected-device)) 'color)))
+(defun ediff-color-display-p ()
+  (condition-case nil
+      (if ediff-emacs-p
+	  (if (fboundp 'display-color-p)
+	      (display-color-p)
+	    (x-display-color-p))
+	(eq (device-class (selected-device)) 'color))
+    (error
+     nil)))
 
   
 (if (ediff-has-face-support-p)
@@ -762,12 +755,10 @@
 	(progn
 	  (fset 'ediff-valid-color-p (symbol-function 'valid-color-name-p))
 	  (fset 'ediff-get-face (symbol-function 'get-face)))
-      ;; Temporary fix for OS/2 port of Emacs
-      ;; pm-win.el in PM-Emacs should be fixed.
-      (if (eq (ediff-device-type) 'pm)
-	  (fset 'ediff-valid-color-p 
-		(lambda (color) (assoc color pm-color-alist)))
-	(fset 'ediff-valid-color-p (symbol-function 'x-color-defined-p)))
+      (fset 'ediff-valid-color-p (symbol-function
+				  (if (fboundp 'color-defined-p)
+				      'color-defined-p
+				    'x-color-defined-p)))
       (fset 'ediff-get-face (symbol-function 'internal-get-face))))
 
 (if (ediff-window-display-p)
@@ -777,10 +768,14 @@
 		(symbol-function 'device-pixel-width))
 	  (fset 'ediff-display-pixel-height
 		(symbol-function 'device-pixel-height)))
-      (fset 'ediff-display-pixel-width 
-	    (symbol-function 'x-display-pixel-width))
-      (fset 'ediff-display-pixel-height
-	    (symbol-function 'x-display-pixel-height))))
+      (fset 'ediff-display-pixel-width (symbol-function
+					(if (fboundp 'display-pixel-width)
+					    'display-pixel-width
+					  'x-display-pixel-width)))
+      (fset 'ediff-display-pixel-height (symbol-function
+					 (if (fboundp 'display-pixel-height)
+					     'display-pixel-height
+					   'x-display-pixel-height)))))
       
 ;; A-list of current-diff-overlay symbols asssociated with buf types
 (defconst ediff-current-diff-overlay-alist