]> git.eshelyaron.com Git - emacs.git/commitdiff
(tar-untar-buffer): If the entry has directory link type, extract it
authorMagnus Henoch <mange@freemail.hu>
Wed, 23 Apr 2008 16:46:57 +0000 (16:46 +0000)
committerMagnus Henoch <mange@freemail.hu>
Wed, 23 Apr 2008 16:46:57 +0000 (16:46 +0000)
as a directory even if its file name doesn't end with a slash.  Fixes
extraction of NetBSD tar archives.

lisp/ChangeLog
lisp/tar-mode.el

index 9ac6b7a541f4ba81176eb61070ae6e24aff67135..5ad79ce1421cd11d0bee95e098e08044bbdbf4db 100644 (file)
@@ -1,3 +1,9 @@
+2008-04-23  Magnus Henoch  <mange@freemail.hu>
+
+       * tar-mode.el (tar-untar-buffer): If the entry has directory
+       link type, extract it as a directory even if its file name doesn't
+       end with a slash.  Fixes extraction of NetBSD tar archives.
+
 2008-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * server.el (server-start): Also don't get confused by CRs since we
index 2d9651832b50bed22389eb771e0562728e253411..4589127e26b084a2ce84d2f9c87cd2b67c34835d 100644 (file)
@@ -395,7 +395,9 @@ MODE should be an integer which is a file mode value."
          (dolist (descriptor tar-parse-info)
            (let* ((tokens (tar-desc-tokens descriptor))
                   (name (tar-header-name tokens))
-                  (dir (file-name-directory name))
+                  (dir (if (eq (tar-header-link-type tokens) 5)
+                           name
+                         (file-name-directory name)))
                   (start (+ (tar-desc-data-start descriptor)
                             (- tar-header-offset (point-min))))
                   (end (+ start (tar-header-size tokens))))