# 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(~ $termprog 9term || ~ $termprog win){
		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
