amarao: (Default)
[personal profile] amarao
А вот тут у меня спор с автором ripgrep'а: надо ли уважать TERM? Всем понятно, что TERM=dumb надо уважать. А вот какой-нибудь t10, который от dumb отличается едва-едва, надо?

https://www.reddit.com/r/rust/comments/y0oz86/comment/irvo53s/?utm_source=share&utm_medium=web2x&context=3

Говорит, что не надо, иначе никакого спасения от всяких TERM=screen.linux.

А вот мне кажется, что надо уважать. Не только от практичности, но и с целью закрыть все corner case'ы. По крайней мере, для меня тотальность и отсутствие исключений - это привлекательные черты раста.

Date: 2022-10-11 04:59 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

В terminfo есть капабилитя colors. Если она отсутствует, цвет выводить нельзя. Если её значение меньше 16, нельзя выводить \x1b[90m\x1b[97m. Если меньше 256, нельзя выводить 256 цветов. С \x1b[38;2;RR;GG;BBm всё сложно.

Нельзя предполагать, что 256-цветные последовательности — это всегда \x1b[38;5;XXXm. Есть такой эмулятор терминала fbterm (на графическом фреймбуфере в линуксовой консоли), где \x1b[1;XXX}. По-хорошему — только через капабилити setab и setaf.

Ещё есть Emacs, который иногда вызывает внешние команды и интерпретирует некоторые, но не все, ANSI-последовательности в их выхлопе.

И ещё никогда нельзя выводить \x1b[1;30;40m (bold black on black) и \x1b[34;40m (blue on black); в том числе когда чёрный фон получен по умолчанию. Первое не видно в Kitty и других терминалах, которые честно отрисовывают bold только как bold без дополнительного эффекта bright; а второе не видно в терминалах, настроенных под Midnight Commander.

Date: 2022-10-11 05:07 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

(Внимательный водитель Ansible может меня упрекнуть, что я же и приделал ему поддержку 256 цветов в нарушение правила «256 цветов не всегда CSI 38;5;XXX m». Меня извиняет только то, что я это делал в ответ на нарушение правила «нельзя писать синим по чёрному».)

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 06:46 pm
Powered by Dreamwidth Studios