Created attachment 16899 [details] Снимок проблемы Версия пакета: 0.5.15lorg2-alt88 Эмулятор терминала: Konsole (23.08.5-alt1) Размер шрифта и разрешение экрана не играют роли. Команда для воспроизведения (с правами root): apt-get remove libpcre2
ShowEssential оказывается передаёт List с пробелами. Я думал, что такое невозможно: ведь тогда VersionList будет выдан криво. Но разработчики оригинального apt'а оригинальны и хитры: они не заполняют VersionList в ShowEssential, оставляя его закомментированным с тремя знаками вопроса: //VersionsList += string(Cache[I].CurVersion) + "\n"; ??? Это можно использовать, чтобы по традиции запилить минимально инвазивный костыль: https://git.altlinux.org/people/iv/packages/apt.git?a=commitdiff;h=3f21b7afaed7f7bbd4abefbea7c56adeef877952 Я проверял, работает. Назовём его вариант номер 0. Есть и другие варианты решения проблемы: 1. попытаться как-то подетектить круглые скобочки в List и разбить список по ним; 2. бекпортировать с апстрима то, что они сделали с ShowList (они его превратили в template); 3. реализовать свой ShowListEx, который будет брать List и VersionList как вектора строк; текущий ShowList реализовать в терминах ShowListEx и оставить для обратной совместимости; 4. просто поставить APT::Get::List-Columns в false по умолчанию, признать, что мы не готовы к таким продвинутым технологиям. Прошу мейнтейнера выссказаться.