Hello! SyncEvolution does not make use of regular expressions because it wants to avoid a dependency on libraries which are not common enough to be relied upon on all target platforms. That rules out Qt RegEx.
It also avoids libraries whose ABI varies too often, because it would complicate delivering libraries via syncevolution.org. That has ruled out anything from Boost which is more than a set of header files, like boost::regex (libboost_regex.so.1.42.0 in Debian Stable, still in Testing, but bound to be replaced by libboost_regex.so.1.46.0). Another aspect is C++ support for std::string and the desire to do search/replace. Otherwise POSIX regex support in GNU libc would be an option. I've just come across another alternative: boost::Xpressive. http://www.boost.org/doc/libs/1_47_0/doc/html/xpressive/user_s_guide.html#boost_xpressive.user_s_guide.introduction This is old enough (introduced in Boost 1.34.0) to not limit compilation on older Linux distros and it is header-only. It supports regular expression syntax, parsed at runtime. It also touts its own C++ "domain language" for statically compiling regular expressions as an alternative. I am less certain about the later. While the approach looks neat, it is also not going to be familiar for many developers, which makes the code less approachable. For example: sregex re = '$' >> +_d >> '.' >> _d >> _d; That's the same as: sregex re = sregex::compile("$\\d\\.\d\d"); Any thoughts about using Boost Xpressive in SyncEvolution from other developers? Any alternatives? -- Best Regards, Patrick Ohly The content of this message is my personal opinion only and although I am an employee of Intel, the statements I make here in no way represent Intel's position on the issue, nor am I authorized to speak on behalf of Intel on this matter. _______________________________________________ SyncEvolution mailing list [email protected] http://lists.syncevolution.org/listinfo/syncevolution
