# 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
