Michael Leibow, MichaelLe at belkin.com writes:
authorEric Andersen <andersen@codepoet.org>
Wed, 4 Aug 2004 19:19:10 +0000 (19:19 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 4 Aug 2004 19:19:10 +0000 (19:19 -0000)
commit12de6cf0d791bff627a6071519b71c19240aa1ce
treef8b59eaf6b8fcc9f0013de8da8debe5cb250db5b
parent8401eeafd654d447053036cdd1dfbca9a0e297a8
Michael Leibow, MichaelLe at belkin.com writes:

A question was posted a month ago by Mark Alamo to see if others had
problems with sourcing subscripts within msh.  We asked his firm to fix the
msh.c bug he described because we didn't have enough time to do it
ourselves.

When msh.c is executing a compound statement and there is a . command to
source another script file, msh.c will not execute the subscript until it's
completed executing the rest of the compound statement.

His example was this:

Echo "Start" ; . ./subA; echo "mid" ; . ./subB ; echo "end"

subA and subB execute AFTER end is printed in reverse order.  The same is
true if the sourced files are inside an if else fi, case esac, or any
compound statement.

Attached is a patch to msh.c.  It fixes the problem.  Cd to the root of your
busybox tree and execute "patch -p1 < msh.c.patch"

Unfortunately, I won't have more time to work on this so I hope that there
aren't any problems!

Michael Leibow
Senior Software Engineer

Belkin Corporation
shell/msh.c