summaryrefslogtreecommitdiffstats
path: root/yaml-pr66.patch
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2022-02-22 13:56:18 +0100
committerRemi Collet <remi@php.net>2022-02-22 13:56:18 +0100
commit0871797de74230cc2e11488e9f71548d79d9b747 (patch)
tree2e2cb80f4efd39edae9f66c284c52a144fed43da /yaml-pr66.patch
parente720874e29fad9b89b86c75bbdc1a6ea2d73afeb (diff)
fix gh#65 yaml_parse_url method not working using patch from
https://github.com/php/pecl-file_formats-yaml/pull/66
Diffstat (limited to 'yaml-pr66.patch')
-rw-r--r--yaml-pr66.patch137
1 files changed, 137 insertions, 0 deletions
diff --git a/yaml-pr66.patch b/yaml-pr66.patch
new file mode 100644
index 0000000..94e9c9e
--- /dev/null
+++ b/yaml-pr66.patch
@@ -0,0 +1,137 @@
+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."
++}