dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / lib / libast / common / man / strmatch.3
blob5f5af8989ecba8602ed77210effd3228267542b6
1 .fp 5 CW
2 .de Af
3 .ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
4 .if !\a\\$4\a\a .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
5 ..
6 .de aF
7 .ie \a\\$3\a\a .ft \\$1
8 .el \{\
9 .ds ;G \&
10 .nr ;G \\n(.f
11 .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
12 \\*(;G
13 .ft \\n(;G \}
15 .de L
16 .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
18 .de LR
19 .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
21 .de RL
22 .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
24 .de EX          \" start example
25 .ta 1i 2i 3i 4i 5i 6i
26 .PP
27 .RS 
28 .PD 0
29 .ft 5
30 .nf
32 .de EE          \" end example
33 .fi
34 .ft
35 .PD
36 .RE
37 .PP
39 .TH STRMATCH 3
40 .SH NAME
41 strmatch \- match shell file patterns
42 .SH SYNOPSIS
43 .L "int strmatch(char* s, char* p)"
44 .br
45 .L "char* submatch(char* s, char* p, int m)"
46 .SH DESCRIPTION
47 .I strmatch
48 compares the string
49 .I s
50 with the shell pattern
51 .I p
52 and returns 1 for match and 0 otherwise.
53 .I submatch
54 does a leading substring match of the shell pattern
55 .I p
56 with the string
57 .IR s .
59 .I m
60 is 0 then the match is minimal, otherwise a maximal match is done.
61 A pointer to the first character after the matched substring is returned,
62 .I 0
63 if there is no match.
64 .PP
65 Except for
66 .I &
67 and
68 .IR ! ,
69 each shell pattern has an equivalent 
70 .IR egrep (1)
71 construct.
72 .EX
73         \fBsh pattern   egrep RE        description\fP
74         *               .*              0 or more chars
75         ?               .               any single char
76         [.]             [.]             char class
77         [!.]            [^.]            negated char class
78         *(.)            (.)*            0 or more of
79         +(.)            (.)+            1 or more of
80         ?(.)            (.)?            0 or 1 of
81         (.)             (.)             1 of
82         @(.)            (.)             1 of
83         a|b             a|b             a or b
84         a&b                             a and b
85         !(.)                            none of
86 .EE
87 .L \e
88 is used to escape *, ?, (, |, &, ), [, and \e
89 outside of [...].
90 .SH "SEE ALSO"
91 grep(1)
92 .SH BUGS
93 An unbalanced
94 .L )
95 terminates the top level pattern.
96 .br
97 Nested
98 .L &
99 and
100 .L !
101 constructs are non-intuitive and are computationally intensive.