Mercurial > hg > octave-lojdl > gnulib-hg
changeset 9148:71cb6e488d75
New file: lib/idcache.h
* NEWS: Mention the addition.
* modules/idcache (Files): Add lib/idcache.h
* lib/idcache.c: Include "idcache.h".
Don't include <sys/types.h>.
Add a FIXME comment.
Move file-scoped "static" declarations to the top.
* lib/idcache.h: New file. Include <sys/types.h> here, instead.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sat, 18 Aug 2007 07:16:52 +0000 |
parents | d5c437e55b50 |
children | 3d5b34d43010 |
files | ChangeLog NEWS lib/idcache.c lib/idcache.h modules/idcache |
diffstat | 5 files changed, 40 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2007-08-18 Jim Meyering <jim@meyering.net> + + New file: lib/idcache.h + * NEWS: Mention the addition. + * modules/idcache (Files): Add lib/idcache.h + * lib/idcache.c: Include "idcache.h". + Don't include <sys/types.h>. + Add a FIXME comment. + Move file-scoped "static" declarations to the top. + * lib/idcache.h: New file. Include <sys/types.h> here, instead. + 2007-08-17 Bruno Haible <bruno@clisp.org> and Paul Eggert <eggert@cs.ucla.edu>
--- a/NEWS +++ b/NEWS @@ -6,6 +6,8 @@ Date Modules Changes +2007-08-18 idcache Now provides prototypes in "idcache.h". + 2007-08-10 xstrtol The STRTOL_FATAL_ERROR macro is removed. Use the new xstrtol_fatal function instead.
--- a/lib/idcache.c +++ b/lib/idcache.c @@ -1,6 +1,6 @@ /* idcache.c -- map user and group IDs, cached for speed - Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998, 2003, 2005, 2006 + Copyright (C) 1985, 1988, 1989, 1990, 1997, 1998, 2003, 2005-2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -19,10 +19,10 @@ #include <config.h> +#include "idcache.h" #include <stddef.h> #include <stdio.h> #include <string.h> -#include <sys/types.h> #include <pwd.h> #include <grp.h> @@ -45,11 +45,24 @@ char name[FLEXIBLE_ARRAY_MEMBER]; }; +/* FIXME: provide a function to free any malloc'd storage and reset lists, + so that an application can use code like this just before exiting: + #ifdef lint + idcache_clear (); + #endif +*/ + static struct userid *user_alist; /* Each entry on list is a user name for which the first lookup failed. */ static struct userid *nouser_alist; +/* Use the same struct as for userids. */ +static struct userid *group_alist; + +/* Each entry on list is a group name for which the first lookup failed. */ +static struct userid *nogroup_alist; + /* Translate UID to a login name, with cache, or NULL if unresolved. */ char * @@ -132,12 +145,6 @@ return NULL; } -/* Use the same struct as for userids. */ -static struct userid *group_alist; - -/* Each entry on list is a group name for which the first lookup failed. */ -static struct userid *nogroup_alist; - /* Translate GID to a group name, with cache, or NULL if unresolved. */ char *
new file mode 100644 --- /dev/null +++ b/lib/idcache.h @@ -0,0 +1,11 @@ +#ifndef IDCACHE_H +# define IDCACHE_H 1 + +# include <sys/types.h> + +extern char *getuser (uid_t uid); +extern char *getgroup (gid_t gid); +extern uid_t *getuidbyname (const char *user); +extern gid_t *getgidbyname (const char *group); + +#endif