bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#68074: eshell sudo/doas does not work for aliases


From: Alfonso Sanchez-Beato
Subject: bug#68074: eshell sudo/doas does not work for aliases
Date: Fri, 26 Jan 2024 23:53:00 +0000 (UTC)

En jueves, 25 de enero de 2024, 02:43:46 GMT, Jim Porter 
<jporterbugs@gmail.com> escribió: 


On 1/11/2024 1:15 PM, Jim Porter wrote:

>> I've been meaning to look at this in detail, but haven't had time. My 
>> gut feeling though is that we shouldn't have a special case in this code 
>> for when the alias starts with "cd". I'll have to do some testing with 
>> aliases and sudo in order to have a more-helpful answer though.
>> 
>> At a guess, I think a better place to add code for this is likely in 
>> em-tramp.el.


> After letting this percolate in my brain for a few weeks, the answer 
> revealed itself to me: the functions in "em-tramp.el" shouldn't throw 
> 'eshell-external', they should throw 'eshell-replace-command'. That 
> allows for a two-step command replacement in this case. First, 
> 'eshell/sudo' (or 'eshell/doas') will do its replacement. Then, Eshell 
> will evaluate that and call the inner command, which will do another 
> replacement to expand the alias.

> Alfonso, does the attached patch work for you? If so, I'll merge it to 
> master.

Unfortunately that does not seem to be the case, I see an error saying "Invalid 
function" after applying on top of current master:

$ which cp
cp is an alias, defined as "*cp $*"
$ touch foo
$ eshell/sudo cp foo /
Invalid function: "foo"
[1] $




reply via email to

[Prev in Thread] Current Thread [Next in Thread]