* [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