Mercurial > hg > mercurial-crew-with-dirclash
view mercurial/ui.py @ 585:51626d888526
[PATCH] Changelogentry template cleanup
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Changelogentry template cleanup
From: Edouard Gomez <edouard.gomez@gmail.com>
Changelogentry template cleanup
Removed unuseful outside div (was probably used to carry the
parity class, it's no use, multiple css classes can be assigned
to the inner table instead)
Removed all hardwired styles in html tags. The style has been
externalized to equivalent CSS classes.
The inner table is now assigned the parity CSS class.
Changed all relevant table cells from td to th.
Added classes to all cells in order to give some semantic rationale
to these table cells.
manifest hash: 2835217df09be445961b865be166c2470173ba58
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCx1g5ywK+sNU5EO8RAhKGAKCWAHrx+lLMAXjd4/vgvG7vmfSkAACfTZ+m
/EyUsDVaYeVcGzFsp8liReI=
=vt2N
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Sat, 02 Jul 2005 19:15:05 -0800 |
parents | 9a80418646dd |
children | d2994b5298fb |
line wrap: on
line source
# ui.py - user interface bits for mercurial # # Copyright 2005 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. import os, sys, re, ConfigParser, util class ui: def __init__(self, verbose=False, debug=False, quiet=False, interactive=True): self.cdata = ConfigParser.SafeConfigParser() self.cdata.read(os.path.expanduser("~/.hgrc")) self.quiet = self.configbool("ui", "quiet") self.verbose = self.configbool("ui", "verbose") self.debugflag = self.configbool("ui", "debug") self.interactive = self.configbool("ui", "interactive", True) self.quiet = (self.quiet or quiet) and not verbose and not debug self.verbose = (self.verbose or verbose) or debug self.debugflag = (self.debugflag or debug) self.interactive = (self.interactive and interactive) def readconfig(self, fp): self.cdata.readfp(fp) def config(self, section, val, default=None): if self.cdata.has_option(section, val): return self.cdata.get(section, val) return default def configbool(self, section, val, default=False): if self.cdata.has_option(section, val): return self.cdata.getboolean(section, val) return default def configitems(self, section): if self.cdata.has_section(section): return self.cdata.items(section) return [] def expandpath(self, loc): paths = {} for name, path in self.configitems("paths"): paths[name] = path return paths.get(loc, loc) def write(self, *args): for a in args: sys.stdout.write(str(a)) def write_err(self, *args): sys.stdout.flush() for a in args: sys.stderr.write(str(a)) def readline(self): return sys.stdin.readline()[:-1] def prompt(self, msg, pat, default = "y"): if not self.interactive: return default while 1: self.write(msg, " ") r = self.readline() if re.match(pat, r): return r else: self.write("unrecognized response\n") def status(self, *msg): if not self.quiet: self.write(*msg) def warn(self, *msg): self.write_err(*msg) def note(self, *msg): if self.verbose: self.write(*msg) def debug(self, *msg): if self.debugflag: self.write(*msg) def edit(self, text): import tempfile (fd, name) = tempfile.mkstemp("hg") f = os.fdopen(fd, "w") f.write(text) f.close() editor = os.environ.get("HGEDITOR") or os.environ.get("EDITOR", "vi") util.system("%s %s" % (editor, name), errprefix = "edit failed") t = open(name).read() t = re.sub("(?m)^HG:.*\n", "", t) return t