summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/userspec.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/userspec.c b/lib/userspec.c
index 2ceb76321..bf51778d7 100644
--- a/lib/userspec.c
+++ b/lib/userspec.c
@@ -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);