/* userspec.c -- Parse a user and group string.
- Copyright (C) 1989-1992, 1997-1998, 2000, 2002-2003 Free Software Foundation, Inc.
+ Copyright (C) 1989-1992, 1997-1998, 2000, 2002-2004 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 <alloca.h>
+/* Specification. */
+#include "userspec.h"
+
#include <stdio.h>
#include <sys/types.h>
#include <pwd.h>
#endif
#include <limits.h>
-
-#if HAVE_STRING_H
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if STDC_HEADERS
-# include <stdlib.h>
-#endif
+#include <stdlib.h>
+#include <string.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
+#include "strdup.h"
+#include "posixver.h"
#include "xalloc.h"
#include "xstrtol.h"
of `digit' even when the host does not conform to POSIX. */
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
-#ifndef strdup
-char *strdup ();
-#endif
-
/* Return nonzero if STR represents an unsigned decimal integer,
otherwise return 0. */
separator = strchr (spec, ':');
/* If there is no colon, then see if there's a `.'. */
- if (separator == NULL)
+ if (separator == NULL && posix2_version () < 200112)
{
dot = strchr (spec, '.');
/* If there's no colon but there is a `.', then first look up the