diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2019-09-14 18:49:00 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2019-09-14 18:49:00 +0200 |
commit | a858a53c079bdabbeddc36223ce0c6ae376ee9a8 (patch) | |
tree | ea7cd43ef2a0e4e62f6b07ebd9aed628ec64182a /ext/standard | |
parent | 3372a24b99401b63bfe3e9fe6f356989bb02aa3e (diff) | |
parent | d0247a63b66bfca355cad6005ae7fc3fe9c9e5dc (diff) | |
download | php-git-a858a53c079bdabbeddc36223ce0c6ae376ee9a8.tar.gz |
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #78535: auto_detect_line_endings value not parsed as bool
Diffstat (limited to 'ext/standard')
-rw-r--r-- | ext/standard/file.c | 2 | ||||
-rw-r--r-- | ext/standard/file.h | 2 | ||||
-rw-r--r-- | ext/standard/tests/file/auto_detect_line_endings_1.phpt | 24 | ||||
-rw-r--r-- | ext/standard/tests/file/auto_detect_line_endings_2.phpt | 28 |
4 files changed, 54 insertions, 2 deletions
diff --git a/ext/standard/file.c b/ext/standard/file.c index 3cd9b62ac0..9958c0d354 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -163,7 +163,7 @@ PHP_INI_BEGIN() STD_PHP_INI_ENTRY("user_agent", NULL, PHP_INI_ALL, OnUpdateString, user_agent, php_file_globals, file_globals) STD_PHP_INI_ENTRY("from", NULL, PHP_INI_ALL, OnUpdateString, from_address, php_file_globals, file_globals) STD_PHP_INI_ENTRY("default_socket_timeout", "60", PHP_INI_ALL, OnUpdateLong, default_socket_timeout, php_file_globals, file_globals) - STD_PHP_INI_ENTRY("auto_detect_line_endings", "0", PHP_INI_ALL, OnUpdateLong, auto_detect_line_endings, php_file_globals, file_globals) + STD_PHP_INI_ENTRY("auto_detect_line_endings", "0", PHP_INI_ALL, OnUpdateBool, auto_detect_line_endings, php_file_globals, file_globals) PHP_INI_END() PHP_MINIT_FUNCTION(file) diff --git a/ext/standard/file.h b/ext/standard/file.h index bcf4bfc51f..d981d5393d 100644 --- a/ext/standard/file.h +++ b/ext/standard/file.h @@ -116,7 +116,7 @@ php_meta_tags_token php_next_meta_token(php_meta_tags_data *); typedef struct { int pclose_ret; size_t def_chunk_size; - zend_long auto_detect_line_endings; + zend_bool auto_detect_line_endings; zend_long default_socket_timeout; char *user_agent; /* for the http wrapper */ char *from_address; /* for the ftp and http wrappers */ diff --git a/ext/standard/tests/file/auto_detect_line_endings_1.phpt b/ext/standard/tests/file/auto_detect_line_endings_1.phpt new file mode 100644 index 0000000000..c79082ecdb --- /dev/null +++ b/ext/standard/tests/file/auto_detect_line_endings_1.phpt @@ -0,0 +1,24 @@ +--TEST-- +auto_detect_line_endings --INI-- bool +--INI-- +auto_detect_line_endings=on +--STDIN-- +fooBar1
fooBar2
fooBar3 +--FILE-- +<?php + +var_dump(ini_get("auto_detect_line_endings")); + +var_dump(fgets(STDIN)); +var_dump(fgets(STDIN)); +var_dump(fgets(STDIN)); + +echo "Done\n"; +?> +--EXPECTF-- +string(1) "1" +string(8) "fooBar1
" +string(8) "fooBar2
" +string(8) "fooBar3 +" +Done diff --git a/ext/standard/tests/file/auto_detect_line_endings_2.phpt b/ext/standard/tests/file/auto_detect_line_endings_2.phpt new file mode 100644 index 0000000000..f33a055e08 --- /dev/null +++ b/ext/standard/tests/file/auto_detect_line_endings_2.phpt @@ -0,0 +1,28 @@ +--TEST-- +ini_set auto_detect_line_endings bool +--FILE-- +<?php + +ini_set("auto_detect_line_endings", "on"); +var_dump(ini_get("auto_detect_line_endings")); + +$filePath = __DIR__ . DIRECTORY_SEPARATOR . "auto_detect_line_endings_2.txt"; +file_put_contents($filePath, "fooBar1\rfooBar2\rfooBar3"); + +$stdin = fopen($filePath, "r"); +var_dump(fgets($stdin)); +var_dump(fgets($stdin)); +var_dump(fgets($stdin)); + +echo "Done\n"; +?> +--EXPECTF-- +string(2) "on" +string(8) "fooBar1
" +string(8) "fooBar2
" +string(7) "fooBar3" +Done +--CLEAN-- +<?php +unlink(__DIR__ . DIRECTORY_SEPARATOR . "auto_detect_line_endings_2.txt"); +?> |