+
+char **environ;
+
+homeis(hp)
+ char *hp;
+{
+ register char *cp, *dp;
+ register char **ep = environ;
+ static char homebuf[128];
+
+ while (dp = *ep++) {
+ for (cp = "HOME"; *cp == *dp && *cp; cp++, dp++)
+ continue;
+ if (*cp == 0 && (*dp == '=' || *dp == 0)) {
+ strcpy(homebuf, "HOME=");
+ strcat(homebuf, hp);
+ *--ep = homebuf;
+ return;
+ }
+ }
+}
+
+shellis(sp)
+ char *sp;
+{
+ register char *cp, *dp;
+ register char **ep = environ;
+ static char shellbuf[128];
+
+ while (dp = *ep++) {
+ for (cp = "SHELL"; *cp == *dp && *cp; cp++, dp++)
+ continue;
+ if (*cp == 0 && (*dp == '=' || *dp == 0)) {
+ strcpy(shellbuf, "SHELL=");
+ strcat(shellbuf, sp);
+ *--ep = shellbuf;
+ return;
+ }
+ }
+}