Lines Matching refs:pattern

191 skipinterp(const char *pattern, const char *stoppers)  in skipinterp()  argument
194 while (*pattern && (!stoppers || !strchr(stoppers,*pattern))) { in skipinterp()
197 printf("skipinterp till %s at %s\r\n",stoppers?stoppers:"",pattern); in skipinterp()
199 if (*pattern == '%' && pattern[1]) { in skipinterp()
200 switch (*++pattern) { in skipinterp()
202 for (pattern++; *pattern && *pattern != '}'; pattern++) in skipinterp()
203 if (*pattern == '\\') in skipinterp()
204 pattern++; in skipinterp()
208 pattern = skipinterp(pattern+1,"!="); in skipinterp()
209 if (!*pattern) in skipinterp()
211 for (pattern++; *pattern && *pattern != '?'; pattern++) in skipinterp()
212 if (*pattern == '\\') in skipinterp()
213 pattern++; in skipinterp()
214 if (!*pattern) in skipinterp()
216 pattern = skipinterp(pattern+1,":)"); in skipinterp()
217 if (*pattern == ':') in skipinterp()
218 pattern = skipinterp(pattern+1,")"); in skipinterp()
224 pattern = skipinterp(pattern+1,"`"); in skipinterp()
230 pattern = skipinterp(pattern+1,"\""); in skipinterp()
236 pattern++; in skipinterp()
239 if (*pattern == '^' && pattern[1]) in skipinterp()
240 pattern += 2; in skipinterp()
241 else if (*pattern == '\\' && pattern[1]) in skipinterp()
242 pattern += 2; in skipinterp()
244 pattern++; in skipinterp()
248 return __UNCONST(pattern); /* where we left off */ in skipinterp()
270 dointerp(char *dest, size_t destsize, const char *pattern, const char *stoppers) in dointerp() argument
279 while (*pattern && (!stoppers || !strchr(stoppers,*pattern))) { in dointerp()
282 printf("dointerp till %s at %s\r\n",stoppers?stoppers:"",pattern); in dointerp()
284 if (*pattern == '%' && pattern[1]) { in dointerp()
288 switch (*++pattern) { in dointerp()
296 pattern = cpytill(scrbuf,pattern+1,'}'); in dointerp()
308 pattern = dointerp(dest,destsize,pattern+1,"!="); in dointerp()
309 rch = *pattern; in dointerp()
311 pattern++; in dointerp()
312 if (*pattern != '=') in dointerp()
314 pattern = cpytill(scrbuf,pattern+1,'?'); in dointerp()
315 if (!*pattern) in dointerp()
324 pattern = dointerp(dest,destsize,pattern+1,":)"); in dointerp()
325 if (*pattern == ':') in dointerp()
326 pattern = skipinterp(pattern+1,")"); in dointerp()
329 pattern = skipinterp(pattern+1,":)"); in dointerp()
330 if (*pattern == ':') in dointerp()
331 pattern++; in dointerp()
332 pattern = dointerp(dest,destsize,pattern,")"); in dointerp()
342 pattern = dointerp(scrbuf,(sizeof scrbuf),pattern+1,"`"); in dointerp()
370 pattern = dointerp(scrbuf,(sizeof scrbuf),pattern+1,"\""); in dointerp()
412 *dest++ = *pattern | metabit; in dointerp()
419 pattern++; in dointerp()
453 if (*pattern == '^' && pattern[1]) { in dointerp()
454 ++pattern; /* skip uparrow */ in dointerp()
455 i = *pattern; /* get char into a register */ in dointerp()
468 pattern++; in dointerp()
470 else if (*pattern == '\\' && pattern[1]) { in dointerp()
471 ++pattern; /* skip backslash */ in dointerp()
472 i = *pattern; /* get char into a register */ in dointerp()
478 while (i < 01000 && *pattern >= '0' && *pattern <= '7') { in dointerp()
480 i += *pattern++ - '0'; in dointerp()
483 --pattern; in dointerp()
497 pattern++; in dointerp()
500 *dest++ = *pattern++ | metabit; in dointerp()
505 return __UNCONST(pattern); /* where we left off */ in dointerp()
509 interp(char *dest, size_t destsize, const char *pattern) in interp() argument
511 (void) dointerp(dest,destsize,pattern,NULL); in interp()