diff options
Diffstat (limited to 'src/Util.cpp')
| -rw-r--r-- | src/Util.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Util.cpp b/src/Util.cpp index 3658802..41500da 100644 --- a/src/Util.cpp +++ b/src/Util.cpp @@ -151,4 +151,41 @@ namespace Util { } return string; } + + int indexOfEscaped(const QString& string, const QChar subject, int startPos, const QChar escapeChar) + { + if(string.isEmpty()) + { + return -1; + } + if(startPos < 0) + { + startPos += string.length(); + } + bool escaped = false; + for(int pos = startPos; pos < string.length(); ++pos) + { + QChar c = string.at(pos); + if(!escaped) + { + if(c == escapeChar) + { + escaped = true; + continue; + } + else + { + if(c == subject) + { + return pos; + } + } + } + else + { + escaped = false; + } + } + return -1; + } } |
