Re: The Links/Links2/ELinks browsers are unusable on Debian GNU/Hurd
Fabienne Ducroquet <[email protected]> Tue, 18 Dec 2007 20:46:03 +0100
| Newsgroups | gmane.linux.debian.ports.hurd,gmane.comp.web.links,gmane.comp.web.links.list |
|---|---|
| Organization | ENS |
| Message-ID | <[email protected]> |
On Sat, 15 Dec 2007 22:36:21 +0200, Kalle Olavi Niemitalo <[email protected]> wrote: > This suggests ELinks has failed to disable echoing at the terminal. > Please verify this by looking up the tty that ELinks is using and > checking the modes with a command like this: > > stty -F /dev/pts/1 -a > > ELinks should have enabled and disabled tty modes as follows: > -icrnl -ixon -icanon -iexten -echo isig tostop. And also the > following, which may already be the default: -ignbrk -brkint > -parmrk -istrip -inlcr -igncr opost -echonl cs8 min=3D1 time=3D0. If I run ELinks on an xterm and then check the modes of that terminal I get: speed 38400 baud; rows 28; columns 84; intr =3D ^C; quit =3D <undef>; erase =3D ^?; kill =3D ^U; eof =3D ^D; eol= =3D <undef>; eol2 =3D <undef>; start =3D ^Q; stop =3D ^S; susp =3D ^Z; dsusp =3D ^Y; r= prnt =3D ^R; werase =3D ^W; lnext =3D ^V; flush =3D ^O; status =3D ^E; min =3D 1; time= =3D 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -i= xoff -iuclc -ixany imaxbel opost -olcuc onlcr isig icanon iexten echo echoe echok -echonl -noflsh -tostop -echoprt echo= ctl echoke They are not correctly set then ... > If ELinks fails to set the modes, put a breakpoint at > src/terminal/kbd.c (setraw) and see whether execution gets there > and whether the tcsetattr call succeeds and has the intended > effect. ... but the tcetattr call succeeds: when the breakpoint at setraw is reached, the output of stty -F /dev/ttyp1 -a is the same as above, but after the execution of the line 242: if (tcetattr(fd, TCSANOW, &t)) return -1; it is: speed 38400 baud; rows 28; columns 84; intr =3D ^C; quit =3D <undef>; erase =3D ^?; kill =3D ^U; eof =3D ^D; eol= =3D <undef>; eol2 =3D <undef>; start =3D ^Q; stop =3D ^S; susp =3D ^Z; dsusp =3D ^Y; r= prnt =3D ^R; werase =3D ^W; lnext =3D ^V; flush =3D ^O; status =3D ^E; min =3D 1; time= =3D 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon = -ixoff -iuclc -ixany imaxbel opost -olcuc onlcr isig -icanon -iexten -echo echoe echok -echonl -noflsh tostop -echoprt ec= hoctl echoke I've found that the function free_itrm is called later and it unsets these modes. It is called by select_loop line 305 while i =3D 7 and n =3D= 1. > ELinks catches SIGINT and translates it to an event internally. > It's odd though that it doesn't handle the event immediately. Indeed, I don't know if it catches it. > Please show the value of *ditrm, especially ditrm->blocked. Just before the execution of free_itrm: $2 =3D {in =3D {std =3D 0, sock =3D 1, ctl =3D 0, queue =3D {data =3D 0x8= 187e10 "", len =3D 0}},=20 out =3D {std =3D 1, sock =3D 7, queue =3D {data =3D 0x8187e80 "", len =3D= 0}}, timer =3D 0x0,=20 t =3D {c_iflag =3D 8454, c_oflag =3D 3, c_cflag =3D 2816, c_lflag =3D 1= 487,=20 c_cc =3D "\004=FF=FF\177\027\025\022\b\003=FF\032\031\021\023\026\017= \001\000\005\b",=20 __ispeed =3D 38400, __ospeed =3D 38400}, mouse_h =3D 0x0,=20 orig_title =3D 0x8192720 "xterm", blocked =3D 0, altscreen =3D 1, touch= ed_title =3D 1,=20 remote =3D 0} and after the execution of free_itrm ditrm=3D=3DNULL. > Does execution ever reach in_kbd? No. > It doesn't hang here, on Linux 2.6. Instead, in > connect_to_af_unix, connect fails with ECONNREFUSED, > and ELinks retries that a few times and gives up. That does not seem to work with Hurd/GNU-Mach, but that reminds me that sometimes when I start ELinks I have the error: ERROR at interlink.c:329: The call to connect() failed: 1073741873 (Cannot assign requested address) but I haven't found how to reproduce that. --=20 Fabienne --=20 To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]= .org