changeset 109669:7525495fea97

cc-cmds.el (c-mask-paragraph, c-fill-paragraph): Fix for the case that a C style comment has its delimiters alone on their respective lines.
author Alan Mackenzie <acm@muc.de>
date Fri, 06 Aug 2010 19:48:59 +0000
parents d9a022ec322c
children 7b41c068528a
files lisp/ChangeLog lisp/progmodes/cc-cmds.el
diffstat 2 files changed, 22 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Aug 06 12:07:16 2010 -0700
+++ b/lisp/ChangeLog	Fri Aug 06 19:48:59 2010 +0000
@@ -1,3 +1,9 @@
+2010-08-06  Alan Mackenzie  <bug-cc-mode@gnu.org>
+
+	* progmodes/cc-cmds.el (c-mask-paragraph, c-fill-paragraph): Fix
+	for the case that a C style comment has its delimiters alone on
+	their respective lines.
+
 2010-08-06  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/tramp.el (tramp-handle-start-file-process ): Set connection
--- a/lisp/progmodes/cc-cmds.el	Fri Aug 06 12:07:16 2010 -0700
+++ b/lisp/progmodes/cc-cmds.el	Fri Aug 06 19:48:59 2010 +0000
@@ -4001,6 +4001,14 @@
 				       (goto-char ender-start)
 				       (current-column)))
 		       (point-rel (- ender-start here))
+		       (sentence-ends-comment
+			(save-excursion
+			  (goto-char ender-start)
+			  (and (search-backward-regexp
+				(c-sentence-end) (c-point 'bol) t)
+			       (goto-char (match-end 0))
+			  (looking-at "[ \t]*")
+			  (= (match-end 0) ender-start))))
 		       spaces)
 
 		  (save-excursion
@@ -4043,7 +4051,9 @@
 			      (setq spaces
 				    (max
 				     (min spaces
-					  (if sentence-end-double-space 2 1))
+					  (if (and sentence-ends-comment
+						   sentence-end-double-space)
+					      2 1))
 				     1)))
 			  ;; Insert the filler first to keep marks right.
 			  (insert-char ?x spaces t)
@@ -4253,8 +4263,11 @@
   (let ((fill-paragraph-function
 	 ;; Avoid infinite recursion.
 	 (if (not (eq fill-paragraph-function 'c-fill-paragraph))
-	     fill-paragraph-function)))
-    (c-mask-paragraph t nil 'fill-paragraph arg))
+	     fill-paragraph-function))
+	(start-point (point-marker)))
+    (c-mask-paragraph
+     t nil (lambda () (fill-region-as-paragraph (point-min) (point-max) arg)))
+    (goto-char start-point))
   ;; Always return t.  This has the effect that if filling isn't done
   ;; above, it isn't done at all, and it's therefore effectively
   ;; disabled in normal code.