# HG changeset patch # User Richard M. Stallman # Date 889339526 0 # Node ID b40ae72a5b26cb6fa4d08ab0b0f8982082ecf58f # Parent a353553581b6ef6656ebb7d0c3cc6351004b1f0b (c-enable-xemacs-performance-kludge-p): New variable. diff -r a353553581b6 -r b40ae72a5b26 lisp/progmodes/cc-vars.el --- 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