summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--share/qbs/imports/qbs/FileInfo/fileinfo.js7
-rw-r--r--tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs2
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp16
3 files changed, 17 insertions, 8 deletions
diff --git a/share/qbs/imports/qbs/FileInfo/fileinfo.js b/share/qbs/imports/qbs/FileInfo/fileinfo.js
index fb241f8ff..f04212f1e 100644
--- a/share/qbs/imports/qbs/FileInfo/fileinfo.js
+++ b/share/qbs/imports/qbs/FileInfo/fileinfo.js
@@ -1,6 +1,11 @@
function path(fp) {
- if (fp[fp.length -1] === '/')
+ if (fp === '/')
return fp;
+
+ // Yes, this will be wrong for "clever" unix users calling their directory 'c:'. Boohoo.
+ if (fp.length === 3 && fp.slice(-2) === ':/')
+ return fp;
+
var last = fp.lastIndexOf('/');
if (last < 0)
return '.';
diff --git a/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs b/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs
index b16228107..3a47450e6 100644
--- a/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs
+++ b/tests/auto/blackbox/testdata/jsextensions/fileinfo.qbs
@@ -17,6 +17,8 @@ Product {
output.writeLine(FileInfo.joinPaths("/", "tmp", "blubb.tar.gz"));
output.writeLine(FileInfo.path("/tmp/blubb.tar.gz"));
output.writeLine(FileInfo.path("/tmp/"));
+ output.writeLine(FileInfo.path("/"));
+ output.writeLine(FileInfo.path("d:/"));
output.writeLine(FileInfo.relativePath("/tmp", "/tmp/blubb.tar.gz"));
output.writeLine(FileInfo.relativePath("/", "/tmp/blubb.tar.gz"));
output.writeLine(FileInfo.relativePath("/tmp", "/blubb.tar.gz"));
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 9152c200d..e554cd88b 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -1184,7 +1184,7 @@ void TestBlackbox::jsExtensionsFileInfo()
QVERIFY(output.exists());
QVERIFY(output.open(QIODevice::ReadOnly));
const QList<QByteArray> lines = output.readAll().trimmed().split('\n');
- QCOMPARE(lines.count(), 17);
+ QCOMPARE(lines.count(), 19);
QCOMPARE(lines.at(0).trimmed().constData(), "blubb");
QCOMPARE(lines.at(1).trimmed().constData(), "blubb.tar");
QCOMPARE(lines.at(2).trimmed().constData(), "blubb.tar.gz");
@@ -1196,12 +1196,14 @@ void TestBlackbox::jsExtensionsFileInfo()
QCOMPARE(lines.at(8).trimmed().constData(), "false");
QCOMPARE(lines.at(9).trimmed().constData(), "/tmp/blubb.tar.gz");
QCOMPARE(lines.at(10).trimmed().constData(), "/tmp");
- QCOMPARE(lines.at(11).trimmed().constData(), "/tmp/");
- QCOMPARE(lines.at(12).trimmed().constData(), "blubb.tar.gz");
- QCOMPARE(lines.at(13).trimmed().constData(), "tmp/blubb.tar.gz");
- QCOMPARE(lines.at(14).trimmed().constData(), "../blubb.tar.gz");
- QCOMPARE(lines.at(15).trimmed().constData(), "\\tmp\\blubb.tar.gz");
- QCOMPARE(lines.at(16).trimmed().constData(), "c:\\tmp\\blubb.tar.gz");
+ QCOMPARE(lines.at(11).trimmed().constData(), "/tmp");
+ QCOMPARE(lines.at(12).trimmed().constData(), "/");
+ QCOMPARE(lines.at(13).trimmed().constData(), "d:/");
+ QCOMPARE(lines.at(14).trimmed().constData(), "blubb.tar.gz");
+ QCOMPARE(lines.at(15).trimmed().constData(), "tmp/blubb.tar.gz");
+ QCOMPARE(lines.at(16).trimmed().constData(), "../blubb.tar.gz");
+ QCOMPARE(lines.at(17).trimmed().constData(), "\\tmp\\blubb.tar.gz");
+ QCOMPARE(lines.at(18).trimmed().constData(), "c:\\tmp\\blubb.tar.gz");
}
void TestBlackbox::jsExtensionsProcess()