Tim Connors wrote:
I want to reset a running xemacs' idea of where my $HOME
directory is (I
want to temporarily work in a different filesystem with my main xemacs
process) so that when I open a file in ~/thesis/..., it goes to
<directory>/thesis/....
(setenv "HOME" ...) didn't do what I was hoping it would do (obviously it
would for subshells). Is there a way?
Not easily. XEmacs caches the result of getenv("HOME"), and there
isn't any way to un-cache it from lisp. Also, the variable which
stores the home directory isn't a lisp variable, so you can't just set
or bind it.
You could modify e.g. find-file-noselect (e.g. with defadvice) to
detect a filename beginning with "~/" and substitute your alternate
home directory.
You could even intercept expand-file-name if you want the change to
affect everything. However, that will get a bit messy, as
expand-file-name is a built-in function, so you can't use defadvice,
and if you want to override the definition, you'll need to store
(symbol-function 'expand-file-name) somewhere so that you can call it
from your wrapper.
--
Glynn Clements <glynn(a)gclements.plus.com>
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta