/* GNU's read utmp module.
- Copyright (C) 1992-2000 Free Software Foundation, Inc.
+ Copyright (C) 1992-2001, 2003 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <stdio.h>
+#include <sys/types.h>
#include <sys/stat.h>
-#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
-# include <string.h>
-#else
-# include <strings.h>
-#endif /* STDC_HEADERS || HAVE_STRING_H */
+#include <string.h>
+#include <stdlib.h>
#include "readutmp.h"
-
-char *xmalloc ();
-char *realloc ();
+#include "unlocked-io.h"
+#include "xalloc.h"
/* Copy UT->ut_name into storage obtained from malloc. Then remove any
trailing spaces from the copy, NUL terminate it, and return the copy. */
the number of entries, and return zero. If there is any error,
return non-zero and don't modify the parameters. */
-#if HAVE_UTMPNAME
+#ifdef UTMP_NAME_FUNCTION
int
read_utmp (const char *filename, int *n_entries, STRUCT_UTMP **utmp_buf)
fstat (fileno (utmp), &file_stats);
size = file_stats.st_size;
if (size > 0)
- buf = (STRUCT_UTMP *) xmalloc (size);
+ buf = xmalloc (size);
else
{
fclose (utmp);
return 0;
}
-#endif /* HAVE_UTMPNAME */
+#endif