Bug 14114

Summary: Для небольших файлов статусбар отрисовывается не в конце экрана как раньше
Product: Sisyphus Reporter: Sir Raorn <raorn>
Component: lessAssignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P2 CC: evg, kopilo4ka, legion, mike, php-coder, vsu, vvk
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
less-alt-old-bot-at-start.patch none

Description Sir Raorn 2008-01-21 21:26:01 MSK
Открыть новый терминал, создать меленький файл, например так:
$ echo file > file

После чего в этом же новом терминале запустить несколько раз подряд команду less
file.  До версии 394 включительно "статусбар" всегда был внизу независимот от
размера файла.
Comment 1 Sir Raorn 2008-01-21 21:38:50 MSK
To maintainer
Comment 2 at@altlinux.org 2008-01-21 21:44:15 MSK
Я не понял суть бага.  Кстати мне больше нравится когда маленькие файлы сразу же
не отъедают весь экран.  Ведь всегда же можно нажать g или что там.
Comment 3 Sir Raorn 2008-01-21 21:51:31 MSK
1. Изменилось поведение по умолчанию.  Нигде не задокументировано, никак не
настраивается.
2. Размеры "от'едаемого экрана" зависят от количества запусков less в этом
терминале.  Т.е. никак нельзя заранее узнать в каком месте экрана будет
отображён файл.
Comment 4 at@altlinux.org 2008-01-22 00:57:54 MSK
У меня в шелле промпт подсвечен цветом (а у вас нет???), так что при открытии
маленьких файлов лессом легко увидеть что промпт остался на месте, а лесс не
отъел весь экран (а статус инвертирован), так что нет никакой трудности
определить где в каком месте оно выплюнулось.

А в ChangeLog тоже не задокументировано?
Comment 5 at@altlinux.org 2008-01-22 01:05:23 MSK
А, точно.  Есть определённый глючок в "чистом" терминале.  Просто у меня все
терминалы открыты в GNU screen, а там не выставлен этот режим ti/te или как там 
эта фигня называется когда less отдельный экран открывает и потом закрывает.
Comment 6 Slava Semushin 2008-01-22 12:10:17 MSK
Если правильно понимаю, то это изменение документировано здесь
(http://www.greenwoodsoftware.com/less/news.406.html): "Don't move to bottom of
screen on first page.".

Это добавлено апстримом и считается feature, хотя поначалу и кажется несколько
непривычным.

Что предлагается сделать? Вернуть поведение на то, которое было раньше? В данном
вопросе я не вижу смысла не следовать апстриму, так что есть два варианта:
списаться с автором и убедить его вернуть всё назад или же ручку какую
прикрутить, ну или можно попробовать сделать патч и, возможно, я его приложу в
новой сборке.
Comment 7 Sir Raorn 2008-01-22 15:15:57 MSK
Рекомендую ещё раз посмотреть то происходит в _новом_ терминале, например xterm,
при последовательном запуске:

less <маленький файл>
less <маленький файл>
less <большой файл> (или man bash)
less <маленький файл>

Мне приложить скриншоты?
Comment 8 Slava Semushin 2008-01-22 15:26:00 MSK
(In reply to comment #7)
> Рекомендую ещё раз посмотреть то происходит в _новом_ терминале, например xterm,
> при последовательном запуске:

Т.е. проблема в том, что в после просмотра большого файла, к маленькому сверху
добавляется как бы несколько пустых строк, которые ему не принадлежат?
Comment 9 Sir Raorn 2008-01-22 16:17:20 MSK
Проблема в том, что положение "маленького файла" не выровнено ни по какой
границе экрана и зависит от состояния alternate screen.
Comment 10 Dmitry V. Levin 2008-02-10 02:55:48 MSK
(In reply to comment #9)
> Проблема в том, что положение "маленького файла" не выровнено ни по какой
> границе экрана и зависит от состояния alternate screen.

Особенно верхняя граница.  Ужасно раздражает.
Считаю такое поведение критической ошибкой.
Comment 11 Slava Semushin 2008-02-10 11:17:04 MSK
(In reply to comment #10)
> Считаю такое поведение критической ошибкой.

Если кто-нибудь сможет описАть суть бага на английском, то могу отписать автору.
Comment 12 Sir Raorn 2008-02-10 13:01:02 MSK
Скриншоты приложи.
Comment 13 Slava Semushin 2008-03-05 16:00:20 MSK
Хм. Вот что я обнаружил в сырцах less, во время изучения diff'а между версиями
394 и 406 (файл less.hlp):

+  -c  ........  --clear-screen
+                  Repaint by clearing rather than scrolling.

Я проверил работу этой опции и это действительно работает.

Теперь вопрос вот в чем: нужно ли патчить less, чтобы эта опция была включена по
умолчанию или же ненужно ничего делать, а все недовольные должны сами добавить
себе alias less='less -c' в конфиги?

Пониижаю, до major, т.к. найден workaround.
Comment 14 Dmitry V. Levin 2008-03-18 03:46:00 MSK
(In reply to comment #13)
> Хм. Вот что я обнаружил в сырцах less, во время изучения diff'а между версиями
> 394 и 406 (файл less.hlp):
> 
> +  -c  ........  --clear-screen
> +                  Repaint by clearing rather than scrolling.
> 
> Я проверил работу этой опции и это действительно работает.

Да, но это наверняка создаёт больше трафика,
и на медленных каналах это должно быть заметно.

> Теперь вопрос вот в чем: нужно ли патчить less, чтобы эта опция была включена по
> умолчанию

Нет, поскольку в этом режиме less создаёт больше трафика.

> или же ненужно ничего делать, а все недовольные должны сами добавить
> себе alias less='less -c' в конфиги?

Нет, нужно решать проблему в самом less.
Для начала нужно донести её до апстрима.

> Пониижаю, до major, т.к. найден workaround.

Я тоже давно нашёл workaround -- откатил less на рабочую версию и поставил его
на hold.
Comment 15 Slava Semushin 2008-03-21 15:11:39 MSK
(In reply to comment #14)
> > Я проверил работу этой опции и это действительно работает.
> Да, но это наверняка создаёт больше трафика,
> и на медленных каналах это должно быть заметно.

Это утверждение или предположение?

> Нет, нужно решать проблему в самом less.
> Для начала нужно донести её до апстрима.

Я отписАл автору об этом.

> > Пониижаю, до major, т.к. найден workaround.
> 
> Я тоже давно нашёл workaround -- откатил less на рабочую версию и поставил его
> на hold.

Довольно интересное решение для мэйнтейнера :-O
Comment 16 Dmitry V. Levin 2008-04-10 03:48:43 MSD
(In reply to comment #10)
> (In reply to comment #9)
> > Проблема в том, что положение "маленького файла" не выровнено ни по какой
> > границе экрана и зависит от состояния alternate screen.
> 
> Особенно верхняя граница.  Ужасно раздражает.
> Считаю такое поведение критической ошибкой.

Что интересно, в xterm'е верхняя граница маленьких файлов вроде бы не пляшет, а
действительно оказывается на следующей строке после введённой команды less.

А вот в aterm'е этого не происходит, и верхняя граница маленьких файлов
оказывается где угодно на экране.
Comment 17 Sergey Vlasov 2008-04-27 22:26:52 MSD
(In reply to comment #16)
> Что интересно, в xterm'е верхняя граница маленьких файлов вроде бы не пляшет, а
> действительно оказывается на следующей строке после введённой команды less.
> 
> А вот в aterm'е этого не происходит, и верхняя граница маленьких файлов
> оказывается где угодно на экране.

А в rxvt-unicode файл всегда отображается начиная с верхней строки экрана.
Comment 18 Sir Raorn 2008-04-27 22:59:07 MSD
Есть опция --old-bot, которая в xterm не работает вообще никак, а в aterm
начинает работать только после второго запуска less в этом терминале.
Comment 19 Slava Semushin 2008-04-30 20:56:53 MSD
Отправил less-394-alt2.src.rpm
Comment 20 Sir Raorn 2008-06-03 13:52:28 MSD
До сих пор не наблюдаю в Сизифе.
Comment 21 Slava Semushin 2008-06-03 13:57:53 MSD
Это не вина мэйнтейнера. Хорошо, в ближайшее время снова залью.
Comment 22 Dmitry V. Levin 2008-06-03 14:11:58 MSD
А я уже привык к новому поведению less.
Человек вообще быстро адаптируется.
Comment 23 Slava Semushin 2008-06-03 14:23:18 MSD
(In reply to comment #22)
> А я уже привык к новому поведению less.

Может ещё месяц подождать, чтобы и raorn@ привык? :))

Comment 24 Slava Semushin 2008-06-18 09:57:01 MSD
12 июня залил less в очередной раз. Он прошел сборку (http://lists.altlinux.org/pipermail/sisyphus-incominger/2008-June/125219.html), но в Сизифе не появился.

Причин я не знаю, второй раз уже такое повторяется, спрашивал в рассылке и ничего вразумительного не услышал.

Я сделал всё возможное, так что теперь я отказываюсь быть исполнителем этого бага и перевешиваю на мэйнтейнера :) Если что, то в git у меня есть сборка 394-alt2, которая исправляет этот баг путём отката пакета по версии.
Comment 25 Slava Semushin 2008-07-09 10:08:13 MSD
P.S. На днях в Debian засабмитили очень похожий баг: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489908

И, кстати, автор с месяц как выпустил less-424
Comment 26 Sir Raorn 2008-07-31 14:55:57 MSD
Created attachment 2737 [details]
less-alt-old-bot-at-start.patch

С этим патчем старое поведение возврещается с указанием опции --old-bot.
Comment 27 Sir Raorn 2008-08-06 18:41:56 MSD
ping
Comment 28 Slava Semushin 2008-08-06 19:05:19 MSD
(In reply to comment #27)
> ping

Я в курсе. На выходных постараюсь сделать. Может и раньше, но не факт.

Спасибо за патч!

Кстати, я так понимаю, что сейчас опция --old-bot работает неправильно?

Comment 29 Sir Raorn 2008-08-06 19:22:42 MSD
Похоже просто недоделана.
Comment 30 Slava Semushin 2008-08-06 21:00:12 MSD
Fixed in less-424-alt2