diff options
| author | Eli Zaretskii | 2013-12-07 19:21:57 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2013-12-07 19:21:57 +0200 |
| commit | ce1d7b61f12dcc1b67535b68d9b0655b45fcadb6 (patch) | |
| tree | 881d03f4f486933482cd2e3851184cd3b172ef1b /lib | |
| parent | 6630df25238c5a1efa2bc6a0fa7889782e8c91b5 (diff) | |
| parent | fa6fa1a1773f255b5efbe52a743b017f4908a6cb (diff) | |
| download | emacs-ce1d7b61f12dcc1b67535b68d9b0655b45fcadb6.tar.gz emacs-ce1d7b61f12dcc1b67535b68d9b0655b45fcadb6.zip | |
Merge from trunk.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/getgroups.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/getgroups.c b/lib/getgroups.c index e71b5439c7e..482b24a788e 100644 --- a/lib/getgroups.c +++ b/lib/getgroups.c | |||
| @@ -43,6 +43,21 @@ getgroups (int n _GL_UNUSED, GETGROUPS_T *groups _GL_UNUSED) | |||
| 43 | # define GETGROUPS_ZERO_BUG 0 | 43 | # define GETGROUPS_ZERO_BUG 0 |
| 44 | # endif | 44 | # endif |
| 45 | 45 | ||
| 46 | /* On OS X 10.6 and later, use the usual getgroups, not the one | ||
| 47 | supplied when _DARWIN_C_SOURCE is defined. _DARWIN_C_SOURCE is | ||
| 48 | normally defined, since it means "conform to POSIX, but add | ||
| 49 | non-POSIX extensions even if that violates the POSIX namespace | ||
| 50 | rules", which is what we normally want. But with getgroups there | ||
| 51 | is an inconsistency, and _DARWIN_C_SOURCE means "change getgroups() | ||
| 52 | so that it no longer works right". The BUGS section of compat(5) | ||
| 53 | says that the behavior is dubious if you compile different sections | ||
| 54 | of a program with different _DARWIN_C_SOURCE settings, so fix only | ||
| 55 | the offending symbol. */ | ||
| 56 | # ifdef __APPLE__ | ||
| 57 | int posix_getgroups (int, gid_t []) __asm ("_getgroups"); | ||
| 58 | # define getgroups posix_getgroups | ||
| 59 | # endif | ||
| 60 | |||
| 46 | /* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, NULL) always | 61 | /* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, NULL) always |
| 47 | fails. On other systems, it returns the number of supplemental | 62 | fails. On other systems, it returns the number of supplemental |
| 48 | groups for the process. This function handles that special case | 63 | groups for the process. This function handles that special case |