move from sys to gen
[unix-history] / usr / src / lib / libc / gen / fnmatch.3
.\" Copyright (c) 1989, 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Guido van Rossum.
.\" %sccs.include.redist.man%
.\"
.\" @(#)fnmatch.3 5.4 (Berkeley) %G%
.\"
.Dd
.Dt FNMATCH 3
.Os
.Sh NAME
.Nm fnmatch
.Nd match filename or pathname
.Sh SYNOPSIS
.Fd #include <fnmatch.h>
.Ft int
.Fn fnmatch "const char *pattern" "const char *string" "int flags"
.Sh DESCRIPTION
The
.Fn fnmatch
function
matches patterns according to the rules used by the shell.
It checks the string specified by the
.Fa string
argument to see if it matches the pattern specified by the
.Fa pattern
argument.
.Pp
The
.Fa flags
argument modifies the interpretation of
.Fa pattern
and
.Fa string .
The value of
.Fa flags
is the bitwise inclusive
.Tn OR
of any of the following
constants, which are defined in the include file
.Pa fnmatch.h .
.Bl -tag -width FNM_PATHNAME
.It Dv FNM_NOESCAPE
Normally, every occurrence of a backslash
.Pq Ql \e
followed by a character in
.Fa pattern
is replaced by that character.
This is done to negate any special meaning for the character.
If the
.Dv FNM_NOESCAPE
flag is set, a backslash character is treated as an ordinary character.
.It Dv FNM_PATHNAME
Slash characters in
.Fa string
must be explicitly matched by slashes in
.Fa pattern .
If this flag is not set, then slashes are treated as regular characters.
.It Dv FNM_PERIOD
Leading periods in strings match periods in patterns.
The definition of ``leading'' is related to the specification of
.Dv FNM_PATHNAME.
A period is always ``leading'' if it is the first character in
.Ar string .
Additionally, if
.Dv FNM_PATHNAME
is set,
a period is ``leading'' if it immediately follows a slash.
.Em "This flag is not currently implemented."
.El
.Sh RETURN VALUES
The
.Fn fnmatch
function returns zero if
.Fa string
matches the pattern specified by
.Fa pattern ,
otherwise, it returns the value
.Dv FNM_NOMATCH .
.Sh SEE ALSO
.Xr sh 1 ,
.Xr glob 3 ,
.Xr wordexp 3 ,
.Xr regexp 3
.Sh HISTORY
The
.Fn fnmatch
function is
.Ud .
.Sh BUGS
Quotes and slashes in range patterns are not handled correctly by
this implementation.
.Pp
The
.Dv FNM_PERIOD
flag is not implemented.
.Pp
The pattern
.Ql *
matches the empty string, even if
.Dv FNM_PATHNAME
is specified.