diff --git a/application/Espo/Core/Mail/Importer/DefaultImporter.php b/application/Espo/Core/Mail/Importer/DefaultImporter.php index 9bf198d21f..5491120c27 100644 --- a/application/Espo/Core/Mail/Importer/DefaultImporter.php +++ b/application/Espo/Core/Mail/Importer/DefaultImporter.php @@ -420,8 +420,8 @@ class DefaultImporter implements Importer $subject = '(No Subject)'; } - if (strlen($subject) > self::SUBJECT_MAX_LENGTH) { - $subject = substr($subject, 0, self::SUBJECT_MAX_LENGTH); + if (mb_strlen($subject) > self::SUBJECT_MAX_LENGTH) { + $subject = mb_substr($subject, 0, self::SUBJECT_MAX_LENGTH); } return $subject; diff --git a/package-lock.json b/package-lock.json index 763805b974..2fe73d84dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "espocrm", - "version": "9.3.0", + "version": "9.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "espocrm", - "version": "9.3.0", + "version": "9.3.1", "hasInstallScript": true, "license": "AGPL-3.0-or-later", "dependencies": { diff --git a/package.json b/package.json index 4ce61ae2f2..9f5dce6f00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "espocrm", - "version": "9.3.0", + "version": "9.3.1", "description": "Open-source CRM.", "repository": { "type": "git", diff --git a/tests/unit/Espo/ORM/MysqlQueryComposerTest.php b/tests/unit/Espo/ORM/MysqlQueryComposerTest.php index 90c9a90e1b..364abbdd2e 100644 --- a/tests/unit/Espo/ORM/MysqlQueryComposerTest.php +++ b/tests/unit/Espo/ORM/MysqlQueryComposerTest.php @@ -2414,6 +2414,15 @@ class MysqlQueryComposerTest extends TestCase $this->assertEquals(['test'], $list); } + public function testGetAllAttributesFromComplexExpression4() + { + $expression = "SUM:('тестван', test1, 'тест', test2, link.test3)"; + + $list = Util::getAllAttributesFromComplexExpression($expression); + + $this->assertEquals(['test1', 'test2', 'link.test3'], $list); + } + public function testComplexExpressionString1(): void { $queryBuilder = new QueryBuilder();