I'm a firm believer in XEmacs packages using XEmacs features. Here's
another package that needed very little tweaking to get rid of its
dependence on fsf-compat.
And as an added bonus, there's a bug fix too. `reb-color-display-p'
would _always_ return nil on XEmacs.
re-builder patch:
ChangeLog files diff command: cvs -q diff -U 0
Files affected: ChangeLog
Source files diff command: cvs -q diff -uN
Files affected: re-builder.el Makefile
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/re-builder/ChangeLog,v
retrieving revision 1.2
diff -u -p -U0 -r1.2 ChangeLog
--- ChangeLog 9 Mar 2005 20:23:20 -0000 1.2
+++ ChangeLog 10 Mar 2005 09:33:55 -0000
@@ -0,0 +1,12 @@
+2005-03-10 Steve Youngs <steve(a)sxemacs.org>
+
+ * Makefile (REQUIRES): Remove fsf-compat. This package uses
+ extents natively now.
+
+ * re-builder.el: Set up better extent/overlay compatibility.
+ (reb-delete-overlays): Use it here.
+ (reb-update-overlays): Ditto.
+
+ (reb-color-display-p): Call `device-class' in
+ XEmacs so this function will DTRT in XEmacs.
+
Index: Makefile
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/re-builder/Makefile,v
retrieving revision 1.2
diff -u -p -u -r1.2 Makefile
--- Makefile 9 Mar 2005 20:23:20 -0000 1.2
+++ Makefile 10 Mar 2005 09:33:45 -0000
@@ -25,7 +25,7 @@ AUTHOR_VERSION = 1.20
MAINTAINER = Aidan Kehoe <aidan(a)xemacs.org>
PACKAGE = re-builder
PKG_TYPE = regular
-REQUIRES = fsf-compat
+REQUIRES =
CATEGORY = standard
STANDARD_DOCS = t
Index: re-builder.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/re-builder/re-builder.el,v
retrieving revision 1.1
diff -u -p -u -r1.1 re-builder.el
--- re-builder.el 4 Mar 2005 20:29:56 -0000 1.1
+++ re-builder.el 10 Mar 2005 09:33:45 -0000
@@ -110,9 +110,17 @@
;;; Code:
-;; On XEmacs, load the overlay compatibility library
-(if (not (fboundp 'make-overlay))
- (require 'overlay))
+;; Extent/overlay compatibility
+(if (featurep 'xemacs)
+ ;; (S)XEmacs
+ (progn
+ (defalias 'reb-delete-overlay 'delete-extent)
+ (defalias 'reb-make-overlay 'make-extent)
+ (defalias 'reb-overlay-put 'set-extent-property))
+ ;; GNU/Emacs
+ (defalias 'reb-delete-overlay 'delete-overlay)
+ (defalias 'reb-make-overlay 'make-overlay)
+ (defalias 'reb-overlay-put 'overlay-put))
;; User costomizable variables
(defgroup re-builder nil
@@ -320,7 +328,7 @@ Except for Lisp syntax this is the same
;; emacs/xemacs compatibility
(if (fboundp 'frame-parameter)
(frame-parameter (selected-frame) 'display-type)
- (frame-property (selected-frame) 'display-type))))
+ (device-class (frame-device (selected-frame))))))
(defsubst reb-lisp-syntax-p ()
"Return non-nil if RE Builder uses a Lisp syntax."
@@ -532,7 +540,7 @@ optional fourth argument FORCE is non-ni
"Delete all RE Builder overlays in the `reb-target-buffer' buffer."
(if (buffer-live-p reb-target-buffer)
(with-current-buffer reb-target-buffer
- (mapcar 'delete-overlay reb-overlays)
+ (mapcar 'reb-delete-overlay reb-overlays)
(setq reb-overlays nil))))
(defun reb-assert-buffer-in-window ()
@@ -661,25 +669,25 @@ If SUBEXP is non-nil mark only the corre
(or (not reb-auto-match-limit)
(< matches reb-auto-match-limit)))
(if (= 0 (length (match-string 0)))
- (error "Empty regular expression!"))
+ (error "Empty regular expression!"))
(let ((i 0))
(setq matches (1+ matches))
(while (<= i subexps)
(if (and (or (not subexp) (= subexp i))
(match-beginning i))
- (let ((overlay (make-overlay (match-beginning i)
- (match-end i)))
+ (let ((overlay (reb-make-overlay (match-beginning i)
+ (match-end i)))
(face-name (format "reb-match-%d" i)))
(if (not firstmatch)
(setq firstmatch (match-data)))
(setq reb-overlays (cons overlay reb-overlays)
submatches (1+ submatches))
- (overlay-put
+ (reb-overlay-put
overlay 'face
(or (intern-soft face-name)
(error "Too many subexpressions - face `%s' not defined"
face-name )))
- (overlay-put overlay 'priority i)))
+ (reb-overlay-put overlay 'priority i)))
(setq i (1+ i))))))
(let ((count (if subexp submatches matches)))
(message "%s %smatch%s%s"
--
|---<Steve Youngs>---------------<GnuPG KeyID: A94B3003>---|
| I am Dyslexic of Borg. |
| Fusistance is retile. Your arse will be laminated. |
|------------------------------------<steve(a)sxemacs.org>---|