summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorнаб <nabijaczleweli@nabijaczleweli.xyz>2023-04-21 15:29:43 +0200
committerAlejandro Colomar <alx@kernel.org>2023-04-21 15:52:26 +0200
commite894e84af353727082420c48b3cbea566a0f7692 (patch)
tree10645ccdc7d579437c19ab70afdf10454bbb28ba
parentaa2b091aa2bde919a26153839aadf75556cdc1cc (diff)
regex.3: Destandardeseify Match offsets
This section reads like it were (and pretty much is) lifted from POSIX. That's hard to read, because POSIX is horrendously verbose, as usual. Instead, synopsise it into something less formal but more reasonable, and describe the resulting range with a range instead of a paragraph. Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--man3/regex.353
1 files changed, 25 insertions, 28 deletions
diff --git a/man3/regex.3 b/man3/regex.3
index 30f2ef318..8efd21d72 100644
--- a/man3/regex.3
+++ b/man3/regex.3
@@ -179,37 +179,34 @@ This flag is a BSD extension, not present in POSIX.
.SS Match offsets
Unless
.B REG_NOSUB
-was set for the compilation of the pattern buffer, it is possible to
-obtain match addressing information.
-.I pmatch
-must be dimensioned to have at least
-.I nmatch
-elements.
-These are filled in by
+was passed to
+.BR regcomp (),
+it is possible to
+obtain the locations of matches within
+.IR string :
.BR regexec ()
-with substring match addresses.
-The offsets of the subexpression starting at the
-.IR i th
-open parenthesis are stored in
-.IR pmatch[i] .
-The entire regular expression's match addresses are stored in
-.IR pmatch[0] .
-(Note that to return the offsets of
-.I N
-subexpression matches,
+fills
.I nmatch
-must be at least
-.IR N+1 .)
-Any unused structure elements will contain the value \-1.
+elements of
+.I pmatch
+with results:
+.I pmatch[0]
+corresponds to the entire match,
+.I pmatch[1]
+to the first subexpression, etc.
+If there were more matches than
+.IR nmatch ,
+they are discarded;
+if fewer,
+unused elements of
+.I pmatch
+are filled with
+.BR \-1 s.
.PP
-Each
-.I rm_so
-element that is not \-1 indicates the start offset of the next largest
-substring match within the string.
-The relative
-.I rm_eo
-element indicates the end offset of the match,
-which is the offset of the first character after the matching text.
+Each returned valid
+.RB (non- \-1 )
+match corresponds to the range
+.RI [ "string + rm_so" , " string + rm_eo" ).
.PP
.I regoff_t
is a signed integer type