summaryrefslogtreecommitdiff
path: root/doc/pcre2_callout_enumerate.3
blob: 109c9bec0bdd7e9c8c209343cac37a82dd9573d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
.TH PCRE2_COMPILE 3 "23 March 2017" "PCRE2 10.30"
.SH NAME
PCRE2 - Perl-compatible regular expressions (revised API)
.SH SYNOPSIS
.rs
.sp
.B #include <pcre2.h>
.PP
.nf
.B int pcre2_callout_enumerate(const pcre2_code *\fIcode\fP,
.B "  int (*\fIcallback\fP)(pcre2_callout_enumerate_block *, void *),"
.B "  void *\fIcallout_data\fP);"
.fi
.
.SH DESCRIPTION
.rs
.sp
This function scans a compiled regular expression and calls the \fIcallback()\fP
function for each callout within the pattern. The yield of the function is zero
for success and non-zero otherwise. The arguments are:
.sp
  \fIcode\fP           Points to the compiled pattern
  \fIcallback\fP       The callback function
  \fIcallout_data\fP   User data that is passed to the callback
.sp
The \fIcallback()\fP function is passed a pointer to a data block containing
the following fields (not necessarily in this order):
.sp
  uint32_t   \fIversion\fP                Block version number
  uint32_t   \fIcallout_number\fP         Number for numbered callouts
  PCRE2_SIZE \fIpattern_position\fP       Offset to next item in pattern
  PCRE2_SIZE \fInext_item_length\fP       Length of next item in pattern
  PCRE2_SIZE \fIcallout_string_offset\fP  Offset to string within pattern
  PCRE2_SIZE \fIcallout_string_length\fP  Length of callout string
  PCRE2_SPTR \fIcallout_string\fP         Points to callout string or is NULL
.sp
The second argument passed to the \fBcallback()\fP function is the callout data
that was passed to \fBpcre2_callout_enumerate()\fP. The \fBcallback()\fP
function must return zero for success. Any other value causes the pattern scan
to stop, with the value being passed back as the result of
\fBpcre2_callout_enumerate()\fP.
.P
There is a complete description of the PCRE2 native API in the
.\" HREF
\fBpcre2api\fP
.\"
page and a description of the POSIX API in the
.\" HREF
\fBpcre2posix\fP
.\"
page.