all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Support for xz compression (patch included)
@ 2010-09-22 15:45 Ulrich Mueller
  2010-09-22 15:59 ` Ulrich Mueller
  0 siblings, 1 reply; 3+ messages in thread
From: Ulrich Mueller @ 2010-09-22 15:45 UTC (permalink / raw)
  To: emacs-devel

Hi,

So far Emacs has only rudimentary support for xz compression, namely
in jka-compr and dired. Please find below a patch against the current
trunk that extends xz support.

On a related note, info.el supports "unyabba" and the ".Y" filename
suffix. Is anyone still using yabba to compress Info files, or could
that be removed?

Ulrich


doc/misc/ChangeLog
2010-09-22  Ulrich Mueller  <ulm@gentoo.org>

	* woman.texi (Interface Options): xz compression is now supported.

lib-src/ChangeLog
2010-09-22  Ulrich Mueller  <ulm@gentoo.org>

	* etags.c (compressors, print_language_names): Support xz
	compression.

lisp/ChangeLog
2010-09-22  Ulrich Mueller  <ulm@gentoo.org>

	* eshell/em-ls.el (eshell-ls-archive-regexp):
	* eshell/esh-util.el (eshell-tar-regexp):
	* ibuffer.el (ibuffer-compressed-file-name-regexp):
	* info.el (Info-suffix-list):
	* international/mule.el (auto-coding-alist):
	* woman.el (woman-file-regexp, woman-file-compression-regexp):
	* progmodes/etags.el (tags-compression-info-list):
	Support xz compression.

--- emacs-orig/doc/misc/woman.texi
+++ emacs/doc/misc/woman.texi
@@ -1121,8 +1121,8 @@
 for which decompressors are available and handled by auto-compression
 mode.  It should begin with @code{\\.} and end with @code{\\'} and
 @emph{must not} be optional.  The default value is
-@code{"\\.\\(g?z\\|bz2\\)\\'"}, which matches the @code{gzip} and
-@code{bzip2} compression extensions.
+@code{"\\.\\(g?z\\|bz2\\|xz\\)\\'"}, which matches the @code{gzip},
+@code{bzip2}, and @code{xz} compression extensions.
 
 @emph{Do not change this unless you are sure you know what you are doing!}
 
--- emacs-orig/lib-src/etags.c
+++ emacs/lib-src/etags.c
@@ -561,6 +561,7 @@
   { "gz", "gzip -d -c"},
   { "GZ", "gzip -d -c"},
   { "bz2", "bzip2 -d -c" },
+  { "xz", "xz -d -c" },
   { NULL }
 };
 
@@ -874,7 +875,7 @@
 Fortran is tried first; if no tags are found, C is tried next.\n\
 When parsing any C file, a \"class\" or \"template\" keyword\n\
 switches to C++.");
-  puts ("Compressed files are supported using gzip and bzip2.\n\
+  puts ("Compressed files are supported using gzip, bzip2, and xz.\n\
 \n\
 For detailed help on a given language use, for example,\n\
 etags --help --lang=ada.");
--- emacs-orig/lisp/eshell/em-ls.el
+++ emacs/lisp/eshell/em-ls.el
@@ -162,7 +162,7 @@
 
 (defcustom eshell-ls-archive-regexp
   (concat "\\.\\(t\\(a[rz]\\|gz\\)\\|arj\\|lzh\\|"
-	  "zip\\|[zZ]\\|gz\\|bz2\\|deb\\|rpm\\)\\'")
+	  "zip\\|[zZ]\\|gz\\|bz2\\|xz\\|deb\\|rpm\\)\\'")
   "*A regular expression that matches names of file archives.
 This typically includes both traditional archives and compressed
 files."
--- emacs-orig/lisp/eshell/esh-util.el
+++ emacs/lisp/eshell/esh-util.el
@@ -71,7 +71,7 @@
   :group 'eshell-util)
 
 (defcustom eshell-tar-regexp
-  "\\.t\\(ar\\(\\.\\(gz\\|bz2\\|Z\\)\\)?\\|gz\\|a[zZ]\\|z2\\)\\'"
+  "\\.t\\(ar\\(\\.\\(gz\\|bz2\\|xz\\|Z\\)\\)?\\|gz\\|a[zZ]\\|z2\\)\\'"
   "*Regular expression used to match tar file names."
   :type 'regexp
   :group 'eshell-util)
--- emacs-orig/lisp/ibuffer.el
+++ emacs/lisp/ibuffer.el
@@ -332,7 +332,7 @@
   :group 'ibuffer)
 
 (defcustom ibuffer-compressed-file-name-regexp
-  "\\.\\(arj\\|bgz\\|bz2\\|gz\\|lzh\\|taz\\|tgz\\|zip\\|z\\)$"
+  "\\.\\(arj\\|bgz\\|bz2\\|gz\\|lzh\\|taz\\|tgz\\|xz\\|zip\\|z\\)$"
   "Regexp to match compressed file names."
   :type 'regexp
   :group 'ibuffer)
--- emacs-orig/lisp/info.el
+++ emacs/lisp/info.el
@@ -397,30 +397,34 @@
 	 ("-info"    . nil)
 	 ("/index"   . nil)
 	 (""         . nil))
-    '( (".info.Z".    "uncompress")
-       (".info.Y".    "unyabba")
-       (".info.gz".   "gunzip")
-       (".info.z".    "gunzip")
-       (".info.bz2" . ("bzip2" "-dc"))
-       (".info".      nil)
-       ("-info.Z".   "uncompress")
-       ("-info.Y".   "unyabba")
-       ("-info.gz".  "gunzip")
-       ("-info.bz2" . ("bzip2" "-dc"))
-       ("-info.z".   "gunzip")
-       ("-info".     nil)
-       ("/index.Z".   "uncompress")
-       ("/index.Y".   "unyabba")
-       ("/index.gz".  "gunzip")
-       ("/index.z".   "gunzip")
-       ("/index.bz2". ("bzip2" "-dc"))
-       ("/index".     nil)
-       (".Z".         "uncompress")
-       (".Y".         "unyabba")
-       (".gz".        "gunzip")
-       (".z".         "gunzip")
-       (".bz2" .      ("bzip2" "-dc"))
-       ("".           nil)))
+    '( (".info.Z"    . "uncompress")
+       (".info.Y"    . "unyabba")
+       (".info.gz"   . "gunzip")
+       (".info.z"    . "gunzip")
+       (".info.bz2"  . ("bzip2" "-dc"))
+       (".info.xz"   . "unxz")
+       (".info"      . nil)
+       ("-info.Z"    . "uncompress")
+       ("-info.Y"    . "unyabba")
+       ("-info.gz"   . "gunzip")
+       ("-info.z"    . "gunzip")
+       ("-info.bz2"  . ("bzip2" "-dc"))
+       ("-info.xz"   . "unxz")
+       ("-info"      . nil)
+       ("/index.Z"   . "uncompress")
+       ("/index.Y"   . "unyabba")
+       ("/index.gz"  . "gunzip")
+       ("/index.z"   . "gunzip")
+       ("/index.bz2" . ("bzip2" "-dc"))
+       ("/index.xz"  . "unxz")
+       ("/index"     . nil)
+       (".Z"         . "uncompress")
+       (".Y"         . "unyabba")
+       (".gz"        . "gunzip")
+       (".z"         . "gunzip")
+       (".bz2"       . ("bzip2" "-dc"))
+       (".xz"        . "unxz")
+       (""           . nil)))
   "List of file name suffixes and associated decoding commands.
 Each entry should be (SUFFIX . STRING); the file is given to
 the command as standard input.
--- emacs-orig/lisp/international/mule.el
+++ emacs/lisp/international/mule.el
@@ -1679,7 +1679,7 @@
      . no-conversion-multibyte)
     ("\\.\\(exe\\|EXE\\)\\'" . no-conversion)
     ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion)
-    ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion)
+    ("\\.\\(gz\\|Z\\|bz\\|bz2\\|xz\\|gpg\\)\\'" . no-conversion)
     ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion)
     ("\\.pdf\\'" . no-conversion)
     ("/#[^/]+#\\'" . emacs-mule)))
--- emacs-orig/lisp/progmodes/etags.el
+++ emacs/lisp/progmodes/etags.el
@@ -68,7 +68,8 @@
   :type '(repeat file))
 
 ;;;###autoload
-(defcustom tags-compression-info-list (purecopy '("" ".Z" ".bz2" ".gz" ".tgz"))
+(defcustom tags-compression-info-list
+  (purecopy '("" ".Z" ".bz2" ".gz" ".xz" ".tgz"))
   "*List of extensions tried by etags when jka-compr is used.
 An empty string means search the non-compressed file.
 These extensions will be tried only if jka-compr was activated
--- emacs-orig/lisp/woman.el
+++ emacs/lisp/woman.el
@@ -810,7 +810,7 @@
 
 (defvar woman-file-regexp nil
   "Regexp used to select (possibly compressed) man source files, e.g.
-\"\\.\\([0-9lmnt]\\w*\\)\\(\\.\\(g?z\\|bz2\\)\\)?\\'\".
+\"\\.\\([0-9lmnt]\\w*\\)\\(\\.\\(g?z\\|bz2\\|xz\\)\\)?\\'\".
 Built automatically from the customizable user options
 `woman-uncompressed-file-regexp' and `woman-file-compression-regexp'.")
 
@@ -846,11 +846,11 @@
   :group 'woman-interface)
 
 (defcustom woman-file-compression-regexp
-  "\\.\\(g?z\\|bz2\\)\\'"
+  "\\.\\(g?z\\|bz2\\|xz\\)\\'"
   "Do not change this unless you are sure you know what you are doing!
 Regexp used to match compressed man file extensions for which
 decompressors are available and handled by auto-compression mode,
-e.g. \"\\\\.\\\\(g?z\\\\|bz2\\\\)\\\\'\" for `gzip' or `bzip2'.
+e.g. \"\\\\.\\\\(g?z\\\\|bz2\\\\|xz\\\\)\\\\'\" for `gzip', `bzip2', or `xz'.
 Should begin with \\. and end with \\' and MUST NOT be optional."
   ;; Should be compatible with car of
   ;; `jka-compr-file-name-handler-entry', but that is unduly



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

* Re: Support for xz compression (patch included)
  2010-09-22 15:45 Support for xz compression (patch included) Ulrich Mueller
@ 2010-09-22 15:59 ` Ulrich Mueller
  2010-09-25 21:44   ` Glenn Morris
  0 siblings, 1 reply; 3+ messages in thread
From: Ulrich Mueller @ 2010-09-22 15:59 UTC (permalink / raw)
  To: emacs-devel

>>>>> I wrote:

> Please find below a patch against the current trunk that extends xz
> support.

I forgot the etags manpage. Patch included below.


doc/man/ChangeLog
2010-09-22  Ulrich Mueller  <ulm@gentoo.org>

	* etags.1: xz compression is now supported.

--- emacs-orig/doc/man/etags.1
+++ emacs/doc/man/etags.1
@@ -62,7 +62,7 @@
 with absolute file names.  Files generated from a source file\-\-like
 a C file generated from a source Cweb file\-\-will be recorded with
 the name of the source file.
-Compressed files are supported using gzip and bzip2.
+Compressed files are supported using gzip, bzip2, and xz.
 The programs recognize the language used in an input file based on its
 file name and contents.  The \fB\-\-language\fP switch can be used to force
 parsing of the file names following the switch according to the given



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

* Re: Support for xz compression (patch included)
  2010-09-22 15:59 ` Ulrich Mueller
@ 2010-09-25 21:44   ` Glenn Morris
  0 siblings, 0 replies; 3+ messages in thread
From: Glenn Morris @ 2010-09-25 21:44 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: emacs-devel


Thanks; applied.

(Please do not include cosmetic whitespace changes in patches.
Please bump the :version if changing defcustoms.)



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

end of thread, other threads:[~2010-09-25 21:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-22 15:45 Support for xz compression (patch included) Ulrich Mueller
2010-09-22 15:59 ` Ulrich Mueller
2010-09-25 21:44   ` Glenn Morris

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.