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.
This commit is contained in:
parent
b81e70ebdb
commit
2516b39dd3
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue