> From: John Tytgat <[EMAIL PROTECTED]> > > The reason behind this change is that since SUL v1.11 what gets given > to system()/exec() is canonicalised first and in step 2) this results > in the full path to your 'cat' executable while in 1) the result is > still 'cat'.
The canonicalisation doesn't appear to be taking account of Run$Path. A file 'cat' in my library directory is ignored, but not one in the current directory. Is it just executables in the current directory that are canonicalised? > The reason why we're now doing the canonicalisation is that we want a > more reliable match what is given to exec() and the new process named > in exec() registering itself to SUL so that the UnixLib environment > from parent to child can be passed on. > > Both approaches in v1.10 and v1.11 have their weak points and what's > missing is that we would like at exec() time know exactly what will be > started when the underlying OS_CLI SWI gets called, i.e. a module > command, an system variable alias, an executable on a FS or perhaps > something sitting on the OS_CLI vector intercepting the call and doing > something fancy. What we have in SUL 1.11 isn't using the command order precedence that we expect on RISC OS i.e. module, aliases, Run$Path, so this could break some existing programs and scripts e.g. Perl and Awk scripts - which is how I came across the issue. Regards Duncan Moore _______________________________________________ GCCSDK mailing list [email protected] Bugzilla: http://www.riscos.info/bugzilla/index.cgi List Info: http://www.riscos.info/mailman/listinfo/gcc Main Page: http://www.riscos.info/index.php/GCCSDK
