[ESS] tcsh, bash, and the inferior R process

Erik Iverson iverson at biostat.wisc.edu
Wed Oct 17 22:38:47 CEST 2007


Sebastian -

Thanks for the tips.  I just discovered the problem, and this has 
nothing really to do with ESS, but more with my *very* specific setup. 
However, I've spent far too long figuring this out not to write it down 
at this point :).

To briefly summarize,

I have a version of XEmacs compiled in my home directory to get XFT 
support in Linux.  When I was using tcsh, I had an environment variable 
called EMACSPACKAGEPATH set in my .cshrc.  This told XEmacs to look for 
packages somewhere other than my home directory, because I didn't 
download the sumo tarball.

So under tcsh, XEmacs would look for the comint package on one of our 
servers, and use that version.

Under bash, when launching XEmacs, EMACSPACKAGEPATH was not being found. 
  I finally traced this back to my .bashrc file not being sourced when 
logging into KDE.  In my .Xclients file, I simply source it there, and I 
suppose this ultimately was the fix to my problem.

So because EMACSPACKAGEDIR wasn't working with bash initially, I 
downloaded the sumo tarball and used comint from there.  I've just now 
found that there was a patch submitted to the XEmacs version earlier 
this year found here:

http://calypso.tux.org/pipermail/xemacs-patches/2007-May/000477.html

"This patch reverts work over the last year on upgrading comint and
shell." says the patch author.  Specifically, in comint.el, there was 
prior to the patch,

(defcustom comint-append-old-input t
   "*If nil, old text selected by \\[comint-send-input] is re-sent 
immediately.
If non-nil, the old text is appended to the end of the buffer,
and a prompting message is printed.

This flag does not affect the behavior of \\[comint-send-input]
after the process output mark."
   :type 'boolean
   :group 'comint)

Now, had I been looking at the comint.el source that XEmacs was using 
when firing off from tcsh, it would have been obvious why this was 
happening.  They removed this variable and functionality from comint in 
the patch, which was the newer version the bash was picking up.

So really, this had nothing to do with switching shells per se, but 
rather environment variables and which version of comint was being used, 
which was my inkling all along, and it was yours, too.  In hindsight, 
that seems obvious, but it took awhile to see that.  My hidden 
assumption to myself was that comint didn't change, and that of course 
turned out to be incorrect.

I recall reading never to set EMACSPACKAGEPATH somewhere.  I suppose I 
will heed those warnings from now on.  On the plus side, I learned a lot 
more about how ESS and comint work together, and about Elisp in general :).

Thanks for all the help,
Erik



Sebastian P. Luque wrote:
> On Mon, 15 Oct 2007 14:38:01 -0500,
> "Sebastian P. Luque" <spluque at gmail.com> wrote:
> 
> [...]
> 
>> I've encountered this before, but can't remember how I dealt with it
>> now.  I'll try to dig that out and get back later.
> 
> I couldn't find that info because I think my distribution (Debian) or KDE
> dealt with that before I actually got to it.  Here's the thread in
> emacs.help that taught me these things:
> 
> http://groups.google.ca/group/gnu.emacs.help/browse_thread/thread/3dbe9a57ce6881b5/9021aa3ba9609e8c?hl=en&lnk=st&q=luque+emacs+shell+time+stamp#9021aa3ba9609e8c
> 
>




More information about the ESS-help mailing list