commit 0ba385800ef7a3293f02349bac70663c85416721
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Thu Jul 6 15:26:32 2017 +0200
Rewrite stripName without regex
Using a regular expression to find /src/ or \src\ in a string is overkill,
and since regexes can throw exceptions, it makes coverity nervous.
The new code is simpler anyway.
---
src/support/debug.cpp | 17 +++++++----------
1 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/src/support/debug.cpp b/src/support/debug.cpp
index 6e5e7ab..16e3c79 100644
--- a/src/support/debug.cpp
+++ b/src/support/debug.cpp
@@ -18,7 +18,6 @@
#include "support/gettext.h"
#include "support/lstrings.h"
#include "support/ProgressInterface.h"
-#include "support/regex.h"
#include <iostream>
#include <iomanip>
@@ -202,15 +201,13 @@ char const * LyXErr::stripName(char const * n)
{
string const name = n;
// find the last occurence of /src/ in name
- static const regex re("[\\/]src[\\/]");
- string::const_iterator const begin = name.begin();
- string::const_iterator it = begin;
- string::const_iterator const end = name.end();
- smatch results;
- while (regex_search(it, end, results, re)) {
- it = results[0].second;
- }
- return n + std::distance(begin, it);
+ size_t pos = name.rfind("/src/");
+ if (pos == string::npos)
+ pos = name.rfind("\\src\\");
+ if (pos == string::npos)
+ return n;
+ else
+ return n + pos + 5;
}