summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPasi Petäjäjärvi <pasi.petajajarvi@digia.com>2013-02-11 12:08:34 (GMT)
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-13 10:00:28 (GMT)
commit5314de3edc93c6c3897f6b4068cef3763aa86cf3 (patch)
tree294aab0da92297c5726ab5e6e2d502544b126546
parent841dd0b9486150b7cbccbab41553ab6b4d13627d (diff)
downloadQt-5314de3edc93c6c3897f6b4068cef3763aa86cf3.zip
Qt-5314de3edc93c6c3897f6b4068cef3763aa86cf3.tar.gz
Qt-5314de3edc93c6c3897f6b4068cef3763aa86cf3.tar.bz2
Fixed checking HOME variable return value using isEmpty()
Return value of the QFile::decodeName(qgetenv("HOME")); is never null if HOME environment variable is not set. So need to check the return value using isEmpty() instead. Task-number: QTBUG-28912 Change-Id: I7875520965bf2c0c7311fb051c1f5177e9c3685b (cherry picked from qtbase/05b4000e01ff5785739617c3069fbe0b0d36a606) Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
-rw-r--r--src/corelib/io/qfilesystemengine_unix.cpp2
-rw-r--r--tests/auto/qdir/tst_qdir.cpp8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index 0c84a0f..414c65e 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -623,7 +623,7 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per
QString QFileSystemEngine::homePath()
{
QString home = QFile::decodeName(qgetenv("HOME"));
- if (home.isNull())
+ if (home.isEmpty())
home = rootPath();
return QDir::cleanPath(home);
}
diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp
index 32a66d8..5036842 100644
--- a/tests/auto/qdir/tst_qdir.cpp
+++ b/tests/auto/qdir/tst_qdir.cpp
@@ -1395,6 +1395,14 @@ void tst_QDir::homePath()
#ifdef Q_OS_UNIX
if (strHome.length() > 1) // root dir = "/"
QVERIFY(!strHome.endsWith('/'));
+
+ QByteArray envHome = qgetenv("HOME");
+#if !defined(_WRS_KERNEL) // unsetenv is not available on VxWorks DKM mode
+ unsetenv("HOME");
+#endif
+ QCOMPARE(QDir::homePath(), QDir::rootPath());
+ qputenv("HOME", envHome);
+
#elif defined(Q_OS_WIN)
if (strHome.length() > 3) // root dir = "c:/"; "//" is not really valid...
QVERIFY(!strHome.endsWith('/'));