obscurity <obscurity(a)obscure.org> writes:
> Do you have a real name by chance?
I do (of course), but I do not use it online. For long, complicated, and
completely off-topic reasons :)
Well, feel free to mail me seperately. It makes refering to you just a
tad more complicated. At least your mail doens't bounce :-). Anyway
back to the real issues.
> Could you try without it.
Your wish is my command. Just killed gpm and gave it another go,
I meant compiling without GPM support. However I think this already
confirms my hunch it is related to GPM. I think I know how to fix the
crash (could you try to use the (untested) patch at the end?). But
to fix the real problem is harder. We simply should not close the GPM
connection when there are still linux consoles open. This would
require some kind of reference counting or scanning all the consoles
for open connection
time when I exited from gnuclient on the second virtual console,
xemacs
exited (without crashing) on the original virtual console. Not having used
gnuserv/gnuclient before, I'm not sure if it's supposed to do this (it would
make more sense to me to just exit the gnuclient and leave the host xemacs
running), but at least it doesn't dump core.
No it is not supposed to do that. I think it is another bug, unrelated
to this. I cannot reproduce that however. Can you with "xemacs -vanilla"?
Jan
P.S. Here is the patch.
Index: event-Xt.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs-20/src/event-Xt.c,v
retrieving revision 1.42
diff -u -u -r1.42 event-Xt.c
--- event-Xt.c 1998/07/28 06:25:18 1.42
+++ event-Xt.c 1999/04/07 01:57:53
@@ -2035,7 +2035,7 @@
/* On a stream device (ie: noninteractive), bad things can happen. */
if (EQ (CONSOLE_TYPE (con), Qtty)) {
mousefd = CONSOLE_TTY_MOUSE_FD (con);
- if (mousefd >= 0) {
+ if (mousefd >= 0 && filedesc_to_what_closure[mousefd] ) {
unselect_filedesc (mousefd);
}
}
This code reflects this comment in event-Xt somewhat above it.
mousefd = CONSOLE_TTY_MOUSE_FD (con);
/* We check filedesc_to_what_closure[fd] here because if you run
** XEmacs from a TTY, it will fire up GPM, select the mouse fd, then
** if you run gnuattach to connect to another TTY, it will fire up
** GPM again, and try to reselect the mouse fd. GPM uses the same
** fd for every connection apparently, and select_filedesc will
** fail its assertion if we try to select it twice.
*/
--
Jan Vroonhof
http://www.math.ethz.ch/~vroonhof/
Mathematik, vroonhof @ math.ethz.ch
HG E16, ETH-Zentrum, Tel: +41-1-6325456/25154
Raemistrasse 101, CH-8092 Zuerich. Fax: +41-1-6321085