diff options
author | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2009-03-05 17:12:31 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2009-03-05 17:14:37 +0100 |
commit | cb2cce5139ac3429088ecef011198c0e218618cb (patch) | |
tree | 0c6dfe27c9acbeced282c74e655b9ba46a0cc1a5 /src/libs/utils/codegeneration.cpp | |
parent | 1f3908e0a583043f782edc312bf21d74a38e2056 (diff) | |
download | qt-creator-cb2cce5139ac3429088ecef011198c0e218618cb.tar.gz |
Adapt generated header guards to the filename
Use _HPP for example for .hpp files, for example. Based on simply
putting the chosen extension in uppercase.
Diffstat (limited to 'src/libs/utils/codegeneration.cpp')
-rw-r--r-- | src/libs/utils/codegeneration.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libs/utils/codegeneration.cpp b/src/libs/utils/codegeneration.cpp index 411ee33280..14448ea4b7 100644 --- a/src/libs/utils/codegeneration.cpp +++ b/src/libs/utils/codegeneration.cpp @@ -36,10 +36,26 @@ namespace Core { namespace Utils { +static QString toAlphaNum(const QString &s) +{ + QString rc; + const int len = s.size(); + const QChar underscore = QLatin1Char('_'); + + for (int i = 0; i < len; i++) { + const QChar c = s.at(i); + if (c == underscore || c.isLetterOrNumber()) + rc += c; + } + return rc; +} + QWORKBENCH_UTILS_EXPORT QString headerGuard(const QString &file) { - QString rc = QFileInfo(file).baseName().toUpper(); - rc += QLatin1String("_H"); + const QFileInfo fi(file); + QString rc = toAlphaNum(fi.completeBaseName()).toUpper(); + rc += QLatin1Char('_'); + rc += toAlphaNum(fi.suffix()).toUpper(); return rc; } |