]> git.eshelyaron.com Git - emacs.git/commitdiff
Make jka-compr-insert-file-contents slightly more efficient
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 13 Jul 2021 21:48:04 +0000 (23:48 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 13 Jul 2021 21:48:04 +0000 (23:48 +0200)
* lisp/jka-compr.el (jka-compr-insert-file-contents): Make more
efficient by using `insert-into-buffer'.

lisp/jka-compr.el

index 692b6b4adfb0da708451b702be63621e57fd7aca..658ea44a348f94805b5dc09c3956ff283590239c 100644 (file)
@@ -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