/home/dcp1990/prog/fakedbfs/include/fakedbfs/fdbfsregex.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2005-2006, Dan Ponte
00003  *
00004  * fdbfsregex.h - regex stuff (POSIX or pcre)
00005  * 
00006  * Redistribution and use in source and binary forms, with or without
00007  * modification, are permitted provided that the following conditions
00008  * are met:
00009  * 1. Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  * 2. Redistributions in binary form must reproduce the above copyright
00012  *    notice, this list of conditions and the following disclaimer in the
00013  *    documentation and/or other materials provided with the distribution.
00014  * 4. Neither the name of the University nor the names of its contributors
00015  *    may be used to endorse or promote products derived from this software
00016  *    without specific prior written permission.
00017  *
00018  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
00019  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
00022  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00023  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00024  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00025  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00026  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00027  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00028  * SUCH DAMAGE.
00029  */
00030 /* $Amigan: fakedbfs/include/fakedbfs/fdbfsregex.h,v 1.5 2006/04/19 19:58:22 dcp1990 Exp $ */
00031 #ifndef HAVE_FDBRE_H
00032 #define HAVE_FDBRE_H 1
00033 #include <fakedbfs/types.h>
00034 #include <fakedbfs/fdbfsconfig.h>
00035 
00036 #ifdef USE_PCRE
00037 #include <pcre.h>
00038 #else
00039 #ifndef _REGEX_H_
00040 #include <regex.h>
00041 #endif
00042 #endif
00043 
00044 #ifdef USE_PCRE
00045 #define REGEX_T pcre*
00046 #define EXTRA_T pcre_extra*
00047 #else
00048 #define REGEX_T regex_t
00049 #define EXTRA_T void*
00050 #endif
00051 
00052 #define FREG_NOCASE     0x1
00053 #define FREG_NOSUB      0x2
00054 
00055 #define FREG_OK         0x0
00056 #define FREG_NOMATCH    0x1
00057 
00058 struct _freg {
00059         REGEX_T re;
00060         EXTRA_T extra;
00061         int offset; /* only for pcre; don't rely on it */
00062         char *errmsg;
00063         short int dynamic; /* errmsg malloc()d? */
00064 };
00065 
00066 struct _fregmatch {
00067         int s;
00068         int e;
00069 };
00070 
00071 
00072 /* functions */
00073 
00074 int frinitialise(freg_t *fr);
00075 freg_t* new_freg(char *emsg, size_t emsgsize);
00076 void frerrfree(freg_t *fr);
00077 void destroy_freg(freg_t *fr);
00078 int fregcomp(freg_t *fr, const char *regpat, int flags); /* posix regcomp semantics: rc == 0 means "ok" */
00079 int fregexec(freg_t *fr, const char *str, fregmatch_t *matches, size_t matchsize);
00080 #endif

Generated on Wed Apr 19 16:26:23 2006 for fakedbfs by  doxygen 1.4.6