summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2009-03-05 15:13:31 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2009-03-05 15:13:31 +0000
commit68f3363dda760bc0bca756c00feacc333920748c (patch)
tree419edf2f40bf978743b95898c551782bbe699434
parentf8851e210dc6bedd7a24d993bfa9486f5ef53ac7 (diff)
Add glob(7) and refer to it. OK jmc@ sobrado@
-rw-r--r--bin/csh/csh.15
-rw-r--r--bin/ksh/ksh.16
-rw-r--r--bin/ksh/sh.16
-rw-r--r--lib/libc/gen/fnmatch.37
-rw-r--r--lib/libc/gen/glob.37
-rw-r--r--share/man/man7/Makefile8
-rw-r--r--share/man/man7/glob.7139
7 files changed, 160 insertions, 18 deletions
diff --git a/bin/csh/csh.1 b/bin/csh/csh.1
index 9220d2f2c16..c96b158c082 100644
--- a/bin/csh/csh.1
+++ b/bin/csh/csh.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: csh.1,v 1.59 2009/03/04 07:41:18 jmc Exp $
+.\" $OpenBSD: csh.1,v 1.60 2009/03/05 15:13:30 millert Exp $
.\" $NetBSD: csh.1,v 1.10 1995/03/21 09:02:35 cgd Exp $
.\"
.\" Copyright (c) 1980, 1990, 1993
@@ -30,7 +30,7 @@
.\"
.\" @(#)csh.1 8.2 (Berkeley) 1/21/94
.\"
-.Dd $Mdocdate: March 4 2009 $
+.Dd $Mdocdate: March 5 2009 $
.Dt CSH 1
.Os
.Sh NAME
@@ -2703,6 +2703,7 @@ source of home directories for
.Xr tty 4 ,
.Xr a.out 5 ,
.Xr environ 7 ,
+.Xr glob 7 ,
.Xr script 7
.Pp
"An Introduction to the C shell",
diff --git a/bin/ksh/ksh.1 b/bin/ksh/ksh.1
index d7d53ee3cf6..57d4d7dc833 100644
--- a/bin/ksh/ksh.1
+++ b/bin/ksh/ksh.1
@@ -1,8 +1,8 @@
-.\" $OpenBSD: ksh.1,v 1.126 2009/03/03 20:01:01 millert Exp $
+.\" $OpenBSD: ksh.1,v 1.127 2009/03/05 15:13:30 millert Exp $
.\"
.\" Public Domain
.\"
-.Dd $Mdocdate: March 3 2009 $
+.Dd $Mdocdate: March 5 2009 $
.Dt KSH 1
.Os
.Sh NAME
@@ -5542,7 +5542,7 @@ Privileged shell profile.
.Xr vi 1 ,
.Xr shells 5 ,
.Xr environ 7 ,
-.Xr re_format 7 ,
+.Xr glob 7 ,
.Xr script 7
.Rs
.%A Morris Bolsky
diff --git a/bin/ksh/sh.1 b/bin/ksh/sh.1
index 810c8a02257..bf2331d0b19 100644
--- a/bin/ksh/sh.1
+++ b/bin/ksh/sh.1
@@ -1,8 +1,8 @@
-.\" $OpenBSD: sh.1,v 1.80 2009/03/03 20:01:01 millert Exp $
+.\" $OpenBSD: sh.1,v 1.81 2009/03/05 15:13:30 millert Exp $
.\"
.\" Public Domain
.\"
-.Dd $Mdocdate: March 3 2009 $
+.Dd $Mdocdate: March 5 2009 $
.Dt SH 1
.Os
.Sh NAME
@@ -3734,7 +3734,7 @@ Shell database.
.Xr vi 1 ,
.Xr shells 5 ,
.Xr environ 7 ,
-.Xr re_format 7 ,
+.Xr glob 7 ,
.Xr script 7
.Rs
.%A Morris Bolsky
diff --git a/lib/libc/gen/fnmatch.3 b/lib/libc/gen/fnmatch.3
index 766055455fe..e5c437c9164 100644
--- a/lib/libc/gen/fnmatch.3
+++ b/lib/libc/gen/fnmatch.3
@@ -1,4 +1,4 @@
-.\" $OpenBSD: fnmatch.3,v 1.12 2007/05/31 19:19:28 jmc Exp $
+.\" $OpenBSD: fnmatch.3,v 1.13 2009/03/05 15:13:30 millert Exp $
.\"
.\" Copyright (c) 1989, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -31,7 +31,7 @@
.\"
.\" @(#)fnmatch.3 8.3 (Berkeley) 4/28/95
.\"
-.Dd $Mdocdate: May 31 2007 $
+.Dd $Mdocdate: March 5 2009 $
.Dt FNMATCH 3
.Os
.Sh NAME
@@ -124,7 +124,8 @@ otherwise, it returns the value
.Sh SEE ALSO
.Xr sh 1 ,
.Xr glob 3 ,
-.Xr regex 3
+.Xr regex 3 ,
+.Xr glob 7
.Sh STANDARDS
The
.Fn fnmatch
diff --git a/lib/libc/gen/glob.3 b/lib/libc/gen/glob.3
index f1e533cec12..7d4621d5307 100644
--- a/lib/libc/gen/glob.3
+++ b/lib/libc/gen/glob.3
@@ -1,4 +1,4 @@
-.\" $OpenBSD: glob.3,v 1.24 2007/05/31 19:19:28 jmc Exp $
+.\" $OpenBSD: glob.3,v 1.25 2009/03/05 15:13:30 millert Exp $
.\"
.\" Copyright (c) 1989, 1991, 1993, 1994
.\" The Regents of the University of California. All rights reserved.
@@ -29,7 +29,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd $Mdocdate: May 31 2007 $
+.Dd $Mdocdate: March 5 2009 $
.Dt GLOB 3
.Os
.Sh NAME
@@ -424,7 +424,8 @@ and
.Sh SEE ALSO
.Xr sh 1 ,
.Xr fnmatch 3 ,
-.Xr regexp 3
+.Xr regex 3 ,
+.Xr glob 7
.Sh STANDARDS
The
.Fn glob
diff --git a/share/man/man7/Makefile b/share/man/man7/Makefile
index b881c334989..29db1650d7f 100644
--- a/share/man/man7/Makefile
+++ b/share/man/man7/Makefile
@@ -1,11 +1,11 @@
-# $OpenBSD: Makefile,v 1.13 2005/05/12 09:12:57 jmc Exp $
+# $OpenBSD: Makefile,v 1.14 2009/03/05 15:13:30 millert Exp $
# $NetBSD: Makefile,v 1.6 1994/12/22 10:50:05 cgd Exp $
# missing: eqnchar.7 man.7 ms.7 term.7
-MAN= ascii.7 environ.7 hier.7 hostname.7 intro.7 kgdb.7 library-specs.7 \
- mailaddr.7 mdoc.7 mdoc.samples.7 mirroring-ports.7 operator.7 \
- packages.7 packages-specs.7 ports.7 script.7 securelevel.7
+MAN= ascii.7 environ.7 glob.7 hier.7 hostname.7 intro.7 kgdb.7 \
+ library-specs.7 mailaddr.7 mdoc.7 mdoc.samples.7 mirroring-ports.7 \
+ operator.7 packages.7 packages-specs.7 ports.7 script.7 securelevel.7
MLINKS= mdoc.7 mandoc.7 mdoc.samples.7 mandoc.samples.7 \
mirroring-ports.7 mirror-maker.7
diff --git a/share/man/man7/glob.7 b/share/man/man7/glob.7
new file mode 100644
index 00000000000..ab6067b8ded
--- /dev/null
+++ b/share/man/man7/glob.7
@@ -0,0 +1,139 @@
+.\" $OpenBSD: glob.7,v 1.1 2009/03/05 15:13:30 millert Exp $
+.\"
+.\" Copyright (c) 2009 Todd C. Miller <Todd.Miller@courtesan.com>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.\"
+.Dd $Mdocdate: March 5 2009 $
+.Dt GLOB 7
+.Os
+.Sh NAME
+.Nm glob
+.Nd shell-style pattern matching
+.Sh DESCRIPTION
+Globbing characters
+.Pq wildcards
+are special characters used to perform pattern matching of pathnames and
+command arguments in the
+.Xr csh 1 ,
+.Xr ksh 1 ,
+and
+.Xr sh 1
+shells as well as
+the C library functions
+.Xr fnmatch 3
+and
+.Xr glob 3 .
+A glob pattern is a word containing one or more unquoted
+.Ql \&?
+or
+.Ql *
+characters, or
+.Dq [..]
+sequences.
+.Pp
+Globs should not be confused with the more powerful
+regular expressions used by programs such as
+.Xr grep 1 .
+While there is some overlap in the special characters used in regular
+expressions and globs, their meaning is different.
+.Pp
+The pattern elements have the following meaning:
+.Bl -tag -width Ds
+.It \&?
+Matches any single character.
+.It \&*
+Matches any sequence of zero or more characters.
+.It [..]
+Matches any of the characters inside the brackets.
+Ranges of characters can be specified by separating two characters by a
+.Ql -
+(e.g.\&
+.Dq [a0-9]
+matches the letter
+.Sq a
+or any digit).
+In order to represent itself, a
+.Ql -
+must either be quoted or the first or last character in the character list.
+Similarly, a
+.Ql \&]
+must be quoted or the first character in the list if it is to represent itself
+instead of the end of the list.
+Also, a
+.Ql \&!
+appearing at the start of the list has special meaning (see below), so to
+represent itself it must be quoted or appear later in the list.
+.Pp
+Within a bracket expression, the name of a
+.Em character class
+enclosed in
+.Sq [:
+and
+.Sq :]
+stands for the list of all characters belonging to that class.
+Supported character classes:
+.Bl -column "xdigit" "xdigit" "xdigit" -offset indent
+.It Li "alnum" Ta "cntrl" Ta "lower" Ta "space"
+.It Li "alpha" Ta "digit" Ta "print" Ta "upper"
+.It Li "blank" Ta "graph" Ta "punct" Ta "xdigit"
+.El
+.Pp
+These match characters using the macros specified in
+.Xr ctype 3 .
+A character class may not be used as an endpoint of a range.
+.It [!..]
+Like [..],
+except it matches any character not inside the brackets.
+.El
+.Pp
+Note that when matching a pathname, the path separator
+.Ql / ,
+is not matched by a
+.Ql \&? ,
+or
+.Ql * ,
+character or by a
+.Dq [..]
+sequence.
+Thus,
+.Pa /usr/*/*/X11
+would match
+.Pa /usr/X11R6/lib/X11
+and
+.Pa /usr/X11R6/include/X11
+while
+.Pa /usr/*/X11
+would not match either.
+Likewise,
+.Pa /usr/*/bin
+would match
+.Pa /usr/local/bin
+but not
+.Pa /usr/bin .
+.Sh SEE ALSO
+.Xr fnmatch 3 ,
+.Xr glob 3 ,
+.Xr re_format 7
+.Sh HISTORY
+In early versions of
+.Ux ,
+the shell did not do pattern expansion itself.
+A dedicated program,
+.Pa /etc/glob ,
+was used to perform the expansion and pass the results to a command.
+In
+.At v7 ,
+with the introduction of the Bourne shell,
+this functionality was incorportated into the shell itself.