cellog Fri Apr 11 13:07:13 2008 UTC Modified files: /pecl/phar phar_object.c /pecl/phar/tests phar_oo_compressallbz2.phpt phar_oo_compressallgz.phpt phar_oo_uncompressall.phpt Log: merge PharFileInfo->isCompressed/isCompressedGZ/isCompressedBZIP2 by adding an optional parameter to isCompressed for testing specific compression algorithm [DOC] http://cvs.php.net/viewvc.cgi/pecl/phar/phar_object.c?r1=1.201&r2=1.202&diff_format=u Index: pecl/phar/phar_object.c diff -u pecl/phar/phar_object.c:1.201 pecl/phar/phar_object.c:1.202 --- pecl/phar/phar_object.c:1.201 Fri Apr 11 12:56:52 2008 +++ pecl/phar/phar_object.c Fri Apr 11 13:07:12 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: phar_object.c,v 1.201 2008/04/11 12:56:52 cellog Exp $ */ +/* $Id: phar_object.c,v 1.202 2008/04/11 13:07:12 cellog Exp $ */ #include "phar_internal.h" #include "func_interceptors.h" @@ -3297,14 +3297,30 @@ } /* }}} */ -/* {{{ 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 @@ 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) http://cvs.php.net/viewvc.cgi/pecl/phar/tests/phar_oo_compressallbz2.phpt?r1=1.6&r2=1.7&diff_format=u Index: pecl/phar/tests/phar_oo_compressallbz2.phpt diff -u pecl/phar/tests/phar_oo_compressallbz2.phpt:1.6 pecl/phar/tests/phar_oo_compressallbz2.phpt:1.7 --- pecl/phar/tests/phar_oo_compressallbz2.phpt:1.6 Thu Apr 10 13:40:25 2008 +++ pecl/phar/tests/phar_oo_compressallbz2.phpt Fri Apr 11 13:07:13 2008 @@ -31,14 +31,14 @@ $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=== http://cvs.php.net/viewvc.cgi/pecl/phar/tests/phar_oo_compressallgz.phpt?r1=1.6&r2=1.7&diff_format=u Index: pecl/phar/tests/phar_oo_compressallgz.phpt diff -u pecl/phar/tests/phar_oo_compressallgz.phpt:1.6 pecl/phar/tests/phar_oo_compressallgz.phpt:1.7 --- pecl/phar/tests/phar_oo_compressallgz.phpt:1.6 Thu Apr 10 13:40:25 2008 +++ pecl/phar/tests/phar_oo_compressallgz.phpt Fri Apr 11 13:07:13 2008 @@ -31,14 +31,14 @@ $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=== http://cvs.php.net/viewvc.cgi/pecl/phar/tests/phar_oo_uncompressall.phpt?r1=1.6&r2=1.7&diff_format=u Index: pecl/phar/tests/phar_oo_uncompressall.phpt diff -u pecl/phar/tests/phar_oo_uncompressall.phpt:1.6 pecl/phar/tests/phar_oo_uncompressall.phpt:1.7 --- pecl/phar/tests/phar_oo_uncompressall.phpt:1.6 Thu Apr 10 13:40:25 2008 +++ pecl/phar/tests/phar_oo_uncompressall.phpt Fri Apr 11 13:07:13 2008 @@ -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 @@ $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'));