diff options
author | Mario <mario@mariovavti.com> | 2022-10-12 08:42:41 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2022-10-12 08:42:41 +0000 |
commit | c36bb17475b3dd5925cefc32752f1fb8a63df154 (patch) | |
tree | 2f1fce354be40e759c493e02c259d9d3120b4e5f /vendor/sabre/vobject/lib/Parser | |
parent | 2291fcdf11fe3e03cc84ca8171cd7dcf03015e17 (diff) | |
download | volse-hubzilla-c36bb17475b3dd5925cefc32752f1fb8a63df154.tar.gz volse-hubzilla-c36bb17475b3dd5925cefc32752f1fb8a63df154.tar.bz2 volse-hubzilla-c36bb17475b3dd5925cefc32752f1fb8a63df154.zip |
composer update sabre
Diffstat (limited to 'vendor/sabre/vobject/lib/Parser')
-rw-r--r-- | vendor/sabre/vobject/lib/Parser/MimeDir.php | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/vendor/sabre/vobject/lib/Parser/MimeDir.php b/vendor/sabre/vobject/lib/Parser/MimeDir.php index db0f81531..513f7bd0c 100644 --- a/vendor/sabre/vobject/lib/Parser/MimeDir.php +++ b/vendor/sabre/vobject/lib/Parser/MimeDir.php @@ -167,7 +167,11 @@ class MimeDir extends Parser while (true) { // Reading until we hit END: - $line = $this->readLine(); + try { + $line = $this->readLine(); + } catch (EofException $oEx) { + $line = 'END:'.$this->root->name; + } if ('END:' === strtoupper(substr($line, 0, 4))) { break; } @@ -372,12 +376,22 @@ class MimeDir extends Parser $value = $this->unescapeParam($value); if (is_null($lastParam)) { + if ($this->options & self::OPTION_IGNORE_INVALID_LINES) { + // When the property can't be matched and the configuration + // option is set to ignore invalid lines, we ignore this line + // This can happen when servers provide faulty data as iCloud + // frequently does with X-APPLE-STRUCTURED-LOCATION + continue; + } throw new ParseException('Invalid Mimedir file. Line starting at '.$this->startLine.' did not follow iCalendar/vCard conventions'); } if (is_null($property['parameters'][$lastParam])) { $property['parameters'][$lastParam] = $value; } elseif (is_array($property['parameters'][$lastParam])) { $property['parameters'][$lastParam][] = $value; + } elseif ($property['parameters'][$lastParam] === $value) { + // When the current value of the parameter is the same as the + // new one, then we can leave the current parameter as it is. } else { $property['parameters'][$lastParam] = [ $property['parameters'][$lastParam], @@ -450,10 +464,8 @@ class MimeDir extends Parser switch (strtolower($charset)) { case 'utf-8': break; - case 'iso-8859-1': - $property['value'] = utf8_encode($property['value']); - break; case 'windows-1252': + case 'iso-8859-1': $property['value'] = mb_convert_encoding($property['value'], 'UTF-8', $charset); break; default: |