Mercurial > emacs
changeset 77925:3da77a559100
(tar-header-block-summarize, tar-summarize-buffer)
(tar-get-descriptor): Handle type 55, an extended pax header.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Wed, 06 Jun 2007 17:04:29 +0000 |
parents | 1ad09b4f200c |
children | 0d16f59843e9 |
files | lisp/tar-mode.el |
diffstat | 1 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/tar-mode.el Wed Jun 06 17:04:19 2007 +0000 +++ b/lisp/tar-mode.el Wed Jun 06 17:04:29 2007 +0000 @@ -363,6 +363,7 @@ ((eq type 29) ?M) ; multivolume continuation ((eq type 35) ?S) ; sparse ((eq type 38) ?V) ; volume header + ((eq type 55) ?H) ; extended pax header (t ?\s) ) (tar-grind-file-mode mode) @@ -421,7 +422,7 @@ (buffer-substring pos (+ pos 512))))))) (setq pos (+ pos 512)) (progress-reporter-update progress-reporter pos) - (if (eq (tar-header-link-type tokens) 20) + (if (memq (tar-header-link-type tokens) '(20 55)) ;; Foo. There's an extra empty block after these. (setq pos (+ pos 512))) (let ((size (tar-header-size tokens))) @@ -657,14 +658,15 @@ (size (tar-header-size tokens)) (link-p (tar-header-link-type tokens))) (if link-p - (error "This is a %s, not a real file" - (cond ((eq link-p 5) "directory") - ((eq link-p 20) "tar directory header") - ((eq link-p 28) "next has longname") - ((eq link-p 29) "multivolume-continuation") - ((eq link-p 35) "sparse entry") - ((eq link-p 38) "volume header") - (t "link")))) + (error "This is %s, not a real file" + (cond ((eq link-p 5) "a directory") + ((eq link-p 20) "a tar directory header") + ((eq link-p 28) "a next has longname") + ((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") + (t "a link")))) (if (zerop size) (error "This is a zero-length file")) descriptor))