# HG changeset patch
# User Karl Heuer <kwzh@gnu.org>
# Date 934602901 0
# Node ID 0c8c07d1d12fd6867852039db0f7d7a18e159fd0
# Parent  9f7a9dceb11be02cfbdc0f50fd3a7b22db9efa52
(ad-special-forms): Use track-mouse iff bound.

diff -r 9f7a9dceb11b -r 0c8c07d1d12f lisp/emacs-lisp/advice.el
--- a/lisp/emacs-lisp/advice.el	Sat Aug 14 03:24:48 1999 +0000
+++ b/lisp/emacs-lisp/advice.el	Sat Aug 14 03:55:01 1999 +0000
@@ -2472,13 +2472,16 @@
 ;; There is no way to determine whether some subr is a special form or not,
 ;; hence we need this list (which is probably out of date):
 (defvar ad-special-forms
-  (mapcar 'symbol-function
-	  '(and catch cond condition-case defconst defmacro
-		defun defvar function if interactive let let*
-		or prog1 prog2 progn quote save-current-buffer
-		save-excursion save-restriction save-window-excursion
-		setq setq-default track-mouse unwind-protect while
-		with-output-to-temp-buffer)))
+  (let ((tem '(and catch cond condition-case defconst defmacro
+		   defun defvar function if interactive let let*
+		   or prog1 prog2 progn quote save-current-buffer
+		   save-excursion save-restriction save-window-excursion
+		   setq setq-default track-mouse unwind-protect while
+		   with-output-to-temp-buffer)))
+    ;; track-mouse could be void in some configurations.
+    (if (fboundp 'track-mouse)
+	(setq tem (cons 'track-mouse tem)))
+    (mapcar 'symbol-function tem)))
 
 (defmacro ad-special-form-p (definition)
   ;;"non-nil if DEFINITION is a special form."