On 26/04/2024 18:49, Ihor Radchenko wrote:

+                        shell-file-name
...
+                        (list shell-command-switch
+                              (concat (file-local-name script-file)  " " 
cmdline))))

Max Nikulin writes:
Using `shell-command-switch' unconditionally may lead to executing
/bin/sh instead of shell specified by `shell-file-name' for script files
having no shebang, see

https://superuser.com/questions/502984/writing-shell-scripts-that-will-run-on-any-shell-using-multiple-shebang-lines

I conclude that your concern, while being valid, is a _different_ bug.
Thus, I do not see it as a blocker for my patch - my patch will fix the
*original bug reported on top of this thread*.

My concern is that your patch trying to fix one bug (I am not convinced it is an improvement despite it is a step toward consistency) introduces another one that is not currently present in the code.

(with-temp-file script-file
                (if shebang (insert shebang "\n")
                   (insert "#!" shell-file-name "\n"))
                (when padline (insert "\n"))
                (insert body))

This code has an issue. Interpretation of relative file names in shebangs varies across shells.

If you insist on parsing :cmdline by shell (I do not like it) then you may try

<shell-file-name> <shell-command-switch> '<shell-file-name> <script-file> <cmdline>'



Reply via email to