Added "repeat.py" -- repeatedly execute a shell command (like
watch(1)).  Updated and untabified the README file.
diff --git a/Demo/curses/repeat.py b/Demo/curses/repeat.py
new file mode 100755
index 0000000..158264c
--- /dev/null
+++ b/Demo/curses/repeat.py
@@ -0,0 +1,58 @@
+#! /usr/bin/env python
+
+"""repeat <shell-command>
+
+This simple program repeatedly (with 1-second intervals) executes the
+shell command given on the command line and displays the output (or as
+much of it as fits on the screen).  It uses curses to paint each new
+output on top of the old output, so that if nothing changes, the
+screen doesn't change.  This is handy to watch for changes in e.g. a
+directory or process listing.
+
+To end, hit Control-C.
+"""
+
+# Author: Guido van Rossum
+
+# Disclaimer: there's a Linux program named 'watch' that does the same
+# thing.  Honestly, I didn't know of its existence when I wrote this!
+
+# To do: add features until it has the same functionality as watch(1);
+# then compare code size and development time.
+
+import os
+import sys
+import time
+import curses
+
+def main():
+    if not sys.argv[1:]:
+        print __doc__
+        sys.exit(0)
+    cmd = " ".join(sys.argv[1:])
+    p = os.popen(cmd, "r")
+    text = p.read()
+    sts = p.close()
+    if sts:
+        print >>sys.stderr, "Exit code:", sts
+        sys.exit(sts)
+    w = curses.initscr()
+    try:
+        while 1:
+            w.erase()
+            try:
+                w.addstr(text)
+            except curses.error:
+                pass
+            w.refresh()
+            time.sleep(1)
+            p = os.popen(cmd, "r")
+            text = p.read()
+            sts = p.close()
+            if sts:
+                print >>sys.stderr, "Exit code:", sts
+                sys.exit(sts)
+    finally:
+        curses.endwin()
+
+main()