X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Fmisc.py;h=66d97a8c9b941bf791c733228bfe6234d98ef314;hp=009de29fea6bd1f5be6e70869706cb346d68ccdc;hb=7d59395c2db5f0220fccbc926ad56c783e50fa60;hpb=8b2a788b00f495b4d05d6e2e8b7ce9f3bb63b932 diff --git a/mudpy/misc.py b/mudpy/misc.py index 009de29..66d97a8 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -1143,18 +1143,17 @@ def wrap_ansi_text(text, width): # escape sequence escape = False - # track the most recent whitespace we've seen - # TODO(fungi) exclude non-breaking spaces (\x0a) - elif unicodedata.category(each_character) in ("Cc", "Zs"): - if each_character == "\n": - # the current character is a newline, so reset the relative - # position too (start a new line) - rel_pos = 0 - if each_character != "\r": - # the current character is not a carriage return, so mark it as - # whitespace (we don't want to break and wrap between CR+LF) - last_abs_whitespace = abs_pos - last_rel_whitespace = rel_pos + # the current character is a space + elif each_character == " ": + last_abs_whitespace = abs_pos + last_rel_whitespace = rel_pos + + # the current character is a newline, so reset the relative + # position too (start a new line) + elif each_character == "\n": + rel_pos = 0 + last_abs_whitespace = abs_pos + last_rel_whitespace = rel_pos # the current character meets the requested maximum line width, so we # need to wrap unless the current word is wider than the terminal (in @@ -1180,8 +1179,7 @@ def wrap_ansi_text(text, width): # printable character elif each_character != "\r": rel_pos += glyph_columns(each_character) - if unicodedata.category(each_character) in ("Cc", "Zs"): - # TODO(fungi) exclude non-breaking spaces (\x0a) + if each_character in (" ", "\n"): last_abs_whitespace = abs_pos last_rel_whitespace = rel_pos