diff options
| author | TanninOne <seppleviathan@gmx.de> | 2015-12-04 21:55:11 +0100 |
|---|---|---|
| committer | TanninOne <seppleviathan@gmx.de> | 2015-12-04 21:55:11 +0100 |
| commit | 87d5fe28f6000e7a711fe56aa5e9bedfd89128fb (patch) | |
| tree | 50beb9d3a5b51792c9e4be24dc81a31452f9ab61 /src/nexusinterface.cpp | |
| parent | ce38a3bd33cbc66bfe555ded60a7b1f233c17690 (diff) | |
| parent | 2e78a381ea43533769690af0f58989bcbec36d8e (diff) | |
Merge pull request #328 from ThosRTanner/issue/324
Cope with quotes in file- and module- names
Diffstat (limited to 'src/nexusinterface.cpp')
| -rw-r--r-- | src/nexusinterface.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp index dc027be4..25f3d1b4 100644 --- a/src/nexusinterface.cpp +++ b/src/nexusinterface.cpp @@ -196,12 +196,13 @@ void NexusInterface::loginCompleted() void NexusInterface::interpretNexusFileName(const QString &fileName, QString &modName, int &modID, bool query)
{
- static std::tr1::regex exp("^([a-zA-Z0-9_\\- ]*?)([-_ ][VvRr]?[0-9_]+)?-([1-9][0-9]+).*");
- static std::tr1::regex simpleexp("^([a-zA-Z0-9_]+)");
+ //Look for something along the lines of modulename-Vn-m + any old rubbish.
+ static std::regex exp("^([a-zA-Z0-9_'\"\\- ]*?)([-_ ][VvRr]?[0-9_]+)?-([1-9][0-9]+).*");
+ static std::regex simpleexp("^([a-zA-Z0-9_]+)");
QByteArray fileNameUTF8 = fileName.toUtf8();
- std::tr1::cmatch result;
- if (std::tr1::regex_search(fileNameUTF8.constData(), result, exp)) {
+ std::cmatch result;
+ if (std::regex_search(fileNameUTF8.constData(), result, exp)) {
modName = QString::fromUtf8(result[1].str().c_str());
modName = modName.replace('_', ' ').trimmed();
@@ -231,7 +232,7 @@ void NexusInterface::interpretNexusFileName(const QString &fileName, QString &mo modID = strtol(candidate.c_str(), nullptr, 10);
}
qDebug("mod id guessed: %s -> %d", qPrintable(fileName), modID);
- } else if (std::tr1::regex_search(fileNameUTF8.constData(), result, simpleexp)) {
+ } else if (std::regex_search(fileNameUTF8.constData(), result, simpleexp)) {
qDebug("simple expression matched, using name only");
modName = QString::fromUtf8(result[1].str().c_str());
modName = modName.replace('_', ' ').trimmed();
|
