Mercurial > emacs
diff lisp/progmodes/cc-langs.el @ 69140:3d8b060d10fb
cc-align.el, cc-awk.el, cc-bytecomp.el, cc-cmds.el, cc-compat.el,
cc-defs.el, cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el,
cc-mode.el, cc-styles.el, cc-subword.el, cc-vars.el: Add 2006 to the
copyright statement.
cc-awk.el: (c-awk-after-change): Protect the match data with
save-match-data. It was being corrupted when Font Lock was not enabled.
(ii): Fix a typo.
cc-cmds.el, cc-mode.el, cc-engine.el (c-update-modeline): Concatenate the
minor mode indicators directly onto mode-name, removing
c-submode-indicators. Sometimes, c-s-i got separated from the mode name
on the mode line.
cc-cmds.el, cc-mode.el: Rename c-hungry-backspace to
c-hungry-delete-backwards, at the request of RMS. Leave the old name as
an alias.
cc-cmds.el (c-electric-brace, c-electric-semi&comma, c-electric-colon):
Correct doc-strings: "/ln" -> "/la".
cc-cmds.el (c-electric-brace): Fix clean-up brace-else-brace (error due
to mbeg, mend being undefined).
cc-defs.el (c-version): Update to 5.31.3.
cc-defs.el: [Supersedes patch V1.38]: (top level): Check for a buggy
font-lock-compile-keywords ONLY in XEmacs. GNU Emacs 22 now has a check
which would throw an error here.
cc-engine.el (c-beginning-of-statement-1): Clarify doc-string and
comments. Distinguish real labels ("case 1:" or "foo:") from non-labels
("public:").
cc-engine.el (c-after-change-check-<>-operators): Remove save-match-data,
reversing change for V1.45. save-match-data is now in c-after-change.
cc-engine.el (c-forward-objc-directive): Replace c-forward-token-2 with
crude coding; c-f-t-2 doesn't move over a token at EOB. Objc Mode was
hanging after typing, e.g., "@implementation".
cc-langs.el (c-filter-ops): Made it available at runtime too to work when
`c-make-init-lang-vars-fun' needs to evaluate from source.
cc-langs.el (c-make-init-lang-vars-fun): Improved the error message when
there's an evaluation error to show whether it's loaded from source or
not.
(c-mode-menu): Add menu items for Electric Mode and Subword Mode.
cc-mode.el (c-after-change): Protect the match data with save-match-data.
It was getting corrupted by c-after-change-check-<>-operators.
cc-mode.el: File Local variables: Solve the problem where both `mode' and
c-file-offsets are specified: `mode' will overwrite c-f-o's settings:
(c-remove-any-local-eval-or-mode-variables): new function.
(c-postprocess-file-styles): call the above new function, within
c-tentative-buffer-change, to splat `mode' and `eval' before the second
hack-local-variables.
author | Alan Mackenzie <acm@muc.de> |
---|---|
date | Fri, 24 Feb 2006 15:33:02 +0000 |
parents | dc49655f57ae |
children | c4d23fcbb9bd 8a1ee48a8386 |
line wrap: on
line diff
--- a/lisp/progmodes/cc-langs.el Fri Feb 24 12:20:45 2006 +0000 +++ b/lisp/progmodes/cc-langs.el Fri Feb 24 15:33:02 2006 +0000 @@ -1,7 +1,7 @@ ;;; cc-langs.el --- language specific settings for CC Mode -;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software +;; Foundation, Inc. ;; Authors: 1998- Martin Stjernholm ;; 1992-1999 Barry A. Warsaw @@ -177,7 +177,7 @@ '(def-edebug-spec c-lang-defvar (&define name def-form &optional stringp))) -(eval-when-compile +(eval-and-compile ;; Some helper functions used when building the language constants. (defun c-filter-ops (ops opgroup-filter op-filter &optional xlate) @@ -260,10 +260,14 @@ ("Toggle..." ["Syntactic indentation" c-toggle-syntactic-indentation :style toggle :selected c-syntactic-indentation] - ["Auto newline" c-toggle-auto-newline + ["Electric mode" c-toggle-electric-state + :style toggle :selected c-electric-flag] + ["Auto newline" c-toggle-auto-newline :style toggle :selected c-auto-newline] - ["Hungry delete" c-toggle-hungry-state - :style toggle :selected c-hungry-delete-key]))) + ["Hungry delete" c-toggle-hungry-state + :style toggle :selected c-hungry-delete-key] + ["Subword mode" c-subword-mode + :style toggle :selected c-subword-mode]))) ;;; Syntax tables. @@ -2826,7 +2830,7 @@ ;; This let sets up the context for `c-mode-var' and similar ;; that could be in the result from `cl-macroexpand-all'. (let ((c-buffer-is-cc-mode ',mode) - current-var) + current-var source-eval) (condition-case err (if (eq c-version-sym ',c-version-sym) @@ -2852,6 +2856,7 @@ ;; (put ',mode 'c-has-warned-lang-consts t)) (require 'cc-langs) + (setq source-eval t) (let ((init (cdr c-lang-variable-inits))) (while init (setq current-var (caar init)) @@ -2860,8 +2865,14 @@ (error (if current-var - (message "Eval error in the `c-lang-defvar' for `%s': %S" - current-var err) + (message "Eval error in the `c-lang-defvar' for `%s'%s: %S" + current-var + (if source-eval + (format "\ + (fallback source eval - %s compiled with CC Mode %s but loaded with %s)" + ',mode ,c-version c-version) + "") + err) (signal (car err) (cdr err))))))) ;; Being evaluated from source. Always use the dynamic method to @@ -2881,8 +2892,9 @@ (error (if current-var - (message "Eval error in the `c-lang-defvar' for `%s': %S" - current-var err) + (message + "Eval error in the `c-lang-defvar' for `%s' (source eval): %S" + current-var err) (signal (car err) (cdr err))))))) ))