summaryrefslogtreecommitdiffstats
path: root/src/Util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Util.cpp')
-rw-r--r--src/Util.cpp37
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;
+ }
}