Откатывается ли ls --color к предварительно скомпилированному LS_COLORS при использовании escape-последовательностей из 256 цветов?

Разработчики убрали этот символ. См. https://github.com/openssl/openssl/blob/72257204bd2a88773461150765dfd0e0a428ee86/include/openssl/ssl.h#L1495. Что вам нужно сделать, так это добавить #define OPENSSL_API_COMPAT 0x0908где-нибудь, чтобы символ был определен как макрос.

2
18.08.2019, 13:33
1 ответ

GNU ls ничего не знает об управляющих последовательностях терминала. Он просто связывает переменную среды $TERMсо своей таблицей (, будь то из переменной среды $LS_COLORSили ее скомпилированной -по умолчанию не имеет большого значения ).Ничегоиз этого не говорит, сколько цветов у терминала.

Если вы читали исходный код (dircolors.c, ls.c), вы могли заметить, что он не использует количество цветов при принятии решения о том, что печатать. Использует ли он управляющие последовательности для 256 -цветов или нет, по-видимому, зависит от того, кем были упаковщики (этого нет в исходном коде coreutils -, хотя комментарий намекает на возможность ).

База данных терминала не используется; любое сходство между этим и GNU ls в основном состоит в том, что последний использует имена терминальных описаний без использования соответствующей информации. Таким образом, создается впечатление, что VT100 использовали цвет (, см. ncurses FAQ).

Поскольку значения , скомпилированные -в , используют 8 -цветов ANSI (и предполагают, что полужирные -цвета добавляют еще 8 ), если вы видите, что используется 256 -] цвета,это связано с тем, что файлы конфигурации (, внешние по отношению к GNU ls ), настроены в /etc.

1
27.01.2020, 22:16

Теги

Похожие вопросы