From: Greg Beaver Date: Fri, 11 Apr 2008 13:07:14 +0000 (+0000) Subject: merge PharFileInfo->isCompressed/isCompressedGZ/isCompressedBZIP2 by adding an X-Git-Tag: RELEASE_2_0_0b1~454 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab34fcac05dfface73d1160e0c9cd4f8d4ad7da0;p=php merge PharFileInfo->isCompressed/isCompressedGZ/isCompressedBZIP2 by adding an optional parameter to isCompressed for testing specific compression algorithm [DOC] --- diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index eb272507a0..082fb8308e 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -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) diff --git a/ext/phar/tests/phar_oo_compressallbz2.phpt b/ext/phar/tests/phar_oo_compressallbz2.phpt index dc1d5c6e30..3f52227194 100644 --- a/ext/phar/tests/phar_oo_compressallbz2.phpt +++ b/ext/phar/tests/phar_oo_compressallbz2.phpt @@ -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=== diff --git a/ext/phar/tests/phar_oo_compressallgz.phpt b/ext/phar/tests/phar_oo_compressallgz.phpt index 221a376aea..7204daf54d 100644 --- a/ext/phar/tests/phar_oo_compressallgz.phpt +++ b/ext/phar/tests/phar_oo_compressallgz.phpt @@ -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=== diff --git a/ext/phar/tests/phar_oo_uncompressall.phpt b/ext/phar/tests/phar_oo_uncompressall.phpt index deaadb37c1..19cf953197 100644 --- a/ext/phar/tests/phar_oo_uncompressall.phpt +++ b/ext/phar/tests/phar_oo_uncompressall.phpt @@ -1,5 +1,5 @@ --TEST-- -Phar::decompressAllFiles() +Phar::decompressFiles() --SKIPIF-- @@ -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'));