[Cmake-commits] CMake branch, next, updated. v3.4.0-1548-g48f4880
Gregor Jasny
gjasny at googlemail.com
Mon Nov 30 16:06:59 EST 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 48f4880a3d252fa8fd86896d55c88ee90a3a04af (commit)
via a31c85da5ed82d913eeb71ebbbd4d51af4625380 (commit)
from d5dcfed6747cda9f835988bd3d02ec4b4864fc54 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=48f4880a3d252fa8fd86896d55c88ee90a3a04af
commit 48f4880a3d252fa8fd86896d55c88ee90a3a04af
Merge: d5dcfed a31c85d
Author: Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Mon Nov 30 16:06:58 2015 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Nov 30 16:06:58 2015 -0500
Merge topic 'regex-explorer' into next
a31c85da fixup! cmake-gui: Add regex explorer window
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a31c85da5ed82d913eeb71ebbbd4d51af4625380
commit a31c85da5ed82d913eeb71ebbbd4d51af4625380
Author: Gregor Jasny <gjasny at googlemail.com>
AuthorDate: Mon Nov 30 22:02:44 2015 +0100
Commit: Gregor Jasny <gjasny at googlemail.com>
CommitDate: Mon Nov 30 22:02:44 2015 +0100
fixup! cmake-gui: Add regex explorer window
diff --git a/Source/QtDialog/RegexExplorer.cxx b/Source/QtDialog/RegexExplorer.cxx
index 04fb5fb..b583d70 100644
--- a/Source/QtDialog/RegexExplorer.cxx
+++ b/Source/QtDialog/RegexExplorer.cxx
@@ -41,7 +41,9 @@ void RegexExplorer::on_regularExpression_textChanged(const QString& text)
#else
m_regex = text.toStdString();
#endif
- bool validExpression = m_regexParser.compile(m_regex);
+
+ bool validExpression =
+ stripEscapes(m_regex) && m_regexParser.compile(m_regex);
if(!validExpression)
{
m_regexParser.set_invalid();
@@ -115,3 +117,50 @@ void RegexExplorer::clearMatch()
match0->clear();
matchN->clear();
}
+
+bool RegexExplorer::stripEscapes(std::string& source)
+{
+ const char* in = source.c_str();
+
+ std::string result;
+ result.reserve(source.size());
+
+ for(char inc = *in; inc != '\0'; inc = *++in)
+ {
+ if(inc == '\\')
+ {
+ char nextc = in[1];
+ if(nextc == 't')
+ {
+ result.append(1, '\t');
+ in++;
+ }
+ else if(nextc == 'n')
+ {
+ result.append(1, '\n');
+ in++;
+ }
+ else if(nextc == 't')
+ {
+ result.append(1, '\t');
+ in++;
+ }
+ else if(isalnum(nextc) || nextc == '\0')
+ {
+ return false;
+ }
+ else
+ {
+ result.append(1, nextc);
+ in++;
+ }
+ }
+ else
+ {
+ result.append(1, inc);
+ }
+ }
+
+ source = result;
+ return true;
+}
diff --git a/Source/QtDialog/RegexExplorer.h b/Source/QtDialog/RegexExplorer.h
index b758a08..2ac9c3e 100644
--- a/Source/QtDialog/RegexExplorer.h
+++ b/Source/QtDialog/RegexExplorer.h
@@ -35,6 +35,7 @@ private slots:
private:
static void setStatusColor(QWidget* widget, bool successful);
+ static bool stripEscapes(std::string& regex);
void clearMatch();
-----------------------------------------------------------------------
Summary of changes:
Source/QtDialog/RegexExplorer.cxx | 51 ++++++++++++++++++++++++++++++++++++-
Source/QtDialog/RegexExplorer.h | 1 +
2 files changed, 51 insertions(+), 1 deletion(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list