]> git.eshelyaron.com Git - emacs.git/commitdiff
(tar-summarize-buffer): Speed-up for large files.
authorRichard M. Stallman <rms@gnu.org>
Mon, 15 Jan 1996 01:35:45 +0000 (01:35 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 15 Jan 1996 01:35:45 +0000 (01:35 +0000)
lisp/tar-mode.el

index 28a31f504eceacc3619c08dea2fd706c44edde34..311212de14f6b1099dab9cf462bd970417281db8 100644 (file)
@@ -461,11 +461,16 @@ is visible (and the real data of the buffer is hidden)."
       (message "Warning: premature EOF parsing tar file")))
   (save-excursion
     (goto-char (point-min))
-    (let ((buffer-read-only nil))
+    (let ((buffer-read-only nil)
+         (summaries nil))
+      ;; Collect summary lines and insert them all at once since tar files
+      ;; can be pretty big.
       (tar-dolist (tar-desc tar-parse-info)
-       (insert-string
-         (tar-header-block-summarize (tar-desc-tokens tar-desc)))
-       (insert-string "\n"))
+       (setq summaries
+             (cons (tar-header-block-summarize (tar-desc-tokens tar-desc))
+                   (cons "\n"
+                         summaries))))
+      (insert (apply 'concat summaries))
       (make-local-variable 'tar-header-offset)
       (setq tar-header-offset (point))
       (narrow-to-region 1 tar-header-offset)