From: Lars Ingebrigtsen Date: Tue, 13 Jul 2021 21:48:04 +0000 (+0200) Subject: Make jka-compr-insert-file-contents slightly more efficient X-Git-Tag: emacs-28.0.90~1879 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a5d1bd6a6d9cd4b8c832e9dcecb1b908ae973fa9;p=emacs.git Make jka-compr-insert-file-contents slightly more efficient * lisp/jka-compr.el (jka-compr-insert-file-contents): Make more efficient by using `insert-into-buffer'. --- diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index 692b6b4adfb..658ea44a348 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el @@ -415,18 +415,17 @@ There should be no more than seven characters after the final `/'." (fboundp uncompress-function)) ;; If we don't have the uncompression program, then use the ;; internal uncompression function (if we have one). - (progn - (insert - (with-temp-buffer - (set-buffer-multibyte nil) - (insert-file-contents-literally file) - (funcall uncompress-function (point-min) (point-max)) - (when end - (delete-region end (point-max))) - (when beg - (delete-region (point-min) beg)) - (setq size (buffer-size)) - (buffer-string))) + (let ((buf (current-buffer))) + (with-temp-buffer + (set-buffer-multibyte nil) + (insert-file-contents-literally file) + (funcall uncompress-function (point-min) (point-max)) + (when end + (delete-region end (point-max))) + (when beg + (delete-region (point-min) beg)) + (setq size (buffer-size)) + (insert-into-buffer buf)) (goto-char (point-min))) ;; Use the external uncompression program. (condition-case error-code