# HG changeset patch # User Alan Mackenzie # Date 1263939019 0 # Node ID 497e3aa2f6142c5b0e2ba5e9d7ca85ec3e208165 # Parent a38986b4badb6f574882a9bcd68e2b482781213e 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. diff -r a38986b4badb -r 497e3aa2f614 lisp/ChangeLog --- a/lisp/ChangeLog Tue Jan 19 15:56:35 2010 +0100 +++ b/lisp/ChangeLog Tue Jan 19 22:10:19 2010 +0000 @@ -1,3 +1,10 @@ +2010-01-19 Alan Mackenzie + + * progmodes/cc-defs.el: Fix bug#5395: typing '#' in an empty + buffer throws "args out of range". + (c-set-cpp-delimiters, c-clear-cpp-delimiters): Check for EOB + playing the role of delimiter. + 2010-01-18 Stephen Leake * lisp/progmodes/ada-mode.el: Fix bug#5400. diff -r a38986b4badb -r 497e3aa2f614 lisp/progmodes/cc-defs.el --- a/lisp/progmodes/cc-defs.el Tue Jan 19 15:56:35 2010 +0100 +++ b/lisp/progmodes/cc-defs.el Tue Jan 19 22:10:19 2010 +0000 @@ -1217,12 +1217,14 @@ ;; This macro does a hidden buffer change. `(progn (c-put-char-property ,beg 'category 'c-cpp-delimiter) - (c-put-char-property ,end 'category 'c-cpp-delimiter))) + (if (< ,end (point-max)) + (c-put-char-property ,end 'category 'c-cpp-delimiter)))) (defmacro c-clear-cpp-delimiters (beg end) ;; This macro does a hidden buffer change. `(progn (c-clear-char-property ,beg 'category) - (c-clear-char-property ,end 'category))) + (if (< ,end (point-max)) + (c-clear-char-property ,end 'category)))) (defsubst c-comment-out-cpps () ;; Render all preprocessor constructs syntactically commented out.