+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>
/* 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
#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>
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 *
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 *