(parse_user_spec) [__DJGPP__]: Make function know
authorJim Meyering <jim@meyering.net>
Tue, 10 Mar 1998 22:49:04 +0000 (22:49 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 10 Mar 1998 22:49:04 +0000 (22:49 +0000)
about any arbitrary user and group by pretending to be the user
and to belong to the group specified in `spec_arg' argument.

lib/userspec.c

index 2ceb76321ef501ef154943c699d1150467aa1609..bf51778d74e05d5cf75dc06a36c8682814340ac0 100644 (file)
@@ -153,6 +153,15 @@ parse_user_spec (spec_arg, uid, gid, username_arg, groupname_arg)
   if (u == NULL && g == NULL)
     return "can not omit both user and group";
 
+#ifdef __DJGPP__
+  /* Pretend that we are the user U whose group is G.  This makes
+     pwd and grp functions ``know'' about the UID and GID of these.  */
+  if (u && !is_number (u))
+    setenv ("USER", u, 1);
+  if (g && !is_number (g))
+    setenv ("GROUP", g, 1);
+#endif
+
   if (u != NULL)
     {
       pwd = getpwnam (u);