unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Trouble getting archives to load as archives
@ 2008-07-03 22:59 Davin Pearson
  2008-07-04  5:38 ` Thierry Volpiatto
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Davin Pearson @ 2008-07-03 22:59 UTC (permalink / raw)
  To: help-gnu-emacs

The following code works for Emacs Version 20.7 and 21.3
to load archive files as archives:

(setq auto-mode-alist
      (cons '("\\.\\(arc\\|zip\\|lzh\\|zoo\\)\\'" . archive-mode)
            auto-mode-alist))

I tried the following code but it only works on ZIP files:

(add-hook 'find-file-hooks 'my-archive-hook)
(defun my-archive-hook ()
  (when (or (string-match "\\.zip$" (buffer-name))
            (string-match "\\.tar$" (buffer-name))
            (string-match "\\.gz$"  (buffer-name)))
    (archive-mode 1)
    ))

So my question is this: how do I get archive-mode to display archives
correctly for TAR and GZ files?


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-03 22:59 Trouble getting archives to load as archives Davin Pearson
@ 2008-07-04  5:38 ` Thierry Volpiatto
  2008-07-05  1:37   ` Davin Pearson
  2008-07-04 21:57 ` Peter Dyballa
       [not found] ` <mailman.14225.1215208751.18990.help-gnu-emacs@gnu.org>
  2 siblings, 1 reply; 14+ messages in thread
From: Thierry Volpiatto @ 2008-07-04  5:38 UTC (permalink / raw)
  To: Davin Pearson; +Cc: help-gnu-emacs

Davin Pearson <davin.pearson@gmail.com> writes:

> The following code works for Emacs Version 20.7 and 21.3
> to load archive files as archives:
>
> (setq auto-mode-alist
>       (cons '("\\.\\(arc\\|zip\\|lzh\\|zoo\\)\\'" . archive-mode)
>             auto-mode-alist))
>
> I tried the following code but it only works on ZIP files:
>
> (add-hook 'find-file-hooks 'my-archive-hook)
> (defun my-archive-hook ()
>   (when (or (string-match "\\.zip$" (buffer-name))
>             (string-match "\\.tar$" (buffer-name))
>             (string-match "\\.gz$"  (buffer-name)))
>     (archive-mode 1)
>     ))
>
> So my question is this: how do I get archive-mode to display archives
> correctly for TAR and GZ files?
>
Hi,
an other solution is to use avfs, with that you can open any archives on
read/write mode just as any directory in dired.
So just install avfs and set fuse in your kernel (and install fuse)
I use this code to use it in emacs:

,----[ avfs in dired ]
| (defun tv-dired-browse-archive ()
|   "This function use avfs and fuse, so be sure
| to have these programs and modules installed on your system"
|   (interactive)
|   (let ((file-at-point (dired-get-filename)))
|     (if (or (equal (file-name-extension file-at-point) "gz")
|             (equal (file-name-extension file-at-point) "bz2")
|             (equal (file-name-extension file-at-point) "zip"))
|         (progn
|           (when (not (cddr (directory-files "~/.avfs")))
|             (shell-command "mountavfs"))
|           (find-file (concat "~/.avfs" file-at-point "#")))
|       (find-file file-at-point))))
| (define-key dired-mode-map (kbd "z") 'tv-dired-browse-archive)
`----

-- 
A + Thierry Volpiatto
Location: Saint-Cyr-Sur-Mer - France




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-03 22:59 Trouble getting archives to load as archives Davin Pearson
  2008-07-04  5:38 ` Thierry Volpiatto
@ 2008-07-04 21:57 ` Peter Dyballa
       [not found] ` <mailman.14225.1215208751.18990.help-gnu-emacs@gnu.org>
  2 siblings, 0 replies; 14+ messages in thread
From: Peter Dyballa @ 2008-07-04 21:57 UTC (permalink / raw)
  To: Davin Pearson; +Cc: help-gnu-emacs


Am 04.07.2008 um 00:59 schrieb Davin Pearson:

> (setq auto-mode-alist
>       (cons '("\\.\\(arc\\|zip\\|lzh\\|zoo\\)\\'" . archive-mode)
>             auto-mode-alist))

Using

	(add-to-list 'auto-mode-alist '("\\.\\(arc\\|zip\\|lzh\\|zoo\\)\ 
\'" . archive-mode))

should put your additions atop of the old entries. I've also seen  
statements similiar to this

	(setq auto-mode-alist
	  (append
	    '(("\\.\\(arc\\|zip\\|lzh\\|zoo\\)\\'" . archive-mode)
	  auto-mode-alist)))


The documentation on auto-mode-alist emphasises:

	The extensions whose FUNCTION is `archive-mode' should also
	appear in `auto-coding-alist' with `no-conversion' coding system.

which should be fulfilled for your file types. Anyway, in my Emacsen  
I have defined in auto-mode-alist:

  ("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" .  
archive-mode)
  ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" .  
archive-mode)

Are these too many members?

--
Greetings

   Pete

A child of five could understand this!  Fetch me a child of five.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
       [not found] ` <mailman.14225.1215208751.18990.help-gnu-emacs@gnu.org>
@ 2008-07-05  1:32   ` Davin Pearson
  2008-07-05  2:23     ` Bernardo Bacic
  0 siblings, 1 reply; 14+ messages in thread
From: Davin Pearson @ 2008-07-05  1:32 UTC (permalink / raw)
  To: help-gnu-emacs

On Jul 5, 9:57 am, Peter Dyballa <Peter_Dyba...@Web.DE> wrote:
>   ("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" .
> archive-mode)
>   ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" .
> archive-mode)

Trouble is that this code doesn't work for TAR or GZ files which I am
trying to get online.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-04  5:38 ` Thierry Volpiatto
@ 2008-07-05  1:37   ` Davin Pearson
  2008-07-06 10:59     ` Thierry Volpiatto
  0 siblings, 1 reply; 14+ messages in thread
From: Davin Pearson @ 2008-07-05  1:37 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: help-gnu-emacs

2008/7/4 Thierry Volpiatto <thierry.volpiatto@gmail.com>:
> an other solution is to use avfs, with that you can open any archives on
> read/write mode just as any directory in dired.
> So just install avfs and set fuse in your kernel (and install fuse)
> I use this code to use it in emacs:
>
> ,----[ avfs in dired ]
> | (defun tv-dired-browse-archive ()
> |   "This function use avfs and fuse, so be sure
> | to have these programs and modules installed on your system"
> |   (interactive)
> |   (let ((file-at-point (dired-get-filename)))
> |     (if (or (equal (file-name-extension file-at-point) "gz")
> |             (equal (file-name-extension file-at-point) "bz2")
> |             (equal (file-name-extension file-at-point) "zip"))
> |         (progn
> |           (when (not (cddr (directory-files "~/.avfs")))
> |             (shell-command "mountavfs"))
> |           (find-file (concat "~/.avfs" file-at-point "#")))
> |       (find-file file-at-point))))
> | (define-key dired-mode-map (kbd "z") 'tv-dired-browse-archive)
> `----

Are you sure that it is worth the trouble installing AVS?

Have you got AVS installed on your O/S?

Are you using Linux or Windows XP? I am using XP.

-- 
Sincerely and kindest regards, Davin.
Davin Pearson http://www.davinpearson.com




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-05  1:32   ` Davin Pearson
@ 2008-07-05  2:23     ` Bernardo Bacic
  2008-07-05  2:57       ` Davin Pearson
  0 siblings, 1 reply; 14+ messages in thread
From: Bernardo Bacic @ 2008-07-05  2:23 UTC (permalink / raw)
  To: Davin Pearson; +Cc: help-gnu-emacs

it was a dark and stormy night when Davin Pearson said, On 07/05/2008 11:32 AM:
> On Jul 5, 9:57 am, Peter Dyballa <Peter_Dyba...@Web.DE> wrote:
>>   ("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" .
>> archive-mode)
>>   ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" .
>> archive-mode)
> 
> Trouble is that this code doesn't work for TAR or GZ files which I am
> trying to get online.
> 

a few things may be worth checking:
* what is the value of auto-mode-alist when you hit C-h v auto-mode-alist
* does the *Messages* buffer (C-h e) show any errors when you open an
   archive file
* are you really opening TAR/GZ files as opposed to tar/gz?





^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-05  2:23     ` Bernardo Bacic
@ 2008-07-05  2:57       ` Davin Pearson
  2008-07-05  8:19         ` Peter Dyballa
  0 siblings, 1 reply; 14+ messages in thread
From: Davin Pearson @ 2008-07-05  2:57 UTC (permalink / raw)
  To: bernardo.bacic; +Cc: help-gnu-emacs

2008/7/5 Bernardo Bacic <bernardo.bacic@pobox.com>:
> a few things may be worth checking:
> * what is the value of auto-mode-alist when you hit C-h v auto-mode-alist
> * does the *Messages* buffer (C-h e) show any errors when you open an
>  archive file
> * are you really opening TAR/GZ files as opposed to tar/gz?

Here is the error when I tried to load a tar file:

File mode specification error: (error "Buffer format not recognized")

Here is the error when I tried to load a gz file:

Loading jka-compr...done
uncompressing allegro-1-connect-four-20070702-165627.tar.gz...done
File mode specification error: (error "Buffer format not recognized")

Note that I really mean tar file not TAR file
                                                                and gz
file not GZ file.

Thanks for your help.

-- 
Sincerely and kindest regards, Davin.
Davin Pearson http://www.davinpearson.com




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-05  2:57       ` Davin Pearson
@ 2008-07-05  8:19         ` Peter Dyballa
  2008-07-06  8:21           ` Davin Pearson
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Dyballa @ 2008-07-05  8:19 UTC (permalink / raw)
  To: Davin Pearson; +Cc: help-gnu-emacs


Am 05.07.2008 um 04:57 schrieb Davin Pearson:

> Loading jka-compr...done
> uncompressing allegro-1-connect-four-20070702-165627.tar.gz...done
> File mode specification error: (error "Buffer format not recognized")


How does it work when you invoke GNU Emacs as 'emacs -Q' or 'emacs - 
q' ? With -Q neither the system's nor your own customisation is  
loaded, with -q your's not loaded. In either both or in one case GNU  
Emacs should behave correctly ...

--
Greetings

   Pete

With Capitalism man exploits man. With communism it's the exact  
opposite.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-05  8:19         ` Peter Dyballa
@ 2008-07-06  8:21           ` Davin Pearson
  2008-07-08  7:00             ` Kevin Rodgers
  0 siblings, 1 reply; 14+ messages in thread
From: Davin Pearson @ 2008-07-06  8:21 UTC (permalink / raw)
  To: Peter Dyballa; +Cc: help-gnu-emacs

2008/7/5 Peter Dyballa <Peter_Dyballa@web.de>:
> How does it work when you invoke GNU Emacs as 'emacs -Q' or 'emacs -q' ?
> With -Q neither the system's nor your own customisation is loaded, with -q
> your's not loaded. In either both or in one case GNU Emacs should behave
> correctly ...

With -q and -Q and the following:

(add-to-list 'auto-mode-alist
'("\\.\\(arc\\|zip\\|tar\\|gz\\|lzh\\|zoo\\)\\'" . archive-mode))

Then loading a *.tar or *.gz file generates the following error messages:

File mode specification error: (error "Buffer format not recognized") [3 times]

Don't worry abou this as I have managed to get cygstart online
whenever you load a file in dired, so that a Winzip window pops up
whenever you load an archive file.

-- 
Sincerely and kindest regards, Davin.
Davin Pearson http://www.davinpearson.com




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-05  1:37   ` Davin Pearson
@ 2008-07-06 10:59     ` Thierry Volpiatto
  0 siblings, 0 replies; 14+ messages in thread
From: Thierry Volpiatto @ 2008-07-06 10:59 UTC (permalink / raw)
  To: Davin Pearson; +Cc: help-gnu-emacs

"Davin Pearson" <davin.pearson@gmail.com> writes:

> 2008/7/4 Thierry Volpiatto <thierry.volpiatto@gmail.com>:
>> an other solution is to use avfs, with that you can open any archives on
>> read/write mode just as any directory in dired.
>> So just install avfs and set fuse in your kernel (and install fuse)
>> I use this code to use it in emacs:
>>
>> ,----[ avfs in dired ]
>> | (defun tv-dired-browse-archive ()
>> |   "This function use avfs and fuse, so be sure
>> | to have these programs and modules installed on your system"
>> |   (interactive)
>> |   (let ((file-at-point (dired-get-filename)))
>> |     (if (or (equal (file-name-extension file-at-point) "gz")
>> |             (equal (file-name-extension file-at-point) "bz2")
>> |             (equal (file-name-extension file-at-point) "zip"))
>> |         (progn
>> |           (when (not (cddr (directory-files "~/.avfs")))
>> |             (shell-command "mountavfs"))
>> |           (find-file (concat "~/.avfs" file-at-point "#")))
>> |       (find-file file-at-point))))
>> | (define-key dired-mode-map (kbd "z") 'tv-dired-browse-archive)
>> `----
>
> Are you sure that it is worth the trouble installing AVS?
I am not sure to understand you.
With avfs you can browse any compressed
archives (like the emacs sources) just like if they were uncompressed
 
http://sourceforge.net/projects/avf

> Have you got AVS installed on your O/S?
Yes you must and you need fuse installed and also enabled in your
kernel.

> Are you using Linux or Windows XP? I am using XP.
I use Gentoo/Linux.
I don't know about XP.
-- 
A + Thierry Volpiatto
Location: Saint-Cyr-Sur-Mer - France




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-06  8:21           ` Davin Pearson
@ 2008-07-08  7:00             ` Kevin Rodgers
  2008-07-08  7:23               ` Peter Dyballa
  2008-07-08 10:52               ` Bernardo Bacic
  0 siblings, 2 replies; 14+ messages in thread
From: Kevin Rodgers @ 2008-07-08  7:00 UTC (permalink / raw)
  To: help-gnu-emacs

Davin Pearson wrote:
> 2008/7/5 Peter Dyballa <Peter_Dyballa@web.de>:
>> How does it work when you invoke GNU Emacs as 'emacs -Q' or 'emacs -q' ?
>> With -Q neither the system's nor your own customisation is loaded, with -q
>> your's not loaded. In either both or in one case GNU Emacs should behave
>> correctly ...
> 
> With -q and -Q and the following:
> 
> (add-to-list 'auto-mode-alist
> '("\\.\\(arc\\|zip\\|tar\\|gz\\|lzh\\|zoo\\)\\'" . archive-mode))
> 
> Then loading a *.tar or *.gz file generates the following error messages:
> 
> File mode specification error: (error "Buffer format not recognized") [3 times]

That's because archive-mode does not support .tar or .gz files.  From
arc-mode.el (Emacs 22.2):

;; ARCHIVE TYPES: Currently only the archives below are handled, but the
;; structure for handling just about anything is in place.
;;
;;                        Arc     Lzh     Zip     Zoo
;;                        --------------------------------
;; View listing           Intern  Intern  Intern  Intern
;; Extract member         Y       Y       Y       Y
;; Save changed member    Y       Y       Y       Y
;; Add new member         N       N       N       N
;; Delete member          Y       Y       Y       Y
;; Rename member          Y       Y       N       N
;; Chmod                  -       Y       Y       -
;; Chown                  -       Y       -       -
;; Chgrp                  -       Y       -       -

...

(defun archive-find-type ()
   (widen)
   (goto-char (point-min))
   ;; The funny [] here make it unlikely that the .elc file will be treated
   ;; as an archive by other software.
   (let (case-fold-search)
     (cond ((looking-at "[P]K\003\004") 'zip)
	  ((looking-at "..-l[hz][0-9ds]-") 'lzh)
	  ((looking-at "....................[\334]\247\304\375") 'zoo)
	  ((and (looking-at "\C-z")	; signature too simple, IMHO
		(string-match "\\.[aA][rR][cC]$"
			      (or buffer-file-name (buffer-name))))
	   'arc)
           ;; This pattern modelled on the BSD/GNU+Linux `file' command.
           ;; Have seen capital "LHA's", and file has lower case "LHa's" 
too.
           ;; Note this regexp is also in archive-exe-p.
           ((looking-at "MZ\\(.\\|\n\\)\\{34\\}LH[aA]'s SFX ") 'lzh-exe)
	  (t (error "Buffer format not recognized")))))


-- 
Kevin Rodgers
Denver, Colorado, USA





^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-08  7:00             ` Kevin Rodgers
@ 2008-07-08  7:23               ` Peter Dyballa
  2008-07-08 10:52               ` Bernardo Bacic
  1 sibling, 0 replies; 14+ messages in thread
From: Peter Dyballa @ 2008-07-08  7:23 UTC (permalink / raw)
  To: Kevin Rodgers; +Cc: emacs list, Davin Pearson


Am 08.07.2008 um 09:00 schrieb Kevin Rodgers:

> That's because archive-mode does not support .tar or .gz files.  From
> arc-mode.el (Emacs 22.2):


I see now! Anyway, tar-mode offers the same functions for compressed  
and uncompressed tape archives, it only does not call its mode  
"archive-mode" ...

--
Greetings

   Pete

Ce qui été compris n'existe plus.    (Paul Eluard)






^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-08  7:00             ` Kevin Rodgers
  2008-07-08  7:23               ` Peter Dyballa
@ 2008-07-08 10:52               ` Bernardo Bacic
  2008-07-08 11:24                 ` Peter Dyballa
  1 sibling, 1 reply; 14+ messages in thread
From: Bernardo Bacic @ 2008-07-08 10:52 UTC (permalink / raw)
  To: help-gnu-emacs

it was a dark and stormy night when Kevin Rodgers said, On 07/08/2008 05:00 PM:
> Davin Pearson wrote:
>> 2008/7/5 Peter Dyballa <Peter_Dyballa@web.de>:
>>> How does it work when you invoke GNU Emacs as 'emacs -Q' or 'emacs -q' ?
>>> With -Q neither the system's nor your own customisation is loaded, 
>>> with -q
>>> your's not loaded. In either both or in one case GNU Emacs should behave
>>> correctly ...
>>
>> With -q and -Q and the following:
>>
>> (add-to-list 'auto-mode-alist
>> '("\\.\\(arc\\|zip\\|tar\\|gz\\|lzh\\|zoo\\)\\'" . archive-mode))
>>
>> Then loading a *.tar or *.gz file generates the following error messages:
>>
>> File mode specification error: (error "Buffer format not recognized") 
>> [3 times]
> 
> That's because archive-mode does not support .tar or .gz files.  From
> arc-mode.el (Emacs 22.2):

Emacs 22.1.1 started with -Q option (under GNU/Linux) opens a *.tgz file with 
no problems.
(info "(emacs) Compressed Files")

 From memory, the OP was referring to version 21.*, not sure what the 
situation is there. Perhaps adding tar and gz extensions to auto-mode-alist 
was unnecessary?




^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Trouble getting archives to load as archives
  2008-07-08 10:52               ` Bernardo Bacic
@ 2008-07-08 11:24                 ` Peter Dyballa
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Dyballa @ 2008-07-08 11:24 UTC (permalink / raw)
  To: bernardo.bacic; +Cc: help-gnu-emacs


Am 08.07.2008 um 12:52 schrieb Bernardo Bacic:

> From memory, the OP was referring to version 21.*, not sure what  
> the situation is there. Perhaps adding tar and gz extensions to  
> auto-mode-alist was unnecessary?

I have also a version of GNU Emacs 21.3.50 (more like 22.x), and  
20.7. In elder Emacsen, I think up to and including 20.x, it was  
necessary to

	(load-library "jka-compr")

Then jka-compr added well-known extensions and also an entry on jka- 
compr-mode (or such) to handle particular file types. And maybe  
telling it about modern compressors/file name endings like tgz, tbz,  
tbz2, tar.bz2 was needed. Tar-mode itself works since at least 18.x.

Therefore my old question what was happening when GNU Emacs was  
launched without any customisation ...

--
Greetings

   Pete

Ce qui été compris n'existe plus.    (Paul Eluard)






^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-07-08 11:24 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-03 22:59 Trouble getting archives to load as archives Davin Pearson
2008-07-04  5:38 ` Thierry Volpiatto
2008-07-05  1:37   ` Davin Pearson
2008-07-06 10:59     ` Thierry Volpiatto
2008-07-04 21:57 ` Peter Dyballa
     [not found] ` <mailman.14225.1215208751.18990.help-gnu-emacs@gnu.org>
2008-07-05  1:32   ` Davin Pearson
2008-07-05  2:23     ` Bernardo Bacic
2008-07-05  2:57       ` Davin Pearson
2008-07-05  8:19         ` Peter Dyballa
2008-07-06  8:21           ` Davin Pearson
2008-07-08  7:00             ` Kevin Rodgers
2008-07-08  7:23               ` Peter Dyballa
2008-07-08 10:52               ` Bernardo Bacic
2008-07-08 11:24                 ` Peter Dyballa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).