Add DeprecationWarning when use_statcache argument is supplied
Fix use of GetoptError, so demo() now works
diff --git a/Lib/filecmp.py b/Lib/filecmp.py
index 982e487..eaacb29 100644
--- a/Lib/filecmp.py
+++ b/Lib/filecmp.py
@@ -4,20 +4,21 @@
     dircmp
 
 Functions:
-    cmp(f1, f2, shallow=1, use_statcache=0) -> int
+    cmp(f1, f2, shallow=1) -> int
     cmpfiles(a, b, common) -> ([], [], [])
 
 """
 
 import os
 import stat
+import warnings
 
 __all__ = ["cmp","dircmp","cmpfiles"]
 
 _cache = {}
 BUFSIZE=8*1024
 
-def cmp(f1, f2, shallow=1, use_statcache=0):
+def cmp(f1, f2, shallow=1, use_statcache=None):
     """Compare two files.
 
     Arguments:
@@ -39,6 +40,10 @@
     with a cache invalidation mechanism relying on stale signatures.
 
     """
+    if use_statcache is not None:
+        warnings.warn("use_statcache argument is deprecated",
+                      DeprecationWarning)
+
     s1 = _sig(os.stat(f1))
     s2 = _sig(os.stat(f2))
     if s1[0] != stat.S_IFREG or s2[0] != stat.S_IFREG:
@@ -261,7 +266,7 @@
             sd.report_full_closure()
 
 
-def cmpfiles(a, b, common, shallow=1, use_statcache=0):
+def cmpfiles(a, b, common, shallow=1, use_statcache=None):
     """Compare common files in two directories.
 
     a, b -- directory names
@@ -275,6 +280,9 @@
       filenames that aren't regular files.
 
     """
+    if use_statcache is not None:
+        warnings.warn("use_statcache argument is deprecated",
+                      DeprecationWarning)
     res = ([], [], [])
     for x in common:
         ax = os.path.join(a, x)
@@ -312,7 +320,7 @@
     import getopt
     options, args = getopt.getopt(sys.argv[1:], 'r')
     if len(args) != 2:
-        raise getopt.error, 'need exactly two args'
+        raise getopt.GetoptError('need exactly two args', None)
     dd = dircmp(args[0], args[1])
     if ('-r', '') in options:
         dd.report_full_closure()