diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2018-02-17 13:43:28 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2018-02-22 18:59:37 +0000 |
commit | 988c3e4fc0ddcf154e39cc3a0b5969a84f6eff5f (patch) | |
tree | 65124231aaef85ffbf26ef0af183b699d1ae9b79 | |
parent | 7ff3032b22cacd38390d164cb2c1a232c1979bab (diff) |
filetest: Make the "ls" command actually list the dirs
Change-Id: I940917d6763842499b18fffd15143af77c036d69
Reviewed-by: David Faure <david.faure@kdab.com>
-rw-r--r-- | tests/manual/filetest/main.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/tests/manual/filetest/main.cpp b/tests/manual/filetest/main.cpp index c278fd87ce..22c74af327 100644 --- a/tests/manual/filetest/main.cpp +++ b/tests/manual/filetest/main.cpp @@ -94,7 +94,7 @@ static inline std::string permissions(const QFileInfo &fi) return result; } -static int ls(int argCount, char **args) +static int ls(int argCount, const char **args, bool recursive = false) { for (int i = 0 ; i < argCount; ++i) { const QFileInfo fi(QString::fromLocal8Bit(args[i])); @@ -112,6 +112,16 @@ static int ls(int argCount, char **args) std::cout << " [dir]"; std::cout << std::endl; + + if (recursive && fi.isDir()) { + QDir dir(fi.fileName()); + const QStringList entries = dir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot); + for (const QString &s : entries) { + QByteArray encoded = QFile::encodeName(s); + const char *ptr = encoded.constData(); + ls(1, &ptr, false); + } + } } return 0; } @@ -205,7 +215,7 @@ int main(int argc, char *argv[]) QCoreApplication a(argc, argv); Q_UNUSED(a) if (argc >= 3 && !qstrcmp(argv[1], "ls")) - return ls(argc -2, argv + 2); + return ls(argc -2, const_cast<const char **>(argv + 2), true); if (argc >= 3 && !qstrcmp(argv[1], "stat")) return stat(argc -2, argv + 2); |