* uinfo.cc (cygheap_user::ontherange): Potentially set HOME from existing
homepath and homedrive cygheap_user fields (not currently used yet). Set HOME to / if no other alternative. (cygheap_user::test_uid): Simplify.
This commit is contained in:
		
							parent
							
								
									fad1c3a8e0
								
							
						
					
					
						commit
						8297bda005
					
				| 
						 | 
				
			
			@ -1,3 +1,10 @@
 | 
			
		|||
2002-06-30  Christopher Faylor  <cgf@redhat.com>
 | 
			
		||||
 | 
			
		||||
	* uinfo.cc (cygheap_user::ontherange): Potentially set HOME from
 | 
			
		||||
	existing homepath and homedrive cygheap_user fields (not currently used
 | 
			
		||||
	yet).  Set HOME to / if no other alternative.
 | 
			
		||||
	(cygheap_user::test_uid): Simplify.
 | 
			
		||||
 | 
			
		||||
2002-06-30  Christopher Faylor  <cgf@redhat.com>
 | 
			
		||||
 | 
			
		||||
	* environ.cc (parse_options): Use setenv to potentially replace CYGWIN
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,10 +204,14 @@ cygheap_user::ontherange (homebodies what, struct passwd *pw)
 | 
			
		|||
  if (what == CH_HOME)
 | 
			
		||||
    {
 | 
			
		||||
      char *p;
 | 
			
		||||
      if ((p = getenv ("HOMEDRIVE")))
 | 
			
		||||
      if (homedrive)
 | 
			
		||||
	newhomedrive = homedrive;
 | 
			
		||||
      else if ((p = getenv ("HOMEDRIVE")))
 | 
			
		||||
	newhomedrive = p;
 | 
			
		||||
 | 
			
		||||
      if ((p = getenv ("HOMEPATH")))
 | 
			
		||||
      if (homepath)
 | 
			
		||||
	newhomepath = homepath;
 | 
			
		||||
      else if ((p = getenv ("HOMEPATH")))
 | 
			
		||||
	newhomepath = p;
 | 
			
		||||
 | 
			
		||||
      if ((p = getenv ("HOME")))
 | 
			
		||||
| 
						 | 
				
			
			@ -218,18 +222,20 @@ cygheap_user::ontherange (homebodies what, struct passwd *pw)
 | 
			
		|||
	    pw = getpwnam (name ());
 | 
			
		||||
	  if (pw && pw->pw_dir && *pw->pw_dir)
 | 
			
		||||
	    {
 | 
			
		||||
	      setenv ("HOME", pw->pw_dir, 1);
 | 
			
		||||
	      debug_printf ("Set HOME (from /etc/passwd) to %s", pw->pw_dir);
 | 
			
		||||
	      setenv ("HOME", pw->pw_dir, 1);
 | 
			
		||||
	    }
 | 
			
		||||
	  else if (newhomedrive && newhomepath)
 | 
			
		||||
	  else if (!newhomedrive || !newhomepath)
 | 
			
		||||
	    setenv ("HOME", "/", 1);
 | 
			
		||||
	  else
 | 
			
		||||
	    {
 | 
			
		||||
	      char home[MAX_PATH];
 | 
			
		||||
	      char buf[MAX_PATH + 1];
 | 
			
		||||
	      strcpy (buf, newhomedrive);
 | 
			
		||||
	      strcat (buf, newhomepath);
 | 
			
		||||
	      cygwin_conv_to_full_posix_path (buf, home);
 | 
			
		||||
	      setenv ("HOME", home, 1);
 | 
			
		||||
	      debug_printf ("Set HOME (from HOMEDRIVE/HOMEPATH) to %s", home);
 | 
			
		||||
	      setenv ("HOME", home, 1);
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -285,11 +291,11 @@ cygheap_user::ontherange (homebodies what, struct passwd *pw)
 | 
			
		|||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (newhomedrive)
 | 
			
		||||
  if (newhomedrive && newhomedrive != homedrive)
 | 
			
		||||
    cfree_and_set (homedrive, (newhomedrive == almost_null)
 | 
			
		||||
		   	      ? almost_null : cstrdup (newhomedrive));
 | 
			
		||||
 | 
			
		||||
  if (newhomepath)
 | 
			
		||||
  if (newhomepath && newhomepath != homepath)
 | 
			
		||||
    cfree_and_set (homepath, cstrdup (newhomepath));
 | 
			
		||||
 | 
			
		||||
  switch (what)
 | 
			
		||||
| 
						 | 
				
			
			@ -306,9 +312,7 @@ cygheap_user::ontherange (homebodies what, struct passwd *pw)
 | 
			
		|||
const char *
 | 
			
		||||
cygheap_user::test_uid (char *&what, const char *name, size_t namelen)
 | 
			
		||||
{
 | 
			
		||||
  if (what)
 | 
			
		||||
    return what;
 | 
			
		||||
  if (!issetuid ())
 | 
			
		||||
  if (!what && !issetuid ())
 | 
			
		||||
    what = getwinenveq (name, namelen, HEAP_STR);
 | 
			
		||||
  return what;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue