Я думаю, вы, вероятно, заблудились на опасной территории. Проклятия почти наверняка будут отслеживать положение символов на основе выходных символов, и, поскольку он обеспечивает собственную обработку цвета, он, вероятно, также не обнаружит escape-последовательности ANSI.
Это может работать (вы пробовали?), Но это может также привести к полному управлению окнами.
И, поскольку вы заявили в комментарии, что это не сработало, то я думаю, что ответ будет "нет": -)
Если вам нужен возможный способ разрешить escape-последовательности ANSI в ваших строках, то один из способов (хотя это и есть kludge) - перехватить строку и изменить ее. Имейте вспомогательную функцию, такую как myPrintW()
, которая принимает строку и разбивает ее, что-то вроде (псевдокод):
def myPrintW(s):
while s not end of string:
s2 = position of color-change-sequence in s
if s2 == NULL exit while
printw characters from s (inclusive) to s2 (exclusive)
decode color-change-sequence at s2 and issue relevant attron/off
s = s2 + length of color-change-sequence
endwhile
enddef
Это в основном разбивало бы строку на обычные последовательности символов и последовательности изменения цвета, и вы обрабатывали бы каждую из них отдельно. Для преобразования последовательностей в нужные вызовы attron/off
потребуется таблица поиска. Не красиво, но иногда прагматизм лучше.