rem: xputenv (concat ("HOME", "=", pw->pw_dir)); xputenv (concat ("SHELL", "=", shell));
add: xsetenv ("HOME", pw->pw_dir); xsetenv ("SHELL", shell);
context: modify_environment (const struct passwd *pw, const char *shell){  char *term;  if (simulate_login)    {      /* Leave TERM unchanged.  Set HOME, SHELL, USER, LOGNAME, PATH.         Unset all other environment variables.  */      term = getenv ("TERM");      environ = (char **) xmalloc (2 * sizeof (char *));      environ[0] = 0;      if (term)	xputenv (concat ("TERM", "=", term));      xputenv (concat ("HOME", "=", pw->pw_dir));      xputenv (concat ("SHELL", "=", shell));      xputenv (concat ("USER", "=", pw->pw_name));      xputenv (concat ("LOGNAME", "=", pw->pw_name));      xputenv (concat ("PATH", "=", (pw->pw_uid				     ? DEFAULT_LOGIN_PATH				     : DEFAULT_ROOT_LOGIN_PATH)));    }  else    {      /* Set HOME, SHELL, and if not becoming a super-user,	 USER and LOGNAME.  */      if (change_environment)	{	  xputenv (concat ("HOME", "=", pw->pw_dir));	  xputenv (concat ("SHELL", "=", shell));	  if (pw->pw_uid)	    {	      xputenv (concat ("USER", "=", pw->pw_name));	      xputenv (concat ("LOGNAME", "=", pw->pw_name));	    }	}    }}