On 4/20/23 15:02, наб wrote: > 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@xxxxxxxxxxxxxxxxxx> > --- > man3/regex.3 | 53 +++++++++++++++++++++++++--------------------------- > 1 file changed, 25 insertions(+), 28 deletions(-) > > diff --git a/man3/regex.3 b/man3/regex.3 > index 6d203fa22..552763940 100644 > --- a/man3/regex.3 > +++ b/man3/regex.3 > @@ -188,37 +188,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 still don't understand this. Does REG_NOSUB also affect pmatch[0]? I would have expected that it would only affect *sub*matches, that is, [>0]. > +.I pmatch[1] > +to the first expression, 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 -- <http://www.alejandro-colomar.es/> GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature