>>>> "Jan" == Jan Vroonhof
<vroonhof(a)math.ethz.ch> writes:
> I do not have enough programming experience to debug and fix
> the problem myself.
Jan> I am afraid the only way to solve this is running XEmacs (and
Jan> libgpm) under a debugger and look at what happens. Even
Jan> without much pogramming experience that should be doable.
I can try. I'll write on my todo board.
> I assume you work with current gpm (1.14) otherwise all bets
> are off.
Jan> Karl, did you? Debian hamm seems to have 1.13.
I downloaded and tried 1.14, and the bug is still present.
> If there is indeed a conflict, it is not a problem with gpm: we
> really do it extra-extra clean way, calling back the original
> handler if there is any. A conflict is possible (likely)
> however if the app opens the gpm connection first and _then_
> installs its own SIGTSTP handler, overwriting ours. If that is
> the problem, merely changing the order of initialisations
> should help.
Jan> As far as grep can see XEmacs does not install its own
Jan> SIGTSTP handler at all. Basically, all it does is send
Jan> SIGTSTP to its whole program group if M-x suspend-emacs is
Jan> called.
That's what I thought.
> unless you can/want to modify Emacs internals, _and_ can find
> the one very special place in in the Emacs code where to call
> GPM_DRAWPOINTER from, the redisplay will clobber the pointer
> again.
Jan> That will be at the end of the redisplay code, that should
Jan> not be too difficult.
Uhhhmmm... where's that? I began trying to read the XEmacs sources,
and found myself in way over my head. Now I can understand much of
`siod', and have some reading underway that should help me understand
more... At some point I'll try and read XEmacs again.
> find that one special place, so I had the pointer visible
> through drags. I am almost sure that piece of code is
> different for XEmacs.
Jan> I don't think it is that different.
> That said, I once added gpm support to GNU Emacs the dirty way
> (the way XEmacs seems to do it now, judging by your info)
Jan> I find the current way gpm is implemented (114 lines of C
Jan> code, including comments and whitespace) in XEmacs very
Jan> clean. It does not involve running another subprocess from
Jan> lisp nor does it involve manufacturing events from lisp
Jan> code. The latter is only possible as of
Jan> 21.0 anyway and is very tricky to get right.
I wonder if doing it with a subprocess would work better though...