--- Begin Message ---
Subject: |
23.0.60; tar-mode on posix ustar |
Date: |
Mon, 12 Jan 2009 11:37:11 +1100 |
User-agent: |
Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux) |
Running
emacs -Q File-Corresponding-0.003.tar.gz
on that file from
http://search.cpan.org/CPAN/authors/id/J/JO/JOHANL/File-Corresponding-0.003.tar.gz
(about 14 kbytes) produces a buffer like
drwxrwxrwx 0/0 0 File-Corresponding-0.003
-r--r--r-- 0/0 1274 Build.PL
-r--r--r-- 0/0 382 Changes
-r--r--r-- 0/0 1272 Makefile.PL
...
where I hoped it would show the directory part of each name, the same as
shown by "tar tvf" (GNU tar 1.20),
File-Corresponding-0.003
File-Corresponding-0.003/Build.PL
File-Corresponding-0.003/Changes
File-Corresponding-0.003/Makefile.PL
...
Such a file is generated by the perl Archive::Tar module. It uses the
posix style magic "ustar\0", with digits "00" in the `version' field.
But I think tar-header-block-tokenize only recognises a nul "\000" in
that version field (in addition to ``OLDGNU'' style which is a space).
I get some joy from the change below. Are those two places the only
ones wanting to match the extra form?
2009-01-10 Kevin Ryde <user42@zip.com.au>
* tar-mode.el (tar-header-block-tokenize): Recognise posix
"ustar\0\060" magic for long filenames.
In GNU Emacs 23.0.60.12 (i586-pc-linux-gnu, GTK+ Version 2.12.11)
of 2009-01-07 on blah.blah
configured using `configure 'CFLAGS=-O -g' '--prefix=/down/emacs/b/inst'
'--with-x-toolkit=gtk''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_AU
value of $XMODIFIERS: nil
locale-coding-system: iso-latin-1-unix
default-enable-multibyte-characters: t
tar-mode.el.posix-ustar.diff
Description: Text Data
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#1862: 23.0.60; tar-mode on posix ustar |
Date: |
Sun, 11 Jan 2009 22:38:24 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
> Such a file is generated by the perl Archive::Tar module. It uses the
> posix style magic "ustar\0", with digits "00" in the `version' field.
> But I think tar-header-block-tokenize only recognises a nul "\000" in
> that version field (in addition to ``OLDGNU'' style which is a space).
Indeed, the code didn't pay attention to the version field, but
incorrectly clipped it out. I've installed a similar fix to yours, just
a bit simpler.
Stefan
--- End Message ---