changeset 75923:0cca0f6a0522

(c-indent-new-comment-line): When splitting an empty one-line C-style comment, post-position point properly.
author Alan Mackenzie <acm@muc.de>
date Thu, 15 Feb 2007 22:31:52 +0000
parents 5e3e8627c523
children 26e652ac7fab
files lisp/progmodes/cc-cmds.el
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/cc-cmds.el	Thu Feb 15 22:28:17 2007 +0000
+++ b/lisp/progmodes/cc-cmds.el	Thu Feb 15 22:31:52 2007 +0000
@@ -4238,6 +4238,7 @@
 				    (c-collect-line-comments c-lit-limits))
 			      c-lit-type)))
 		     (pos (point))
+		     (start-col (current-column))
 		     (comment-text-end
 		      (or (and (eq c-lit-type 'c)
 			       (save-excursion
@@ -4254,6 +4255,11 @@
 		 ;;
 		 ;; If point is on the 'B' then the line will be
 		 ;; broken after "Bla b".
+		 ;;
+		 ;; If we have an empty comment, /*   */, the next
+		 ;; lot of code pushes point to the */.  We fix
+		 ;; this by never allowing point to end up to the
+		 ;; right of where it started.
 		 (while (and (< (current-column) (cdr fill))
 			     (not (eolp)))
 		   (forward-char 1))
@@ -4276,7 +4282,10 @@
 			 ((< (point) (+ (car c-lit-limits) 2))
 			  (goto-char (+ (car c-lit-limits) 2))))
 		   (funcall do-line-break)
-		   (insert-and-inherit (car fill))))
+		   (insert-and-inherit (car fill))
+		   (if (> (current-column) start-col)
+		       (move-to-column start-col)))) ; can this hit the
+					             ; middle of a TAB?
 	     ;; Inside a comment that should be broken.
 	     (let ((comment-start comment-start)
 		   (comment-end comment-end)