Initial revision
diff --git a/Lib/fnmatch.py b/Lib/fnmatch.py
new file mode 100644
index 0000000..c7caef6
--- /dev/null
+++ b/Lib/fnmatch.py
@@ -0,0 +1,35 @@
+# module 'fnmatch' -- filename matching with shell patterns
+
+# XXX [] patterns are not supported (but recognized)
+
+def fnmatch(name, pat):
+	if '*' in pat or '?' in pat or '[' in pat:
+		return fnmatch1(name, pat)
+	return name = pat
+
+def fnmatch1(name, pat):
+	for i in range(len(pat)):
+		c = pat[i]
+		if c = '*':
+			restpat = pat[i+1:]
+			if '*' in restpat or '?' in restpat or '[' in restpat:
+				for i in range(i, len(name)):
+					if fnmatch1(name[i:], restpat):
+						return 1
+				return 0
+			else:
+				return name[len(name)-len(restpat):] = restpat
+		elif c = '?':
+			if len(name) <= i : return 0
+		elif c = '[':
+			return 0 # XXX
+		else:
+			if name[i:i+1] <> c:
+				return 0
+	return 1
+
+def fnmatchlist(names, pat):
+	res = []
+	for name in names:
+		if fnmatch(name, pat): res.append(name)
+	return res