summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2000-04-10 17:16:12 (GMT)
committerGuido van Rossum <guido@python.org>2000-04-10 17:16:12 (GMT)
commit2516b39dd35a3e0d815e25ee652cea6c90cc5b28 (patch)
tree5a1b19588e911510e4515ed08b13704cab962074
parentb81e70ebdb28246e427249d386518bc03d08c959 (diff)
downloadcpython-2516b39dd35a3e0d815e25ee652cea6c90cc5b28.zip
cpython-2516b39dd35a3e0d815e25ee652cea6c90cc5b28.tar.gz
cpython-2516b39dd35a3e0d815e25ee652cea6c90cc5b28.tar.bz2
Implement suggestion from Lawrence Kesteloot in PR#280, to change the
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.
-rw-r--r--Lib/fileinput.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/Lib/fileinput.py b/Lib/fileinput.py
index 8f73fad..d1b7617 100644
--- a/Lib/fileinput.py
+++ b/Lib/fileinput.py
@@ -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