X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fregex.h;h=96498708fcee8047a44ab9ada5c369bfbb7c2f53;hb=279e656d6a7c4ee3647752cba8b9aa7d6ec6e0c2;hp=0c85075882ba2e3f10ef5c5b169e821f2037161d;hpb=af928c503de3dbed4575bc26f0b2894a1d7b7eb7;p=lyx.git diff --git a/src/support/regex.h b/src/support/regex.h index 0c85075882..96498708fc 100644 --- a/src/support/regex.h +++ b/src/support/regex.h @@ -12,39 +12,45 @@ #ifndef LYX_REGEXP_H #define LYX_REGEXP_H -#if defined(LYX_USE_TR1) && defined(LYX_USE_TR1_REGEX) -# ifdef _MSC_VER -# include -# define match_partial _Match_partial -# else -# include -// TODO no match_partial in gcc, how to replace? -# define match_partial match_default -# endif -# define LR_NS std::tr1 -#else +#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 # define LR_NS boost #endif namespace lyx { using LR_NS::regex; -using LR_NS::smatch; +using LR_NS::regex_match; using LR_NS::regex_replace; -using LR_NS::basic_regex; -using LR_NS::regex_error; 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 { using namespace LR_NS::regex_constants; using LR_NS::regex_constants::match_flag_type; -} +} // namespace regex_constants -} +} // namespace lyx #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