diff options
author | dburgess <dburgess@19bc5d8c-e614-43d4-8b26-e1612bc8e597> | 2011-10-07 02:40:51 +0000 |
---|---|---|
committer | dburgess <dburgess@19bc5d8c-e614-43d4-8b26-e1612bc8e597> | 2011-10-07 02:40:51 +0000 |
commit | 82c46ff7aeb793d70f11fcaf22b2813b7dc0f78b (patch) | |
tree | 25cf269a01eaf3ae2ca0cece6f1a22ca61308e6d /CommonLibs/Regexp.h | |
parent | cd8381743f1fe458f10e96020ad4626f4ae3d7bd (diff) |
Putting the actual OpenBTS P2.8 source code into the public SVN branch.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2242 19bc5d8c-e614-43d4-8b26-e1612bc8e597
Diffstat (limited to 'CommonLibs/Regexp.h')
-rw-r--r-- | CommonLibs/Regexp.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/CommonLibs/Regexp.h b/CommonLibs/Regexp.h new file mode 100644 index 0000000..3ff1e97 --- /dev/null +++ b/CommonLibs/Regexp.h @@ -0,0 +1,64 @@ +/* +* Copyright 2008 Free Software Foundation, Inc. +* +* This software is distributed under the terms of the GNU Affero Public License. +* See the COPYING file in the main directory for details. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#ifndef REGEXPW_H +#define REGEXPW_H + +#include <regex.h> +#include <iostream> +#include <stdlib.h> + + + +class Regexp { + + private: + + regex_t mRegex; + + + public: + + Regexp(const char* regexp, int flags=REG_EXTENDED) + { + int result = regcomp(&mRegex, regexp, flags); + if (result) { + char msg[256]; + regerror(result,&mRegex,msg,255); + std::cerr << "Regexp compilation of " << regexp << " failed: " << msg << std::endl; + abort(); + } + } + + ~Regexp() + { regfree(&mRegex); } + + bool match(const char *text, int flags=0) const + { return regexec(&mRegex, text, 0, NULL, flags)==0; } + +}; + + +#endif |