all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Kevin Ryde <user42@zip.com.au>
To: emacs-pretest-bug@gnu.org
Subject: bug#1862: 23.0.60; tar-mode on posix ustar
Date: Mon, 12 Jan 2009 11:37:11 +1100	[thread overview]
Message-ID: <87vdsltl54.fsf@blah.blah> (raw)

[-- Attachment #1: Type: text/plain, Size: 1754 bytes --]

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



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: tar-mode.el.posix-ustar.diff --]
[-- Type: text/x-diff, Size: 2055 bytes --]

*** tar-mode.el	12 Jan 2009 11:33:35 +1100	1.135
--- tar-mode.el	12 Jan 2009 11:33:59 +1100	
***************
*** 240,246 ****
               (link-p (aref string tar-linkp-offset))
               (magic-str (substring string tar-magic-offset
                                     (1- tar-uname-offset)))
!              (uname-valid-p (car (member magic-str '("ustar  " "ustar\0\0"))))
               name linkname
               (nulsexp   "[^\000]*\000"))
          (when (string-match nulsexp string tar-name-offset)
--- 240,249 ----
               (link-p (aref string tar-linkp-offset))
               (magic-str (substring string tar-magic-offset
                                     (1- tar-uname-offset)))
!              (uname-valid-p (car (member magic-str
!                                          '("ustar  "   ;; "OLDGNU"
!                                            "ustar\0\0" ;; per tar-rename-entry
!                                            "ustar\0\060")))) ;; POSIX
               name linkname
               (nulsexp   "[^\000]*\000"))
          (when (string-match nulsexp string tar-name-offset)
***************
*** 256,262 ****
                           nil
                         (- link-p ?0)))
          (setq linkname (substring string tar-link-offset link-end))
!         (when (and (equal uname-valid-p "ustar\0\0")
                     (string-match nulsexp string tar-prefix-offset)
                     (> (match-end 0) (1+ tar-prefix-offset)))
            (setq name (concat (substring string tar-prefix-offset
--- 259,266 ----
                           nil
                         (- link-p ?0)))
          (setq linkname (substring string tar-link-offset link-end))
!         (when (and (member uname-valid-p '("ustar\0\0" ;; tar-rename-entry
!                                            "ustar\0\060")) ;; POSIX
                     (string-match nulsexp string tar-prefix-offset)
                     (> (match-end 0) (1+ tar-prefix-offset)))
            (setq name (concat (substring string tar-prefix-offset

             reply	other threads:[~2009-01-12  0:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <jwvy6xh9oug.fsf-monnier+emacsbugreports@gnu.org>
2009-01-12  0:37 ` Kevin Ryde [this message]
2009-01-12  3:45   ` bug#1862: marked as done (23.0.60; tar-mode on posix ustar) Emacs bug Tracking System
     [not found]   ` <handler.1862.D1862.12317315262970.notifdone@emacsbugs.donarmstrong.com>
2009-01-16  0:18     ` bug#1862: 23.0.60; tar-mode on posix ustar Kevin Ryde
2009-01-16  2:39       ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87vdsltl54.fsf@blah.blah \
    --to=user42@zip.com.au \
    --cc=1862@emacsbugs.donarmstrong.com \
    --cc=emacs-pretest-bug@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.