]> granicus.if.org Git - python/commitdiff
Implement suggestion from Lawrence Kesteloot in PR#280, to change the
authorGuido van Rossum <guido@python.org>
Mon, 10 Apr 2000 17:16:12 +0000 (17:16 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 10 Apr 2000 17:16:12 +0000 (17:16 +0000)
default list of files from () to None, and explicitly test for None
before defaulting to sys.argv[1:].  This means that if you pass in an
explicit empty list, it will read stdin instead of defaulting to
sys.argv[1:].  This fixes a buglet in the test script (when called
with options but without files, it chokes when it tries to interpret
the options as files).

Lawrence adds: "I suspect that this is a safe change, because I can't
imagine someone actively passing in an empty list when they want
sys.argv used."

I agree.

Lib/fileinput.py

index 8f73fad222f2cd6dbe28a149cef29ef4c8016d13..d1b7617e2500d8cc7310cd8f87ade83d521cbe79 100644 (file)
@@ -77,7 +77,7 @@ import sys, os, stat
 
 _state = None
 
-def input(files=(), inplace=0, backup=""):
+def input(files=None, inplace=0, backup=""):
     global _state
     if _state and _state._file:
         raise RuntimeError, "input() already active"
@@ -123,15 +123,16 @@ def isstdin():
 
 class FileInput:
 
-    def __init__(self, files=(), inplace=0, backup=""):
+    def __init__(self, files=None, inplace=0, backup=""):
         if type(files) == type(''):
             files = (files,)
         else:
-            files = tuple(files)
+            if files is None:
+                files = sys.argv[1:]
             if not files:
-                files = tuple(sys.argv[1:])
-                if not files:
-                    files = ('-',)
+                files = ('-',)
+            else:
+                files = tuple(files)
         self._files = files
         self._inplace = inplace
         self._backup = backup