diff options
| author | Alan Mackenzie | 2010-01-19 22:10:19 +0000 |
|---|---|---|
| committer | Alan Mackenzie | 2010-01-19 22:10:19 +0000 |
| commit | 8ee04f3a4f72eb41f2c0ead6287185c829654b43 (patch) | |
| tree | a07a29c1989fdf8813f13c17f7487cb3ffc58b45 | |
| parent | bc4b76f12a306f8fbc892e6f1e00733f3ef1981f (diff) | |
| download | emacs-8ee04f3a4f72eb41f2c0ead6287185c829654b43.tar.gz emacs-8ee04f3a4f72eb41f2c0ead6287185c829654b43.zip | |
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.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/progmodes/cc-defs.el | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f9e55700c10..4b34373f2d3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2010-01-19 Alan Mackenzie <acm@muc.de> | ||
| 2 | |||
| 3 | * progmodes/cc-defs.el: Fix bug#5395: typing '#' in an empty | ||
| 4 | buffer throws "args out of range". | ||
| 5 | (c-set-cpp-delimiters, c-clear-cpp-delimiters): Check for EOB | ||
| 6 | playing the role of delimiter. | ||
| 7 | |||
| 1 | 2010-01-18 Stephen Leake <stephen_leake@member.fsf.org> | 8 | 2010-01-18 Stephen Leake <stephen_leake@member.fsf.org> |
| 2 | 9 | ||
| 3 | * lisp/progmodes/ada-mode.el: Fix bug#5400. | 10 | * lisp/progmodes/ada-mode.el: Fix bug#5400. |
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index de0cd896b8e..bb91dee6ce8 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el | |||
| @@ -1217,12 +1217,14 @@ been put there by c-put-char-property. POINT remains unchanged." | |||
| 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. |