Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

RegExp.C

Go to the documentation of this file.
00001 // Copyright (C) 2003, Kenneth C. Schalk
00002 
00003 // This file is part of Vesta.
00004 
00005 // Vesta is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU Lesser General Public
00007 // License as published by the Free Software Foundation; either
00008 // version 2.1 of the License, or (at your option) any later version.
00009 
00010 // Vesta is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // Lesser General Public License for more details.
00014 
00015 // You should have received a copy of the GNU Lesser General Public
00016 // License along with Vesta; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 
00019 // Last modified on Sun Apr 17 22:47:32 EDT 2005 by ken@xorian.net        
00020 
00021 #include "RegExp.H"
00022 
00023 void Basics::RegExp::constructor_inner(const char *re, int cflags)
00024   throw(Basics::RegExp::ParseError)
00025 {
00026   int comp_result = regcomp(&(this->parsed), re, cflags);
00027   if(comp_result != 0)
00028     {
00029       unsigned int esize = 1024;
00030       char *ebuf = NEW_PTRFREE_ARRAY(char, esize);
00031       while(regerror(comp_result, &(this->parsed), ebuf, esize) > esize)
00032         {
00033           delete [] ebuf;
00034           esize *= 2;
00035           ebuf = NEW_PTRFREE_ARRAY(char, esize);
00036         }
00037       throw Basics::RegExp::ParseError(comp_result, ebuf, re);
00038     }
00039 }
00040 

Generated on Mon May 8 00:48:28 2006 for Vesta by  doxygen 1.4.2