File yaml-pr66.patch of Package php-pecl-yaml
From b3ba97abde6c503a305631649e8be01320078fb1 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Tue, 22 Feb 2022 11:57:38 +0100
Subject: [PATCH 1/2] Fix #65 yaml_parse_url method not working
---
yaml.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/yaml.c b/yaml.c
index e06b145..4ca2cfe 100644
--- a/yaml.c
+++ b/yaml.c
@@ -476,7 +476,6 @@ PHP_FUNCTION(yaml_parse_url)
php_stream *stream = { 0 };
zend_string *input;
- size_t size = 0;
parser_state_t state;
zval yaml;
@@ -516,7 +515,7 @@ PHP_FUNCTION(yaml_parse_url)
}
yaml_parser_initialize(&state.parser);
- yaml_parser_set_input_string(&state.parser, (unsigned char *)input, size);
+ yaml_parser_set_input_string(&state.parser, (unsigned char *)ZSTR_VAL(input), ZSTR_LEN(input));
if (pos < 0) {
php_yaml_read_all(&state, &ndocs, &yaml);
From 2cd4463594345a8c844a86c33e3539f5a44f3156 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Tue, 22 Feb 2022 12:03:54 +0100
Subject: [PATCH 2/2] add test for #65
---
package.xml | 1 +
tests/yaml_parse_url_001.phpt | 89 +++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
create mode 100644 tests/yaml_parse_url_001.phpt
diff --git a/tests/yaml_parse_url_001.phpt b/tests/yaml_parse_url_001.phpt
new file mode 100644
index 0000000..7c5efc4
--- /dev/null
+++ b/tests/yaml_parse_url_001.phpt
@@ -0,0 +1,89 @@
+--TEST--
+yaml_parse_url - general
+--SKIPIF--
+<?php if(!extension_loaded('yaml')) die('skip yaml n/a'); ?>
+--INI--
+yaml.decode_timestamp=1
+date.timezone=GMT
+--FILE--
+<?php
+var_dump(yaml_parse_url('file://' . __DIR__ . '/yaml_parse_file_001.yaml'));
+?>
+--EXPECT--
+array(8) {
+ ["invoice"]=>
+ int(34843)
+ ["date"]=>
+ int(980208000)
+ ["bill-to"]=>
+ &array(3) {
+ ["given"]=>
+ string(5) "Chris"
+ ["family"]=>
+ string(6) "Dumars"
+ ["address"]=>
+ array(4) {
+ ["lines"]=>
+ string(27) "458 Walkman Dr.
+Suite #292
+"
+ ["city"]=>
+ string(9) "Royal Oak"
+ ["state"]=>
+ string(2) "MI"
+ ["postal"]=>
+ int(48046)
+ }
+ }
+ ["ship-to"]=>
+ &array(3) {
+ ["given"]=>
+ string(5) "Chris"
+ ["family"]=>
+ string(6) "Dumars"
+ ["address"]=>
+ array(4) {
+ ["lines"]=>
+ string(27) "458 Walkman Dr.
+Suite #292
+"
+ ["city"]=>
+ string(9) "Royal Oak"
+ ["state"]=>
+ string(2) "MI"
+ ["postal"]=>
+ int(48046)
+ }
+ }
+ ["product"]=>
+ array(2) {
+ [0]=>
+ array(4) {
+ ["sku"]=>
+ string(6) "BL394D"
+ ["quantity"]=>
+ int(4)
+ ["description"]=>
+ string(10) "Basketball"
+ ["price"]=>
+ float(450)
+ }
+ [1]=>
+ array(4) {
+ ["sku"]=>
+ string(7) "BL4438H"
+ ["quantity"]=>
+ int(1)
+ ["description"]=>
+ string(10) "Super Hoop"
+ ["price"]=>
+ float(2392)
+ }
+ }
+ ["tax"]=>
+ float(251.42)
+ ["total"]=>
+ float(4443.52)
+ ["comments"]=>
+ string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338."
+}