From: Alan Mackenzie Date: Fri, 15 Jan 2016 12:32:32 +0000 (+0000) Subject: In comment-dwim with style `extra-line', respect indent-tabs-mode. X-Git-Tag: emacs-26.0.90~2314 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5a78876770255ee5e4f2dd0e9b5de30389b195da;p=emacs.git In comment-dwim with style `extra-line', respect indent-tabs-mode. 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.] --- diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 88ed08d4429..80b52ed9561 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el @@ -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.