xref: /dragonfly/lib/libc/gen/fnmatch.3 (revision 7bc7e232)
1.\" Copyright (c) 1989, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" This code is derived from software contributed to Berkeley by
5.\" Guido van Rossum.
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. All advertising materials mentioning features or use of this software
15.\"    must display the following acknowledgement:
16.\"	This product includes software developed by the University of
17.\"	California, Berkeley and its contributors.
18.\" 4. Neither the name of the University nor the names of its contributors
19.\"    may be used to endorse or promote products derived from this software
20.\"    without specific prior written permission.
21.\"
22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32.\" SUCH DAMAGE.
33.\"
34.\"     @(#)fnmatch.3	8.3 (Berkeley) 4/28/95
35.\" $FreeBSD: src/lib/libc/gen/fnmatch.3,v 1.9.2.4 2003/03/13 18:05:37 trhodes Exp $
36.\" $DragonFly: src/lib/libc/gen/fnmatch.3,v 1.3 2006/05/26 19:39:36 swildner Exp $
37.\"
38.Dd April 28, 1995
39.Dt FNMATCH 3
40.Os
41.Sh NAME
42.Nm fnmatch
43.Nd match filename or pathname
44.Sh LIBRARY
45.Lb libc
46.Sh SYNOPSIS
47.In fnmatch.h
48.Ft int
49.Fn fnmatch "const char *pattern" "const char *string" "int flags"
50.Sh DESCRIPTION
51The
52.Fn fnmatch
53function
54matches patterns according to the rules used by the shell.
55It checks the string specified by the
56.Fa string
57argument to see if it matches the pattern specified by the
58.Fa pattern
59argument.
60.Pp
61The
62.Fa flags
63argument modifies the interpretation of
64.Fa pattern
65and
66.Fa string .
67The value of
68.Fa flags
69is the bitwise inclusive
70.Tn OR
71of any of the following
72constants, which are defined in the include file
73.In fnmatch.h .
74.Bl -tag -width FNM_PATHNAME
75.It Dv FNM_NOESCAPE
76Normally, every occurrence of a backslash
77.Pq Ql \e
78followed by a character in
79.Fa pattern
80is replaced by that character.
81This is done to negate any special meaning for the character.
82If the
83.Dv FNM_NOESCAPE
84flag is set, a backslash character is treated as an ordinary character.
85.It Dv FNM_PATHNAME
86Slash characters in
87.Fa string
88must be explicitly matched by slashes in
89.Fa pattern .
90If this flag is not set, then slashes are treated as regular characters.
91.It Dv FNM_PERIOD
92Leading periods in
93.Fa string
94must be explicitly matched by periods in
95.Fa pattern .
96If this flag is not set, then leading periods are treated as regular
97characters.
98The definition of
99.Dq leading
100is related to the specification of
101.Dv FNM_PATHNAME .
102A period is always
103.Dq leading
104if it is the first character in
105.Fa string .
106Additionally, if
107.Dv FNM_PATHNAME
108is set,
109a period is
110leading
111if it immediately follows a slash.
112.It Dv FNM_LEADING_DIR
113Ignore
114.Dq Li /*
115rest after successful
116.Fa pattern
117matching.
118.It Dv FNM_CASEFOLD
119Ignore  case  distinctions in both the
120.Fa pattern
121and the
122.Fa string .
123.El
124.Sh RETURN VALUES
125The
126.Fn fnmatch
127function returns zero if
128.Fa string
129matches the pattern specified by
130.Fa pattern ,
131otherwise, it returns the value
132.Dv FNM_NOMATCH .
133.Sh SEE ALSO
134.Xr sh 1 ,
135.Xr glob 3 ,
136.Xr regex 3
137.Sh STANDARDS
138The
139.Fn fnmatch
140function conforms to
141.St -p1003.2 .
142.Sh HISTORY
143The
144.Fn fnmatch
145function first appeared in
146.Bx 4.4 .
147.Sh BUGS
148The pattern
149.Ql *
150matches the empty string, even if
151.Dv FNM_PATHNAME
152is specified.
153