evalstring(minusc);
evalstring(minusc, 0);
main(int argc, char **argv){	char *shinit;	volatile int state;	struct jmploc jmploc;	struct stackmark smark;#ifdef __GLIBC__	dash_errno = __errno_location();#endif#if PROFILE	monitor(4, etext, profile_buf, sizeof profile_buf, 50);#endif	state = 0;	if (unlikely(setjmp(jmploc.loc))) {		int e;		int s;		reset();		e = exception;		if (e == EXERROR)			exitstatus = 2;		s = state;		if (e == EXEXIT || s == 0 || iflag == 0 || shlvl)			exitshell();		if (e == EXINT#if ATTY		 && (! attyset() || equal(termval(), "emacs"))#endif		 ) {			out2c('\n');#ifdef FLUSHERR			flushout(out2);#endif		}		popstackmark(&smark);		FORCEINTON;				/* enable interrupts */		if (s == 1)			goto state1;		else if (s == 2)			goto state2;		else if (s == 3)			goto state3;		else			goto state4;	}	handler = &jmploc;#ifdef DEBUG	opentrace();	trputs("Shell args:  ");  trargs(argv);#endif	rootpid = getpid();	init();	setstackmark(&smark);	procargs(argc, argv);	if (argv[0] && argv[0][0] == '-') {		state = 1;		read_profile("/etc/profile");state1:		state = 2;		read_profile(".profile");	}state2:	state = 3;	if (#ifndef linux		getuid() == geteuid() && getgid() == getegid() &&#endif		iflag	) {		if ((shinit = lookupvar("ENV")) != NULL && *shinit != '\0') {			read_profile(shinit);		}	}state3:	state = 4;	if (minusc)		evalstring(minusc);	if (sflag || minusc == NULL) {state4:	/* XXX ??? - why isn't this before the "if" statement */		cmdloop(1);	}#if PROFILE	monitor(0);#endif#if GPROF	{		extern void _mcleanup(void);		_mcleanup();	}#endif	exitshell();	/* NOTREACHED */}