Lines Matching refs:pattern
1334 void *pattern) in VarMatch() argument
1337 fprintf(debug_file, "VarMatch [%s] [%s]\n", word, (char *)pattern); in VarMatch()
1338 if (Str_Match(word, (char *)pattern)) { in VarMatch()
1425 void *pattern) in VarNoMatch() argument
1427 if (!Str_Match(word, (char *)pattern)) { in VarNoMatch()
1466 VarPattern *pattern = (VarPattern *)patternp; in VarSubstitute() local
1469 if ((pattern->flags & (VAR_SUB_ONE|VAR_SUB_MATCHED)) != in VarSubstitute()
1475 if ((pattern->flags & VAR_MATCH_START) && in VarSubstitute()
1476 (strncmp(word, pattern->lhs, pattern->leftLen) == 0)) { in VarSubstitute()
1480 if ((pattern->flags & VAR_MATCH_END) && in VarSubstitute()
1481 (wordLen == pattern->leftLen)) { in VarSubstitute()
1487 if (pattern->rightLen != 0) { in VarSubstitute()
1492 Buf_AddBytes(buf, pattern->rightLen, pattern->rhs); in VarSubstitute()
1494 pattern->flags |= VAR_SUB_MATCHED; in VarSubstitute()
1495 } else if (pattern->flags & VAR_MATCH_END) { in VarSubstitute()
1504 if ((pattern->rightLen + wordLen - pattern->leftLen) != 0){ in VarSubstitute()
1510 Buf_AddBytes(buf, pattern->rightLen, pattern->rhs); in VarSubstitute()
1511 Buf_AddBytes(buf, wordLen - pattern->leftLen, in VarSubstitute()
1512 (word + pattern->leftLen)); in VarSubstitute()
1513 pattern->flags |= VAR_SUB_MATCHED; in VarSubstitute()
1515 } else if (pattern->flags & VAR_MATCH_START) { in VarSubstitute()
1520 } else if (pattern->flags & VAR_MATCH_END) { in VarSubstitute()
1527 cp = word + (wordLen - pattern->leftLen); in VarSubstitute()
1529 (strncmp(cp, pattern->lhs, pattern->leftLen) == 0)) { in VarSubstitute()
1536 if (((cp - word) + pattern->rightLen) != 0) { in VarSubstitute()
1543 Buf_AddBytes(buf, pattern->rightLen, pattern->rhs); in VarSubstitute()
1544 pattern->flags |= VAR_SUB_MATCHED; in VarSubstitute()
1569 cp = Str_FindSubstring(word, pattern->lhs); in VarSubstitute()
1571 if (addSpace && (((cp - word) + pattern->rightLen) != 0)){ in VarSubstitute()
1576 Buf_AddBytes(buf, pattern->rightLen, pattern->rhs); in VarSubstitute()
1577 wordLen -= (cp - word) + pattern->leftLen; in VarSubstitute()
1578 word = cp + pattern->leftLen; in VarSubstitute()
1582 if ((pattern->flags & VAR_SUB_GLOBAL) == 0) { in VarSubstitute()
1585 pattern->flags |= VAR_SUB_MATCHED; in VarSubstitute()
2143 int *length, VarPattern *pattern) in VarGetPattern() argument
2156 (cp[1] == '\\') || (cp[1] == '$') || (pattern && (cp[1] == '&')))) in VarGetPattern()
2221 else if (pattern && *cp == '&') in VarGetPattern()
2222 Buf_AddBytes(&buf, pattern->leftLen, pattern->lhs); in VarGetPattern()
2554 VarPattern pattern; in ApplyModifiers() local
2589 pattern.flags = 0; in ApplyModifiers()
2591 pattern.rhs = VarGetPattern(ctxt, &parsestate, errnum, in ApplyModifiers()
2593 &pattern.rightLen, in ApplyModifiers()
2600 if (pattern.rhs == NULL) in ApplyModifiers()
2608 Var_Append(v->name, pattern.rhs, v_ctxt); in ApplyModifiers()
2611 newStr = Cmd_Exec(pattern.rhs, &emsg); in ApplyModifiers()
2623 Var_Set(v->name, pattern.rhs, v_ctxt, 0); in ApplyModifiers()
2626 free(UNCONST(pattern.rhs)); in ApplyModifiers()
2754 VarPattern pattern; in ApplyModifiers() local
2755 pattern.flags = 0; in ApplyModifiers()
2760 if ((pattern.rhs = VarGetPattern(ctxt, &parsestate, errnum, in ApplyModifiers()
2762 NULL, &pattern.rightLen, in ApplyModifiers()
2765 newStr = Cmd_Exec(pattern.rhs, &emsg); in ApplyModifiers()
2766 free(UNCONST(pattern.rhs)); in ApplyModifiers()
2954 VarPattern pattern; in ApplyModifiers() local
3009 pattern.flags = VAR_SUB_ONE; in ApplyModifiers()
3010 pattern.lhs = pattern.rhs = "\032"; in ApplyModifiers()
3011 pattern.leftLen = pattern.rightLen = 1; in ApplyModifiers()
3015 &pattern); in ApplyModifiers()
3065 char *pattern; in ApplyModifiers() local
3115 pattern = bmake_malloc(cp - tstr); in ApplyModifiers()
3116 for (cp2 = pattern, cp = tstr + 1; in ApplyModifiers()
3133 pattern = bmake_strndup(tstr+1, endpat - (tstr + 1)); in ApplyModifiers()
3140 cp2 = pattern; in ApplyModifiers()
3141 pattern = Var_Subst(NULL, cp2, ctxt, errnum); in ApplyModifiers()
3146 v->name, nstr, pattern); in ApplyModifiers()
3149 pattern); in ApplyModifiers()
3152 pattern); in ApplyModifiers()
3154 free(pattern); in ApplyModifiers()
3159 VarPattern pattern; in ApplyModifiers() local
3162 pattern.flags = 0; in ApplyModifiers()
3172 pattern.flags |= VAR_MATCH_START; in ApplyModifiers()
3177 if ((pattern.lhs = VarGetPattern(ctxt, &parsestate, errnum, in ApplyModifiers()
3179 &pattern.flags, in ApplyModifiers()
3180 &pattern.leftLen, in ApplyModifiers()
3184 if ((pattern.rhs = VarGetPattern(ctxt, &parsestate, errnum, in ApplyModifiers()
3186 &pattern.rightLen, in ApplyModifiers()
3187 &pattern)) == NULL) in ApplyModifiers()
3198 pattern.flags |= VAR_SUB_GLOBAL; in ApplyModifiers()
3201 pattern.flags |= VAR_SUB_ONE; in ApplyModifiers()
3213 &pattern); in ApplyModifiers()
3218 free(UNCONST(pattern.lhs)); in ApplyModifiers()
3219 free(UNCONST(pattern.rhs)); in ApplyModifiers()
3225 VarPattern pattern; in ApplyModifiers() local
3230 pattern.flags = 0; in ApplyModifiers()
3234 if ((pattern.lhs = VarGetPattern(ctxt, &parsestate, errnum, in ApplyModifiers()
3236 &pattern.leftLen, in ApplyModifiers()
3242 if ((pattern.rhs = VarGetPattern(ctxt, &parsestate, errnum, in ApplyModifiers()
3244 &pattern.rightLen, in ApplyModifiers()
3253 v->name, v->name, pattern.lhs, pattern.rhs); in ApplyModifiers()
3258 newStr = UNCONST(pattern.lhs); in ApplyModifiers()
3259 free(UNCONST(pattern.rhs)); in ApplyModifiers()
3261 newStr = UNCONST(pattern.rhs); in ApplyModifiers()
3262 free(UNCONST(pattern.lhs)); in ApplyModifiers()
3272 VarREPattern pattern; in ApplyModifiers() local
3277 pattern.flags = 0; in ApplyModifiers()
3288 if ((pattern.replace = VarGetPattern(ctxt, &parsestate, in ApplyModifiers()
3298 pattern.flags |= VAR_SUB_GLOBAL; in ApplyModifiers()
3301 pattern.flags |= VAR_SUB_ONE; in ApplyModifiers()
3312 error = regcomp(&pattern.re, re, REG_EXTENDED); in ApplyModifiers()
3316 VarREError(error, &pattern.re, "RE substitution error"); in ApplyModifiers()
3317 free(pattern.replace); in ApplyModifiers()
3321 pattern.nsub = pattern.re.re_nsub + 1; in ApplyModifiers()
3322 if (pattern.nsub < 1) in ApplyModifiers()
3323 pattern.nsub = 1; in ApplyModifiers()
3324 if (pattern.nsub > 10) in ApplyModifiers()
3325 pattern.nsub = 10; in ApplyModifiers()
3326 pattern.matches = bmake_malloc(pattern.nsub * in ApplyModifiers()
3330 &pattern); in ApplyModifiers()
3331 regfree(&pattern.re); in ApplyModifiers()
3332 free(pattern.replace); in ApplyModifiers()
3333 free(pattern.matches); in ApplyModifiers()
3430 VarPattern pattern; in ApplyModifiers() local
3433 pattern.flags = 0; in ApplyModifiers()
3462 if ((pattern.lhs = VarGetPattern(ctxt, &parsestate, in ApplyModifiers()
3463 errnum, &cp, delim, &pattern.flags, in ApplyModifiers()
3464 &pattern.leftLen, NULL)) == NULL) in ApplyModifiers()
3467 if ((pattern.rhs = VarGetPattern(ctxt, &parsestate, in ApplyModifiers()
3468 errnum, &cp, delim, NULL, &pattern.rightLen, in ApplyModifiers()
3469 &pattern)) == NULL) in ApplyModifiers()
3478 if (pattern.leftLen == 0 && *nstr == '\0') { in ApplyModifiers()
3483 &pattern); in ApplyModifiers()
3485 free(UNCONST(pattern.lhs)); in ApplyModifiers()
3486 free(UNCONST(pattern.rhs)); in ApplyModifiers()