aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2007-05-23 18:36:16 +0000
committerEli Zaretskii2007-05-23 18:36:16 +0000
commit133ecc548e3c1318a1011bcec2cd11ecf32c00fa (patch)
treed54e7ee7f8a971fb9527ae06462a5de4cfbf8a31
parent31b6b8cde68588dc176d20f039f9cba00c79feba (diff)
downloademacs-133ecc548e3c1318a1011bcec2cd11ecf32c00fa.tar.gz
emacs-133ecc548e3c1318a1011bcec2cd11ecf32c00fa.zip
(tar-header-block-summarize, tar-summarize-buffer, tar-get-descriptor): Handle
type 55, an extended pax header.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/tar-mode.el18
2 files changed, 15 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c6c30bd3918..8c6fb99178c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12007-05-23 Eli Zaretskii <eliz@gnu.org>
2
3 * tar-mode.el (tar-header-block-summarize, tar-summarize-buffer)
4 (tar-get-descriptor): Handle type 55, an extended pax header.
5
12007-05-23 Stefan Monnier <monnier@iro.umontreal.ca> 62007-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * autoinsert.el (auto-insert-alist): Quote elisp sample code so as not 8 * autoinsert.el (auto-insert-alist): Quote elisp sample code so as not
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index f5022a9fcd4..5d5f13776a2 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -363,6 +363,7 @@ MODE should be an integer which is a file mode value."
363 ((eq type 29) ?M) ; multivolume continuation 363 ((eq type 29) ?M) ; multivolume continuation
364 ((eq type 35) ?S) ; sparse 364 ((eq type 35) ?S) ; sparse
365 ((eq type 38) ?V) ; volume header 365 ((eq type 38) ?V) ; volume header
366 ((eq type 55) ?H) ; extended pax header
366 (t ?\s) 367 (t ?\s)
367 ) 368 )
368 (tar-grind-file-mode mode) 369 (tar-grind-file-mode mode)
@@ -421,7 +422,7 @@ is visible (and the real data of the buffer is hidden)."
421 (buffer-substring pos (+ pos 512))))))) 422 (buffer-substring pos (+ pos 512)))))))
422 (setq pos (+ pos 512)) 423 (setq pos (+ pos 512))
423 (progress-reporter-update progress-reporter pos) 424 (progress-reporter-update progress-reporter pos)
424 (if (eq (tar-header-link-type tokens) 20) 425 (if (memq (tar-header-link-type tokens) '(20 55))
425 ;; Foo. There's an extra empty block after these. 426 ;; Foo. There's an extra empty block after these.
426 (setq pos (+ pos 512))) 427 (setq pos (+ pos 512)))
427 (let ((size (tar-header-size tokens))) 428 (let ((size (tar-header-size tokens)))
@@ -657,13 +658,14 @@ appear on disk when you save the tar-file's buffer."
657 (size (tar-header-size tokens)) 658 (size (tar-header-size tokens))
658 (link-p (tar-header-link-type tokens))) 659 (link-p (tar-header-link-type tokens)))
659 (if link-p 660 (if link-p
660 (error "This is a %s, not a real file" 661 (error "This is a%s, not a real file"
661 (cond ((eq link-p 5) "directory") 662 (cond ((eq link-p 5) " directory")
662 ((eq link-p 20) "tar directory header") 663 ((eq link-p 20) " tar directory header")
663 ((eq link-p 28) "next has longname") 664 ((eq link-p 28) " next has longname")
664 ((eq link-p 29) "multivolume-continuation") 665 ((eq link-p 29) " multivolume-continuation")
665 ((eq link-p 35) "sparse entry") 666 ((eq link-p 35) " sparse entry")
666 ((eq link-p 38) "volume header") 667 ((eq link-p 38) " volume header")
668 ((eq link-p 55) "n extended pax header")
667 (t "link")))) 669 (t "link"))))
668 (if (zerop size) (error "This is a zero-length file")) 670 (if (zerop size) (error "This is a zero-length file"))
669 descriptor)) 671 descriptor))