On Tue, Apr 30 2019, Nam Nguyen <namn@berkeley.edu> wrote:
> This is an update for devel/pcre2 10.33, released April 16, 2019. I
> tested it with wget.
Also tested with devel/vte3 and shells/fish but the update looked safe
anyway.
> Changelog: https://www.pcre.org/changelog.txt
>
> Here is some commentary on relevant parts of the changelog.
>
> --8<---------------cut here---------------start------------->8---
> 3. Added support for callouts from pcre2_substitute(). After 10.33-RC1, but
> prior to release, fixed a bug that caused a crash if pcre2_substitute() was
> called with a NULL match context.
>
> comment: minor bump pcre2-{8, 16, 32} because added new function
>
> +T pcre2_set_substitute_callout_8
yep
> 4. The POSIX functions are now all called pcre2_regcomp() etc., with wrapper
> functions that use the standard POSIX names. However, in pcre2posix.h the POSIX
> names are defined as macros. This should help avoid linking with the wrong
> library in some environments while still exporting the POSIX names for
> pre-existing programs that use them. (The Debian alternative names are also
> defined as macros, but not documented.)
>
> comment: minor bump pcre2-posix. Added new functions, while redefining
> old symbols, like regcomp --> pcre2_regcomp.
>
> +T pcre2_regcomp
> +T pcre2_regerror
> +T pcre2_regexec
> +T pcre2_regfree
>
> -PCRE2POSIX_EXP_DECL int regcomp(regex_t *, const char *, int);
> -PCRE2POSIX_EXP_DECL int regexec(const regex_t *, const char *, size_t,
> +PCRE2POSIX_EXP_DECL int pcre2_regcomp(regex_t *, const char *, int);
> +PCRE2POSIX_EXP_DECL int pcre2_regexec(const regex_t *, const char *, size_t,
> regmatch_t *, int);
> -PCRE2POSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t);
> -PCRE2POSIX_EXP_DECL void regfree(regex_t *);
> +PCRE2POSIX_EXP_DECL size_t pcre2_regerror(int, const regex_t *, char *, size_t);
> +PCRE2POSIX_EXP_DECL void pcre2_regfree(regex_t *);
> +
> +#define regcomp pcre2_regcomp
> +#define regexec pcre2_regexec
> +#define regerror pcre2_regerror
> +#define regfree pcre2_regfree
yep
> 6. Implement PCRE2_EXTRA_ESCAPED_CR_IS_LF (see Bugzilla 2315).
>
> comment: minor bump because new symbol in pcre2.h
>
> +#define PCRE2_EXTRA_ESCAPED_CR_IS_LF 0x00000010u /* C */
>
> 10. Implement PCRE2_COPY_MATCHED_SUBJECT for pcre2_match() (including JIT via
> pcre2_match()) and pcre2_dfa_match(), but *not* the pcre2_jit_match() fast
> path. Also, when a match fails, set the subject field in the match data to NULL
> for tidiness - none of the substring extractors should reference this after
> match failure.
>
> comment: minor bump because new symbol in pcre2.h
>
> +#define PCRE2_COPY_MATCHED_SUBJECT 0x00004000u
> 26. With PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL set, escape sequences such as \s
> which are valid in character classes, but not as the end of ranges, were being
> treated as literals. An example is [_-\s] (but not [\s-_] because that gave an
> error at the *start* of a range). Now an "invalid range" error is given
> independently of PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL.
>
> comment: minor bump because new error code in pcre2_error.c "invalid
> range in character class\0"
> 31. Implemented PCRE2_EXTRA_ALT_BSUX to support ECMAScript 6's \u{hhh}
> construct.
>
> comment: minor bump because new symbol in pcre2.h
> +#define PCRE2_EXTRA_ALT_BSUX 0x00000020u /* C */
Technically not symbol additions, but fine, they might warrant a minor
bump anyway.
> 23. The RunGrepTest script used to cut out the test of NUL characters for
> Solaris and MacOS as printf and sed can't handle them. It seems that the *BSD
> systems can't either. I've inverted the test so that only those OS that are
> known to work (currently only Linux) try to run this test.
>
> comment: Now that the test checks for Linux, I am proposing to
> s/Linux/OpenBSD/ in the patch that jca@ added. This seems to be the
> easiest way to run this test now.
>
> previous version:
> uname=`uname`
> if [ "$uname" != "SunOS" -a "$uname" != "Darwin" ] ; then
> ...
>
> newest version:
> uname=`uname`
> case $uname in
> Linux)
> ...
This is just badly implemented, portability-wise. sed can't portably
handle NUL characters, so sed shouldn't be used here. Your change
looks fine as a workaround for our ports tree, though.
Diff committed, thanks!
--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
No comments:
Post a Comment