aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mackenzie2016-02-07 15:06:43 +0000
committerAlan Mackenzie2016-02-07 15:06:43 +0000
commit7149cc54e7e8bb2266f44221d7f4b4bed70579f3 (patch)
treef12a4c10343a2bc360dd7b9c5abb3cb6567903cc
parent90c647b97f0e62ca8bc2fc1d27f0170136277fb7 (diff)
downloademacs-7149cc54e7e8bb2266f44221d7f4b4bed70579f3.tar.gz
emacs-7149cc54e7e8bb2266f44221d7f4b4bed70579f3.zip
On leaving CC Mode, clean up by removing character properties.
* lisp/progmodes/cc-mode.el (c-leave-cc-mode-mode): Remove from the buffer all instances of the text properties/extents category, syntax-table, c-is-sws, c-in-sws, c-type, and c-awk-NL-prop.
-rw-r--r--lisp/progmodes/cc-mode.el13
1 files changed, 12 insertions, 1 deletions
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 738870b727a..58aebf8b410 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -141,7 +141,18 @@
141;; derived-mode-ex.el>. 141;; derived-mode-ex.el>.
142 142
143(defun c-leave-cc-mode-mode () 143(defun c-leave-cc-mode-mode ()
144 (setq c-buffer-is-cc-mode nil)) 144 (when c-buffer-is-cc-mode
145 (save-restriction
146 (widen)
147 (c-save-buffer-state ()
148 (c-clear-char-properties (point-min) (point-max) 'category)
149 (c-clear-char-properties (point-min) (point-max) 'syntax-table)
150 (c-clear-char-properties (point-min) (point-max) 'c-is-sws)
151 (c-clear-char-properties (point-min) (point-max) 'c-in-sws)
152 (c-clear-char-properties (point-min) (point-max) 'c-type)
153 (if (c-major-mode-is 'awk-mode)
154 (c-clear-char-properties (point-min) (point-max) 'c-awk-NL-prop))))
155 (setq c-buffer-is-cc-mode nil)))
145 156
146(defun c-init-language-vars-for (mode) 157(defun c-init-language-vars-for (mode)
147 "Initialize the language variables for one of the language modes 158 "Initialize the language variables for one of the language modes