Implemented pcre2_get_match_data_size().
This commit is contained in:
parent
046c5cd21c
commit
bca9888a2c
|
@ -88,13 +88,15 @@ otherwise), an atomic group, or a recursion.
|
||||||
17. Check for integer overflow when computing lookbehind lengths. Fixes
|
17. Check for integer overflow when computing lookbehind lengths. Fixes
|
||||||
Clusterfuzz issue 15636.
|
Clusterfuzz issue 15636.
|
||||||
|
|
||||||
18. Implement non-atomic positive lookaround assertions.
|
18. Implemented non-atomic positive lookaround assertions.
|
||||||
|
|
||||||
19. If a lookbehind contained a lookahead that contained another lookbehind
|
19. If a lookbehind contained a lookahead that contained another lookbehind
|
||||||
within it, the nested lookbehind was not correctly processed. For example, if
|
within it, the nested lookbehind was not correctly processed. For example, if
|
||||||
/(?<=(?=(?<=a)))b/ was matched to "ab" it gave no match instead of matching
|
/(?<=(?=(?<=a)))b/ was matched to "ab" it gave no match instead of matching
|
||||||
"b".
|
"b".
|
||||||
|
|
||||||
|
20. Implemented pcre2_get_match_data_size().
|
||||||
|
|
||||||
|
|
||||||
Version 10.33 16-April-2019
|
Version 10.33 16-April-2019
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
|
@ -46,6 +46,7 @@ dist_html_DATA = \
|
||||||
doc/html/pcre2_general_context_free.html \
|
doc/html/pcre2_general_context_free.html \
|
||||||
doc/html/pcre2_get_error_message.html \
|
doc/html/pcre2_get_error_message.html \
|
||||||
doc/html/pcre2_get_mark.html \
|
doc/html/pcre2_get_mark.html \
|
||||||
|
doc/html/pcre2_get_match_data_size.html \
|
||||||
doc/html/pcre2_get_ovector_count.html \
|
doc/html/pcre2_get_ovector_count.html \
|
||||||
doc/html/pcre2_get_ovector_pointer.html \
|
doc/html/pcre2_get_ovector_pointer.html \
|
||||||
doc/html/pcre2_get_startchar.html \
|
doc/html/pcre2_get_startchar.html \
|
||||||
|
@ -140,6 +141,7 @@ dist_man_MANS = \
|
||||||
doc/pcre2_general_context_free.3 \
|
doc/pcre2_general_context_free.3 \
|
||||||
doc/pcre2_get_error_message.3 \
|
doc/pcre2_get_error_message.3 \
|
||||||
doc/pcre2_get_mark.3 \
|
doc/pcre2_get_mark.3 \
|
||||||
|
doc/pcre2_get_match_data_size.3 \
|
||||||
doc/pcre2_get_ovector_count.3 \
|
doc/pcre2_get_ovector_count.3 \
|
||||||
doc/pcre2_get_ovector_pointer.3 \
|
doc/pcre2_get_ovector_pointer.3 \
|
||||||
doc/pcre2_get_startchar.3 \
|
doc/pcre2_get_startchar.3 \
|
||||||
|
|
|
@ -146,6 +146,9 @@ in the library.
|
||||||
<tr><td><a href="pcre2_get_mark.html">pcre2_get_mark</a></td>
|
<tr><td><a href="pcre2_get_mark.html">pcre2_get_mark</a></td>
|
||||||
<td> Get a (*MARK) name</td></tr>
|
<td> Get a (*MARK) name</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_match_data_size.html">pcre2_get_match_data_size</a></td>
|
||||||
|
<td> Get the size of a match data block</td></tr>
|
||||||
|
|
||||||
<tr><td><a href="pcre2_get_ovector_count.html">pcre2_get_ovector_count</a></td>
|
<tr><td><a href="pcre2_get_ovector_count.html">pcre2_get_ovector_count</a></td>
|
||||||
<td> Get the ovector count</td></tr>
|
<td> Get the ovector count</td></tr>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_match_data_size specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_match_data_size man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>PCRE2_SIZE pcre2_get_match_data_size(pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function returns the size, in bytes, of the match data block that is its
|
||||||
|
argument.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
|
@ -146,6 +146,9 @@ in the library.
|
||||||
<tr><td><a href="pcre2_get_mark.html">pcre2_get_mark</a></td>
|
<tr><td><a href="pcre2_get_mark.html">pcre2_get_mark</a></td>
|
||||||
<td> Get a (*MARK) name</td></tr>
|
<td> Get a (*MARK) name</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_match_data_size.html">pcre2_get_match_data_size</a></td>
|
||||||
|
<td> Get the size of a match data block</td></tr>
|
||||||
|
|
||||||
<tr><td><a href="pcre2_get_ovector_count.html">pcre2_get_ovector_count</a></td>
|
<tr><td><a href="pcre2_get_ovector_count.html">pcre2_get_ovector_count</a></td>
|
||||||
<td> Get the ovector count</td></tr>
|
<td> Get the ovector count</td></tr>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
.TH PCRE2_GET_MATCH_DATA_SIZE 3 "16 July 2019" "PCRE2 10.34"
|
||||||
|
.SH NAME
|
||||||
|
PCRE2 - Perl-compatible regular expressions (revised API)
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.rs
|
||||||
|
.sp
|
||||||
|
.B #include <pcre2.h>
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
.B PCRE2_SIZE pcre2_get_match_data_size(pcre2_match_data *\fImatch_data\fP);
|
||||||
|
.fi
|
||||||
|
.
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.rs
|
||||||
|
.sp
|
||||||
|
This function returns the size, in bytes, of the match data block that is its
|
||||||
|
argument.
|
||||||
|
.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.
|
|
@ -679,6 +679,8 @@ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \
|
||||||
pcre2_match_data_free(pcre2_match_data *); \
|
pcre2_match_data_free(pcre2_match_data *); \
|
||||||
PCRE2_EXP_DECL PCRE2_SPTR PCRE2_CALL_CONVENTION \
|
PCRE2_EXP_DECL PCRE2_SPTR PCRE2_CALL_CONVENTION \
|
||||||
pcre2_get_mark(pcre2_match_data *); \
|
pcre2_get_mark(pcre2_match_data *); \
|
||||||
|
PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \
|
||||||
|
pcre2_get_match_data_size(pcre2_match_data *); \
|
||||||
PCRE2_EXP_DECL uint32_t PCRE2_CALL_CONVENTION \
|
PCRE2_EXP_DECL uint32_t PCRE2_CALL_CONVENTION \
|
||||||
pcre2_get_ovector_count(pcre2_match_data *); \
|
pcre2_get_ovector_count(pcre2_match_data *); \
|
||||||
PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \
|
PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \
|
||||||
|
@ -842,6 +844,7 @@ pcre2_compile are called by application code. */
|
||||||
#define pcre2_general_context_free PCRE2_SUFFIX(pcre2_general_context_free_)
|
#define pcre2_general_context_free PCRE2_SUFFIX(pcre2_general_context_free_)
|
||||||
#define pcre2_get_error_message PCRE2_SUFFIX(pcre2_get_error_message_)
|
#define pcre2_get_error_message PCRE2_SUFFIX(pcre2_get_error_message_)
|
||||||
#define pcre2_get_mark PCRE2_SUFFIX(pcre2_get_mark_)
|
#define pcre2_get_mark PCRE2_SUFFIX(pcre2_get_mark_)
|
||||||
|
#define pcre2_get_match_data_size PCRE2_SUFFIX(pcre2_get_match_data_size_)
|
||||||
#define pcre2_get_ovector_pointer PCRE2_SUFFIX(pcre2_get_ovector_pointer_)
|
#define pcre2_get_ovector_pointer PCRE2_SUFFIX(pcre2_get_ovector_pointer_)
|
||||||
#define pcre2_get_ovector_count PCRE2_SUFFIX(pcre2_get_ovector_count_)
|
#define pcre2_get_ovector_count PCRE2_SUFFIX(pcre2_get_ovector_count_)
|
||||||
#define pcre2_get_startchar PCRE2_SUFFIX(pcre2_get_startchar_)
|
#define pcre2_get_startchar PCRE2_SUFFIX(pcre2_get_startchar_)
|
||||||
|
|
|
@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
Written by Philip Hazel
|
Written by Philip Hazel
|
||||||
Original API code Copyright (c) 1997-2012 University of Cambridge
|
Original API code Copyright (c) 1997-2012 University of Cambridge
|
||||||
New API code Copyright (c) 2016-2018 University of Cambridge
|
New API code Copyright (c) 2016-2019 University of Cambridge
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -150,4 +150,17 @@ pcre2_get_startchar(pcre2_match_data *match_data)
|
||||||
return match_data->startchar;
|
return match_data->startchar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
* Get size of match data block *
|
||||||
|
*************************************************/
|
||||||
|
|
||||||
|
PCRE2_EXP_DEFN PCRE2_SIZE PCRE2_CALL_CONVENTION
|
||||||
|
pcre2_get_match_data_size(pcre2_match_data *match_data)
|
||||||
|
{
|
||||||
|
return offsetof(pcre2_match_data, ovector) +
|
||||||
|
2 * (match_data->oveccount) * sizeof(PCRE2_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
/* End of pcre2_match_data.c */
|
/* End of pcre2_match_data.c */
|
||||||
|
|
|
@ -3269,7 +3269,7 @@ return 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* This function is no longer used. Keep it around for a while, just in case it
|
/* This function is no longer used. Keep it around for a while, just in case it
|
||||||
needs to be re-instated. */
|
needs to be re-instated. */
|
||||||
|
|
||||||
#ifdef NEVERNEVERNEVER
|
#ifdef NEVERNEVERNEVER
|
||||||
|
@ -8662,7 +8662,7 @@ while (argc > 1 && argv[op][0] == '-' && argv[op][1] != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "** Argument for %s must not be zero\n", arg);
|
fprintf(stderr, "** Argument for %s must not be zero\n", arg);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (U32OVERFLOW(uli))
|
if (U32OVERFLOW(uli))
|
||||||
{
|
{
|
||||||
fprintf(stderr, "** Argument for %s is too big\n", arg);
|
fprintf(stderr, "** Argument for %s is too big\n", arg);
|
||||||
|
@ -8820,8 +8820,8 @@ least 128 code units, because it is used for retrieving error messages. */
|
||||||
} /* End of -error handling */
|
} /* End of -error handling */
|
||||||
|
|
||||||
/* Initialize things that cannot be done until we know which test mode we are
|
/* Initialize things that cannot be done until we know which test mode we are
|
||||||
running in. Exercise the general context copying function, which is not
|
running in. Exercise the general context copying and match data size functions,
|
||||||
otherwise used. */
|
which are not otherwise used. */
|
||||||
|
|
||||||
code_unit_size = test_mode/8;
|
code_unit_size = test_mode/8;
|
||||||
max_oveccount = DEFAULT_OVECCOUNT;
|
max_oveccount = DEFAULT_OVECCOUNT;
|
||||||
|
@ -8843,7 +8843,9 @@ max_oveccount = DEFAULT_OVECCOUNT;
|
||||||
(void)G(pcre2_set_compile_extra_options_,BITS)(G(pat_context,BITS), 0); \
|
(void)G(pcre2_set_compile_extra_options_,BITS)(G(pat_context,BITS), 0); \
|
||||||
(void)G(pcre2_set_max_pattern_length_,BITS)(G(pat_context,BITS), 0); \
|
(void)G(pcre2_set_max_pattern_length_,BITS)(G(pat_context,BITS), 0); \
|
||||||
(void)G(pcre2_set_offset_limit_,BITS)(G(dat_context,BITS), 0); \
|
(void)G(pcre2_set_offset_limit_,BITS)(G(dat_context,BITS), 0); \
|
||||||
(void)G(pcre2_set_recursion_memory_management_,BITS)(G(dat_context,BITS), my_malloc, my_free, NULL)
|
(void)G(pcre2_set_recursion_memory_management_,BITS)(G(dat_context,BITS), my_malloc, my_free, NULL); \
|
||||||
|
(void)G(pcre2_get_match_data_size_,BITS)(G(match_data,BITS))
|
||||||
|
|
||||||
|
|
||||||
/* Call the appropriate functions for the current mode, and exercise some
|
/* Call the appropriate functions for the current mode, and exercise some
|
||||||
functions that are not otherwise called. */
|
functions that are not otherwise called. */
|
||||||
|
|
Loading…
Reference in New Issue