| # rcmain: Plan 9 on Unix version |
| if(~ $#home 0) home=$HOME |
| if(~ $#home 0) home=/ |
| if(~ $#ifs 0) ifs=' |
| ' |
| switch($#prompt){ |
| case 0 |
| prompt=('% ' ' ') |
| case 1 |
| prompt=($prompt ' ') |
| } |
| if(~ $rcname ?.out ?.rc */?.rc */?.out) prompt=('broken! ' ' ') |
| if(flag p) path=(/bin /usr/bin) |
| if not{ |
| finit |
| # should be taken care of by rc now, but leave just in case |
| } |
| fn sigexit |
| if(! ~ $#cflag 0){ |
| if(flag l && test -r $home/lib/profile) . $home/lib/profile |
| status='' |
| eval $cflag |
| exit $status |
| } |
| if(flag i){ |
| if(~ $TERM 9term){ |
| fn cd { |
| # builtin cd $1 && flag i && awd |
| # is not sufficient when running in a subshell |
| # that is rc -e (like mk uses!) |
| if(builtin cd $1){ |
| if(flag i) $PLAN9/bin/9 awd || status='' |
| status='' |
| } |
| } |
| $PLAN9/bin/9 awd |
| } |
| if(flag l && test -r $home/lib/profile) . $home/lib/profile |
| status='' |
| if(! ~ $#* 0) . $* |
| . -i '/dev/stdin' |
| exit $status |
| } |
| if(flag l && test -r $home/lib/profile) . $home/lib/profile |
| if(~ $#* 0){ |
| . /dev/stdin |
| exit $status |
| } |
| status='' |
| . $* |
| exit $status |