changeset 75045:a1cc89e6be8b

(c-mask-paragraph): In a block comment, check that the "*/" is present before trying to manipulate the "*/".
author Alan Mackenzie <acm@muc.de>
date Tue, 02 Jan 2007 20:54:10 +0000
parents df6fc158b9fc
children b644db4759fa
files lisp/progmodes/cc-cmds.el
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/cc-cmds.el	Tue Jan 02 19:52:57 2007 +0000
+++ b/lisp/progmodes/cc-cmds.el	Tue Jan 02 20:54:10 2007 +0000
@@ -3750,7 +3750,7 @@
   ;; Note that this function does not do any hidden buffer changes.
 
   (let (fill
-	;; beg and end limits the region to narrow.  end is a marker.
+	;; beg and end limit the region to narrow.  end is a marker.
 	beg end
 	;; tmp-pre and tmp-post mark strings that are temporarily
 	;; inserted at the start and end of the region.  tmp-pre is a
@@ -3836,12 +3836,13 @@
 	    (setq apply-outside-literal t))
 
 	   ((eq c-lit-type 'c)		; Block comment.
-	    (when (>= end (cdr c-lit-limits))
-	      ;; The region includes the comment ender.  If it's on its own
-	      ;; line, it stays on its own line.  If it's got company on the
-	      ;; line, it keeps (at least one word of) it.  "=====*/" counts
-	      ;; as a comment ender here, but "===== */" doesn't and "foo*/"
-	      ;; doesn't.
+	    (when (and (>= end (cdr c-lit-limits))
+		       (> (point-max) (cdr c-lit-limits)))
+	      ;; There is a comment ender, and the region includes it.  If
+	      ;; it's on its own line, it stays on its own line.  If it's got
+	      ;; company on the line, it keeps (at least one word of) it.
+	      ;; "=====*/" counts as a comment ender here, but "===== */"
+	      ;; doesn't and "foo*/" doesn't.
 	      (unless
 		  (save-excursion
 		    (goto-char (cdr c-lit-limits))