]> git.eshelyaron.com Git - emacs.git/commitdiff
In comment-dwim with style `extra-line', respect indent-tabs-mode.
authorAlan Mackenzie <acm@muc.de>
Fri, 15 Jan 2016 12:32:32 +0000 (12:32 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Mar 2016 00:05:55 +0000 (17:05 -0700)
This fixes bug #22369.

* lisp/newcomment.el (comment-make-bol-ws): New function.
(comment-make-extra-lines): Use new function instead of a crude `make-string'.

[This reapplies commit 016b3d5894b8c424eab262aeefc646c6cd03a70a,
which was inadvertently lost by merge commit
7823745acbe9b87eea2db4ef434e379fc903ec35.]

lisp/newcomment.el

index 88ed08d44299d44e604f5a045069a5fdebd89ec5..80b52ed9561e673fda0cd8c482041cbb72429f9d 100644 (file)
@@ -990,6 +990,14 @@ comment markers."
          (goto-char (point-max))))))
   (set-marker end nil))
 
+(defun comment-make-bol-ws (len)
+  "Make a white-space string of width LEN for use at BOL.
+When `indent-tabs-mode' is non-nil, tab characters will be used."
+  (if (and indent-tabs-mode (> tab-width 0))
+      (concat (make-string (/ len tab-width) ?\t)
+             (make-string (% len tab-width) ? ))
+    (make-string len ? )))
+
 (defun comment-make-extra-lines (cs ce ccs cce min-indent max-indent &optional block)
   "Make the leading and trailing extra lines.
 This is used for `extra-line' style (or `box' style if BLOCK is specified)."
@@ -1025,8 +1033,8 @@ This is used for `extra-line' style (or `box' style if BLOCK is specified)."
          (setq cs (replace-match fill t t s)))
        (string-match re e)
        (setq ce (replace-match fill t t e))))
-    (cons (concat cs "\n" (make-string min-indent ? ) ccs)
-         (concat cce "\n" (make-string (+ min-indent eindent) ? ) ce))))
+    (cons (concat cs "\n" (comment-make-bol-ws min-indent) ccs)
+         (concat cce "\n" (comment-make-bol-ws (+ min-indent eindent)) ce))))
 
 (defmacro comment-with-narrowing (beg end &rest body)
   "Execute BODY with BEG..END narrowing.