Ok, as I understand I need to take a look at UserPreferences::expand_argv and UserPreferences::is_APL_script
correct? Juergen Sauermann <juergen.sauerm...@t-online.de> writes: > Hi, > > yes, most of this trouble is caused by how execve() works, which is quite > different > on different platforms. And it happens before apl is being called so I cant > do much > about it. > > Sometimes it helps to start apl with -f so that the interpreter knows where > to fetch > its input, like: > > #!/usr/local/bin/apl -f /home/eedjsa/tmp/script --script -- > > /// Jürgen > > On 02/04/2017 02:00 PM, Alexey Veretennikov wrote: > > Hi Juergen, > > Something is apparently strange on OSX(?). With the latest version > when I run the same script below I get the silent input without > echoing, no output like below, and I have to blindly type )off manually > to exit interpreter. > > > Juergen Sauermann <juergen.sauerm...@t-online.de> writes: > > Hi Alexey, > > I have changed the handling of command line options, SVN 877. > > It now works like this: > > script: > > #!/usr/local/bin/apl --script -- > > )copy 5 FILE_IO FIO∆errno > 8⎕CR ⎕ARG > )off > > output: > > eedjsa@server66:~/tmp$ ./script scriptarg > DUMPED 2017-01-28 22:57:44 (GMT+1) > ┌→──────────────────────────────────────────────────────────┐ > > │┌→─────────────────┐ ┌→───────┐ ┌→─┐ ┌→───────┐ > ┌→────────┐│ > ││/usr/local/bin/apl│ │--script│ │--│ │./script│ │scriptarg││ > │└──────────────────┘ └────────┘ └──┘ └────────┘ > └─────────┘│ > └∊──────────────────────────────────────────────────────────┘ > > > /// Jürgen > > On 02/03/2017 11:06 PM, Alexey Veretennikov wrote: > > Hi, > > Yes ./script -- myarg works. > > The problem is why I have to repeat -- in command line since I've > already specified it in the first line of the script, as it is specified > in documentiation. > > Basically I would like to pass my arguments to the script without > mentioning "--" in the command line. > > Juergen Sauermann <juergen.sauerm...@t-online.de> writes: > > Hi Alexey, > > how about this: > > *eedjsa@server66:~/tmp$ ./script -- arg** > **DUMPED 2017-01-28 22:57:44 (GMT+1)** > **┌→────────────────────────────────────────────────────┐** > **│┌→─────────────────┐ ┌→───────┐ ┌→───────┐ ┌→─┐ ┌→──┐│** > **││/usr/local/bin/apl│ │--script│ │./script│ │--│ │arg││** > **│└──────────────────┘ └────────┘ └────────┘ └──┘ └───┘│** > **└∊────────────────────────────────────────────────────┘* > > There is no point (and it does not work) to put the arguments in the first > line > of the script, > because if the script itself knows them then the rest of the script can use > them > as well. > > *⎕ARG *is what is passed to the script, not what is passed to the interpreter > mentioned in the script. > See also *man execve*. > > /// Jürgen > > > On 02/03/2017 08:29 PM, Alexey Veretennikov wrote: > > Given the following script: > ------------------------------------------ > #!apl --script -- > )copy 5 FILE_IO FIO∆errno > 8⎕CR ⎕ARG > )off > ------------------------------------------ > when I try to run it like > > ./script.apl myarg > > I get the error: > > /script.apl myarg > unknown option 'myarg' > ... > > This happens on 833 and 1.5 and on both linux and osx. > > In INFO file it explicitely states: > > "Using ’—-’ as last argument on the first line of the script file > prevents any of the options given to the script to be interpreted as APL > options; all such options are passed to the application via ⎕ARG." > > But it is not happening. > > > > > > > > -- Br, /Alexey