#include "Regex.h" #include "config.h" char t[1024]; Regex empty("^$"), any(".*"); Regex::Regex(const String & regex, int acflags, int aeflags) throw (GeneralException) : cflags(acflags), eflags(aeflags), pattern(regex.strdup()) { int r; if ((r = regcomp(&preg, pattern, cflags | REG_NOSUB))) { cerr << _("Error in regcomp:"); regerror(r, &preg, t, sizeof(t)); cerr << t << endl; throw GeneralException(String(_("Regex \"")) + regex + _("\" failed to compile: ") + t + "\n"); } } Regex::Regex(const Regex & regex) : pattern(Base::strdup(pattern)) { int r; if ((r = regcomp(&preg, pattern, cflags | REG_NOSUB))) { cerr << "Error in regcomp:"; regerror(r, &preg, t, sizeof(t)); cerr << t << endl; throw GeneralException(String(_("Regex \"")) + pattern + _("\" failed to compile: ") + t + "\n"); } } Regex::~Regex() { regfree(&preg); free(pattern); } bool Regex::Match(const String & s) const { if (regexec(&preg, s.to_charp(), 0, 0, eflags)) { return false; } else { return true; } }