aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2024-12-05 23:24:55 +0100
committerGravatar GitHub <noreply@github.com> 2024-12-05 23:24:55 +0100
commit35a2045d0c63ebb286184978adc7822d212385ac (patch)
tree8134795e889d5cb5b0e50263ee594f68a36c4382
parent7fa4344c8bee670e782632a64ec2884bec4d6cc5 (diff)
Merge SimplePie 1.8.1 (#7067)
https://github.com/FreshRSS/simplepie/pull/32
-rw-r--r--lib/composer.json2
-rw-r--r--lib/simplepie/simplepie/.gitignore1
-rw-r--r--lib/simplepie/simplepie/CHANGELOG.md2
-rw-r--r--lib/simplepie/simplepie/phpstan.neon.dist (renamed from lib/simplepie/simplepie/phpstan.neon)0
-rw-r--r--lib/simplepie/simplepie/src/File.php7
-rw-r--r--lib/simplepie/simplepie/src/Gzdecode.php2
-rw-r--r--lib/simplepie/simplepie/src/IRI.php17
-rw-r--r--lib/simplepie/simplepie/src/SimplePie.php2
8 files changed, 14 insertions, 19 deletions
diff --git a/lib/composer.json b/lib/composer.json
index 2d850a6ab..f80338393 100644
--- a/lib/composer.json
+++ b/lib/composer.json
@@ -18,7 +18,7 @@
"marienfressinaud/lib_opml": "0.5.1",
"phpgt/cssxpath": "dev-master#45f3ac151fc21d459e2515c3aff97cd4bf877bf8",
"phpmailer/phpmailer": "6.9.3",
- "simplepie/simplepie": "dev-freshrss#88f13f2df1ba17a7432a624d38884b1bd8f60e43"
+ "simplepie/simplepie": "dev-freshrss#dd86e5e9efb8d082ebd214b81cc5aa746f02fc26"
},
"config": {
"sort-packages": true,
diff --git a/lib/simplepie/simplepie/.gitignore b/lib/simplepie/simplepie/.gitignore
index 703d8e51d..94dd5ecc9 100644
--- a/lib/simplepie/simplepie/.gitignore
+++ b/lib/simplepie/simplepie/.gitignore
@@ -4,6 +4,7 @@ SimplePie.compiled.php
bin/
vendor/
composer.lock
+phpstan.neon
phpunit.xml
.php-cs-fixer.cache
.phpunit.cache/
diff --git a/lib/simplepie/simplepie/CHANGELOG.md b/lib/simplepie/simplepie/CHANGELOG.md
index d097fdad2..69b3dc9df 100644
--- a/lib/simplepie/simplepie/CHANGELOG.md
+++ b/lib/simplepie/simplepie/CHANGELOG.md
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Use `idn_to_ascii` function instead of `idna_convert` library (requires `intl` extension or a [polyfill](https://github.com/symfony/polyfill-intl-idn)) by @jtojnar in [#785](https://github.com/simplepie/simplepie/pull/785)
+- Use native `gzdecode` function instead of internal PHP implementation by @jtojnar in [#882](https://github.com/simplepie/simplepie/pull/882)
### Removed
@@ -26,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- The method `SimplePie\SimplePie::set_file()` is deprecated, use `SimplePie\SimplePie::set_http_client()` or `SimplePie\SimplePie::set_raw_data()` instead
- The method `SimplePie\Sanitize::pass_file_data()` is deprecated, use `SimplePie\Sanitize::set_http_client()` instead
- Passing multiple URLs to `SimplePie\SimplePie::set_feed_url()` is deprecated. You can create separate `SimplePie` instance per feed and then use `SimplePie::merge_items()` to get a single list of items. ([#795](https://github.com/simplepie/simplepie/pull/795))
+- The `SimplePie\Gzdecode` class is deprecated. You can use native [`gzdecode`](https://www.php.net/manual/en/function.gzdecode.php) function by @jtojnar in [#882](https://github.com/simplepie/simplepie/pull/882)
## [1.8.0](https://github.com/simplepie/simplepie/compare/1.7.0...1.8.0) - 2023-01-20
diff --git a/lib/simplepie/simplepie/phpstan.neon b/lib/simplepie/simplepie/phpstan.neon.dist
index 5450a9acb..5450a9acb 100644
--- a/lib/simplepie/simplepie/phpstan.neon
+++ b/lib/simplepie/simplepie/phpstan.neon.dist
diff --git a/lib/simplepie/simplepie/src/File.php b/lib/simplepie/simplepie/src/File.php
index b56fac342..9099c8492 100644
--- a/lib/simplepie/simplepie/src/File.php
+++ b/lib/simplepie/simplepie/src/File.php
@@ -236,12 +236,11 @@ class File implements Response
switch (strtolower(trim($contentEncodingHeader, "\x09\x0A\x0D\x20"))) {
case 'gzip':
case 'x-gzip':
- $decoder = new \SimplePie\Gzdecode($this->body);
- if (!$decoder->parse()) {
+ if (($decompressed = gzdecode($this->body)) === false) {
$this->error = 'Unable to decode HTTP "gzip" stream';
$this->success = false;
} else {
- $this->body = trim($decoder->data);
+ $this->body = trim($decompressed);
}
break;
@@ -250,7 +249,7 @@ class File implements Response
$this->body = $decompressed;
} elseif (($decompressed = gzuncompress($this->body)) !== false) {
$this->body = $decompressed;
- } elseif (function_exists('gzdecode') && ($decompressed = gzdecode($this->body)) !== false) {
+ } elseif (($decompressed = gzdecode($this->body)) !== false) {
$this->body = $decompressed;
} else {
$this->error = 'Unable to decode HTTP "deflate" stream';
diff --git a/lib/simplepie/simplepie/src/Gzdecode.php b/lib/simplepie/simplepie/src/Gzdecode.php
index 6adfc05cc..f331d1dc7 100644
--- a/lib/simplepie/simplepie/src/Gzdecode.php
+++ b/lib/simplepie/simplepie/src/Gzdecode.php
@@ -11,6 +11,8 @@ namespace SimplePie;
* Decode 'gzip' encoded HTTP data
*
* @link http://www.gzip.org/format.txt
+ * @link https://www.php.net/manual/en/function.gzdecode.php
+ * @deprecated since SimplePie 1.9.0, use `gzdecode` function instead.
*/
class Gzdecode
{
diff --git a/lib/simplepie/simplepie/src/IRI.php b/lib/simplepie/simplepie/src/IRI.php
index 25b342a85..8543b2a52 100644
--- a/lib/simplepie/simplepie/src/IRI.php
+++ b/lib/simplepie/simplepie/src/IRI.php
@@ -297,19 +297,10 @@ class IRI
protected function parse_iri(string $iri)
{
$iri = trim($iri, "\x20\x09\x0A\x0C\x0D");
- if (preg_match('/^((?P<scheme>[^:\/?#]+):)?(\/\/(?P<authority>[^\/?#]*))?(?P<path>[^?#]*)(\?(?P<query>[^#]*))?(#(?P<fragment>.*))?$/', $iri, $match)) {
- if ($match[1] === '') {
- $match['scheme'] = null;
- }
- if ($match[3] === '') {
- $match['authority'] = null;
- }
- if (!isset($match[6]) || $match[6] === '') {
- $match['query'] = null;
- }
- if (!isset($match[8]) || $match[8] === '') {
- $match['fragment'] = null;
- }
+ if (preg_match('/^(?:(?P<scheme>[^:\/?#]+):)?(:?\/\/(?P<authority>[^\/?#]*))?(?P<path>[^?#]*)(?:\?(?P<query>[^#]*))?(?:#(?P<fragment>.*))?$/', $iri, $match, \PREG_UNMATCHED_AS_NULL)) {
+ // TODO: Remove once we require PHP ≥ 7.4.
+ $match['query'] = $match['query'] ?? null;
+ $match['fragment'] = $match['fragment'] ?? null;
return $match;
}
diff --git a/lib/simplepie/simplepie/src/SimplePie.php b/lib/simplepie/simplepie/src/SimplePie.php
index a02138ecd..73d4ed7bd 100644
--- a/lib/simplepie/simplepie/src/SimplePie.php
+++ b/lib/simplepie/simplepie/src/SimplePie.php
@@ -1520,7 +1520,7 @@ class SimplePie
}
$this->sanitize->strip_htmltags($tags);
if ($encode !== null) {
- $this->sanitize->encode_instead_of_strip($tags);
+ $this->sanitize->encode_instead_of_strip($encode);
}
}