Created attachment 13990 [details] сломанный поиск aptitude Если в поиске пакетов aptitude попытаться стереть символы в поисковой строке с помощью клавиши backspace, то поиск ломается. Также в поисковой строке появляются символы "^?" после каждого нажатия клавиши backspace. Версия: aptitude-0.4.5-alt16 Системы: ALT Workstation 10.1 ALT Workstation K 10.1 ALT Education KDE 10.1 ALT Education 10.1 ALT Server 10.1 Шаги воспроизведения: 1. Запустить aptitude: $ aptitude 2. Открыть поиск пакетов из меню приложения: Поиск -> Поиск 3. Ввести название пакета в поисковой строке и попытаться стереть символы с помощью клавиши backspace Ожидаемые результат: При нажатии клавиши backspace символы удаляются корректно и поиск продолжает работать Фактический результат: При нажатии клавиши backspace поиск перестаёт работать и в поисковой строке появляются лишние символы "^?". Дополнительная информация: 1. Ошибка воспроизводится на системах обновленных до Sisyphus. 2. В другом баг-репорте было упоминание об этой ошибке: https://bugzilla.altlinux.org/show_bug.cgi?id=40826#c3
Версии пакетов для воспроизведения ошибки: - P10: aptitude-0.4.5-alt13 - Sisyphus: aptitude-0.4.5-alt16
Актуально для версии aptitude-0.4.5-alt16 на системах: kworkstation-11.2-x86-64 education-11.0-x86-64-kde education-11.0-x86-64-xfce workstation-11.1-x86-64 Не воспроизводится в sisyphus
На самом деле поведение aptitude зависит от содержимого базы terminfo. В отличие от большинства программ, которые либо всегда распознают ^? (\x7F) как Backspace, либо читают символ erase из настроек терминала (stty -a), aptitude распознаёт как Backspace только тот код, который указан как kbs в terminfo, а в описаниях terminfo для разных терминалов разброд и шатания: $ infocmp -1 xterm-256color | grep kbs kbs=^H, $ infocmp -1 alacritty | grep kbs kbs=^?, $ infocmp -1 xterm-kitty | grep kbs kbs=^?, $ infocmp -1 xterm-ghostty | grep kbs kbs=^?, Таким образом, в эмуляторах терминалов, выставляющих TERM=xterm-256color, клавиша Backspace в aptitude с большой вероятностью не будет работать (можно вместо неё использовать Ctrl+H), а вот в alacritty, kitty, ghostty (если в них не менялись настройки TERM) Backspace будет работать правильно (зато могут возникать некоторые неудобства при хождении оттуда через ssh на старые системы, не имеющие соответствующих записей terminfo).