mercurial/cmdutil.py
changeset 32539 447bbd970047
parent 32538 2dd8d4108249
child 32540 f4cd4c49e302
equal deleted inserted replaced
32538:2dd8d4108249 32539:447bbd970047
   608         return ''.join(newname)
   608         return ''.join(newname)
   609     except KeyError as inst:
   609     except KeyError as inst:
   610         raise error.Abort(_("invalid format spec '%%%s' in output filename") %
   610         raise error.Abort(_("invalid format spec '%%%s' in output filename") %
   611                          inst.args[0])
   611                          inst.args[0])
   612 
   612 
       
   613 def isstdiofilename(pat):
       
   614     """True if the given pat looks like a filename denoting stdin/stdout"""
       
   615     return not pat or pat == '-'
       
   616 
   613 class _unclosablefile(object):
   617 class _unclosablefile(object):
   614     def __init__(self, fp):
   618     def __init__(self, fp):
   615         self._fp = fp
   619         self._fp = fp
   616 
   620 
   617     def close(self):
   621     def close(self):
   633                 seqno=None, revwidth=None, mode='wb', modemap=None,
   637                 seqno=None, revwidth=None, mode='wb', modemap=None,
   634                 pathname=None):
   638                 pathname=None):
   635 
   639 
   636     writable = mode not in ('r', 'rb')
   640     writable = mode not in ('r', 'rb')
   637 
   641 
   638     if not pat or pat == '-':
   642     if isstdiofilename(pat):
   639         if writable:
   643         if writable:
   640             fp = repo.ui.fout
   644             fp = repo.ui.fout
   641         else:
   645         else:
   642             fp = repo.ui.fin
   646             fp = repo.ui.fin
   643         return _unclosablefile(fp)
   647         return _unclosablefile(fp)