Apache Portable Runtime
Toggle main menu visibility
Loading...
Searching...
No Matches
apr_strmatch.h
Go to the documentation of this file.
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
#ifndef APR_STRMATCH_H
18
#define APR_STRMATCH_H
19
/**
20
* @file apr_strmatch.h
21
* @brief APR-UTIL string matching routines
22
*/
23
24
#include "apu.h"
25
#include "
apr_pools.h
"
26
27
#ifdef __cplusplus
28
extern
"C"
{
29
#endif
30
31
/**
32
* @defgroup APR_Util_StrMatch String matching routines
33
* @ingroup APR_Util
34
* @{
35
*/
36
37
/** @see apr_strmatch_pattern */
38
typedef
struct
apr_strmatch_pattern
apr_strmatch_pattern
;
39
40
/**
41
* Precompiled search pattern
42
*/
43
struct
apr_strmatch_pattern
{
44
/** Function called to compare */
45
const
char
*(*compare)(
const
apr_strmatch_pattern
*this_pattern,
46
const
char
*s, apr_size_t slen);
47
const
char
*
pattern
;
/**< Current pattern */
48
apr_size_t
length
;
/**< Current length */
49
void
*
context
;
/**< hook to add precomputed metadata */
50
};
51
52
#if defined(DOXYGEN)
53
/**
54
* Search for a precompiled pattern within a string
55
* @param pattern The pattern
56
* @param s The string in which to search for the pattern
57
* @param slen The length of s (excluding null terminator)
58
* @return A pointer to the first instance of the pattern in s, or
59
* NULL if not found
60
*/
61
APU_DECLARE(
const
char
*)
apr_strmatch
(
const
apr_strmatch_pattern
*pattern,
62
const
char
*s, apr_size_t slen);
63
#else
64
#define apr_strmatch(pattern, s, slen) (*((pattern)->compare))((pattern), (s), (slen))
65
#endif
66
67
/**
68
* Precompile a pattern for matching using the Boyer-Moore-Horspool algorithm
69
* @param p The pool from which to allocate the pattern
70
* @param s The pattern string
71
* @param case_sensitive Whether the matching should be case-sensitive
72
* @return a pointer to the compiled pattern, or NULL if compilation fails
73
*/
74
APU_DECLARE(
const
apr_strmatch_pattern
*)
apr_strmatch_precompile
(
apr_pool_t
*p,
const
char
*s,
int
case_sensitive);
75
76
/** @} */
77
#ifdef __cplusplus
78
}
79
#endif
80
81
#endif
/* !APR_STRMATCH_H */
apr_pools.h
APR memory allocation.
apr_strmatch_precompile
const apr_strmatch_pattern * apr_strmatch_precompile(apr_pool_t *p, const char *s, int case_sensitive)
apr_strmatch
const char * apr_strmatch(const apr_strmatch_pattern *pattern, const char *s, apr_size_t slen)
apr_pool_t
struct apr_pool_t apr_pool_t
Definition
apr_pools.h:60
apr_strmatch_pattern
Definition
apr_strmatch.h:43
apr_strmatch_pattern::context
void * context
Definition
apr_strmatch.h:49
apr_strmatch_pattern::length
apr_size_t length
Definition
apr_strmatch.h:48
apr_strmatch_pattern::pattern
const char * pattern
Definition
apr_strmatch.h:47
usr
include
apr-1
apr_strmatch.h
Generated by
1.17.0