From cf4ccc58284de50959ea66b1cd2655ab2fa4d15b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Tue, 27 Jun 2023 17:00:11 +0200 Subject: [PATCH] Speed up duplicate-line by a factor of 2 * lisp/misc.el (duplicate-line): Add the newline to the string to be inserted instead of inserting it separately. This makes duplicate-line as fast as duplicate-dwim with a contiguous region. Both could easily be made faster yet by making the code more complex. --- lisp/misc.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lisp/misc.el b/lisp/misc.el index 81769696f95..de82b97fa6f 100644 --- a/lisp/misc.el +++ b/lisp/misc.el @@ -71,13 +71,15 @@ Also see the `copy-from-above-command' command." (interactive "p") (unless n (setq n 1)) - (let ((line (buffer-substring (line-beginning-position) (line-end-position)))) + (let ((line (concat (buffer-substring (line-beginning-position) + (line-end-position)) + "\n"))) (save-excursion (forward-line 1) (unless (bolp) (insert "\n")) (dotimes (_ n) - (insert line "\n"))))) + (insert line))))) (declare-function rectangle--duplicate-right "rect" (n)) -- 2.39.2