changeset 21105:b40ae72a5b26

(c-enable-xemacs-performance-kludge-p): New variable.
author Richard M. Stallman <rms@gnu.org>
date Sun, 08 Mar 1998 06:45:26 +0000
parents a353553581b6
children 5e5fa0a34cb0
files lisp/progmodes/cc-vars.el
diffstat 1 files changed, 45 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/cc-vars.el	Sun Mar 08 00:53:39 1998 +0000
+++ b/lisp/progmodes/cc-vars.el	Sun Mar 08 06:45:26 1998 +0000
@@ -426,5 +426,50 @@
 
 
 
+;; Figure out what features this Emacs has
+;;;###autoload
+(defconst c-emacs-features
+  (let ((infodock-p (boundp 'infodock-version))
+	(comments
+	 ;; XEmacs 19 and beyond use 8-bit modify-syntax-entry flags.
+	 ;; Emacs 19 uses a 1-bit flag.  We will have to set up our
+	 ;; syntax tables differently to handle this.
+	 (let ((table (copy-syntax-table))
+	       entry)
+	   (modify-syntax-entry ?a ". 12345678" table)
+	   (cond
+	    ;; XEmacs 19, and beyond Emacs 19.34
+	    ((arrayp table)
+	     (setq entry (aref table ?a))
+	     ;; In Emacs, table entries are cons cells
+	     (if (consp entry) (setq entry (car entry))))
+	    ;; XEmacs 20
+	    ((fboundp 'get-char-table) (setq entry (get-char-table ?a table)))
+	    ;; before and including Emacs 19.34
+	    ((and (fboundp 'char-table-p)
+		  (char-table-p table))
+	     (setq entry (car (char-table-range table [?a]))))
+	    ;; incompatible
+	    (t (error "CC Mode is incompatible with this version of Emacs")))
+	   (if (= (logand (lsh entry -16) 255) 255)
+	       '8-bit
+	     '1-bit))))
+    (if infodock-p
+	(list comments 'infodock)
+      (list comments)))
+  "A list of features extant in the Emacs you are using.
+There are many flavors of Emacs out there, each with different
+features supporting those needed by CC Mode.  Here's the current
+supported list, along with the values for this variable:
+
+ XEmacs 19:                  (8-bit)
+ XEmacs 20:                  (8-bit)
+ Emacs 19:                   (1-bit)
+
+Infodock (based on XEmacs) has an additional symbol on this list:
+'infodock.")
+
+
+
 (provide 'cc-vars)
 ;;; cc-vars.el ends here