X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fregex.h;h=96498708fcee8047a44ab9ada5c369bfbb7c2f53;hb=279e656d6a7c4ee3647752cba8b9aa7d6ec6e0c2;hp=0826c9724ce6e82743e8bce9a6db0a4e1351fcfb;hpb=615d42d357e782a7d8c10c82e9e2833cc781f328;p=lyx.git diff --git a/src/support/regex.h b/src/support/regex.h index 0826c9724c..96498708fc 100644 --- a/src/support/regex.h +++ b/src/support/regex.h @@ -12,52 +12,45 @@ #ifndef LYX_REGEXP_H #define LYX_REGEXP_H -#include "checktr1.h" - - -#define LYX_REGEX_TO_LYX(X) \ - using X::regex; \ - using X::smatch; \ - using X::regex_replace; \ - using X::basic_regex; \ - using X::regex_error; \ - using X::regex_search; \ - using X::sregex_iterator; \ - using X::match_results; \ - \ - namespace regex_constants \ - { \ - using namespace X::regex_constants; \ - using X::regex_constants::match_flag_type; \ - } \ - - - -// TODO: only tested with msvc10 -#if defined(LYX_USE_TR1) && defined(_MSC_VER) - -#ifdef _MSC_VER -#include -#define match_partial _Match_partial // why is match_partial not public? +#ifdef LYX_USE_STD_REGEX +# include +// in gcc is unusable in versions less than 4.9.0 +// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631 +# define LR_NS std #else -#include +# include +# define LR_NS boost #endif -namespace lyx +namespace lyx { +using LR_NS::regex; +using LR_NS::regex_match; +using LR_NS::regex_replace; +using LR_NS::regex_search; +using LR_NS::sregex_iterator; +using LR_NS::smatch; +using LR_NS::basic_regex; +using LR_NS::regex_error; +using LR_NS::match_results; + +namespace regex_constants { - LYX_REGEX_TO_LYX(std::tr1); -} - -#else +using namespace LR_NS::regex_constants; +using LR_NS::regex_constants::match_flag_type; +} // namespace regex_constants -#include "boost/regex.hpp" +} // namespace lyx -namespace lyx -{ - LYX_REGEX_TO_LYX(boost); -} +#undef LR_NS +#ifdef LYX_USE_STD_REGEX +// Match Begin and End of String when using ECMAScript (default std::regex) +#define REGEX_BOS "^" +#define REGEX_EOS "$" +#else +// Match Begin and End of String when using Perl RE (default boost::regex) +#define REGEX_BOS "\\`" +#define REGEX_EOS "\\'" #endif - #endif