From 7149cc54e7e8bb2266f44221d7f4b4bed70579f3 Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Sun, 7 Feb 2016 15:06:43 +0000 Subject: [PATCH] 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. --- lisp/progmodes/cc-mode.el | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 @@ ;; derived-mode-ex.el>. (defun c-leave-cc-mode-mode () - (setq c-buffer-is-cc-mode nil)) + (when c-buffer-is-cc-mode + (save-restriction + (widen) + (c-save-buffer-state () + (c-clear-char-properties (point-min) (point-max) 'category) + (c-clear-char-properties (point-min) (point-max) 'syntax-table) + (c-clear-char-properties (point-min) (point-max) 'c-is-sws) + (c-clear-char-properties (point-min) (point-max) 'c-in-sws) + (c-clear-char-properties (point-min) (point-max) 'c-type) + (if (c-major-mode-is 'awk-mode) + (c-clear-char-properties (point-min) (point-max) 'c-awk-NL-prop)))) + (setq c-buffer-is-cc-mode nil))) (defun c-init-language-vars-for (mode) "Initialize the language variables for one of the language modes -- 2.39.2