diff -purN kdebase-3.5.7.orig/doc/kioslave/index.docbook kdebase-3.5.7/doc/kioslave/index.docbook
--- kdebase-3.5.7.orig/doc/kioslave/index.docbook 2007-09-13 18:41:54.000000000 +0200
+++ kdebase-3.5.7/doc/kioslave/index.docbook 2007-09-13 18:46:13.000000000 +0200
@@ -20,6 +20,7 @@
+
@@ -68,6 +69,7 @@
&kio-info;
&kio-lan;
&kio-ldap;
+&kio-lzma;
&kio-mailto;
&kio-mac;
&kio-man;
diff -purN kdebase-3.5.7.orig/doc/kioslave/lzma.docbook kdebase-3.5.7/doc/kioslave/lzma.docbook
--- kdebase-3.5.7.orig/doc/kioslave/lzma.docbook 1970-01-01 01:00:00.000000000 +0100
+++ kdebase-3.5.7/doc/kioslave/lzma.docbook 2007-09-13 18:46:13.000000000 +0200
@@ -0,0 +1,30 @@
+
+lzma
+
+
+&Lauri.Watts; &Lauri.Watts.mail;
+
+
+
+
+lzma is a compression program
+
+The lzma kioslave is not directly usable, and is intended for use
+as a filter. For example, the tar kioslave can filter a file through
+the lzma kioslave, in order to display the contents of a tar.lzma file directly in a &konqueror;
+window.
+
+If you click on a file compressed with a lzma extension in &konqueror;, this kioslave is
+used to uncompress it and display it as a normal (uncompressed)
+file.
+
+If you are a developer, and would like to use the lzma filter, you
+can find documentation on using kioslaves at http://developer.kde.org
+
+ See the manual: lzma.
+
+
+
diff -purN kdebase-3.5.7.orig/kioslave/filter/lzma.protocol kdebase-3.5.7/kioslave/filter/lzma.protocol
--- kdebase-3.5.7.orig/kioslave/filter/lzma.protocol 1970-01-01 01:00:00.000000000 +0100
+++ kdebase-3.5.7/kioslave/filter/lzma.protocol 2007-09-13 18:46:13.000000000 +0200
@@ -0,0 +1,10 @@
+[Protocol]
+exec=kio_filter
+protocol=lzma
+mimetype=application/lzma
+input=stream
+output=stream
+reading=true
+source=false
+DocPath=kioslave/lzma.html
+Icon=ark
diff -purN kdebase-3.5.7.orig/kioslave/filter/Makefile.am kdebase-3.5.7/kioslave/filter/Makefile.am
--- kdebase-3.5.7.orig/kioslave/filter/Makefile.am 2007-09-13 18:41:35.000000000 +0200
+++ kdebase-3.5.7/kioslave/filter/Makefile.am 2007-09-13 18:47:03.000000000 +0200
@@ -17,5 +17,5 @@ if include_BZIP2
BZIP2FILES=bzip.protocol bzip2.protocol
endif
-protocol_DATA = gzip.protocol $(BZIP2FILES)
+protocol_DATA = gzip.protocol $(BZIP2FILES) lzma.protocol
diff -purN kdebase-3.5.7.orig/kioslave/info/kde-info2html kdebase-3.5.7/kioslave/info/kde-info2html
--- kdebase-3.5.7.orig/kioslave/info/kde-info2html 2007-09-13 18:41:35.000000000 +0200
+++ kdebase-3.5.7/kioslave/info/kde-info2html 2007-09-13 18:46:13.000000000 +0200
@@ -39,6 +39,8 @@
# March 9 2003 Add support for browsing by file. by Luis Pedro Coelho
# June 11 2003 Update the layout of the sides to the new infopageslayout.
# by Sven Leiber
+# August 30 2007 Add lzma support.
+# by Per Øyvind Karlsen
#
#-------------------------------------------------------
@@ -143,6 +145,9 @@ sub FileNotFound {
elsif ($DirFileName =~ m/.info.gz$/ ) {
open DIR, "-|", "gzip", "-dc", $DirFileName;
}
+ elsif ($DirFileName =~ m/.info.lzma$/ ) {
+ open DIR, "-|", "lzma", "-dc", $DirFileName;
+ }
else {
open DIR, $DirFileName;
}
@@ -252,6 +257,9 @@ sub infocat {
elsif ($infofile =~ m/.info.gz$/ ) {
open INFOFILE, "-|", "gzip", "-dc", "$dir/$infofile";
}
+ elsif ($infofile =~ m/.info.lzma$/ ) {
+ open INFOFILE, "-|", "lzma", "-dc", "$dir/$infofile";
+ }
elsif ($infofile =~ m/.info$/) {
open INFOFILE, "-|", "$dir/$infofile";
}
@@ -427,6 +435,9 @@ sub ReadIndirectTable {
open FH1, "-|", "gunzip", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
} elsif ($FileName =~ /\.bz2$/) {
open FH1, "-|", "bunzip2", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+ } elsif ($FileName =~ /\.lzma$/) {
+ open FH1, "-|", "unlzma", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+
} else {
open(FH1, $FileName) || &DieFileNotFound($FileName);
}
@@ -473,6 +484,8 @@ sub ReadTagTable {
open FH, "-|", "gunzip", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
} elsif ($FileName =~ /\.bz2$/) {
open FH, "-|", "bunzip2", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+ } elsif ($FileName =~ /\.lzma$/) {
+ open FH, "-|", "unlzma", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
} else {
open FH, $FileName || &DieFileNotFound($FileName);
}
@@ -756,6 +769,8 @@ sub InfoNode2HTML {
open FH2, "-|", "gunzip", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
} elsif ($FileName =~ /\.bz2$/) {
open FH2, "-|", "bunzip2", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
+ } elsif ($FileName =~ /\.lzma$/) {
+ open FH2, "-|", "unlzma", "-q", "-d", "-c", $FileName || &DieFileNotFound($FileName);
} else {
open FH2, $FileName || &DieFileNotFound($FileName);
}
@@ -985,17 +1000,21 @@ sub FindFile {
foreach my $Name ($File, $Alt) {
my $gzName = $Name . '.gz';
my $bz2Name = $Name . '.bz2';
+ my $lzmaName = $Name . '.lzma';
foreach (@info2html::config::INFODIR) {
return "$_/$Name" if -e "$_/$Name";
return "$_/$gzName" if -e "$_/$gzName";
return "$_/$bz2Name" if -e "$_/$bz2Name";
+ return "$_/$lzmaName" if -e "$_/$lzmaName";
+
}
next unless $ENV{INFOPATH};
foreach my $i (split(/:/, $ENV{INFOPATH})) {
return "$i/$Name" if -e "$i/$Name";
return "$i/$gzName" if -e "$i/$gzName";
return "$i/$bz2Name" if -e "$i/$bz2Name";
+ return "$i/$lzmaName" if -e "$i/$lzmaName";
}
}
return "";
diff -purN kdebase-3.5.7.orig/kioslave/man/kio_man.cpp kdebase-3.5.7/kioslave/man/kio_man.cpp
--- kdebase-3.5.7.orig/kioslave/man/kio_man.cpp 2007-09-13 18:41:35.000000000 +0200
+++ kdebase-3.5.7/kioslave/man/kio_man.cpp 2007-09-13 18:46:13.000000000 +0200
@@ -68,6 +68,8 @@ void stripExtension( QString *name )
pos -= 4;
else if ( name->find(".bz", -3) != -1 )
pos -= 3;
+ else if ( name->find(".lzma", -5) != -1 )
+ pos -= 5;
if ( pos > 0 )
pos = name->findRev('.', pos-1);
@@ -1311,6 +1313,8 @@ void MANProtocol::showIndex(const QStrin
end -= 2;
else if ( len >= 4 && strcmp( end-3, ".bz2" ) == 0 )
end -= 4;
+ else if ( len >= 5 && strcmp( end-4, ".lzma" ) == 0 )
+ end -= 5;
while ( end >= begin && *end != '.' )
end--;