mirror of
https://github.com/evennia/evennia.git
synced 2026-04-04 23:17:17 +02:00
Update utils.py
Added use_display_len to m_len, default to False so it won't change behavior for those using it. Justify now properly handle wide character, by using the new use_display_len for m_len.
This commit is contained in:
parent
aeb0cf6854
commit
a95587b056
1 changed files with 6 additions and 6 deletions
|
|
@ -290,8 +290,8 @@ def justify(text, width=None, align="l", indent=0, fillchar=" "):
|
|||
# absolute mode - just crop or fill to width
|
||||
abs_lines = []
|
||||
for line in text.split("\n"):
|
||||
nlen = m_len(line)
|
||||
if m_len(line) < width:
|
||||
nlen = m_len(line, True)
|
||||
if m_len(line, True) < width:
|
||||
line += sp * (width - nlen)
|
||||
else:
|
||||
line = crop(line, width=width, suffix="")
|
||||
|
|
@ -306,7 +306,7 @@ def justify(text, width=None, align="l", indent=0, fillchar=" "):
|
|||
for ip, paragraph in enumerate(paragraphs):
|
||||
if ip > 0:
|
||||
words.append(("\n", 0))
|
||||
words.extend((word, m_len(word)) for word in paragraph.split())
|
||||
words.extend((word, m_len(word, True)) for word in paragraph.split())
|
||||
|
||||
if not words:
|
||||
# Just whitespace!
|
||||
|
|
@ -2299,7 +2299,7 @@ def calledby(callerdepth=1):
|
|||
return "\n".join(out[::-1])
|
||||
|
||||
|
||||
def m_len(target):
|
||||
def m_len(target, use_display_len=False):
|
||||
"""
|
||||
Provides length checking for strings with MXP patterns, and falls
|
||||
back to normal len for other objects.
|
||||
|
|
@ -2316,8 +2316,8 @@ def m_len(target):
|
|||
from evennia.utils.ansi import ANSI_PARSER
|
||||
|
||||
if inherits_from(target, str) and "|lt" in target:
|
||||
return len(ANSI_PARSER.strip_mxp(target))
|
||||
return len(target)
|
||||
return display_len(ANSI_PARSER.strip_mxp(target)) if use_display_len else len(ANSI_PARSER.strip_mxp(target))
|
||||
return display_len(target) if use_display_len else len(target)
|
||||
|
||||
|
||||
def display_len(target):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue