diff options
Diffstat (limited to 'sys-apps/texinfo/files/texinfo-4.13-xz.patch')
-rw-r--r-- | sys-apps/texinfo/files/texinfo-4.13-xz.patch | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/sys-apps/texinfo/files/texinfo-4.13-xz.patch b/sys-apps/texinfo/files/texinfo-4.13-xz.patch new file mode 100644 index 000000000000..f5bb023be559 --- /dev/null +++ b/sys-apps/texinfo/files/texinfo-4.13-xz.patch @@ -0,0 +1,130 @@ +https://bugs.gentoo.org/269742 + +From bfae00d02b5fb3a2ce34c09d2dbf0ca2f96b154f Mon Sep 17 00:00:00 2001 +From: Karl Berry <karl@gnu.org> +Date: Sat, 14 Mar 2009 17:57:41 +0000 +Subject: [PATCH] support xz compression, http://tukaani.org/xz + +--- + ChangeLog | 6 ++++++ + NEWS | 4 ++++ + doc/info-stnd.texi | 34 +++++++++++++++++----------------- + info/filesys.c | 1 + + install-info/install-info.c | 29 +++++++++++++++++++++++++---- + 5 files changed, 53 insertions(+), 21 deletions(-) + +2009-03-14 Karl Berry <karl@gnu.org> + + * info/filesys.c (compress_suffixes): add .xz/unxz. + + * info/filesys.h (DEFAULT_INFOPATH): include PATH by default. + +diff --git a/doc/info-stnd.texi b/doc/info-stnd.texi +index 2bd67f3..c730cff 100644 +--- a/doc/info-stnd.texi ++++ b/doc/info-stnd.texi +@@ -202,21 +202,21 @@ directory. + @cindex Info files, compressed + In every directory Info tries, if @var{filename} is not found, Info + looks for it with a number of known extensions of Info files@footnote{ +-@file{.info}, @file{-info}, @file{/index}, and @file{.inf}.}. For every +-known extension, Info looks for a compressed file, if a regular file +-isn't found. Info supports files compressed with @code{gzip}, +-@code{bzip2}, @code{compress} and @code{yabba} programs; it calls +-@code{gunzip}, @code{bunzip2}, @code{uncompress} and @code{unyabba}, +-accordingly, to decompress such files. Compressed Info files are +-assumed to have @file{.z}, @file{.gz}, @file{.bz2}, @file{.Z}, or +-@file{.Y} extensions, possibly in addition to one of the known Info +-files extensions@footnote{The MS-DOS version allows for the Info +-extension, such as @code{.inf}, and the short compressed file +-extensions, such as @file{.z} and @file{.gz}, to be merged into a single +-extension, since DOS doesn't allow more than a single dot in the +-basename of a file. Thus, on MS-DOS, if Info looks for @file{bison}, +-file names like @file{bison.igz} and @file{bison.inz} will be found and +-decompressed by @code{gunzip}.}. ++@file{.info}, @file{-info}, @file{/index}, and @file{.inf}.}. For ++every known extension, Info looks for a compressed file, if a regular ++file isn't found. Info supports files compressed with @code{gzip}, ++@code{xz}, @code{bzip2}, @code{lzma}, @code{compress} and @code{yabba} ++programs, assumed to have @file{.z}, @file{.gz}, @file{.xz}, ++@file{.bz2}, @file{.lzma}, @file{.Z}, or @file{.Y} extensions, ++possibly after one of the known Info files extensions. ++ ++On MS-DOS, Info allows for the Info extension, such as @code{.inf}, ++and the short compressed file extensions, such as @file{.z} and ++@file{.gz}, to be merged into a single extension, since DOS doesn't ++allow more than a single dot in the basename of a file. Thus, on ++MS-DOS, if Info looks for @file{bison}, file names like ++@file{bison.igz} and @file{bison.inz} will be found and decompressed ++by @code{gunzip}. + + @item --help + @itemx -h +diff --git a/info/filesys.c b/info/filesys.c +index fdd18a8..5e795bc 100644 +--- a/info/filesys.c ++++ b/info/filesys.c +@@ -55,6 +55,7 @@ static char *info_suffixes[] = { + + static COMPRESSION_ALIST compress_suffixes[] = { + { ".gz", "gunzip" }, ++ { ".xz", "unxz" }, + { ".bz2", "bunzip2" }, + { ".z", "gunzip" }, + { ".lzma", "unlzma" }, +diff --git a/install-info/install-info.c b/install-info/install-info.c +index 24669b3..0f18ca4 100644 +--- a/install-info/install-info.c ++++ b/install-info/install-info.c +@@ -400,6 +400,11 @@ strip_info_suffix (char *fname) + len -= 3; + ret[len] = 0; + } ++ else if (len > 3 && FILENAME_CMP (ret + len - 3, ".xz") == 0) ++ { ++ len -= 3; ++ ret[len] = 0; ++ } + else if (len > 4 && FILENAME_CMP (ret + len - 4, ".bz2") == 0) + { + len -= 4; +@@ -659,6 +664,12 @@ open_possibly_compressed_file (char *filename, + { + *opened_filename = concat (filename, ".gz", ""); + f = fopen (*opened_filename, FOPEN_RBIN); ++ } ++ if (!f) ++ { ++ *opened_filename = concat (filename, ".xz", ""); ++ f = fopen (*opened_filename, FOPEN_RBIN); ++ } + if (!f) + { + free (*opened_filename); +@@ -702,7 +712,6 @@ open_possibly_compressed_file (char *filename, + else + pfatal_with_name (filename); + } +- } + + /* Read first few bytes of file rather than relying on the filename. + If the file is shorter than this it can't be usable anyway. */ +@@ -727,6 +736,15 @@ open_possibly_compressed_file (char *filename, + #else + *compression_program = "gzip"; + #endif ++ ++ else if (data[0] == '\xFD' && data[1] == '7' && data[2] == 'z' ++ && data[3] == 'X' && data[4] == 'Z' && data[5] == 0) ++#ifndef STRIP_DOT_EXE ++ *compression_program = "xz.exe"; ++#else ++ *compression_program = "xz"; ++#endif ++ + else if (data[0] == 'B' && data[1] == 'Z' && data[2] == 'h') + #ifndef STRIP_DOT_EXE + *compression_program = "bzip2.exe"; +-- +1.7.4.rc2 + |