>>>> "David" == David M Karr
<david.karr(a)cacheflow.com> writes:
David> I'm got Win2k on my desktop, and using ReflectionX to
David> connect to a Linux system. I can run both "rxvt" and
David> "XEmacs" through ReflectionX so they show up correctly on
David> my desktop. However, in the rxvt shell, I can echo the
David> value of $DISPLAY, and it shows up correctly with the IP
David> address of my PC. However, if I echo $DISPLAY in a shell
David> buffer in XEmacs, or even through '(getenv "DISPLAY")' in
David> my *scratch* buffer, it just shows blank or "nil". Both
David> "rxvt" and "XEmacs" are being run with a
"-display"
David> command-line parameter.
It is not at all clear to me that rxvt's behavior is not a bug. It
certainly would be in XEmacs, since XEmacs can (and regularly does in
my usage) display frames on many X devices. What do you do if DISPLAY
is set and -display is different? To handle this correctly on XEmacs
what you would need to do is put code to query the frame in which the
shell buffer appears and add the DISPLAY variable to the environment
of the command. See `comint-input-filter-functions'. If you know
that you will never invoke X programs from that shell buffer on the
"wrong" display, you can do
;; untested but should work
(add-to-hook 'shell-mode-hook
#'(send-invisible (concat "export DISPLAY=" (device-connection))))
The other solution is to start with
DISPLAY=... xemacs ...
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."