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