Mercurial > emacs
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.