+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.
"*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.")
(> (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))
;; 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)
(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 ()
((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)
(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)
(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