diff --git a/hgext/beautifygraph.py b/hgext/beautifygraph.py --- a/hgext/beautifygraph.py +++ b/hgext/beautifygraph.py @@ -8,7 +8,7 @@ from __future__ import absolute_import -import sys +from mercurial import encoding from mercurial import extensions from mercurial import templatekw from mercurial import graphmod @@ -22,17 +22,17 @@ def extsetup(ui): def convertedges(line): def prettyedge(before, edge, after): - if edge == '~': return '╧' - if edge == 'X': return '╳' - if edge == '/': return '╱' - if edge == '-': return '─' - if edge == '|': return '│' - if edge == ':': return '┆' - if edge == '\\': return '╲' + if edge == '~': return '\xE2\x95\xA7' # U+2567 ╧ + if edge == 'X': return '\xE2\x95\xB3' # U+2573 ╳ + if edge == '/': return '\xE2\x95\xB1' # U+2571 ╱ + if edge == '-': return '\xE2\x94\x80' # U+2500 ─ + if edge == '|': return '\xE2\x94\x82' # U+2502 │ + if edge == ':': return '\xE2\x94\x86' # U+2506 ┆ + if edge == '\\': return '\xE2\x95\xB2' # U+2572 ╲ if edge == '+': - if before == ' ' and not after == ' ': return '├' - if after == ' ' and not before == ' ': return '┤' - return '┼' + if before == ' ' and not after == ' ': return '\xE2\x94\x9C' # U+251C ├ + if after == ' ' and not before == ' ': return '\xE2\x94\xA4' # U+2524 ┤ + return '\xE2\x94\xBC' # U+253C ┼ return edge line = ' %s ' % line pretty = []; @@ -42,15 +42,15 @@ def getprettygraphnode(orig, *args, **kwargs): node = orig(*args, **kwargs) - if node == 'o': return '◯' - if node == '@': return '⌾' - if node == '*': return '∗' - if node == 'x': return '◌' - if node == '_': return '╤' + if node == 'o': return '\xE2\x97\xAF' # U+25EF ◯ + if node == '@': return '\xE2\x8C\xBE' # U+233E ⌾ + if node == '*': return '\xE2\x88\x97' # U+2217 ∗ + if node == 'x': return '\xE2\x97\x8C' # U+25CC ◌ + if node == '_': return '\xE2\x95\xA4' # U+2564 ╤ return node def outputprettygraph(orig, ui, graph, *args, **kwargs): - if not ui.plain('graph') and sys.stdout.encoding == "UTF-8": + if not ui.plain('graph') and encoding.encoding == "UTF-8": (edges, text) = zip(*graph) graph = zip([convertedges(e) for e in edges], text) return orig(ui, graph, *args, **kwargs)