ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] Про htop
@ 2013-12-14 21:42 Alexei V. Mezin
  2013-12-15 11:20 ` Alexei V. Mezin
  0 siblings, 1 reply; 19+ messages in thread
From: Alexei V. Mezin @ 2013-12-14 21:42 UTC (permalink / raw)
  To: sisyphus

Вынесем в отдельную ветку, чтоб не мешалось с багами koncole+mc

14.12.2013 15:53, Michael Shigorin пишет:> On Sat, Dec 14, 2013 at 
02:56:07PM +0400, Alexei V. Mezin wrote:
 >> Давайте скринкаст если у кого ресайзится :)
 >
 > http://fly.osdn.org.ua/~mike/img/screenshots/htop-resize.ogv
 > (прошу прощения, совсем полноэкранный)
 >

[alexei@bigbear ~]$ rpm -q htop
htop-1.0.2-alt1


Никакими усилиями ни в одном терминале (konsole, aterm, urxvt, 
win+putty) не удается заставить его ресайзить что-то отличное от строк 
меню, да и то только после ctrl-l. Проверил даже в голых Иксах+ctwm, 
чтоб исключить тлетворное влияние КДЕ.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-14 21:42 [sisyphus] Про htop Alexei V. Mezin
@ 2013-12-15 11:20 ` Alexei V. Mezin
  2013-12-15 11:23   ` Serg A. Kotlyarov
  0 siblings, 1 reply; 19+ messages in thread
From: Alexei V. Mezin @ 2013-12-15 11:20 UTC (permalink / raw)
  To: sisyphus

15.12.2013 01:42, Alexei V. Mezin пишет:
>
> Никакими усилиями ни в одном терминале

Ну и сам же себе отвечаю:

htop не обрабатывает сигнал SIGWINCH, а полагается на обрботку его 
посредством ncurses.

If you've configured your ncurses with --enable-sigwinch, then you can 
go the easy way out, and just watch the characters that you get from 
getch() for a KEY_RESIZE. When ncurses handles the SIGWINCH signal, it 
pushes a KEY_RESIZE back onto the queue that getch() uses, so that the 
next call to getch() will return that value.

У нас ncurses собрана без --enable-sigwinch, поэтому ничего не работает. 
Багу повесить на пересборку с нужным ключом?



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 11:20 ` Alexei V. Mezin
@ 2013-12-15 11:23   ` Serg A. Kotlyarov
  2013-12-15 12:03     ` Anton Gorlov
  2013-12-15 13:00     ` Alexei V. Mezin
  0 siblings, 2 replies; 19+ messages in thread
From: Serg A. Kotlyarov @ 2013-12-15 11:23 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Alexei V. Mezin <alexei-mezin@rambler.ru> писал(а) в своём письме Sun, 15  
Dec 2013 17:20:12 +0600:

> 15.12.2013 01:42, Alexei V. Mezin пишет:
>>
>> Никакими усилиями ни в одном терминале
>
> Ну и сам же себе отвечаю:
>
> htop не обрабатывает сигнал SIGWINCH, а полагается на обрботку его  
> посредством ncurses.
>
> If you've configured your ncurses with --enable-sigwinch, then you can  
> go the easy way out, and just watch the characters that you get from  
> getch() for a KEY_RESIZE. When ncurses handles the SIGWINCH signal, it  
> pushes a KEY_RESIZE back onto the queue that getch() uses, so that the  
> next call to getch() will return that value.
>
> У нас ncurses собрана без --enable-sigwinch, поэтому ничего не работает.  
> Багу повесить на пересборку с нужным ключом?
>
> _______________________________________________
> Sisyphus mailing list
> Sisyphus@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus

Думается, что надо. Может быть и поведение iptstate починится (оно тоже на  
ncurses завязано). Если починится, то неплохо бы пересобрать в p7 и p6 (по  
возможности).

--
С уважением, Котляров Сергей.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 11:23   ` Serg A. Kotlyarov
@ 2013-12-15 12:03     ` Anton Gorlov
  2013-12-15 13:00     ` Alexei V. Mezin
  1 sibling, 0 replies; 19+ messages in thread
From: Anton Gorlov @ 2013-12-15 12:03 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

15.12.2013 15:23, Serg A. Kotlyarov пишет:
> Думается, что надо. Может быть и поведение iptstate починится (оно 
> тоже на ncurses завязано). Если починится, то неплохо бы пересобрать в 
> p7 и p6 (по возможности). 
уху.. ncurses+nccursesw

Но konsole/mc с ними не линкуюся на сколько вижу


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 11:23   ` Serg A. Kotlyarov
  2013-12-15 12:03     ` Anton Gorlov
@ 2013-12-15 13:00     ` Alexei V. Mezin
  2013-12-15 13:22       ` Alexei V. Mezin
  1 sibling, 1 reply; 19+ messages in thread
From: Alexei V. Mezin @ 2013-12-15 13:00 UTC (permalink / raw)
  To: sisyphus

15.12.2013 15:23, Serg A. Kotlyarov пишет:

>> У нас ncurses собрана без --enable-sigwinch, поэтому ничего не
>> работает. Багу повесить на пересборку с нужным ключом?
>>
> Думается, что надо.

Однако, все не так просто. Смотрю в spec, там стоит --enable-sigwinch.

Запускаю пример:

#include <ncurses.h>
#include <string.h>

int main()
{

     initscr();
     int count = 0;
     int key;
     while ((key = getch()) != 27) {
         if (key == KEY_RESIZE) {
             clear();
             mvprintw(0, 0, "COLS = %d, LINES = %d", COLS, LINES);
             for (int i = 0; i < COLS; i++)
                 mvaddch(1, i, '*');
             refresh();
             count++;
         }
         mvprintw(3, 0, "KEY = %d COUNT=%d", key, count);

     }

     endwin();
     return 0;
}

И вижу, что KEY_RESIZE приходит, но вот значения COLS/LINES остаются 
неизменными. То есть что-то в глубине ncurses разломано. :(

Будем изучать дальше.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:00     ` Alexei V. Mezin
@ 2013-12-15 13:22       ` Alexei V. Mezin
  2013-12-15 13:51         ` Alexey Borisenkov
                           ` (5 more replies)
  0 siblings, 6 replies; 19+ messages in thread
From: Alexei V. Mezin @ 2013-12-15 13:22 UTC (permalink / raw)
  To: sisyphus

15.12.2013 17:00, Alexei V. Mezin пишет:

>
> Однако, все не так просто.

Все гораздо проще.


[alexei@bigbear ncurses-5.9]$ echo $LINES $COLUMNS
56 154

Я так понял, что bash выставляет эти переменные самостоятельно. А из man 
resizeterm

If the environment variables LINES or COLUMNS are set, this overrides 
the library's use of the window size obtained from the  operating 
system.  Thus, even if a SIGWINCH is received, no screen size change may 
be recorded.

То есть пока bash будет выставлять такие переменные, htop нормально 
работать не будет. Или перед запуском надо делать unset.

Значит это не баг, а просто htop и подобные плохо написаны, надо 
переделывать на использование сигналов напрямую.

P.S. А у Михаила наверняка zsh, а не банальный bash :)



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:22       ` Alexei V. Mezin
@ 2013-12-15 13:51         ` Alexey Borisenkov
  2013-12-15 13:56           ` Alexey Borisenkov
  2013-12-15 14:47         ` Serg A. Kotlyarov
                           ` (4 subsequent siblings)
  5 siblings, 1 reply; 19+ messages in thread
From: Alexey Borisenkov @ 2013-12-15 13:51 UTC (permalink / raw)
  To: sisyphus

15.12.2013 17:22, Alexei V. Mezin пишет:
> P.S. А у Михаила наверняка zsh, а не банальный bash :)

А я-то тоже сижу и думаю, почему у меня нормально ресайзится с 
nvidia_glx. А у меня как-раз zsh :)


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:51         ` Alexey Borisenkov
@ 2013-12-15 13:56           ` Alexey Borisenkov
  0 siblings, 0 replies; 19+ messages in thread
From: Alexey Borisenkov @ 2013-12-15 13:56 UTC (permalink / raw)
  To: sisyphus



15.12.2013 17:51, Alexey Borisenkov пишет:
> 15.12.2013 17:22, Alexei V. Mezin пишет:
>> P.S. А у Михаила наверняка zsh, а не банальный bash :)
>
> А я-то тоже сижу и думаю, почему у меня нормально ресайзится с
> nvidia_glx. А у меня как-раз zsh :)

Но при этом
$ echo $LINES $COLUMNS
40 110
то есть переменные тоже выставлены. Но в выводе env их нет, а в случае с 
bash есть.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:22       ` Alexei V. Mezin
  2013-12-15 13:51         ` Alexey Borisenkov
@ 2013-12-15 14:47         ` Serg A. Kotlyarov
  2013-12-15 16:42         ` Sergey
                           ` (3 subsequent siblings)
  5 siblings, 0 replies; 19+ messages in thread
From: Serg A. Kotlyarov @ 2013-12-15 14:47 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Alexei V. Mezin <alexei-mezin@rambler.ru> писал(а) в своём письме Sun, 15  
Dec 2013 19:22:43 +0600:

> 15.12.2013 17:00, Alexei V. Mezin пишет:
>
>>
>> Однако, все не так просто.
>
> Все гораздо проще.
>
>
> [alexei@bigbear ncurses-5.9]$ echo $LINES $COLUMNS
> 56 154
>
> Я так понял, что bash выставляет эти переменные самостоятельно. А из man  
> resizeterm
>
> If the environment variables LINES or COLUMNS are set, this overrides  
> the library's use of the window size obtained from the  operating  
> system.  Thus, even if a SIGWINCH is received, no screen size change may  
> be recorded.
>
> То есть пока bash будет выставлять такие переменные, htop нормально  
> работать не будет. Или перед запуском надо делать unset.
>
> Значит это не баг, а просто htop и подобные плохо написаны, надо  
> переделывать на использование сигналов напрямую.
> _______________________________________________
> Sisyphus mailing list
> Sisyphus@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus

Спасибо, помогает (в т.ч. и через ssh).

--
С уважением, Котляров Сергей.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:22       ` Alexei V. Mezin
  2013-12-15 13:51         ` Alexey Borisenkov
  2013-12-15 14:47         ` Serg A. Kotlyarov
@ 2013-12-15 16:42         ` Sergey
  2013-12-16  8:13           ` Sergey
  2013-12-15 18:09         ` Michael Shigorin
                           ` (2 subsequent siblings)
  5 siblings, 1 reply; 19+ messages in thread
From: Sergey @ 2013-12-15 16:42 UTC (permalink / raw)
  To: sisyphus

On Sunday 15 of December 2013 17:22:43 Alexei V. Mezin wrote:

> То есть пока bash будет выставлять такие переменные, htop нормально 
> работать не будет. Или перед запуском надо делать unset.

Можно ещё как-то так:

echo "alias htop='LINES= COLUMNS= /usr/bin/htop'" >> /etc/bashrc.d/htop.sh
chmod +x /etc/bashrc.d/htop.sh

Только в плане alias посмотреть http://bugzilla.altlinux.org/25703, чтобы
лишних sh не зацепить... Там некоторая чехарда упоминается в плане того,
кто что и откуда читает.

-- 
С уважением, Сергей

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:22       ` Alexei V. Mezin
                           ` (2 preceding siblings ...)
  2013-12-15 16:42         ` Sergey
@ 2013-12-15 18:09         ` Michael Shigorin
  2013-12-15 18:23         ` Anton Gorlov
  2013-12-16 16:16         ` Sergey Vlasov
  5 siblings, 0 replies; 19+ messages in thread
From: Michael Shigorin @ 2013-12-15 18:09 UTC (permalink / raw)
  To: sisyphus

On Sun, Dec 15, 2013 at 05:22:43PM +0400, Alexei V. Mezin wrote:
> P.S. А у Михаила наверняка zsh, а не банальный bash :)

Эээ... да, это стоило уточнить, как и видеодрайвер.

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:22       ` Alexei V. Mezin
                           ` (3 preceding siblings ...)
  2013-12-15 18:09         ` Michael Shigorin
@ 2013-12-15 18:23         ` Anton Gorlov
  2013-12-16 16:16         ` Sergey Vlasov
  5 siblings, 0 replies; 19+ messages in thread
From: Anton Gorlov @ 2013-12-15 18:23 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Оппа... запустил zsh в konsole  - да ресайз работает

15.12.2013 17:22, Alexei V. Mezin пишет:
> 15.12.2013 17:00, Alexei V. Mezin пишет:
>
>>
>> Однако, все не так просто.
>
> Все гораздо проще.
>
>
> [alexei@bigbear ncurses-5.9]$ echo $LINES $COLUMNS
> 56 154
>
> Я так понял, что bash выставляет эти переменные самостоятельно. А из 
> man resizeterm
>
> If the environment variables LINES or COLUMNS are set, this overrides 
> the library's use of the window size obtained from the operating 
> system.  Thus, even if a SIGWINCH is received, no screen size change 
> may be recorded.
>
> То есть пока bash будет выставлять такие переменные, htop нормально 
> работать не будет. Или перед запуском надо делать unset.
>
> Значит это не баг, а просто htop и подобные плохо написаны, надо 
> переделывать на использование сигналов напрямую.
>
> P.S. А у Михаила наверняка zsh, а не банальный bash :)
>
> _______________________________________________
> Sisyphus mailing list
> Sisyphus@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 16:42         ` Sergey
@ 2013-12-16  8:13           ` Sergey
  0 siblings, 0 replies; 19+ messages in thread
From: Sergey @ 2013-12-16  8:13 UTC (permalink / raw)
  To: sisyphus

On Sunday 15 December 2013, Sergey wrote:

> Можно ещё как-то так:
> 
> echo "alias htop='LINES= COLUMNS= /usr/bin/htop'" >> /etc/bashrc.d/htop.sh
> chmod +x /etc/bashrc.d/htop.sh

http://bugzilla.altlinux.org/29652

-- 
С уважением, Сергей
a_s_y@sama.ru


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про htop
  2013-12-15 13:22       ` Alexei V. Mezin
                           ` (4 preceding siblings ...)
  2013-12-15 18:23         ` Anton Gorlov
@ 2013-12-16 16:16         ` Sergey Vlasov
  2013-12-17  0:48           ` [sisyphus] Про взаимодействие bash с внешней libreadline Dmitry V. Levin
  5 siblings, 1 reply; 19+ messages in thread
From: Sergey Vlasov @ 2013-12-16 16:16 UTC (permalink / raw)
  To: sisyphus

[-- Attachment #1: Type: text/plain, Size: 5654 bytes --]

On Sun, Dec 15, 2013 at 05:22:43PM +0400, Alexei V. Mezin wrote:
> 15.12.2013 17:00, Alexei V. Mezin пишет:
> [alexei@bigbear ncurses-5.9]$ echo $LINES $COLUMNS
> 56 154
> 
> Я так понял, что bash выставляет эти переменные самостоятельно. А из man 
> resizeterm
> 
> If the environment variables LINES or COLUMNS are set, this overrides 
> the library's use of the window size obtained from the  operating 
> system.  Thus, even if a SIGWINCH is received, no screen size change may 
> be recorded.
> 
> То есть пока bash будет выставлять такие переменные, htop нормально 
> работать не будет. Или перед запуском надо делать unset.
> 
> Значит это не баг, а просто htop и подобные плохо написаны, надо 
> переделывать на использование сигналов напрямую.

На самом деле, возможно, это баг в bash (точнее, во взаимодействии bash с
внешней библиотекой libreadline).

Дело в том, что в libreadline есть функция sh_set_lines_and_columns(),
которая как раз и добавляет в окружение текущего процесса переменные LINES
и COLUMNS:

  http://git.altlinux.org/gears/r/readline.git?p=readline.git;a=blob;f=readline/shell.c;h=346f8113d43d742191f34f431d55e94316e4431d;hb=bc8ee94c5760cc286148d7ab25f2606c0eeeb52a#l121

Однако ближе к началу файла shell.c есть следующий комментарий:

 88 /* All of these functions are resolved from bash if we are linking readline
 89    as part of bash. */

  http://git.altlinux.org/gears/r/readline.git?p=readline.git;a=blob;f=readline/shell.c;h=346f8113d43d742191f34f431d55e94316e4431d;hb=bc8ee94c5760cc286148d7ab25f2606c0eeeb52a#l88

И действительно, в самом bash тоже определяется функция
sh_set_lines_and_columns():

  http://git.altlinux.org/gears/b/bash.git?p=bash.git;a=blob;f=bash/variables.c;h=1c782534e22d77e492cb66cad6d8666c9a911e23;hb=ab284e13150cb2edf3345256c6ddd919babf3a24#l864

В отличие от реализации в libreadline, функция из bash использует не
setenv(), а внутреннюю функцию bash bind_variable(), которая устанавливает
внутреннюю переменную shell, по умолчанию не экспортирующуюся в дочерние
процессы; именно такое поведение можно наблюдать сейчас в zsh - в скриптах
можно использовать переменные $LINES и $COLUMNS, но zsh не передаёт эти
переменные другим процессам, если не выполнить export явно.

Однако в ALT пакеты bash и libreadline собраны таким образом, что при
вызове sh_set_lines_and_columns() из функций libreadline всегда вызывается
реализация этой функции внутри libreadline - перекрытие её реализацией из
bash, предполагавшееся разработчиками, не выполняется.

$ gdb bash
GNU gdb (GDB) 7.5.0.20121002-alt3 (ALT Linux)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-alt-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /bin/bash...Reading symbols from /usr/lib/debug/bin/bash.debug...done.
done.
(gdb) b sh_set_lines_and_columns
Breakpoint 1 at 0x42bee0: file ../variables.c, line 869.
(gdb) r
Starting program: /bin/bash 

Breakpoint 1, sh_set_lines_and_columns (lines=40, cols=80)
    at ../variables.c:869
869	{
(gdb) bt
#0  sh_set_lines_and_columns (lines=40, cols=80) at ../variables.c:869
#1  0x000000000046a395 in get_new_window_size (from_sig=from_sig@entry=0, 
    rp=rp@entry=0x0, cp=cp@entry=0x0) at ../../../lib/sh/winsize.c:75
#2  0x00000000004331fb in get_tty_state () at ../jobs.c:1968
#3  get_tty_state () at ../jobs.c:1938
#4  0x000000000043380d in initialize_job_control (force=force@entry=0)
    at ../jobs.c:3598
#5  0x00000000004166c6 in shell_initialize () at ../shell.c:1673
#6  0x0000000000414c33 in main (argc=1, argv=0x7fffffffe4c8, 
    env=0x7fffffffe4d8) at ../shell.c:543
(gdb) c
Continuing.

Breakpoint 1, sh_set_lines_and_columns (lines=40, cols=80) at ../shell.c:126
126	../shell.c: Нет такого файла или каталога.
(gdb) bt
#0  sh_set_lines_and_columns (lines=40, cols=80) at ../shell.c:126
#1  0x00007ffff7bc1d2d in _rl_get_screen_size (tty=<optimized out>, 
    ignore_env=0) at ../terminal.c:299
#2  0x00007ffff7bc23ca in _rl_init_terminal_io (terminal_name=<optimized out>)
    at ../terminal.c:521
#3  0x00007ffff7bc253b in _rl_set_screen_size (rows=40, cols=<optimized out>)
    at ../terminal.c:312
#4  0x000000000046a3a3 in get_new_window_size (from_sig=from_sig@entry=0, 
    rp=rp@entry=0x0, cp=cp@entry=0x0) at ../../../lib/sh/winsize.c:77
#5  0x00000000004331fb in get_tty_state () at ../jobs.c:1968
#6  get_tty_state () at ../jobs.c:1938
#7  0x000000000043380d in initialize_job_control (force=force@entry=0)
    at ../jobs.c:3598
#8  0x00000000004166c6 in shell_initialize () at ../shell.c:1673
#9  0x0000000000414c33 in main (argc=1, argv=0x7fffffffe4c8, 
    env=0x7fffffffe4d8) at ../shell.c:543

Видно, что во втором по порядку вызове, сделанном изнутри libreadline,
была вызвана именно реализация из libreadline, а не из bash (имена файлов
отличаются).

Кстати, аналогичная проблема наблюдается и в самом gdb, который тоже
использует libreadline:

  https://lists.gnu.org/archive/html/bug-readline/2013-09/msg00004.html

В некоторых других дистрибутивах как минимум bash ведёт себя правильнее
(не экспортирует переменные LINES и COLUMNS):

  http://lists.gnu.org/archive/html/bug-bash/2013-07/msg00056.html
  http://lists.gnu.org/archive/html/bug-bash/2013-07/msg00063.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 190 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про взаимодействие bash с внешней libreadline
  2013-12-16 16:16         ` Sergey Vlasov
@ 2013-12-17  0:48           ` Dmitry V. Levin
  2013-12-17  9:20             ` Anton Gorlov
    0 siblings, 2 replies; 19+ messages in thread
From: Dmitry V. Levin @ 2013-12-17  0:48 UTC (permalink / raw)
  To: ALT Linux Sisyphus mailing list

[-- Attachment #1: Type: text/plain, Size: 2288 bytes --]

On Mon, Dec 16, 2013 at 08:16:23PM +0400, Sergey Vlasov wrote:
> На самом деле, возможно, это баг в bash (точнее, во взаимодействии bash с
> внешней библиотекой libreadline).
> 
> Дело в том, что в libreadline есть функция sh_set_lines_and_columns(),
> которая как раз и добавляет в окружение текущего процесса переменные LINES
> и COLUMNS:
> 
>   http://git.altlinux.org/gears/r/readline.git?p=readline.git;a=blob;f=readline/shell.c;h=346f8113d43d742191f34f431d55e94316e4431d;hb=bc8ee94c5760cc286148d7ab25f2606c0eeeb52a#l121
> 
> Однако ближе к началу файла shell.c есть следующий комментарий:
> 
>  88 /* All of these functions are resolved from bash if we are linking readline
>  89    as part of bash. */
> 
>   http://git.altlinux.org/gears/r/readline.git?p=readline.git;a=blob;f=readline/shell.c;h=346f8113d43d742191f34f431d55e94316e4431d;hb=bc8ee94c5760cc286148d7ab25f2606c0eeeb52a#l88
> 
> И действительно, в самом bash тоже определяется функция
> sh_set_lines_and_columns():
> 
>   http://git.altlinux.org/gears/b/bash.git?p=bash.git;a=blob;f=bash/variables.c;h=1c782534e22d77e492cb66cad6d8666c9a911e23;hb=ab284e13150cb2edf3345256c6ddd919babf3a24#l864
> 
> В отличие от реализации в libreadline, функция из bash использует не
> setenv(), а внутреннюю функцию bash bind_variable(), которая устанавливает
> внутреннюю переменную shell, по умолчанию не экспортирующуюся в дочерние
> процессы; именно такое поведение можно наблюдать сейчас в zsh - в скриптах
> можно использовать переменные $LINES и $COLUMNS, но zsh не передаёт эти
> переменные другим процессам, если не выполнить export явно.
> 
> Однако в ALT пакеты bash и libreadline собраны таким образом, что при
> вызове sh_set_lines_and_columns() из функций libreadline всегда вызывается
> реализация этой функции внутри libreadline - перекрытие её реализацией из
> bash, предполагавшееся разработчиками, не выполняется.

Вот уж действительно peculiar design.

Видимо, придется превратить все функции sh_*, определенные в файле
readline/shell.c, в weak alias'ы, и экспортировать их из libreadline.
Другого способа реализовать задуманное автором перекрытие функций
при использовании динамической линковки с libreadline я не вижу.

http://git.altlinux.org/tasks/110622/


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про взаимодействие bash с внешней libreadline
  2013-12-17  0:48           ` [sisyphus] Про взаимодействие bash с внешней libreadline Dmitry V. Levin
@ 2013-12-17  9:20             ` Anton Gorlov
  2013-12-17  9:27               ` Anton Gorlov
    1 sibling, 1 reply; 19+ messages in thread
From: Anton Gorlov @ 2013-12-17  9:20 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

17.12.2013 04:48, Dmitry V. Levin пишет:
> Вот уж действительно peculiar design.
>
> Видимо, придется превратить все функции sh_*, определенные в файле
> readline/shell.c, в weak alias'ы, и экспортировать их из libreadline.
> Другого способа реализовать задуманное автором перекрытие функций
> при использовании динамической линковки с libreadline я не вижу.
>
> http://git.altlinux.org/tasks/110622/
В p7 можно тоже самое закинуть?


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про взаимодействие bash с внешней libreadline
  2013-12-17  9:20             ` Anton Gorlov
@ 2013-12-17  9:27               ` Anton Gorlov
  0 siblings, 0 replies; 19+ messages in thread
From: Anton Gorlov @ 2013-12-17  9:27 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

В смысле внести те же изменения в libreadline из p7

17.12.2013 13:20, Anton Gorlov пишет:
> 17.12.2013 04:48, Dmitry V. Levin пишет:
>> Вот уж действительно peculiar design.
>>
>> Видимо, придется превратить все функции sh_*, определенные в файле
>> readline/shell.c, в weak alias'ы, и экспортировать их из libreadline.
>> Другого способа реализовать задуманное автором перекрытие функций
>> при использовании динамической линковки с libreadline я не вижу.
>>
>> http://git.altlinux.org/tasks/110622/
> В p7 можно тоже самое закинуть?
> _______________________________________________
> Sisyphus mailing list
> Sisyphus@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про взаимодействие bash с внешней libreadline
  @ 2013-12-19 17:03               ` Alexei V. Mezin
  2013-12-19 19:36                 ` Anton Gorlov
  0 siblings, 1 reply; 19+ messages in thread
From: Alexei V. Mezin @ 2013-12-19 17:03 UTC (permalink / raw)
  To: sisyphus

19.12.2013 14:36, Anton Gorlov пишет:
> кстати не помогло. Взял libreadline5 из сизифа.. поставил онное.. в
> выводе export нету col/row а на растягивание консоли или уменьшение ни
> mc ни irssi не реагируют

Потому что проблемы libreadline никакого отношения к mc не имеют.Про 
irssi не знаю, надо смотреть в исходники.




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [sisyphus] Про взаимодействие bash с внешней libreadline
  2013-12-19 17:03               ` Alexei V. Mezin
@ 2013-12-19 19:36                 ` Anton Gorlov
  0 siblings, 0 replies; 19+ messages in thread
From: Anton Gorlov @ 2013-12-19 19:36 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

тем не менее в zsh проблем нет ни с mc ни с irssi
и начались проблемы с ними одновременно

19.12.2013 21:03, Alexei V. Mezin пишет:
> 19.12.2013 14:36, Anton Gorlov пишет:
>> кстати не помогло. Взял libreadline5 из сизифа.. поставил онное.. в
>> выводе export нету col/row а на растягивание консоли или уменьшение ни
>> mc ни irssi не реагируют
>
> Потому что проблемы libreadline никакого отношения к mc не имеют.Про 
> irssi не знаю, надо смотреть в исходники.
>
>
> _______________________________________________
> Sisyphus mailing list
> Sisyphus@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-12-19 19:36 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-14 21:42 [sisyphus] Про htop Alexei V. Mezin
2013-12-15 11:20 ` Alexei V. Mezin
2013-12-15 11:23   ` Serg A. Kotlyarov
2013-12-15 12:03     ` Anton Gorlov
2013-12-15 13:00     ` Alexei V. Mezin
2013-12-15 13:22       ` Alexei V. Mezin
2013-12-15 13:51         ` Alexey Borisenkov
2013-12-15 13:56           ` Alexey Borisenkov
2013-12-15 14:47         ` Serg A. Kotlyarov
2013-12-15 16:42         ` Sergey
2013-12-16  8:13           ` Sergey
2013-12-15 18:09         ` Michael Shigorin
2013-12-15 18:23         ` Anton Gorlov
2013-12-16 16:16         ` Sergey Vlasov
2013-12-17  0:48           ` [sisyphus] Про взаимодействие bash с внешней libreadline Dmitry V. Levin
2013-12-17  9:20             ` Anton Gorlov
2013-12-17  9:27               ` Anton Gorlov
2013-12-19 17:03               ` Alexei V. Mezin
2013-12-19 19:36                 ` Anton Gorlov

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git