Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/xs
diff options
context:
space:
mode:
authorbubnikv <bubnikv@gmail.com>2017-12-20 23:54:47 +0300
committerbubnikv <bubnikv@gmail.com>2017-12-20 23:54:47 +0300
commitfed5128b7f55e947b3bb38905283dfba81da06a2 (patch)
tree43fd71595e96f4b9d2cc0a19d13ad86e60b3a93b /xs
parent8acd51fc6246cc12523521e3b621db43a0dcbbd2 (diff)
Reverted regex to boost::regex as the C++11 regex seems to be broken
on Linux/gcc 4.9.
Diffstat (limited to 'xs')
-rw-r--r--xs/src/libslic3r/PlaceholderParser.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/xs/src/libslic3r/PlaceholderParser.cpp b/xs/src/libslic3r/PlaceholderParser.cpp
index 58ee09eea..bcd011da2 100644
--- a/xs/src/libslic3r/PlaceholderParser.cpp
+++ b/xs/src/libslic3r/PlaceholderParser.cpp
@@ -2,7 +2,6 @@
#include <cstring>
#include <ctime>
#include <iomanip>
-#include <regex>
#include <sstream>
#ifdef _MSC_VER
#include <stdlib.h> // provides **_environ
@@ -51,6 +50,15 @@
#include <iostream>
#include <string>
+// #define USE_CPP11_REGEX
+#ifdef USE_CPP11_REGEX
+ #include <regex>
+ #define SLIC3R_REGEX_NAMESPACE std
+#else /* USE_CPP11_REGEX */
+ #include <boost/regex.hpp>
+ #define SLIC3R_REGEX_NAMESPACE boost
+#endif /* USE_CPP11_REGEX */
+
namespace Slic3r {
PlaceholderParser::PlaceholderParser()
@@ -424,13 +432,13 @@ namespace client
}
try {
std::string pattern(++ rhs.begin(), -- rhs.end());
- bool result = std::regex_match(*subject, std::regex(pattern));
+ bool result = SLIC3R_REGEX_NAMESPACE::regex_match(*subject, SLIC3R_REGEX_NAMESPACE::regex(pattern));
if (op == '!')
result = ! result;
lhs.reset();
lhs.type = TYPE_BOOL;
lhs.data.b = result;
- } catch (std::regex_error &ex) {
+ } catch (SLIC3R_REGEX_NAMESPACE::regex_error &ex) {
// Syntax error in the regular expression
boost::throw_exception(qi::expectation_failure<Iterator>(
rhs.begin(), rhs.end(), spirit::info(std::string("*Regular expression compilation failed: ") + ex.what())));