summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2013-02-21 15:57:26 +0400
committerDmitry Stogov <dmitry@zend.com>2013-02-21 15:57:26 +0400
commitb5d267aa95aec1e89dc34f0bcc3c46576354cd26 (patch)
tree99343c03cabc0cb65b260b394dc96e6cca3eaf5a
parentc16d6befd429a2e55c266b6e8df7fe2f93f68c91 (diff)
parent7b113d789df26b2ad560e747cac0b1ed2043adec (diff)
downloadphp-git-b5d267aa95aec1e89dc34f0bcc3c46576354cd26.tar.gz
Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3: PHAR should modify entry timestamp when it's modified
-rw-r--r--ext/phar/stream.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/phar/stream.c b/ext/phar/stream.c
index 612a9765e7..924138d8fa 100644
--- a/ext/phar/stream.c
+++ b/ext/phar/stream.c
@@ -458,8 +458,11 @@ static int phar_stream_flush(php_stream *stream TSRMLS_DC) /* {{{ */
{
char *error;
int ret;
- if (stream->mode[0] == 'w' || (stream->mode[0] == 'r' && stream->mode[1] == '+')) {
- ret = phar_flush(((phar_entry_data *)stream->abstract)->phar, 0, 0, 0, &error TSRMLS_CC);
+ phar_entry_data *data = (phar_entry_data *) stream->abstract;
+
+ if (data->internal_file->is_modified) {
+ data->internal_file->timestamp = time(0);
+ ret = phar_flush(data->phar, 0, 0, 0, &error TSRMLS_CC);
if (error) {
php_stream_wrapper_log_error(stream->wrapper, REPORT_ERRORS TSRMLS_CC, "%s", error);
efree(error);