Bump imapengine from 1.25.4 to 1.25.6 and dependencies

This commit is contained in:
johnnyq
2026-08-26 13:02:29 -04:00
parent 71cfdf5e39
commit 3d9a41bec4
54 changed files with 978 additions and 543 deletions

View File

@@ -55,6 +55,7 @@ class PoFileLoader extends FileLoader
* - No support for comments spanning multiple lines.
* - Translator and extracted comments are treated as being the same type.
* - Message IDs are allowed to have other encodings as just US-ASCII.
* - Contexts (msgctxt) are parsed but discarded.
*
* Items with an empty id are ignored.
*/
@@ -65,6 +66,7 @@ class PoFileLoader extends FileLoader
$defaults = [
'ids' => [],
'translated' => null,
'context' => null,
];
$messages = [];
@@ -76,23 +78,28 @@ class PoFileLoader extends FileLoader
if ('' === $line) {
// Whitespace indicated current item is done
if (!\in_array('fuzzy', $flags, true)) {
$this->addMessage($messages, $item);
}
$item = $defaults;
$flags = [];
$this->saveItem($messages, $item, $flags, $defaults);
} elseif (str_starts_with($line, '#,')) {
// flags belong to the next entry, so the previous one ends here
if (null !== $item['translated']) {
$this->saveItem($messages, $item, $flags, $defaults);
}
$flags = array_map('trim', explode(',', substr($line, 2)));
} elseif (str_starts_with($line, 'msgctxt "')) {
if (null !== $item['translated']) {
$this->saveItem($messages, $item, $flags, $defaults);
}
$item['context'] = substr($line, 9, -1);
} elseif (str_starts_with($line, 'msgid "')) {
// We start a new msg so save previous
// TODO: this fails when comments or contexts are added
$this->addMessage($messages, $item);
$item = $defaults;
if ($item['ids']) {
$this->saveItem($messages, $item, $flags, $defaults);
}
$item['ids']['singular'] = substr($line, 7, -1);
} elseif (str_starts_with($line, 'msgstr "')) {
$item['translated'] = substr($line, 8, -1);
} elseif ('"' === $line[0]) {
$continues = isset($item['translated']) ? 'translated' : 'ids';
$continues = isset($item['translated']) ? 'translated' : ($item['ids'] ? 'ids' : 'context');
if (\is_array($item[$continues])) {
end($item[$continues]);
@@ -108,14 +115,21 @@ class PoFileLoader extends FileLoader
}
}
// save last item
if (!\in_array('fuzzy', $flags, true)) {
$this->addMessage($messages, $item);
}
$this->saveItem($messages, $item, $flags, $defaults);
fclose($stream);
return $messages;
}
private function saveItem(array &$messages, array &$item, array &$flags, array $defaults): void
{
if (!\in_array('fuzzy', $flags, true)) {
$this->addMessage($messages, $item);
}
$item = $defaults;
$flags = [];
}
/**
* Save a translation item to the messages.
*