reset i [n]xterm

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Pon, 1 Mar 1999, 17:00:10 CET


Zauważyłem, że nie działa powyższe zestawienie. W strace wygląda to tak:

personality(0 /* PER_??? */)            = 0
getpid()                                = 8903
ioctl(2, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(2, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_STOP, {B9600 opost isig icanon echo ...}) = 0
brk(0)                                  = 0x8052a40
brk(0x80531d0)                          = 0x80531d0
brk(0x8054000)                          = 0x8054000
access("/home/kloczek/.terminfo/x/xterm", R_OK) = -1 ENOENT (No such file
or directory)
access("/usr/share/terminfo/x/xterm", R_OK) = 0
open("/usr/share/terminfo/x/xterm", O_RDONLY) = 4
read(4, "\32\0010\0\17\0\3\0d\1<\2", 12) = 12
read(4, "xterm|xterm terminal emulator (X"..., 48) = 48
read(4, "\0\1\0\0\1\0\0\0\1\0\0\0\0\1\1", 15) = 15
read(4, "\0", 1)                        = 1
read(4, "P\0\10\0\30\0", 6)             = 6
read(4, "\377\377\0\0\2\0\4\0\25\0\32\0\""..., 712) = 712
read(4, "\7\0\r\0\33[%i%p1%d;%p2%dr\0\33["..., 572) = 572
close(4)                                = 0
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=48, ws_col=110, ws_xpixel=1009,
ws_ypixel=724}) = 0
ioctl(2, TIOCGWINSZ, {ws_row=48, ws_col=110, ws_xpixel=1009,
ws_ypixel=724}) = 0
ioctl(2, SNDCTL_TMR_STOP, {B9600 -opost isig icanon echo ...}) = 0
write(2, "\33", 1)                      = 1
write(2, "7", 1)                        = 1
write(2, "\33", 1)                      = 1
write(2, "[", 1)                        = 1
write(2, "r", 1)                        = 1
write(2, "\33", 1)                      = 1
write(2, "[", 1)                        = 1
write(2, "m", 1)                        = 1
write(2, "\33", 1)                      = 1
write(2, "[", 1)                        = 1
write(2, "?", 1)                        = 1
write(2, "7", 1)                        = 1
write(2, "h", 1)                        = 1
write(2, "\33", 1)                      = 1
write(2, "[", 1)                        = 1
write(2, "?", 1)                        = 1
write(2, "1", 1)                        = 1
write(2, ";", 1)                        = 1
write(2, "3", 1)                        = 1
write(2, ";", 1)                        = 1
write(2, "4", 1)                        = 1
write(2, ";", 1)                        = 1
write(2, "6", 1)                        = 1
write(2, "l", 1)                        = 1
write(2, "\33", 1)                      = 1
write(2, "[", 1)                        = 1
write(2, "4", 1)                        = 1
write(2, "l", 1)                        = 1
write(2, "\33", 1)                      = 1
write(2, "8", 1)                        = 1
write(2, "\33", 1)                      = 1
write(2, ">", 1)                        = 1
write(2, "\r", 1)                       = 1
nanosleep(0xbffff930, 0, 0x400568f8, 0x3e8, 0) = 0
ioctl(2, SNDCTL_TMR_STOP, {B9600 opost isig icanon echo ...}) = 0
write(2, "Erase is ", 9)                = 9
write(2, "delete.\n", 8)                = 8
write(2, "Kill is ", 8)                 = 8
write(2, "control-U (^U).\n", 16)       = 16
write(2, "Interrupt is ", 13)           = 13
write(2, "control-C (^C).\n", 16)       = 16
_exit(0)                                = ?

Niby jest wykonywany ioctl() i coś tam jest zapisywane. Przypuszczam, że
coś może być nie tak z terminfo albo coś innego. Efekt jest taki, że nie
jest przywracany pierwotny status terminala po jego "skrzaczeniu" się.
Czy u innych wystepuje może coś podobnego ?

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



Więcej informacji o liście dyskusyjnej pld-devel-pl