diff options
author | Christoph M. Becker <cmb@php.net> | 2016-07-22 14:55:13 +0200 |
---|---|---|
committer | Christoph M. Becker <cmb@php.net> | 2016-07-22 15:24:50 +0200 |
commit | 6b116932b28b76c3f075921a0f2660f7bf5ac4e1 (patch) | |
tree | c1d1f6c170236d4a9d93cf6b270b3ed31e4570c6 /ext/spl | |
parent | fb4a6dc0f1df106dae84c9d8f3ec53cc0da7231b (diff) | |
download | php-git-6b116932b28b76c3f075921a0f2660f7bf5ac4e1.tar.gz |
Fix #72646: SplFileObject::getCsvControl does not return the escape character
This has obviously been missed when adding the $escape parameter to
SplFileObject::setCsvControl() in PHP 5.3, so we catch up on this.
Diffstat (limited to 'ext/spl')
-rw-r--r-- | ext/spl/spl_directory.c | 9 | ||||
-rw-r--r-- | ext/spl/tests/SplFileObject_getCsvControl_basic_001.phpt | 10 |
2 files changed, 12 insertions, 7 deletions
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 8613c9302c..c08334573e 100644 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -2692,7 +2692,7 @@ SPL_METHOD(SplFileObject, fputcsv) /* }}} */ /* {{{ proto void SplFileObject::setCsvControl([string delimiter = ',' [, string enclosure = '"' [, string escape = '\\']]]) - Set the delimiter and enclosure character used in fgetcsv */ + Set the delimiter, enclosure and escape character used in fgetcsv */ SPL_METHOD(SplFileObject, setCsvControl) { spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); @@ -2735,11 +2735,11 @@ SPL_METHOD(SplFileObject, setCsvControl) /* }}} */ /* {{{ proto array SplFileObject::getCsvControl() - Get the delimiter and enclosure character used in fgetcsv */ + Get the delimiter, enclosure and escape character used in fgetcsv */ SPL_METHOD(SplFileObject, getCsvControl) { spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC); - char delimiter[2], enclosure[2]; + char delimiter[2], enclosure[2], escape[2]; array_init(return_value); @@ -2747,9 +2747,12 @@ SPL_METHOD(SplFileObject, getCsvControl) delimiter[1] = '\0'; enclosure[0] = intern->u.file.enclosure; enclosure[1] = '\0'; + escape[0] = intern->u.file.escape; + escape[1] = '\0'; add_next_index_string(return_value, delimiter, 1); add_next_index_string(return_value, enclosure, 1); + add_next_index_string(return_value, escape, 1); } /* }}} */ diff --git a/ext/spl/tests/SplFileObject_getCsvControl_basic_001.phpt b/ext/spl/tests/SplFileObject_getCsvControl_basic_001.phpt index e21f08fa2d..4e3de4bab2 100644 --- a/ext/spl/tests/SplFileObject_getCsvControl_basic_001.phpt +++ b/ext/spl/tests/SplFileObject_getCsvControl_basic_001.phpt @@ -6,10 +6,12 @@ $obj = New SplFileObject(dirname(__FILE__).'/SplFileObject_testinput.csv'); var_dump($obj->getCsvControl()); ?> ---EXPECTF-- -array(2) { +--EXPECT-- +array(3) { [0]=> - %unicode|string%(1) "," + string(1) "," [1]=> - %unicode|string%(1) """ + string(1) """ + [2]=> + string(1) "\" } |