mirror of
https://github.com/apache/httpd.git
synced 2025-08-01 16:41:19 +00:00
ap_expr: open string expressions to the <word>.
Introduces the syntax "%{:<word>:}", borrowed from the <var>'s one, and which likewise can be embedded anywhere in a string expression (the same reserved character ':' gets reused in an unambiguous manner). This allows the two types of expressions (boolean and string) to now share fully the same language set, namely: strings, lists, vars, regexes, backrefs, functions with multiple or complex arguments, and especially combinations thereof. Most of them were reserved to boolean expressions only, while complex string constructions can also benefit to, well, strings. The <word> construct allows that (say the syntax "%{:<word>:}" looks like a temporary variable constructed in a string). Since string expressions may now have to deal with lists (arrays), they also need a way to produce/extract strings from list and vice versa. This can be done with the new "join" and "split" operators, while the new substitution regexes (like "s/<pattern>/<substitute>/<flags>") may be used to manipulate strings in place. All this of course available for both string and boolean expressions. Tests and doc updates upcoming.. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1810605 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@ -246,6 +246,10 @@ AP_DECLARE(int) ap_regexec_len(const ap_regex_t *preg, const char *buff,
|
||||
options |= PCREn(NOTBOL);
|
||||
if ((eflags & AP_REG_NOTEOL) != 0)
|
||||
options |= PCREn(NOTEOL);
|
||||
if ((eflags & AP_REG_NOTEMPTY) != 0)
|
||||
options |= PCREn(NOTEMPTY);
|
||||
if ((eflags & AP_REG_ANCHORED) != 0)
|
||||
options |= PCREn(ANCHORED);
|
||||
|
||||
#ifdef HAVE_PCRE2
|
||||
/* TODO: create a generic TLS matchdata buffer of some nmatch limit,
|
||||
|
Reference in New Issue
Block a user