summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_test/tests/inc/tar.test.php18
-rw-r--r--inc/Tar.class.php4
-rw-r--r--lib/plugins/plugin/classes/ap_download.class.php2
3 files changed, 14 insertions, 10 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 59e14c705..86fe65abb 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;
@@ -631,4 +631,4 @@ class TarIOException extends Exception {
}
class TarIllegalCompressionException extends Exception {
-} \ No newline at end of file
+}
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;