ansiwrap icon indicating copy to clipboard operation
ansiwrap copied to clipboard

bold wraps to new lines despite reset

Open kenodegard opened this issue 5 years ago • 0 comments

I am aware that ANSI code 22 is not explicitly the reset code for bold. However, on Mac Terminal, iTerm2, and CentOS Konsole the reset code 21 doesn't do anything and reset code 22 must be used instead.

from ansiwrap import wrap

# \x1b[1m ... \x1b[0m
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lorem nisl, \x1b[1mpellentesque\x1b[0m nec pulvinar mollis, rhoncus vel mi. Aliquam nisi ante, ultricies consectetur laoreet in, sodales a elit."
print("ANSI Escape Code 0")
print("\n".join(text))
print("\x1b[0m")

# \x1b[1m ... \x1b[21m
reset_bold = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lorem nisl, \x1b[1mpellentesque\x1b[21m nec pulvinar mollis, rhoncus vel mi. Aliquam nisi ante, ultricies consectetur laoreet in, sodales a elit."
print("ANSI Escape Code 21")
print("\n".join(wrap(reset_bold)))
print("\x1b[0m")

# \x1b[1m ... \x1b[22m
reset_bold = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lorem nisl, \x1b[1mpellentesque\x1b[22m nec pulvinar mollis, rhoncus vel mi. Aliquam nisi ante, ultricies consectetur laoreet in, sodales a elit."
print("ANSI Escape Code 22")
print("\n".join(wrap(reset_bold)))
print("\x1b[0m")

Screen Shot

I would assume that the quick fix would be to also check for reset code 22 when deciding whether bold needs to continue onto a wrapped line. Or are there additional concerns that need to be considered first?

kenodegard avatar May 21 '19 14:05 kenodegard