2BSD/upgrade/libretro/getenv.c

Compare this file to the similar file:
Show the results in this format:

#include <retrofit.h>
#include <pwd.h>

getenv(name)
	char *name;
{
	register int ttyno;
	static char hgot;

top:
	if (strcmp(name, "TERM") == 0) {
		if (!hgot)
			goto getit;
		return (hsgettype());
	}
	if (strcmp(name, "HOME") == 0) {
		if (getuid() == 0)
			return ("/");
		if (!hgot)
			goto getit;
		return (hgethome());
	}
	return (0);
getit:
	ttyno = ttyn(2);
	if (ttyno < 0 || ttyno == 'x' || hget(ttyno) < 0) {
		register struct passwd *p = getpwuid(getuid());
		extern struct htmp {
			int	uid;
			char	home[28];
			int	ttytype;
		} hentry;
		strcpy(hentry.home, p->pw_dir);
		hentry.ttytype = 'xx';
	}
	hgot = 1;
	goto top;
}