mercurial/ui.py
changeset 1984 df7436f439a0
parent 1983 ae12a81549a7
child 1985 c577689006fa
equal deleted inserted replaced
1983:ae12a81549a7 1984:df7436f439a0
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 import ConfigParser
     8 import ConfigParser
     9 from i18n import gettext as _
     9 from i18n import gettext as _
    10 from demandload import *
    10 from demandload import *
    11 demandload(globals(), "os re socket sys util")
    11 demandload(globals(), "os re socket sys util tempfile")
    12 
    12 
    13 class ui(object):
    13 class ui(object):
    14     def __init__(self, verbose=False, debug=False, quiet=False,
    14     def __init__(self, verbose=False, debug=False, quiet=False,
    15                  interactive=True, parentui=None):
    15                  interactive=True, parentui=None):
    16         self.overlay = {}
    16         self.overlay = {}
   193     def note(self, *msg):
   193     def note(self, *msg):
   194         if self.verbose: self.write(*msg)
   194         if self.verbose: self.write(*msg)
   195     def debug(self, *msg):
   195     def debug(self, *msg):
   196         if self.debugflag: self.write(*msg)
   196         if self.debugflag: self.write(*msg)
   197     def edit(self, text, user):
   197     def edit(self, text, user):
   198         import tempfile
   198         (fd, name) = tempfile.mkstemp(prefix="hg-editor-", suffix=".txt")
   199         (fd, name) = tempfile.mkstemp("hg")
   199         try:
   200         f = os.fdopen(fd, "w")
   200             f = os.fdopen(fd, "w")
   201         f.write(text)
   201             f.write(text)
   202         f.close()
   202             f.close()
   203 
   203 
   204         editor = (os.environ.get("HGEDITOR") or
   204             editor = (os.environ.get("HGEDITOR") or
   205                   self.config("ui", "editor") or
   205                     self.config("ui", "editor") or
   206                   os.environ.get("EDITOR", "vi"))
   206                     os.environ.get("EDITOR", "vi"))
   207 
   207 
   208         util.system("%s \"%s\"" % (editor, name),
   208             util.system("%s \"%s\"" % (editor, name),
   209                     environ={'HGUSER': user},
   209                         environ={'HGUSER': user},
   210                     onerr=util.Abort, errprefix=_("edit failed"))
   210                         onerr=util.Abort, errprefix=_("edit failed"))
   211 
   211 
   212         t = open(name).read()
   212             f = open(name)
   213         t = re.sub("(?m)^HG:.*\n", "", t)
   213             t = f.read()
   214 
   214             f.close()
   215         os.unlink(name)
   215             t = re.sub("(?m)^HG:.*\n", "", t)
       
   216         finally:
       
   217             os.unlink(name)
   216 
   218 
   217         return t
   219         return t