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."
+}
openSUSE Build Service is sponsored by