On Tue, Dec 10, 2013 at 11:07 PM, Roland Mainz <roland.ma...@nrubsig.org> wrote: > The following testcase... > -- snip -- > redirect {basefd}<"." > touch "x5" > cd -@ "x5" > redirect {n}<"." > cd -f ${basefd} > (cd -f "$n" ; print "hello5" >"myxattr5") > /usr/bin/runat "x5" "cat myxattr5" > (cd -@ "x5" ; cat "myxattr5" ) > rm "x5" > -- snip -- > ... shows an issue with cd -f $fd in subshells in ast-ksh.2013-12-06 > on Solaris 11/B145/64bit... it seems it doesn't restore the cwd of the > parent shell level when the non-|fork()|'ing subshell terminates: > -- snip -- > $ ~/bin/ksh -x xattr_cd_fd002.sh > + command exec > + {basefd}< . > + touch x5 > + cd -@ x5 > + command exec > + {n}< . > + cd -f 12 > + cd -f 10 > + print hello5 > + 1> myxattr5 > + /usr/bin/runat x5 'cat myxattr5' > runat: cannot open x5: No such file or directory > + cd -@ x5 > xxx.sh[8]: cd: /dev/file/xattr@x5//@//: [Not a directory] > + cat myxattr5 > hello5 > + rm x5 > rm: x5: not found > -- snip -- > > Here is a reduced testcase which should work on all platforms: > -- snip -- > $ ~/bin/ksh -c 'mkdir -p f1 ; redirect {d}<f1 ; /bin/pwd ; (cd -f $d ; > /bin/pwd) ; /bin/pwd ; true ' > -- snip -- > > On Solaris 11/b145/AMD64/64bit and SuSE 12.3/AMD64/64bit it prints this... > -- snip -- > /home/test001/x1 > /home/test001/x1/f1 > /home/test001/x1/f1 > -- snip -- > > ... but AFAIK it should print: > -- snip -- > /home/test001/x1 > /home/test001/x1/f1 > /home/test001/x1 > -- snip --
Grumpf... trying again... now with Glenn's new/right email address (sorry) ... ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.ma...@nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 3992797 (;O/ \/ \O;) _______________________________________________ ast-developers mailing list ast-developers@lists.research.att.com http://lists.research.att.com/mailman/listinfo/ast-developers