On Mon, Jan 29, 2018 at 11:23:18PM -0600, Edgar Pettijohn wrote:
> I'm trying to use patterns.c for some pattern matching. The manual mentions
> captures using "()" around what you want to capture. I don't see how to get
> at the data though. Here is a sample program.
>
> #include <stdio.h>
> #include "patterns.h"
>
> int
> main(int argc, char *argv[])
> {
> const char *errstr = NULL;
> const char *string = "the quick the brown the fox";
> const char *pattern = "the";
> int ret;
> struct str_match match;
>
> ret = str_match(string, pattern, &match, &errstr);
>
> if (errstr != NULL)
> printf("%s\n", errstr);
> else
> printf("number of matches %d\n", match.sm_nmatch);
>
> return 0;
> }
>
> It prints 2 which I was expecting 3. I've tried multiple other patterns and
> it seems the answer is always 2. Which leads me to believe I'm doing
> something wrong. Any assistance appreciated.
>
>
> Thanks,
>
>
> Edgar
Hmm, str_match() isn't a function in any OpenBSD API. So I have no
idea what function you are talking about.
-Otto