From a73d2208994358317a109246879a65524269ba95 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Fri, 4 Jun 2021 19:37:25 +0300 Subject: [PATCH] kcontrol: date/time module timezone feature fix Signed-off-by: Ivailo Monev --- kcontrol/dateandtime/helper.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/kcontrol/dateandtime/helper.cpp b/kcontrol/dateandtime/helper.cpp index 163f8c0d..3df606b8 100644 --- a/kcontrol/dateandtime/helper.cpp +++ b/kcontrol/dateandtime/helper.cpp @@ -116,17 +116,17 @@ ClockHelper::CH_Error ClockHelper::tz( const QString& selectedzone ) // NOTE: keep in sync with ktimezoned/ktimezoned.cpp static const QStringList zoneDirs = QStringList() - << QLatin1String("/share/zoneinfo") - << QLatin1String("/lib/zoneinfo") - << QLatin1String("/usr/share/zoneinfo") - << QLatin1String("/usr/lib/zoneinfo") - << QLatin1String("/usr/local/share/zoneinfo") - << QLatin1String("/usr/local/lib/zoneinfo") - << (KStandardDirs::installPath("kdedir") + QLatin1String("/share/zoneinfo")) - << (KStandardDirs::installPath("kdedir") + QLatin1String("/lib/zoneinfo")); + << QLatin1String("/share/zoneinfo/") + << QLatin1String("/lib/zoneinfo/") + << QLatin1String("/usr/share/zoneinfo/") + << QLatin1String("/usr/lib/zoneinfo/") + << QLatin1String("/usr/local/share/zoneinfo/") + << QLatin1String("/usr/local/lib/zoneinfo/") + << (KStandardDirs::installPath("kdedir") + QLatin1String("/share/zoneinfo/")) + << (KStandardDirs::installPath("kdedir") + QLatin1String("/lib/zoneinfo/")); // /usr is kind of standard - QString ZONE_INFO_DIR = "/usr/share/zoneinfo"; + QString ZONE_INFO_DIR = "/usr/share/zoneinfo/"; foreach (const QString &zonedir, zoneDirs) { if (QDir(zonedir).exists()) { @@ -136,10 +136,7 @@ ClockHelper::CH_Error ClockHelper::tz( const QString& selectedzone ) QString tz = ZONE_INFO_DIR + selectedzone; - QFile f("/etc/localtime"); - if (f.exists() && !f.remove()) { - return TimezoneError; - } + unlink( "/etc/localtime" ); if (!QFile::link(tz, "/etc/localtime")) { return TimezoneError;