Hi,
there’s a behaviour concerning how context handles forced quotes
in command line arguments that I do not understand.
··· ···················································
for i=-1,#environment.rawarguments do
print(i, environment.rawarguments[i], environment.originalarguments[i])
end
·· ···················································
Now run this as ‘test.lua’ with mtxrun:
# mtxrun --script test.lua \"simple\" \"more complex\"
Here I get the following output:
··· ····················································
-1 texlua texlua
0 /home/kokytos/context/tex/texmf-linux/bin/mtxrun /home/kokytos/context/tex/texmf-linux/bin/mtxrun
1 --script --script
2 test.lua test.lua
3 "simple" simple"
4 "more more complex
5 complex" nil
·· ····················································
Number 3 indicates that a quoted argument is fully unquoted iff
it gets parsed into multiple arguments. It also leads to
‘Unbalanced quotes in argument ./simple"’ when used with the main
‘context’ script. It would make sense if you expect only args
containing spaces to be explicitly quoted, though.
I would propose a patch like the one I attached but I’m having
difficulties testing locally modified copies of the core Lua
files, so it remains untested.
Philipp