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

Reply via email to