> Empty arguments don't work. I didn't expect that it's so much to add, and
One reason might also be that i simplified the make_argv() routine for testing purposes. Originally, it also handles empty arguments by inserting a NULL: entry at the beginning of ARGV.
> it's a toswin-thing anyway.
The argument passing from tw-call to toswin2 should be reworked anyway. Currently, they are put into a shared memory area separated by newlines.That will fail if the arguments already contained newlines.
> Please tell me if it works for you.
When i use -E (pass via SW_ENVIRON) it does not seem to work, but that might be toswin's fault.
What also looks strange in your test program is
> pid = shel_write(...)
> waitpid(pid, ...)
shel_write should return the AES-id of the callee, not a MiNT pid. Also, since the spawned process is a child of AES, the caller can't do a waitpid() on it, even if he translates the id using appl_find().