summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2013-01-23 06:56:09 -0800
committerAndreas Gohr <andi@splitbrain.org>2013-01-23 06:56:09 -0800
commitd0cf0750a5e3c0dba2eb161ce81fdca331494e6e (patch)
tree7c44c9a8a22da320fbb3a6991b28a16cfa347bd7
parentc68b2443b0ead0841bd063634f31abc677487ffa (diff)
parentf2cb3ec76dec3fe2b40f25765ef842223c7132fe (diff)
downloadrpg-d0cf0750a5e3c0dba2eb161ce81fdca331494e6e.tar.gz
rpg-d0cf0750a5e3c0dba2eb161ce81fdca331494e6e.tar.bz2
Merge pull request #162 from glensc/bz-bz2
handle bz (bzip not bzip2) better
-rw-r--r--_test/tests/inc/tar.test.php18
-rw-r--r--inc/Tar.class.php2
-rw-r--r--lib/plugins/plugin/classes/ap_download.class.php2
3 files changed, 13 insertions, 9 deletions
diff --git a/_test/tests/inc/tar.test.php b/_test/tests/inc/tar.test.php
index e8805a75d..f27b9506b 100644
--- a/_test/tests/inc/tar.test.php
+++ b/_test/tests/inc/tar.test.php
@@ -73,7 +73,7 @@ class Tar_TestCase extends DokuWikiTest {
public function test_tarcontent() {
$dir = dirname(__FILE__).'/tar';
- foreach(array('tar', 'tgz', 'tbz') as $ext) {
+ foreach(array('tar', 'tgz', 'tbz', 'tbz2') as $ext) {
$tar = new Tar();
$file = "$dir/test.$ext";
@@ -96,7 +96,7 @@ class Tar_TestCase extends DokuWikiTest {
$dir = dirname(__FILE__).'/tar';
$out = sys_get_temp_dir().'/dwtartest'.md5(time());
- foreach(array('tar', 'tgz', 'tbz') as $ext) {
+ foreach(array('tar', 'tgz', 'tbz', 'tbz2') as $ext) {
$tar = new Tar();
$file = "$dir/test.$ext";
@@ -122,7 +122,7 @@ class Tar_TestCase extends DokuWikiTest {
$dir = dirname(__FILE__).'/tar';
$out = sys_get_temp_dir().'/dwtartest'.md5(time());
- foreach(array('tar', 'tgz', 'tbz') as $ext) {
+ foreach(array('tar', 'tgz', 'tbz', 'tbz2') as $ext) {
$tar = new Tar();
$file = "$dir/test.$ext";
@@ -148,7 +148,7 @@ class Tar_TestCase extends DokuWikiTest {
$dir = dirname(__FILE__).'/tar';
$out = sys_get_temp_dir().'/dwtartest'.md5(time());
- foreach(array('tar', 'tgz', 'tbz') as $ext) {
+ foreach(array('tar', 'tgz', 'tbz', 'tbz2') as $ext) {
$tar = new Tar();
$file = "$dir/test.$ext";
@@ -174,7 +174,7 @@ class Tar_TestCase extends DokuWikiTest {
$dir = dirname(__FILE__).'/tar';
$out = sys_get_temp_dir().'/dwtartest'.md5(time());
- foreach(array('tar', 'tgz', 'tbz') as $ext) {
+ foreach(array('tar', 'tgz', 'tbz', 'tbz2') as $ext) {
$tar = new Tar();
$file = "$dir/test.$ext";
@@ -199,7 +199,7 @@ class Tar_TestCase extends DokuWikiTest {
$dir = dirname(__FILE__).'/tar';
$out = sys_get_temp_dir().'/dwtartest'.md5(time());
- foreach(array('tar', 'tgz', 'tbz') as $ext) {
+ foreach(array('tar', 'tgz', 'tbz', 'tbz2') as $ext) {
$tar = new Tar();
$file = "$dir/test.$ext";
@@ -229,6 +229,10 @@ class Tar_TestCase extends DokuWikiTest {
$this->assertEquals(Tar::COMPRESS_GZIP, $tar->filetype('foo.tar.gz'));
$this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tbz'));
$this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tBZ'));
+ $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tbz2'));
+ $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tBZ2'));
+ $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.bz'));
+ $this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.BZ'));
$this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.BZ2'));
$this->assertEquals(Tar::COMPRESS_BZIP, $tar->filetype('foo.tar.bz2'));
}
@@ -316,4 +320,4 @@ class Tar_TestCase extends DokuWikiTest {
TestUtils::rdelete($out);
}
-} \ No newline at end of file
+}
diff --git a/inc/Tar.class.php b/inc/Tar.class.php
index 20f397395..20d892e68 100644
--- a/inc/Tar.class.php
+++ b/inc/Tar.class.php
@@ -618,7 +618,7 @@ class Tar {
$file = strtolower($file);
if(substr($file, -3) == '.gz' || substr($file, -4) == '.tgz') {
$comptype = Tar::COMPRESS_GZIP;
- } elseif(substr($file, -4) == '.bz2' || substr($file, -4) == '.tbz') {
+ } elseif(substr($file, -4) == '.bz2' || substr($file, -3) == '.bz' || substr($file, -4) == '.tbz' || substr($file, -5) == ".tbz2") {
$comptype = Tar::COMPRESS_BZIP;
} else {
$comptype = Tar::COMPRESS_NONE;
diff --git a/lib/plugins/plugin/classes/ap_download.class.php b/lib/plugins/plugin/classes/ap_download.class.php
index 3cc455867..e13d1b8f2 100644
--- a/lib/plugins/plugin/classes/ap_download.class.php
+++ b/lib/plugins/plugin/classes/ap_download.class.php
@@ -195,7 +195,7 @@ class ap_download extends ap_manage {
if (substr($target, -1) == "/") $target = substr($target, 0, -1);
$ext = $this->guess_archive($file);
- if (in_array($ext, array('tar','bz','gz'))) {
+ if (in_array($ext, array('tar','bz','bz2','gz'))) {
switch($ext){
case 'bz':
$compress_type = Tar::COMPRESS_BZIP;