operate as a filter when no files or directories appear on the command line
diff --git a/Tools/scripts/reindent.py b/Tools/scripts/reindent.py
index 21c553b..13150f9 100644
--- a/Tools/scripts/reindent.py
+++ b/Tools/scripts/reindent.py
@@ -2,7 +2,7 @@
 
 # Released to the public domain, by Tim Peters, 03 October 2000.
 
-"""reindent [-d][-r][-v] path ...
+"""reindent [-d][-r][-v] [ path ... ]
 
 -d  Dry run.  Analyze, but don't make any changes to, files.
 -r  Recurse.  Search for all .py files in subdirectories too.
@@ -12,14 +12,20 @@
 Also trim excess spaces and tabs from ends of lines, and remove empty lines
 at the end of files.  Also ensure the last line ends with a newline.
 
-Pass one or more file and/or directory paths.  When a directory path, all
-.py files within the directory will be examined, and, if the -r option is
-given, likewise recursively for subdirectories.
+If no paths are given on the command line, reindent operates as a filter,
+reading a single source file from standard input and writing the transformed
+source to standard output.  In this case, the -d, -r and -v flags are
+ignored.
 
-Overwrites files in place, renaming the originals with a .bak extension.
-If reindent finds nothing to change, the file is left alone.  If reindent
-does change a file, the changed file is a fixed-point for reindent (i.e.,
-running reindent on the resulting .py file won't change it again).
+You can pass one or more file and/or directory paths.  When a directory
+path, all .py files within the directory will be examined, and, if the -r
+option is given, likewise recursively for subdirectories.
+
+If output is not to standard output, reindent overwrites files in place,
+renaming the originals with a .bak extension.  If it finds nothing to
+change, the file is left alone.  If reindent does change a file, the changed
+file is a fixed-point for future runs (i.e., running reindent on the
+resulting .py file won't change it again).
 
 The hard part of reindenting is figuring out what to do with comment
 lines.  So long as the input files get a clean bill of health from
@@ -59,7 +65,9 @@
         elif o == '-v':
             verbose += 1
     if not args:
-        errprint("Usage:", __doc__)
+        r = Reindenter(sys.stdin)
+        r.run()
+        r.write(sys.stdout)
         return
     for arg in args:
         check(arg)