all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: owner@emacsbugs.donarmstrong.com (Emacs bug Tracking System)
To: Stefan Monnier <monnier@iro.umontreal.ca>
Subject: bug#1862: marked as done (23.0.60; tar-mode on posix ustar)
Date: Mon, 12 Jan 2009 03:45:03 +0000	[thread overview]
Message-ID: <handler.1862.D1862.12317315262970.ackdone@emacsbugs.donarmstrong.com> (raw)
In-Reply-To: 87vdsltl54.fsf@blah.blah

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


Your message dated Sun, 11 Jan 2009 22:38:24 -0500
with message-id <jwvy6xh9oug.fsf-monnier+emacsbugreports@gnu.org>
and subject line Re: bug#1862: 23.0.60; tar-mode on posix ustar
has caused the Emacs bug report #1862,
regarding 23.0.60; tar-mode on posix ustar
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com
immediately.)


-- 
1862: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1862
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 6318 bytes --]

[-- Attachment #2.1.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.1.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

[-- Attachment #3: Type: message/rfc822, Size: 2090 bytes --]

From: Stefan Monnier <monnier@iro.umontreal.ca>
To: 1862-done@emacsbugs.donarmstrong.com
Subject: Re: bug#1862: 23.0.60; tar-mode on posix ustar
Date: Sun, 11 Jan 2009 22:38:24 -0500
Message-ID: <jwvy6xh9oug.fsf-monnier+emacsbugreports@gnu.org>

> 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


  reply	other threads:[~2009-01-12  3:45 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 ` bug#1862: 23.0.60; tar-mode on posix ustar Kevin Ryde
2009-01-12  3:45   ` Emacs bug Tracking System [this message]
     [not found]   ` <handler.1862.D1862.12317315262970.notifdone@emacsbugs.donarmstrong.com>
2009-01-16  0:18     ` 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=handler.1862.D1862.12317315262970.ackdone@emacsbugs.donarmstrong.com \
    --to=owner@emacsbugs.donarmstrong.com \
    --cc=monnier@iro.umontreal.ca \
    /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.