mercurial/cmdutil.py
changeset 7319 eae1767cc6a8
parent 7308 b6f5490effbf
child 7361 9fe97eea5510
equal deleted inserted replaced
7318:95e1260b8134 7319:eae1767cc6a8
   212         raise util.Abort(_("invalid format spec '%%%s' in output file name") %
   212         raise util.Abort(_("invalid format spec '%%%s' in output file name") %
   213                          inst.args[0])
   213                          inst.args[0])
   214 
   214 
   215 def make_file(repo, pat, node=None,
   215 def make_file(repo, pat, node=None,
   216               total=None, seqno=None, revwidth=None, mode='wb', pathname=None):
   216               total=None, seqno=None, revwidth=None, mode='wb', pathname=None):
       
   217 
       
   218     writable = 'w' in mode or 'a' in mode
       
   219 
   217     if not pat or pat == '-':
   220     if not pat or pat == '-':
   218         return 'w' in mode and sys.stdout or sys.stdin
   221         return writable and sys.stdout or sys.stdin
   219     if hasattr(pat, 'write') and 'w' in mode:
   222     if hasattr(pat, 'write') and writable:
   220         return pat
   223         return pat
   221     if hasattr(pat, 'read') and 'r' in mode:
   224     if hasattr(pat, 'read') and 'r' in mode:
   222         return pat
   225         return pat
   223     return open(make_filename(repo, pat, node, total, seqno, revwidth,
   226     return open(make_filename(repo, pat, node, total, seqno, revwidth,
   224                               pathname),
   227                               pathname),