aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-12-03 08:15:44 +0200
committerOrgad Shaneh <orgads@gmail.com>2013-12-03 14:42:07 +0100
commit0a7109126051fa13e6f2e27845897792a2ba24cb (patch)
treef715507b636bb772750b3c23dbcb4f1ec4c4c691
parenta3f30b3d1712fb22180a89c5a6a128823c80fb79 (diff)
Limit cdUp to root
Task-number: QTCREATORBUG-10860 Change-Id: I22550b4415e07cac0d78f36595dc7ee781a837c0 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
-rw-r--r--src/plugins/clearcase/clearcaseplugin.cpp2
-rw-r--r--src/plugins/cvs/cvsplugin.cpp4
-rw-r--r--src/plugins/git/gitclient.cpp2
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp2
-rw-r--r--src/plugins/subversion/subversionplugin.cpp6
-rw-r--r--src/plugins/vcsbase/vcsbaseplugin.cpp2
6 files changed, 11 insertions, 7 deletions
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index e36b644f02..dd78679704 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -230,7 +230,7 @@ QString ClearCasePlugin::getDriveLetterOfPath(const QString &directory)
{
// cdUp until we get just the drive letter
QDir dir(directory);
- while (dir.cdUp())
+ while (!dir.isRoot() && dir.cdUp())
{ }
return dir.path();
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index 9d4a8055f7..15826ba473 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -1349,7 +1349,9 @@ bool CvsPlugin::managesDirectory(const QString &directory, QString *topLevel /*
* not have a "CVS" directory. The starting directory must be a managed
* one. Go up and try to find the first unmanaged parent dir. */
QDir lastDirectory = dir;
- for (QDir parentDir = lastDirectory; parentDir.cdUp() ; lastDirectory = parentDir) {
+ for (QDir parentDir = lastDirectory;
+ !parentDir.isRoot() && parentDir.cdUp();
+ lastDirectory = parentDir) {
if (!checkCVSDirectory(parentDir)) {
*topLevel = lastDirectory.absolutePath();
break;
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 22d8076a3c..b6a1d9045a 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -977,7 +977,7 @@ QString GitClient::findRepositoryForDirectory(const QString &dir)
else if (directory.exists(QLatin1String(".git/config")))
return directory.absolutePath();
}
- } while (directory.cdUp());
+ } while (!directory.isRoot() && directory.cdUp());
return QString();
}
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 451d4dcb92..e656693009 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -218,7 +218,7 @@ QString BaseQtVersion::defaultDisplayName(const QString &versionString, const Fi
&& dirName.compare(QLatin1String("qt"), Qt::CaseInsensitive)) {
break;
}
- } while (dir.cdUp());
+ } while (!dir.isRoot() && dir.cdUp());
}
return fromPath ?
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index de57be400e..84d107cb6e 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -1328,7 +1328,7 @@ bool SubversionPlugin::managesDirectory(const QString &directory, QString *topLe
* furthest parent containing ".svn/wc.db". Need to check for furthest parent as closer
* parents may be svn:externals. */
QDir parentDir = dir;
- while (parentDir.cdUp()) {
+ while (!parentDir.isRoot() && parentDir.cdUp()) {
if (checkSVNSubDir(parentDir, QLatin1String("wc.db"))) {
if (topLevel)
*topLevel = parentDir.absolutePath();
@@ -1344,7 +1344,9 @@ bool SubversionPlugin::managesDirectory(const QString &directory, QString *topLe
if (topLevel) {
QDir lastDirectory = dir;
- for (parentDir = lastDirectory; parentDir.cdUp() ; lastDirectory = parentDir) {
+ for (parentDir = lastDirectory;
+ !parentDir.isRoot() && parentDir.cdUp();
+ lastDirectory = parentDir) {
if (!checkSVNSubDir(parentDir)) {
*topLevel = lastDirectory.absolutePath();
break;
diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp
index 395de4e238..fc73d89c67 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.cpp
+++ b/src/plugins/vcsbase/vcsbaseplugin.cpp
@@ -732,7 +732,7 @@ QString VcsBasePlugin::findRepositoryForDirectory(const QString &dirS,
qDebug() << "<VcsBasePlugin::findRepositoryForDirectory> " << absDirPath;
return absDirPath;
}
- } while (directory.cdUp());
+ } while (!directory.isRoot() && directory.cdUp());
if (debugRepositorySearch)
qDebug() << "<VcsBasePlugin::findRepositoryForDirectory bailing out at " << directory.absolutePath();
return QString();