static int gmatch_exec (TUserdata *ud, TArgExec *argE) { if (argE->startoffset > 0) argE->eflags |= REG_NOTBOL; argE->text += argE->startoffset; return tre_regwnexec (&ud->r, (const wchar_t*)argE->text, (argE->textlen - argE->startoffset)/ALG_CHARSIZE, ALG_NSUB(ud) + 1, ud->match, argE->eflags); }
int tre_regwexec(const regex_t *preg, const wchar_t *str, size_t nmatch, regmatch_t pmatch[], int eflags) { return tre_regwnexec(preg, str, (unsigned)-1, nmatch, pmatch, eflags); }
static int split_exec (TPosix *ud, TArgExec *argE, int offset) { if (offset > 0) argE->eflags |= REG_NOTBOL; return tre_regwnexec (&ud->r, (const wchar_t*)(argE->text + offset), (argE->textlen - offset)/ALG_CHARSIZE, ALG_NSUB(ud) + 1, ud->match, argE->eflags); }
static int findmatch_exec (TPosix *ud, TArgExec *argE) { argE->text += argE->startoffset; return tre_regwnexec (&ud->r, (const wchar_t*)argE->text, (argE->textlen - argE->startoffset)/ALG_CHARSIZE, ALG_NSUB(ud) + 1, ud->match, argE->eflags); }