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 |