From 3d8b65f73c10745c9f36f374a840d93ce0d6c21b Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 3 Mar 2004 07:57:33 +0000 Subject: Don't include "posixver.h". (parse_user_spec): Fall back on USER.GROUP parsing regardless of POSIX version, as POSIX 1003.1-2001 allows that behavior as a compatible extension. Simplify code by removing a boolean int that was always nonzero if a string was nonnull. --- lib/userspec.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'lib') diff --git a/lib/userspec.c b/lib/userspec.c index 4ae083f47..474fb6062 100644 --- a/lib/userspec.c +++ b/lib/userspec.c @@ -1,5 +1,5 @@ /* userspec.c -- Parse a user and group string. - Copyright (C) 1989-1992, 1997-1998, 2000, 2002-2003 Free Software + 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 @@ -42,7 +42,6 @@ #endif #include "userspec.h" -#include "posixver.h" #include "xalloc.h" #include "xstrtol.h" @@ -158,7 +157,6 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid, struct group *grp; char *g, *u, *separator; char *groupname; - int maybe_retry = 0; char *dot = NULL; error_msg = NULL; @@ -171,17 +169,14 @@ 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 && posix2_version () < 200112) + if (separator == NULL) { dot = strchr (spec, '.'); /* If there's no colon but there is a `.', then first look up the whole spec, in case it's an OWNER name that includes a dot. If that fails, then we'll try again, but interpreting the `.' - as a separator. */ - /* FIXME: accepting `.' as the separator is contrary to POSIX. - someday we should drop support for this. */ - if (dot) - maybe_retry = 1; + as a separator. This is a compatible extension to POSIX, since + the POSIX-required behavior is always tried first. */ } retry: @@ -311,10 +306,10 @@ parse_user_spec (const char *spec_arg, uid_t *uid, gid_t *gid, } } - if (error_msg && maybe_retry) + if (error_msg && dot) { - maybe_retry = 0; separator = dot; + dot = NULL; error_msg = NULL; goto retry; } -- cgit v1.2.3-70-g09d2