Kaydet (Commit) 2516b39d authored tarafından Guido van Rossum's avatar Guido van Rossum

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.
üst b81e70eb
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment