Annotation of win32/apache22/include/ap_regex.h, revision 1.1

1.1     ! moko        1: /* Licensed to the Apache Software Foundation (ASF) under one or more
        !             2:  * contributor license agreements.  See the NOTICE file distributed with
        !             3:  * this work for additional information regarding copyright ownership.
        !             4:  * The ASF licenses this file to You under the Apache License, Version 2.0
        !             5:  * (the "License"); you may not use this file except in compliance with
        !             6:  * the License.  You may obtain a copy of the License at
        !             7:  *
        !             8:  *     http://www.apache.org/licenses/LICENSE-2.0
        !             9:  *
        !            10:  * Unless required by applicable law or agreed to in writing, software
        !            11:  * distributed under the License is distributed on an "AS IS" BASIS,
        !            12:  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        !            13:  * See the License for the specific language governing permissions and
        !            14:  * limitations under the License.
        !            15:  */
        !            16: 
        !            17: /* Derived from PCRE's pcreposix.h.
        !            18: 
        !            19:             Copyright (c) 1997-2004 University of Cambridge
        !            20: 
        !            21: -----------------------------------------------------------------------------
        !            22: Redistribution and use in source and binary forms, with or without
        !            23: modification, are permitted provided that the following conditions are met:
        !            24: 
        !            25:     * Redistributions of source code must retain the above copyright notice,
        !            26:       this list of conditions and the following disclaimer.
        !            27: 
        !            28:     * Redistributions in binary form must reproduce the above copyright
        !            29:       notice, this list of conditions and the following disclaimer in the
        !            30:       documentation and/or other materials provided with the distribution.
        !            31: 
        !            32:     * Neither the name of the University of Cambridge nor the names of its
        !            33:       contributors may be used to endorse or promote products derived from
        !            34:       this software without specific prior written permission.
        !            35: 
        !            36: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        !            37: AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            38: IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            39: ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
        !            40: LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
        !            41: CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
        !            42: SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        !            43: INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        !            44: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
        !            45: ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            46: POSSIBILITY OF SUCH DAMAGE.
        !            47: -----------------------------------------------------------------------------
        !            48: */
        !            49: 
        !            50: /**
        !            51:  * @file ap_regex.h
        !            52:  * @brief Apache Regex defines
        !            53:  */
        !            54: 
        !            55: #ifndef AP_REGEX_H
        !            56: #define AP_REGEX_H
        !            57: 
        !            58: #include "apr.h"
        !            59: 
        !            60: /* Allow for C++ users */
        !            61: 
        !            62: #ifdef __cplusplus
        !            63: extern "C" {
        !            64: #endif
        !            65: 
        !            66: /* Options for ap_regexec: */
        !            67: 
        !            68: #define AP_REG_ICASE    0x01 /** use a case-insensitive match */
        !            69: #define AP_REG_NEWLINE  0x02 /** don't match newlines against '.' etc */
        !            70: #define AP_REG_NOTBOL   0x04 /** ^ will not match against start-of-string */
        !            71: #define AP_REG_NOTEOL   0x08 /** $ will not match against end-of-string */
        !            72: 
        !            73: #define AP_REG_EXTENDED (0)  /** unused */
        !            74: #define AP_REG_NOSUB    (0)  /** unused */
        !            75: 
        !            76: /* Error values: */
        !            77: enum {
        !            78:   AP_REG_ASSERT = 1,  /** internal error ? */
        !            79:   AP_REG_ESPACE,      /** failed to get memory */
        !            80:   AP_REG_INVARG,      /** invalid argument */
        !            81:   AP_REG_NOMATCH      /** match failed */
        !            82: };
        !            83: 
        !            84: /* The structure representing a compiled regular expression. */
        !            85: typedef struct {
        !            86:     void *re_pcre;
        !            87:     apr_size_t re_nsub;
        !            88:     apr_size_t re_erroffset;
        !            89: } ap_regex_t;
        !            90: 
        !            91: /* The structure in which a captured offset is returned. */
        !            92: typedef struct {
        !            93:     int rm_so;
        !            94:     int rm_eo;
        !            95: } ap_regmatch_t;
        !            96: 
        !            97: /* The functions */
        !            98: 
        !            99: /**
        !           100:  * Compile a regular expression.
        !           101:  * @param preg Returned compiled regex
        !           102:  * @param regex The regular expression string
        !           103:  * @param cflags Bitwise OR of AP_REG_* flags (ICASE and NEWLINE supported,
        !           104:  *                                             other flags are ignored)
        !           105:  * @return Zero on success or non-zero on error
        !           106:  */
        !           107: AP_DECLARE(int) ap_regcomp(ap_regex_t *preg, const char *regex, int cflags);
        !           108: 
        !           109: /**
        !           110:  * Match a NUL-terminated string against a pre-compiled regex.
        !           111:  * @param preg The pre-compiled regex
        !           112:  * @param string The string to match
        !           113:  * @param nmatch Provide information regarding the location of any matches
        !           114:  * @param pmatch Provide information regarding the location of any matches
        !           115:  * @param eflags Bitwise OR of AP_REG_* flags (NOTBOL and NOTEOL supported,
        !           116:  *                                             other flags are ignored)
        !           117:  * @return 0 for successful match, AP_REG_NOMATCH otherwise
        !           118:  */ 
        !           119: AP_DECLARE(int) ap_regexec(const ap_regex_t *preg, const char *string,
        !           120:                            apr_size_t nmatch, ap_regmatch_t *pmatch, int eflags);
        !           121: 
        !           122: /**
        !           123:  * Return the error code returned by regcomp or regexec into error messages
        !           124:  * @param errcode the error code returned by regexec or regcomp
        !           125:  * @param preg The precompiled regex
        !           126:  * @param errbuf A buffer to store the error in
        !           127:  * @param errbuf_size The size of the buffer
        !           128:  */
        !           129: AP_DECLARE(apr_size_t) ap_regerror(int errcode, const ap_regex_t *preg, 
        !           130:                                    char *errbuf, apr_size_t errbuf_size);
        !           131: 
        !           132: /** Destroy a pre-compiled regex.
        !           133:  * @param preg The pre-compiled regex to free.
        !           134:  */
        !           135: AP_DECLARE(void) ap_regfree(ap_regex_t *preg);
        !           136: 
        !           137: #ifdef __cplusplus
        !           138: }   /* extern "C" */
        !           139: #endif
        !           140: 
        !           141: #endif /* AP_REGEX_T */
        !           142: 

E-mail: