diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml index 16a7a99410033..62e9e58b0dcb4 100644 --- a/administrator/manifests/files/joomla.xml +++ b/administrator/manifests/files/joomla.xml @@ -6,7 +6,7 @@ www.joomla.org (C) 2019 Open Source Matters, Inc. GNU General Public License version 2 or later; see LICENSE.txt - 4.4.1-rc2 + 4.4.1 2023-11 FILES_JOOMLA_XML_DESCRIPTION diff --git a/libraries/src/Language/LanguageHelper.php b/libraries/src/Language/LanguageHelper.php index 8dba582a12ab2..75e8157d250b4 100644 --- a/libraries/src/Language/LanguageHelper.php +++ b/libraries/src/Language/LanguageHelper.php @@ -420,11 +420,14 @@ public static function parseIniFile($fileName, $debug = false) if (!\function_exists('parse_ini_file') || $isParseIniFileDisabled) { $contents = file_get_contents($fileName); - $strings = @parse_ini_string($contents); + $strings = @parse_ini_string($contents, false, INI_SCANNER_RAW); } else { - $strings = @parse_ini_file($fileName); + $strings = @parse_ini_file($fileName, false, INI_SCANNER_RAW); } + // Ini files are processed in the "RAW" mode of parse_ini_string, leaving escaped quotes untouched - lets postprocess them + $strings = str_replace('\"', '"', $strings); + // Restore error tracking to what it was before. if ($debug === true) { ini_set('track_errors', $trackErrors); diff --git a/libraries/src/Version.php b/libraries/src/Version.php index 8dc84e356f84a..86afe408750c3 100644 --- a/libraries/src/Version.php +++ b/libraries/src/Version.php @@ -66,7 +66,7 @@ final class Version * @var string * @since 3.8.0 */ - public const EXTRA_VERSION = 'rc2'; + public const EXTRA_VERSION = ''; /** * Development status. @@ -74,7 +74,7 @@ final class Version * @var string * @since 3.5 */ - public const DEV_STATUS = 'Release Candidate'; + public const DEV_STATUS = 'Stable'; /** * Code name.