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

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

bug#71655: Eshell external commands do not work under GNU Emacs for Wind


From: Jim Porter
Subject: bug#71655: Eshell external commands do not work under GNU Emacs for Windows
Date: Wed, 19 Jun 2024 12:40:12 -0700

On 6/19/2024 12:22 PM, Eli Zaretskii wrote:
Jim, why does Eshell want to read the executable file winget.exe?  If
that's because it wants to find the signature by which it will deduce
the interpreter, then doing that for zero-size files is not useful,
and should probably be skipped?

It's trying to find a shebang, which I guess(?) is so that Eshell can support shebangs on MS-Windows. What's strange is that 'file-readable-p' is non-nil, but 'insert-file-contents-literally' fails.

As far as I understand things, winget.exe isn't exactly a zero-byte file. They're reparse points that point to a real executable living in some locked-down folder, so they're like something symlinks I think?

It seems like there's a small bug somewhere in 'insert-file-contents-literally'. On MS-Windows, "cat C:\Users\...\winget.exe" outputs the (binary) contents of winget.exe just fine (this is using the MSYS2 build of cat). So I think the real winget.exe file truly is readable. I don't know why 'insert-file-contents-literally' has a problem with it though.

It'd be nice to figure out why that fails and fix it at the source, but on the other hand, maybe this only comes up when trying to read these .exe files? A more-targeted fix could be to just ignore errors in 'eshell-script-interpreter': if we can't insert the file, assume it doesn't have a shebang and try to run it like a normal program (which works fine in Emacs).





reply via email to

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