implement support for parameter substitution via #/% operators
[oweals/busybox.git] / shell / match.h
1 /* match.h - interface to shell ##/%% matching code */
2
3 typedef char *(*scan_t)(char *string, char *match, bool zero);
4
5 char *scanleft(char *string, char *match, bool zero);
6 char *scanright(char *string, char *match, bool zero);
7
8 static inline scan_t pick_scan(char op1, char op2, bool *zero)
9 {
10         /* #  - scanleft
11          * ## - scanright
12          * %  - scanright
13          * %% - scanleft
14          */
15         if (op1 == '#') {
16                 *zero = true;
17                 return op1 == op2 ? scanright : scanleft;
18         } else {
19                 *zero = false;
20                 return op1 == op2 ? scanleft : scanright;
21         }
22 }