From: Marcus Boerger Date: Mon, 14 May 2007 17:13:07 +0000 (+0000) Subject: - Add PharFileInfo::hasMetadata() & delMetadata() X-Git-Tag: RELEASE_1_2_0~62 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6e3ac5dbcd2b7cdea519432db705c5dd68631001;p=php - Add PharFileInfo::hasMetadata() & delMetadata() --- diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index b6ce5db441..a226e558a1 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -1027,6 +1027,17 @@ PHP_METHOD(PharFileInfo, chmod) } /* }}} */ +/* {{{ proto int PharFileInfo::hasMetaData() + * Returns the metadata of the entry + */ +PHP_METHOD(PharFileInfo, hasMetadata) +{ + PHAR_ENTRY_OBJECT(); + + RETURN_BOOL(entry_obj->ent.entry->metadata != NULL); +} +/* }}} */ + /* {{{ proto int PharFileInfo::getMetaData() * Returns the metadata of the entry */ @@ -1041,7 +1052,7 @@ PHP_METHOD(PharFileInfo, getMetadata) /* }}} */ /* {{{ proto int PharFileInfo::setMetaData(mixed $metadata) - * Returns the metadata of the entry + * Sets the metadata of the entry */ PHP_METHOD(PharFileInfo, setMetadata) { @@ -1062,6 +1073,23 @@ PHP_METHOD(PharFileInfo, setMetadata) } /* }}} */ +/* {{{ proto bool PharFileInfo::delMetaData() + * Deletes the metadata of the entry + */ +PHP_METHOD(PharFileInfo, delMetadata) +{ + PHAR_ENTRY_OBJECT(); + + if (entry_obj->ent.entry->metadata) { + zval_ptr_dtor(&entry_obj->ent.entry->metadata); + entry_obj->ent.entry->metadata = NULL; + RETURN_TRUE; + } else { + RETURN_FALSE; + } +} +/* }}} */ + /* {{{ proto int PharFileInfo::setCompressedGZ() * Instructs the Phar class to compress the current file using zlib */ @@ -1292,8 +1320,10 @@ zend_function_entry php_entry_methods[] = { PHP_ME(PharFileInfo, getCRC32, NULL, 0) PHP_ME(PharFileInfo, isCRCChecked, NULL, 0) PHP_ME(PharFileInfo, getPharFlags, NULL, 0) + PHP_ME(PharFileInfo, hasMetadata, NULL, 0) PHP_ME(PharFileInfo, getMetadata, NULL, 0) PHP_ME(PharFileInfo, setMetadata, arginfo_entry_setMetadata, 0) + PHP_ME(PharFileInfo, delMetadata, NULL, 0) PHP_ME(PharFileInfo, chmod, arginfo_entry_setMetadata, 0) {NULL, NULL, NULL} };