Subject: Re: bug#72857: 30.0.90; emacs 30: eshell-execute-file DESTINATION

From: Jim Porter <[email-masked]>
Date: Wed, 28 Aug 2024 13:51:13 -0700

On 8/28/2024 10:45 AM, Christopher Howard wrote:
> - Am I supposed to be able to pass in the name of a buffer as a string? E.g., "*test*" or "#<*test*>". This does not generate an error, but it does not generate output in the buffer.

That writes to a file, not a buffer. (Though it seems this regressed in 
Emacs 31.)

> - Am I supposed to have control over the type of redirection (e.g., overwrite vs. append)? It is not obvious how I specify this.

No. If you need that, you can use 'eshell-command' (or 
'eshell-command-result') and run the command "source myscript.esh > 
target", or something like it.

> - Manual (in conjuction with the Redirection section) seems to imply that I should be able specify a symbol as a destination. Passing in either foo or 'foo does not work, however. In both cases it tries to use the value of foo as a redirection target.

Probably a bug. An additional quote is probably required somewhere in 
Eshell.

> - Manual implies I should be able to pass in a virtual target. Passing in "/dev/kill" and "/dev/clip" work as expected. If I try to pass in "/dev/null", I get error "Debugger entered--Lisp error: (no-catch eshell-null-device t)", but perhaps I just need to turn the debugger off. "/dev/eshell" doesn't seem to do anything, though I'm not sure exactly what is suppose to happen.

Probably also a bug, though I'm not sure where it would be since I'd 
expect that would Just Work(TM).