;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-;; 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
(defvar ediff-multiframe)
(defvar ediff-use-toolbar-p)
(defvar mswindowsx-bitmap-file-path)
-
-(and noninteractive
- (eval-when-compile
- (load "ange-ftp" 'noerror)))
;; end pacifier
-;; Is it XEmacs?
-(defconst ediff-xemacs-p (featurep 'xemacs))
-;; Is it Emacs?
-(defconst ediff-emacs-p (not ediff-xemacs-p))
-
;; This is used to avoid compilation warnings. When emacs/xemacs forms can
;; generate compile time warnings, we use this macro.
;; In this case, the macro will expand into the form that is appropriate to the
(cond ((ediff-window-display-p))
(ediff-force-faces)
((ediff-color-display-p))
- (ediff-emacs-p (memq (ediff-device-type) '(pc)))
- (ediff-xemacs-p (memq (ediff-device-type) '(tty pc)))
+ ((featurep 'emacs) (memq (ediff-device-type) '(pc)))
+ ((featurep 'xemacs) (memq (ediff-device-type) '(tty pc)))
))
;; toolbar support for emacs hasn't been implemented in ediff
(boundp 'ediff-use-toolbar-p)
ediff-use-toolbar-p)) ;Does the user want it ?
-;; Defines SYMBOL as an advertised local variable.
+;; Defines VAR as an advertised local variable.
;; Performs a defvar, then executes `make-variable-buffer-local' on
;; the variable. Also sets the `permanent-local' property,
;; so that `kill-all-local-variables' (called by major-mode setting
;;
;; Plagiarised from `emerge-defvar-local' for XEmacs.
(defmacro ediff-defvar-local (var value doc)
+ "Defines VAR as a local variable."
(declare (indent defun))
`(progn
(defvar ,var ,value ,doc)
;; Doesn't save the point and mark.
;; This is `with-current-buffer' with the added test for live buffers."
(defmacro ediff-with-current-buffer (buffer &rest body)
+ "Evaluates BODY in BUFFER."
(declare (indent 1) (debug (form body)))
`(if (ediff-buffer-live-p ,buffer)
(save-current-buffer
*** of %sEmacs, does not seem to be properly installed.
***
*** Please contact your system administrator. "
- (if ediff-xemacs-p "X" "")))
+ (if (featurep 'xemacs) "X" "")))
;; Selective browsing
;; testing for sufficiently high Emacs versions.
(defun ediff-check-version (op major minor &optional type-of-emacs)
(if (and (boundp 'emacs-major-version) (boundp 'emacs-minor-version))
- (and (cond ((eq type-of-emacs 'xemacs) ediff-xemacs-p)
- ((eq type-of-emacs 'emacs) ediff-emacs-p)
+ (and (cond ((eq type-of-emacs 'xemacs) (featurep 'xemacs))
+ ((eq type-of-emacs 'emacs) (featurep 'emacs))
(t t))
(cond ((eq op '=) (and (= emacs-minor-version minor)
(= emacs-major-version major)))
(defface ediff-current-diff-A
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "firebrick" :background "pale green"))
(((class color))
(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
+(if (and (featurep 'xemacs)
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
(copy-face 'modeline ediff-current-diff-face-A))
(defface ediff-current-diff-B
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "DarkOrchid" :background "Yellow"))
(((class color))
(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
+(if (and (featurep 'xemacs)
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
(copy-face 'modeline ediff-current-diff-face-B))
(defface ediff-current-diff-C
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "Navy" :background "Pink"))
(((class color))
(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
+(if (and (featurep 'xemacs)
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
(copy-face 'modeline ediff-current-diff-face-C))
(defface ediff-current-diff-Ancestor
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "Black" :background "VioletRed"))
(((class color))
(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
+(if (and (featurep 'xemacs)
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
(copy-face 'modeline ediff-current-diff-face-Ancestor))
(defface ediff-fine-diff-A
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "Navy" :background "sky blue"))
(((class color))
(ediff-hide-face ediff-fine-diff-face-A)
(defface ediff-fine-diff-B
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "Black" :background "cyan"))
(((class color))
(ediff-hide-face ediff-fine-diff-face-B)
(defface ediff-fine-diff-C
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((type pc))
(:foreground "white" :background "Turquoise"))
(((class color) (min-colors 16))
(ediff-hide-face ediff-fine-diff-face-C)
(defface ediff-fine-diff-Ancestor
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "Black" :background "Green"))
(((class color))
(t "Stipple")))
(defface ediff-even-diff-A
- (if ediff-emacs-p
+ (if (featurep 'emacs)
`((((type pc))
(:foreground "green3" :background "light grey"))
(((class color) (min-colors 16))
(ediff-hide-face ediff-even-diff-face-A)
(defface ediff-even-diff-B
- (if ediff-emacs-p
+ (if (featurep 'emacs)
`((((class color) (min-colors 16))
(:foreground "White" :background "Grey"))
(((class color))
(ediff-hide-face ediff-even-diff-face-B)
(defface ediff-even-diff-C
- (if ediff-emacs-p
+ (if (featurep 'emacs)
`((((type pc))
(:foreground "yellow3" :background "light grey"))
(((class color) (min-colors 16))
(ediff-hide-face ediff-even-diff-face-C)
(defface ediff-even-diff-Ancestor
- (if ediff-emacs-p
+ (if (featurep 'emacs)
`((((type pc))
(:foreground "cyan3" :background "light grey"))
(((class color) (min-colors 16))
(Ancestor . ediff-even-diff-Ancestor)))
(defface ediff-odd-diff-A
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((type pc))
(:foreground "green3" :background "gray40"))
(((class color) (min-colors 16))
(defface ediff-odd-diff-B
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((type pc))
(:foreground "White" :background "gray40"))
(((class color) (min-colors 16))
(ediff-hide-face ediff-odd-diff-face-B)
(defface ediff-odd-diff-C
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((type pc))
(:foreground "yellow3" :background "gray40"))
(((class color) (min-colors 16))
(ediff-hide-face ediff-odd-diff-face-C)
(defface ediff-odd-diff-Ancestor
- (if ediff-emacs-p
+ (if (featurep 'emacs)
'((((class color) (min-colors 16))
(:foreground "cyan3" :background "gray40"))
(((class color))
;;; Misc
;; if nil, this silences some messages
-(defconst ediff-verbose-p t)
+(defvar ediff-verbose-p t)
(defcustom ediff-autostore-merges 'group-jobs-only
"*Save the results of merge jobs automatically.
)
((ediff-key-press-event-p event)
(point))
- (t (error nil))))
+ (t (error "Error"))))
(defun ediff-event-buffer (event)
(cond ((ediff-mouse-event-p event)
)
((ediff-key-press-event-p event)
(current-buffer))
- (t (error nil))))
+ (t (error "Error"))))
(defun ediff-event-key (event-or-key)
(ediff-cond-compile-for-xemacs-or-emacs
(or frame (setq frame (selected-frame)))
(if (ediff-window-display-p)
(let ((frame-or-wind frame))
- (if ediff-xemacs-p
+ (if (featurep 'xemacs)
(setq frame-or-wind (frame-selected-window frame)))
(or do-not-grab-mouse
;; don't set mouse if the user said to never do this