diff --git a/README.md b/README.md index 0d33452..1d08054 100644 --- a/README.md +++ b/README.md @@ -1,116 +1,5 @@ # fpattern -Filename pattern matching library functions for DOS, Windows, and Unix. -Functions for matching filename patterns to filenames. -Written in C. -Provided as an object file (fpattern.obj) -and a header include source file (fpattern.h). +The `fpattern` is a file name pattern matching library functions for DOS, Windows, and Unix, originally created by David R. Tribble. It was used in Fallout, Fallout II, Arcanum: Of Steamworks and Magick Obscura, and The Temple of Elemental Evil. -Filename patterns are composed of regular (printable) characters which -may comprise a filename, as well as special pattern matching characters. -A filename patterns is a special kind of regular expression, except that -it is not as general and is designed to match only file and directory names instead -of arbitrary text strings. -The syntax is borrowed from Unix, and is a superset of the MS-DOS and Windows syntax. - -Special pattern characters - -
-    .           Matches a period (.).
-                Note that a period in a filename is not treated any
-                differently than any other character.
-
-    ?           Any.
-                Matches any single character except '/' or '\'.
-
-    *           Closure.
-                Matches zero or more occurences of any characters other
-                than '/' or '\'.  Leading '*' characters are allowed.
-
-    SUB         Substitute (control-Z).
-                Similar to '*', this matches zero or more occurences of
-                any characters other than '/', '\', or '.'.  Leading
-                '^Z' characters are allowed.
-
-    [ab]        Set.
-                Matches the single character 'a' or 'b'.
-                If the dash '-' character is to be included, it must
-                immediately follow the opening bracket '['.  If the
-                closing bracket ']' character is to be included, it must
-                be preceded by a quote '`'.
-
-    [a-z]       Range.
-                Matches a single character in the range 'a' to 'z'.
-                Ranges and sets may be combined within the same set of
-                brackets.
-
-    [!R]        Exclusive range.
-                Matches a single character not in the range 'R'.
-                If range 'R' includes the dash '-' character, the dash
-                must immediately follow the caret '!'.
-
-    !           Not.
-                Makes the following pattern (up to the next '/') match
-                any filename except those what it would normally match.
-
-    /           Path separator (UNIX and DOS).
-                Matches a '/' or '\' pathname (directory) separator.
-                Multiple separators are treated like a single separator.
-                A leading separator indicates an absolute pathname.
-
-    \           Path separator (DOS).
-                Same as the '/' character.  Note that this character
-                must be escaped if used within string constants ("\\").
-
-    \           Quote (UNIX).
-                Makes the next character a regular (nonspecial)
-                character.  Note that to match the quote character
-                itself, it must be quoted.  Note that this character
-                must be escaped if used within string constants ("\\").
-
-    `           Quote (DOS).
-                Makes the next character a regular (nonspecial)
-                character.  Note that to match the quote character
-                itself, it must be quoted.
-
- -On DOS and Windows (Win32) systems, -upper and lower case alphabetic characters are considered identical, -i.e., 'a' and 'A' match each other. (What constitutes a lowercase -letter depends on the current locale settings.) -On Unix, upper and lower case characters are different, i.e., -'foo' and 'FOO' are different filenames. - -Spaces and control characters are treated as normal characters. - -Examples - -The following patterns in the left column will match the filenames in -the middle column and will not match filenames in the right column: -
-    Pattern     Will Match                      Will Not Match
-    -------     ----------                      --------------
-    a           a (only)                        (anything else)
-    a.          a. (only)                       (anything else)
-    a?c         abc, acc, arc, a.c              a, ac, abbc
-    a*c         ac, abc, abbc, acc, a.c         a, ab, acb, bac
-    a*          a, ab, abb, a., a.b             b, ba
-    *           a, ab, abb, a., .foo, a.foo     (nothing)
-    *.          a., ab., abb., a.foo.           a, ab, a.foo, .foo
-    *.*         a., a.b, ah.bc.foo              a
-    ^Z          a, ab, abb                      a., .foo, a.foo
-    ^Z.         a., ab., abb.                   a, .foo, a.foo
-    ^Z.*        a, a., .foo, a.foo              ab, abb
-    *2.c        2.c, 12.c, foo2.c, foo.12.c     2x.c
-    a[b-z]c     abc, acc, azc (only)            (anything else)
-    [ab0-9]x    ax, bx, 0x, 9x                  zx
-    a[-.]b      a-b, a.b (only)                 (anything else)
-    a[!a-z]b    a0b, a.b, a@b                   aab, azb, aa0b
-    a[!-b]x     a0x, a+x, acx                   a-x, abx, axxx
-    a[-!b]x     a-x, a!x, abx (only)            (anything else)
-    a[`]]x      a]x (only)                      (anything else)
-    a``x        a`x (only)                      (anything else)
-    oh`!        oh! (only)                      (anything else)
-    is`?it      is?it (only)                    (anything else)
-    !a?c        a, ac, ab, abb, acb, a.foo      abc, a.c, azc
-
+This repo reorganizes original code and provides CMake configuration.