Bug 47143

Summary: aptitude: ломается поиск пакетов при нажатии клавиши backspace в поисковой строке
Product: Branch p11 Reporter: Шевченко Денис <shevchenkodyu>
Component: aptitudeAssignee: Ivan Zakharyaschev <imz>
Status: NEW --- QA Contact: qa-p11 <qa-p11>
Severity: normal    
Priority: P5 CC: glebfm, kotjuhovma, viy, vsu
Version: unspecified   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
сломанный поиск aptitude none

Description Шевченко Денис 2023-08-07 10:03:37 MSK
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
Comment 1 Шевченко Денис 2023-08-07 10:32:15 MSK
Версии пакетов для воспроизведения ошибки:

- P10: aptitude-0.4.5-alt13
- Sisyphus: aptitude-0.4.5-alt16
Comment 2 Котюхов Михаил Андреевич 2026-01-14 14:49:57 MSK
Актуально для версии 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
Comment 3 Sergey Vlasov 2026-01-15 08:39:47 MSK
На самом деле поведение 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).