aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mackenzie2010-01-19 22:10:19 +0000
committerAlan Mackenzie2010-01-19 22:10:19 +0000
commit8ee04f3a4f72eb41f2c0ead6287185c829654b43 (patch)
treea07a29c1989fdf8813f13c17f7487cb3ffc58b45
parentbc4b76f12a306f8fbc892e6f1e00733f3ef1981f (diff)
downloademacs-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/ChangeLog7
-rw-r--r--lisp/progmodes/cc-defs.el6
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 @@
12010-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
12010-01-18 Stephen Leake <stephen_leake@member.fsf.org> 82010-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.