Fix typo "it it" in changelog entry.
[gnulib.git] / lib / userspec.c
index 80ace3e..8cf6239 100644 (file)
@@ -1,5 +1,6 @@
 /* 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
@@ -23,6 +24,9 @@
 
 #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"
 
@@ -117,10 +112,6 @@ struct group *getgrgid ();
    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. */
 
@@ -179,7 +170,7 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid,
   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