emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r109582: * tar-mode.el (tar-header-da


From: Andreas Schwab
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109582: * tar-mode.el (tar-header-data-end): Only ignore size for files of
Date: Mon, 13 Aug 2012 12:34:25 +0200
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109582
committer: Andreas Schwab <address@hidden>
branch nick: emacs
timestamp: Mon 2012-08-13 12:34:25 +0200
message:
  * tar-mode.el (tar-header-data-end): Only ignore size for files of
  type 1-6.
  (tar-header-block-summarize, tar-get-descriptor): Handle pax
  extended headers.
modified:
  lisp/ChangeLog
  lisp/tar-mode.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-08-13 07:37:05 +0000
+++ b/lisp/ChangeLog    2012-08-13 10:34:25 +0000
@@ -1,5 +1,10 @@
 2012-08-13  Andreas Schwab  <address@hidden>
 
+       * tar-mode.el (tar-header-data-end): Only ignore size for files of
+       type 1-6.
+       (tar-header-block-summarize, tar-get-descriptor): Handle pax
+       extended headers.
+
        * files.el (hack-local-variables-filter): Remove useless eval.
 
 2012-08-13  Martin Rudalics  <address@hidden>

=== modified file 'lisp/tar-mode.el'
--- a/lisp/tar-mode.el  2012-07-11 23:13:41 +0000
+++ b/lisp/tar-mode.el  2012-08-13 10:34:25 +0000
@@ -325,13 +325,10 @@
 (defun tar-header-data-end (descriptor)
   (let* ((data-start (tar-header-data-start descriptor))
          (link-type (tar-header-link-type descriptor))
-         (size (tar-header-size descriptor))
-         (fudge (cond
-                 ;; Foo.  There's an extra empty block after these.
-                 ((memq link-type '(20 55)) 512)
-                 (t 0))))
-    (+ data-start fudge
-       (if (and (null link-type) (> size 0))
+         (size (tar-header-size descriptor)))
+    (+ data-start
+       ;; Ignore size for files of type 1-6
+       (if (and (not (memq link-type '(1 2 3 4 5 6))) (> size 0))
            (tar-roundup-512 size)
          0))))
 
@@ -445,7 +442,8 @@
                  ((eq type 29) ?M)     ; multivolume continuation
                  ((eq type 35) ?S)     ; sparse
                  ((eq type 38) ?V)     ; volume header
-                 ((eq type 55) ?H)     ; extended pax header
+                 ((eq type 55) ?H)     ; pax global extended header
+                 ((eq type 72) ?X)     ; pax extended header
                  (t ?\s)
                  )
            (tar-grind-file-mode mode)
@@ -751,7 +749,8 @@
                     ((eq link-p 29) "a multivolume-continuation")
                     ((eq link-p 35) "a sparse entry")
                     ((eq link-p 38) "a volume header")
-                    ((eq link-p 55) "an extended pax header")
+                    ((eq link-p 55) "a pax global extended header")
+                    ((eq link-p 72) "a pax extended header")
                     (t "a link"))))
     (if (zerop size) (message "This is a zero-length file"))
     descriptor))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]