]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
regex: Add AP_REG_NOTEMPTY_ATSTART maching option.
authorYann Ylavic <ylavic@apache.org>
Tue, 16 Jan 2024 16:56:58 +0000 (16:56 +0000)
committerYann Ylavic <ylavic@apache.org>
Tue, 16 Jan 2024 16:56:58 +0000 (16:56 +0000)
* include/ap_mmn.h:
  Bump MMN minor.

* include/ap_regex.h:
  Define AP_REG_NOTEMPTY_ATSTART bit.

* server/util_pcre.c(ap_regexec_ex):
  Map AP_REG_NOTEMPTY_ATSTART to native PCRE_NOTEMPTY_ATSTART.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1915268 13f79535-47bb-0310-9956-ffa450edef68

include/ap_mmn.h
include/ap_regex.h
server/util_pcre.c

index ea1ce0c43af31d1bf6d5d35edd07bdc3a7945eec..9d79c14e95d6c652e71b2cb3af427a3d281200de 100644 (file)
  * 20211221.16 (2.5.1-dev) Add ap_proxy_determine_address()
  * 20211221.17 (2.5.1-dev) Add ap_proxy_worker_get_name()
  * 20211221.18 (2.5.1-dev) Add ap_regexec_ex()
+ * 20211221.19 (2.5.1-dev) Add AP_REG_NOTEMPTY_ATSTART
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20211221
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 18             /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 19             /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
index f4fc88bf8b3414f05848aadf4e6ceb11659c9bb9..a9861941515a04ddbef1d08b987154c756e151d3 100644 (file)
@@ -89,6 +89,8 @@ extern "C" {
 
 #define AP_REG_NO_DEFAULT 0x400 /**< Don't implicitely add AP_REG_DEFAULT options */
 
+#define AP_REG_NOTEMPTY_ATSTART 0x800 /**< Empty match not valid at first position */
+
 #define AP_REG_MATCH "MATCH_" /**< suggested prefix for ap_regname */
 
 #define AP_REG_DEFAULT (AP_REG_DOTALL|AP_REG_DOLLAR_ENDONLY)
index da85c2da5df20d1caa65387d5522072bfaf481f6..f8817d2896d3ec2683ae4082deac556e3fa9e81f 100644 (file)
@@ -491,6 +491,8 @@ AP_DECLARE(int) ap_regexec_ex(const ap_regex_t *preg,
         options |= PCREn(NOTEOL);
     if ((eflags & AP_REG_NOTEMPTY) != 0)
         options |= PCREn(NOTEMPTY);
+    if ((eflags & AP_REG_NOTEMPTY_ATSTART) != 0)
+        options |= PCREn(NOTEMPTY_ATSTART);
     if ((eflags & AP_REG_ANCHORED) != 0)
         options |= PCREn(ANCHORED);