Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 163563 Details for
Bug 219412
=app-misc/mc-4.7.0_pre1 can't handle .tbz2 filetype
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Version of patch that applies to mc-4.6.2-pre1
mc-4.6.2-pre1-lzma.patch (text/plain), 8.17 KB, created by
Ian Abbott
on 2008-08-22 18:09:06 UTC
(
hide
)
Description:
Version of patch that applies to mc-4.6.2-pre1
Filename:
MIME Type:
Creator:
Ian Abbott
Created:
2008-08-22 18:09:06 UTC
Size:
8.17 KB
patch
obsolete
># LZMA support for Midnight Commander ># 2006-03-17 ># ># 2008-08-22 - Rebased patch against Midnight Commander 4.6.2-pre1 ># and allow *.tbz2 files to be opened and viewed ># -- Ian Abbott <ian@abbott.org> ># ># This patch adds basic support for LZMA compressed files to ># Midnight Commander 4.6.1. You should have LZMA utils 4.32.x ># or later. Older versions of LZMA utils will *not* work. ># ># Copyright (C) 2006 Lasse Collin <lasse.collin@tukaani.org> ># ># This patch is free software; you can redistribute it and/or modify ># it under the terms of the GNU General Public License as published by ># the Free Software Foundation; either version 2 of the License, or ># (at your option) any later version. ># ># This program is distributed in the hope that it will be useful, ># but WITHOUT ANY WARRANTY; without even the implied warranty of ># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ># GNU General Public License for more details. > >diff -urN mc-4.6.2-pre1.orig/edit/edit.c mc-4.6.2-pre1/edit/edit.c >--- mc-4.6.2-pre1.orig/edit/edit.c 2007-01-04 15:37:23.000000000 +0000 >+++ mc-4.6.2-pre1/edit/edit.c 2008-08-22 17:48:05.000000000 +0100 >@@ -181,6 +181,7 @@ > static const struct edit_filters { > const char *read, *write, *extension; > } all_filters[] = { >+ { "lzma -cd %s 2>&1", "lzma > %s", ".lzma" }, > { "bzip2 -cd %s 2>&1", "bzip2 > %s", ".bz2" }, > { "gzip -cd %s 2>&1", "gzip > %s", ".gz" }, > { "gzip -cd %s 2>&1", "gzip > %s", ".Z" } >diff -urN mc-4.6.2-pre1.orig/lib/mc.ext.in mc-4.6.2-pre1/lib/mc.ext.in >--- mc-4.6.2-pre1.orig/lib/mc.ext.in 2006-12-28 03:57:01.000000000 +0000 >+++ mc-4.6.2-pre1/lib/mc.ext.in 2008-08-22 19:06:20.000000000 +0100 >@@ -115,10 +115,15 @@ > # Open=%cd %p#utar > View=%view{ascii} bzip -dc %f 2>/dev/null | tar tvvf - > >-regex/\.t(ar\.bz2|bz|b2)$ >+regex/\.t(ar\.bz2|bz2?|b2)$ > Open=%cd %p#utar > View=%view{ascii} bzip2 -dc %f 2>/dev/null | tar tvvf - > >+# .tar.lzma, .tlz >+regex/\.t(ar\.lzma|lz)$ >+ Open=%cd %p#utar >+ View=%view{ascii} lzma -dc %f 2>/dev/null | tar tvvf - >+ > # .tar.F - used in QNX > regex/\.tar\.F$ > # Open=%cd %p#utar >@@ -298,6 +303,10 @@ > Open=case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac | %var{PAGER:more} > View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac > >+regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$ >+ Open=case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac | %var{PAGER:more} >+ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac >+ > > ### Images ### > >@@ -542,6 +551,11 @@ > Open=gzip -dc %f | %var{PAGER:more} > View=%view{ascii} gzip -dc %f 2>/dev/null > >+# lzma >+regex/\.lzma$ >+ Open=lzma -dc %f | %var{PAGER:more} >+ View=%view{ascii} lzma -dc %f 2>/dev/null >+ > > ### Default ### > >diff -urN mc-4.6.2-pre1.orig/src/util.c mc-4.6.2-pre1/src/util.c >--- mc-4.6.2-pre1.orig/src/util.c 2005-11-03 02:18:38.000000000 +0000 >+++ mc-4.6.2-pre1/src/util.c 2008-08-22 17:48:05.000000000 +0100 >@@ -935,7 +935,7 @@ > enum compression_type > get_compression_type (int fd) > { >- unsigned char magic[4]; >+ unsigned char magic[16]; > > /* Read the magic signature */ > if (mc_read (fd, (char *) magic, 4) != 4) >@@ -979,6 +979,31 @@ > return COMPRESSION_BZIP2; > } > } >+ >+ /* LZMA files; both LZMA_Alone and LZMA utils formats. The LZMA_Alone >+ * format is used by the LZMA_Alone tool from LZMA SDK. The LZMA utils >+ * format is the default format of LZMA utils 4.32.1 and later. */ >+ if (magic[0] < 0xE1 || (magic[0] == 0xFF && magic[1] == 'L' && >+ magic[2] == 'Z' && magic[3] == 'M')) { >+ if (mc_read (fd, (char *) magic + 4, 9) == 9) { >+ /* LZMA utils format */ >+ if (magic[0] == 0xFF && magic[4] == 'A' && magic[5] == 0x00) >+ return COMPRESSION_LZMA; >+ /* The LZMA_Alone format has no magic bytes, thus we >+ * need to play a wizard. This can give false positives, >+ * thus the detection below should be removed when >+ * the newer LZMA utils format has got popular. */ >+ if (magic[0] < 0xE1 && magic[4] < 0x20 && >+ ((magic[10] == 0x00 && magic[11] == 0x00 && >+ magic[12] == 0x00) || >+ (magic[5] == 0xFF && magic[6] == 0xFF && >+ magic[7] == 0xFF && magic[8] == 0xFF && >+ magic[9] == 0xFF && magic[10] == 0xFF && >+ magic[11] == 0xFF && magic[12] == 0xFF))) >+ return COMPRESSION_LZMA; >+ } >+ } >+ > return 0; > } > >@@ -989,6 +1014,7 @@ > case COMPRESSION_GZIP: return "#ugz"; > case COMPRESSION_BZIP: return "#ubz"; > case COMPRESSION_BZIP2: return "#ubz2"; >+ case COMPRESSION_LZMA: return "#ulzma"; > } > /* Should never reach this place */ > fprintf (stderr, "Fatal: decompress_extension called with an unknown argument\n"); >diff -urN mc-4.6.2-pre1.orig/src/util.h mc-4.6.2-pre1/src/util.h >--- mc-4.6.2-pre1.orig/src/util.h 2006-02-03 17:04:17.000000000 +0000 >+++ mc-4.6.2-pre1/src/util.h 2008-08-22 17:48:05.000000000 +0100 >@@ -179,7 +179,8 @@ > COMPRESSION_NONE, > COMPRESSION_GZIP, > COMPRESSION_BZIP, >- COMPRESSION_BZIP2 >+ COMPRESSION_BZIP2, >+ COMPRESSION_LZMA > }; > > /* Looks for ``magic'' bytes at the start of the VFS file to guess the >diff -urN mc-4.6.2-pre1.orig/vfs/extfs/iso9660.in mc-4.6.2-pre1/vfs/extfs/iso9660.in >--- mc-4.6.2-pre1.orig/vfs/extfs/iso9660.in 2006-07-19 12:19:52.000000000 +0100 >+++ mc-4.6.2-pre1/vfs/extfs/iso9660.in 2008-08-22 17:48:05.000000000 +0100 >@@ -29,6 +29,7 @@ > mcisofs_list () { > # left as a reminder to implement compressed image support =) > case "$1" in >+ *.lzma) MYCAT="lzma -dc";; > *.bz2) MYCAT="bzip2 -dc";; > *.gz) MYCAT="gzip -dc";; > *.z) MYCAT="gzip -dc";; >diff -urN mc-4.6.2-pre1.orig/vfs/extfs/lslR.in mc-4.6.2-pre1/vfs/extfs/lslR.in >--- mc-4.6.2-pre1.orig/vfs/extfs/lslR.in 2003-06-22 10:54:21.000000000 +0100 >+++ mc-4.6.2-pre1/vfs/extfs/lslR.in 2008-08-22 17:48:05.000000000 +0100 >@@ -12,6 +12,7 @@ > > mclslRfs_list () { > case "$1" in >+ *.lzma) MYCAT="lzma -dc";; > *.bz2) MYCAT="bzip2 -dc";; > *.gz) MYCAT="gzip -dc";; > *.z) MYCAT="gzip -dc";; >diff -urN mc-4.6.2-pre1.orig/vfs/extfs/mailfs.in mc-4.6.2-pre1/vfs/extfs/mailfs.in >--- mc-4.6.2-pre1.orig/vfs/extfs/mailfs.in 2006-05-28 13:35:57.000000000 +0100 >+++ mc-4.6.2-pre1/vfs/extfs/mailfs.in 2008-08-22 17:48:05.000000000 +0100 >@@ -7,6 +7,7 @@ > > $zcat="zcat"; # gunzip to stdout > $bzcat="bzip2 -dc"; # bunzip2 to stdout >+$lzcat="lzma -dc"; # unlzma to stdout > $file="file"; # "file" command > $TZ='GMT'; # default timezone (for Date module) > >@@ -182,6 +183,8 @@ > exit 1 unless (open IN, "$zcat $mbox_qname|"); > } elsif (/bzip/) { > exit 1 unless (open IN, "$bzcat $mbox_qname|"); >+} elsif (/lzma/) { >+ exit 1 unless (open IN, "$lzcat $mbox_qname|"); > } else { > exit 1 unless (open IN, "<$mbox_name"); > } >diff -urN mc-4.6.2-pre1.orig/vfs/extfs/patchfs.in mc-4.6.2-pre1/vfs/extfs/patchfs.in >--- mc-4.6.2-pre1.orig/vfs/extfs/patchfs.in 2004-11-16 23:00:40.000000000 +0000 >+++ mc-4.6.2-pre1/vfs/extfs/patchfs.in 2008-08-22 17:48:05.000000000 +0100 >@@ -12,6 +12,7 @@ > use File::Temp 'tempfile'; > > # standard binaries >+my $lzma = 'lzma'; > my $bzip = 'bzip2'; > my $gzip = 'gzip'; > my $fileutil = 'file'; >@@ -70,7 +71,9 @@ > my ($qfname)=(quotemeta $_[0]); > > $_=`$fileutil $qfname`; >- if (/bzip/) { >+ if (/lzma/) { >+ return "$lzma -dc $qfname"; >+ } elsif (/bzip/) { > return "$bzip -dc $qfname"; > } elsif (/gzip/) { > return "$gzip -dc $qfname"; >@@ -86,7 +89,9 @@ > my ($sep) = $append ? '>>' : '>'; > > $_=`$fileutil $qfname`; >- if (/bzip/) { >+ if (/lzma/) { >+ return "$lzma -c $sep $qfname"; >+ } elsif (/bzip/) { > return "$bzip -c $sep $qfname"; > } elsif (/gzip/) { > return "$gzip -c $sep $qfname"; >diff -urN mc-4.6.2-pre1.orig/vfs/extfs/sfs.ini mc-4.6.2-pre1/vfs/extfs/sfs.ini >--- mc-4.6.2-pre1.orig/vfs/extfs/sfs.ini 1998-12-15 15:57:43.000000000 +0000 >+++ mc-4.6.2-pre1/vfs/extfs/sfs.ini 2008-08-22 17:48:05.000000000 +0100 >@@ -10,6 +10,8 @@ > ubz/1 bzip -d < %1 > %3 > bz2/1 bzip2 < %1 > %3 > ubz2/1 bzip2 -d < %1 > %3 >+lzma/1 lzma < %1 > %3 >+ulzma/1 lzma -d < %1 > %3 > tar/1 tar cf %3 %1 > tgz/1 tar czf %3 %1 > uhtml/1 lynx -force_html -dump %1 > %3
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 219412
:
151953
|
163563