]> git.eshelyaron.com Git - emacs.git/commitdiff
(c-enable-xemacs-performance-kludge-p): New variable.
authorRichard M. Stallman <rms@gnu.org>
Sun, 8 Mar 1998 06:45:26 +0000 (06:45 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 8 Mar 1998 06:45:26 +0000 (06:45 +0000)
lisp/progmodes/cc-vars.el

index 06dc8432eb6d1c6f13d8056007a49814b9ecea9b..9982337a57adf1c7fec94fc0f5ec1191b3aa63ab 100644 (file)
@@ -425,6 +425,51 @@ as designated in the variable `c-file-style'.")
   "Name of style installed in the current buffer.")
 
 
+\f
+;; 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.")
+
+
 \f
 (provide 'cc-vars)
 ;;; cc-vars.el ends here