From 2516b39dd35a3e0d815e25ee652cea6c90cc5b28 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 10 Apr 2000 17:16:12 +0000 Subject: [PATCH] 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. --- Lib/fileinput.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Lib/fileinput.py b/Lib/fileinput.py index 8f73fad222f..d1b7617e250 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