changeset 87366:682c0e86fe6b

(comment-region-default): Don't triple the comment starter if the first region line isn't indented enough.
author Richard M. Stallman <rms@gnu.org>
date Sat, 22 Dec 2007 18:39:07 +0000
parents 7744259cbbc0
children 6f4bea387022
files lisp/newcomment.el
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/newcomment.el	Sat Dec 22 14:59:24 2007 +0000
+++ b/lisp/newcomment.el	Sat Dec 22 18:39:07 2007 +0000
@@ -1095,16 +1095,22 @@
      ((< numarg 0) (uncomment-region beg end (- numarg)))
      (t
       (let ((multi-char (/= (string-match "[ \t]*\\'" comment-start) 1))
-	    indent)
+	    indent triple)
 	(if (eq (nth 3 style) 'multi-char)
-	    (setq indent multi-char)
+	    (save-excursion
+	      (goto-char beg)
+	      (setq indent multi-char
+		    ;; Triple if we will put the comment starter at the margin
+		    ;; and the first line of the region isn't indented
+		    ;; at least two spaces.
+		    triple (and (not multi-char) (looking-at "\t\\|  "))))
 	  (setq indent (nth 3 style)))
 
 	;; In Lisp and similar modes with one-character comment starters,
 	;; double it by default if `comment-add' says so.
 	;; If it isn't indented, triple it.
 	(if (and (null arg) (not multi-char))
-	    (setq numarg (* comment-add (if indent 1 2)))
+	    (setq numarg (* comment-add (if triple 2 1)))
 	  (setq numarg (1- (prefix-numeric-value arg))))
 
 	(comment-region-internal