summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCatherine Devlin <catherine.devlin@gmail.com>2008-05-22 20:07:07 -0400
committerCatherine Devlin <catherine.devlin@gmail.com>2008-05-22 20:07:07 -0400
commitf5ca4521878861e2ad8e91aebb17e8133e2cc3d6 (patch)
treea1960c62b6802771149dbc0f0b6f5796a8cde5dc
parent8628a016b3463ea1ded0a169333e75a047517075 (diff)
downloadcmd2-git-f5ca4521878861e2ad8e91aebb17e8133e2cc3d6.tar.gz
do_load accepts file object
-rwxr-xr-xcmd2.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/cmd2.py b/cmd2.py
index 05cb611e..f546c2d8 100755
--- a/cmd2.py
+++ b/cmd2.py
@@ -487,15 +487,18 @@ class Cmd(cmd.Cmd):
if fname is None:
fname = self.defaultFileName
keepstate = Statekeeper(self, ('stdin','use_rawinput','prompt','continuationPrompt'))
- try:
- self.stdin = open(fname, 'r')
- except IOError, e:
+ if isinstance(fname, file):
+ self.stdin = fname
+ else:
try:
- self.stdin = open('%s.%s' % (fname, self.defaultExtension), 'r')
- except IOError:
- print 'Problem opening file %s: \n%s' % (fname, e)
- keepstate.restore()
- return
+ self.stdin = open(fname, 'r')
+ except IOError, e:
+ try:
+ self.stdin = open('%s.%s' % (fname, self.defaultExtension), 'r')
+ except IOError:
+ print 'Problem opening file %s: \n%s' % (fname, e)
+ keepstate.restore()
+ return
self.use_rawinput = False
self.prompt = self.continuationPrompt = ''
self.cmdloop()