]> granicus.if.org Git - php/commitdiff
merge PharFileInfo->isCompressed/isCompressedGZ/isCompressedBZIP2 by adding an
authorGreg Beaver <cellog@php.net>
Fri, 11 Apr 2008 13:07:14 +0000 (13:07 +0000)
committerGreg Beaver <cellog@php.net>
Fri, 11 Apr 2008 13:07:14 +0000 (13:07 +0000)
optional parameter to isCompressed for testing specific compression algorithm
[DOC]

ext/phar/phar_object.c
ext/phar/tests/phar_oo_compressallbz2.phpt
ext/phar/tests/phar_oo_compressallgz.phpt
ext/phar/tests/phar_oo_uncompressall.phpt

index eb272507a08b7c97399e9343eaec270dff863b0b..082fb8308e94691482503f06819ab6bd52a7a578 100755 (executable)
@@ -3297,14 +3297,30 @@ PHP_METHOD(PharFileInfo, getCompressedSize)
 }
 /* }}} */
 
-/* {{{ proto bool PharFileInfo::isCompressed()
- * Returns whether the entry is compressed
+/* {{{ proto bool PharFileInfo::isCompressed([int compression_type])
+ * Returns whether the entry is compressed, and whether it is compressed with Phar::GZ or Phar::BZ2 if specified
  */
 PHP_METHOD(PharFileInfo, isCompressed)
 {
+       /* a number that is not Phar::GZ or Phar::BZ2 */
+       long method = 9021976;
        PHAR_ENTRY_OBJECT();
        
-       RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSION_MASK);
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &method) == FAILURE) {
+               return;
+       }
+
+       switch (method) {
+               case 9021976:
+                       RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSION_MASK);
+               case PHAR_ENT_COMPRESSED_GZ:
+                       RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_GZ);
+               case PHAR_ENT_COMPRESSED_BZ2:
+                       RETURN_BOOL(entry_obj->ent.entry->flags & PHAR_ENT_COMPRESSED_BZ2);
+               default:
+                       zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC, \
+                               "Unknown compression type specified"); \
+       }
 }
 /* }}} */
 
@@ -3936,9 +3952,7 @@ zend_function_entry php_entry_methods[] = {
        PHP_ME(PharFileInfo, getMetadata,        NULL,                       0)
        PHP_ME(PharFileInfo, getPharFlags,       NULL,                       0)
        PHP_ME(PharFileInfo, hasMetadata,        NULL,                       0)
-       PHP_ME(PharFileInfo, isCompressed,       NULL,                       0)
-       PHP_ME(PharFileInfo, isCompressedBZIP2,  NULL,                       0)
-       PHP_ME(PharFileInfo, isCompressedGZ,     NULL,                       0)
+       PHP_ME(PharFileInfo, isCompressed,       arginfo_phar_comp,          0)
        PHP_ME(PharFileInfo, isCRCChecked,       NULL,                       0)
        PHP_ME(PharFileInfo, setCompressedBZIP2, NULL,                       0)
        PHP_ME(PharFileInfo, setCompressedGZ,    NULL,                       0)
index dc1d5c6e30010ebdd197599a0fba4fd4bb1e3c05..3f52227194f0d9dd8231a6d286b326263a5950f5 100644 (file)
@@ -31,14 +31,14 @@ var_dump($phar['c']->isCompressed());
 $phar = new Phar($fname);
 $phar->compressFiles(Phar::BZ2);
 var_dump(file_get_contents($pname . '/a'));
-var_dump($phar['a']->isCompressedGZ());
-var_dump($phar['a']->isCompressedBZIP2());
+var_dump($phar['a']->isCompressed(Phar::GZ));
+var_dump($phar['a']->isCompressed(Phar::BZ2));
 var_dump(file_get_contents($pname . '/b'));
-var_dump($phar['b']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['b']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
 var_dump(file_get_contents($pname . '/c'));
-var_dump($phar['c']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['c']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
 
 ?>
 ===DONE===
index 221a376aea95e30d132e77e99b9346dc2b740bc6..7204daf54d3915477f60bcbe631acf4862441c12 100644 (file)
@@ -31,14 +31,14 @@ var_dump($phar['c']->isCompressed());
 $phar = new Phar($fname);
 $phar->compressFiles(Phar::GZ);
 var_dump(file_get_contents($pname . '/a'));
-var_dump($phar['a']->isCompressedGZ());
-var_dump($phar['a']->isCompressedBZIP2());
+var_dump($phar['a']->isCompressed(Phar::GZ));
+var_dump($phar['a']->isCompressed(Phar::BZ2));
 var_dump(file_get_contents($pname . '/b'));
-var_dump($phar['b']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['b']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
 var_dump(file_get_contents($pname . '/c'));
-var_dump($phar['c']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['c']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
 
 ?>
 ===DONE===
index deaadb37c10b8e1f88369705c1103d8b8950f4a9..19cf953197b777fde5d1ee0a7a6a813319416b67 100644 (file)
@@ -1,5 +1,5 @@
 --TEST--
-Phar::decompressAllFiles()
+Phar::decompressFiles()
 --SKIPIF--
 <?php if (!extension_loaded("phar")) die("skip"); ?>
 <?php if (!extension_loaded("zlib")) die("skip zlib not present"); ?>
@@ -31,14 +31,14 @@ var_dump($phar['c']->isCompressed());
 $phar = new Phar($fname);
 $phar->compressFiles(Phar::GZ);
 var_dump(file_get_contents($pname . '/a'));
-var_dump($phar['a']->isCompressedGZ());
-var_dump($phar['a']->isCompressedBZIP2());
+var_dump($phar['a']->isCompressed(Phar::GZ));
+var_dump($phar['a']->isCompressed(Phar::BZ2));
 var_dump(file_get_contents($pname . '/b'));
-var_dump($phar['b']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['b']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
 var_dump(file_get_contents($pname . '/c'));
-var_dump($phar['c']->isCompressedGZ());
-var_dump($phar['b']->isCompressedBZIP2());
+var_dump($phar['c']->isCompressed(Phar::GZ));
+var_dump($phar['b']->isCompressed(Phar::BZ2));
 
 $phar->decompressFiles();
 var_dump(file_get_contents($pname . '/a'));