From 6fbdc88a2775a9234bc6b347be1e7d7d257d63ed Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 28 Aug 2016 19:31:19 +0200 Subject: [PATCH] Fix webclient ANSI background handling. Made bright ANSI backgrounds visible in color command. Resolves #1001. --- evennia/commands/default/player.py | 8 +++++--- evennia/utils/ansi.py | 6 +++--- evennia/utils/text2html.py | 16 ++++++++-------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/evennia/commands/default/player.py b/evennia/commands/default/player.py index ebe7a35d7c..fffab575a2 100644 --- a/evennia/commands/default/player.py +++ b/evennia/commands/default/player.py @@ -673,14 +673,16 @@ class CmdColorTest(COMMAND_DEFAULT_CLASS): col1 = ["%s%s|n" % (code, code.replace("|", "||")) for code, _ in ap.ext_ansi_map[48:56]] col2 = ["%s%s|n" % (code, code.replace("|", "||")) for code, _ in ap.ext_ansi_map[56:64]] col3 = ["%s%s|n" % (code.replace("\\",""), code.replace("|", "||").replace("\\", "")) for code, _ in ap.ext_ansi_map[-8:]] + col4 = ["%s%s|n" % (code.replace("\\",""), code.replace("|", "||").replace("\\", "")) for code, _ in ap.ansi_bright_bgs[-8:]] col2.extend(["" for i in range(len(col1)-len(col2))]) - table = utils.format_table([col1, col2, col3]) + table = utils.format_table([col1, col2, col4, col3]) string = "ANSI colors:" for row in table: string += "\n " + " ".join(row) self.msg(string) - self.msg("||X : black. ||/ : return, ||- : tab, ||_ : space, ||* : invert, ||u : underline") - self.msg("To combine background and foreground, add background marker last, e.g. ||r||[B.") + self.msg("||X : black. ||/ : return, ||- : tab, ||_ : space, ||* : invert, ||u : underline\n" + "To combine background and foreground, add background marker last, e.g. ||r||[B.\n" + "Note: bright backgrounds like ||[r requires your client handling Xterm256 colors.") elif self.args.startswith("x"): # show xterm256 table diff --git a/evennia/utils/ansi.py b/evennia/utils/ansi.py index 45f6fd08aa..17923ef27d 100644 --- a/evennia/utils/ansi.py +++ b/evennia/utils/ansi.py @@ -105,7 +105,7 @@ class ANSIParser(object): processed (str): The processed match string. """ - return self.ansi_bright_bgs.get(ansimatch.group(), "") + return self.ansi_bright_bgs_map.get(ansimatch.group(), "") def sub_xterm256(self, rgbmatch, use_xterm256=False): """ @@ -440,14 +440,14 @@ class ANSIParser(object): mxp_re = r'\|lc(.*?)\|lt(.*?)\|le' # prepare regex matching - brightbg_sub = re.compile(r"|".join([re.escape(tup[0]) for tup in ansi_bright_bgs]), re.DOTALL) + brightbg_sub = re.compile(r"|".join([r"(?