wildmat.c
资源名称:export.zip [点击查看]
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:4k
源码类别:
TCP/IP协议栈
开发平台:
Visual C++
- /*
- * @(#)wildmat.c 1.3 87/11/06 Public Domain.
- *
- From: rs@mirror.TMC.COM (Rich Salz)
- Newsgroups: net.sources
- Subject: Small shell-style pattern matcher
- Message-ID: <596@mirror.TMC.COM>
- Date: 27 Nov 86 00:06:40 GMT
- There have been several regular-expression subroutines and one or two
- filename-globbing routines in mod.sources. They handle lots of
- complicated patterns. This small piece of code handles the *?[]
- wildcard characters the way the standard Unix(tm) shells do, with the
- addition that "[^.....]" is an inverse character class -- it matches
- any character not in the range ".....". Read the comments for more
- info.
- For my application, I had first ripped off a copy of the "glob" routine
- from within the find(1) source, but that code is bad news: it recurses
- on every character in the pattern. I'm putting this replacement in the
- public domain. It's small, tight, and iterative. Compile with -DTEST
- to get a test driver. After you're convinced it works, install in
- whatever way is appropriate for you.
- I would like to hear of bugs, but am not interested in additions; if I
- were, I'd use the code I mentioned above.
- */
- /*
- ** Do shell-style pattern matching for ?, , [], and * characters.
- ** Might not be robust in face of malformed patterns; e.g., "foo[a-"
- ** could cause a segmentation violation.
- **
- ** Written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986.
- */
- /*
- * Modified 6Nov87 by John Gilmore (hoptoad!gnu) to return a "match"
- * if the pattern is immediately followed by a "/", as well as