Thanks for the info. Based on what the differences described, it looks like #$ is what I want to use.
> In fact I'd be curious to learn the differences between it> and *load-file-name.*
The difference is the time at which the expansion takes place (either
read-time or eval-time).
E.g. try
(defun foo () (interactive) (message "%s" #$))
and
(defun foo () (interactive) (message "%s" load-file-name))
if you load a file containing one of the above lines and then you do
M-x foo RET you should see that the first returns the file name
(i.e. the value of load-file-name at the time the file was read) whereas
the other returns nil (the value of load-file-name at the time you
called `foo').
Stefan