Mercurial > emacs
comparison lisp/progmodes/cc-defs.el @ 106911:497e3aa2f614
Fix bug#5395: typing '#' in an empty C buffer throws "args out of range".
* progmodes/cc-defs.el: (c-set-cpp-delimiters, c-clear-cpp-delimiters):
Check for EOB playing the role of delimiter.
author | Alan Mackenzie <acm@muc.de> |
---|---|
date | Tue, 19 Jan 2010 22:10:19 +0000 |
parents | 855f55740303 |
children | 1786f2e6a856 |
comparison
equal
deleted
inserted
replaced
106910:a38986b4badb | 106911:497e3aa2f614 |
---|---|
1215 ;; propery '(14) (generic comment delimiter). | 1215 ;; propery '(14) (generic comment delimiter). |
1216 (defmacro c-set-cpp-delimiters (beg end) | 1216 (defmacro c-set-cpp-delimiters (beg end) |
1217 ;; This macro does a hidden buffer change. | 1217 ;; This macro does a hidden buffer change. |
1218 `(progn | 1218 `(progn |
1219 (c-put-char-property ,beg 'category 'c-cpp-delimiter) | 1219 (c-put-char-property ,beg 'category 'c-cpp-delimiter) |
1220 (c-put-char-property ,end 'category 'c-cpp-delimiter))) | 1220 (if (< ,end (point-max)) |
1221 (c-put-char-property ,end 'category 'c-cpp-delimiter)))) | |
1221 (defmacro c-clear-cpp-delimiters (beg end) | 1222 (defmacro c-clear-cpp-delimiters (beg end) |
1222 ;; This macro does a hidden buffer change. | 1223 ;; This macro does a hidden buffer change. |
1223 `(progn | 1224 `(progn |
1224 (c-clear-char-property ,beg 'category) | 1225 (c-clear-char-property ,beg 'category) |
1225 (c-clear-char-property ,end 'category))) | 1226 (if (< ,end (point-max)) |
1227 (c-clear-char-property ,end 'category)))) | |
1226 | 1228 |
1227 (defsubst c-comment-out-cpps () | 1229 (defsubst c-comment-out-cpps () |
1228 ;; Render all preprocessor constructs syntactically commented out. | 1230 ;; Render all preprocessor constructs syntactically commented out. |
1229 (put 'c-cpp-delimiter 'syntax-table c-cpp-delimiter)) | 1231 (put 'c-cpp-delimiter 'syntax-table c-cpp-delimiter)) |
1230 (defsubst c-uncomment-out-cpps () | 1232 (defsubst c-uncomment-out-cpps () |