[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Synchronous file IO in Lua? Shell escaping?
- From: Lorenzo Donati <lorenzodonatibz@...>
- Date: Tue, 20 Sep 2022 11:21:11 +0200
On 20/09/2022 10:44, Marvin Scholz wrote:
On 20 Sep 2022, at 9:47, Tomas Mudrunka wrote:
[snip]
os.execute({"sync", "filename"});
lua can detect that table was passed rather than string. and
bypass the shell in that case. That would prevent need to have
shell-specific (platform-specific) escaping in lua...
Unfortunately on Windows that is not so trivial to do:
https://learn.microsoft.com/de-de/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way
That article is really interesting. Thanks for the reference.
Command quoting for complex shell commands, especially if started from
within another program, has always been a PITA in Windows. See for
example how cmd.exe processes the command line for quotes (scroll down
to mid-page):
https://ss64.com/nt/syntax-cmd.html
That's also why I grew the habit of creating file names rigorously using
ASCII chars alone AND no spaces (using underscores instead). It's so
ingrained in me that I subconsciously consider a space just a command
separator and not a legal char for filenames.
That has saved me lots of grief sometimes, at the cost of being seen
somewhat as a weirdo by colleagues with no programming background (I do
that also with documents that don't have to be processed by tools, like
PDF mail attachments). :-)