1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-08 17:42:12 +03:00
2000-07-25  Mark Kettenis  <kettenis@gnu.org>

	* nss/nss_files/files-netgrp.c (strip_whitespace): New function.
	(_nss_netgroup_parseline): Use strip_whitespace to strip off any
	leading and trailing spaces from host, user and domain name.

2000-07-25  Jes Sorensen  <jes@linuxcare.com>

	* csu/defs.awk: Add support for need_endp.

2000-07-25  Mark Kettenis  <kettenis@gnu.org>

	* resolv/resolv.h: Remove __P from res_send_qhook and
	res_send_rhook typedefs.

2000-07-25  Bruno Haible  <haible@clisp.cons.org>

	* intl/tst-translit.c (main): Unset OUTPUT_CHARSET.
This commit is contained in:
Ulrich Drepper
2000-07-25 22:19:16 +00:00
parent 16093625a6
commit 3452aba811
7 changed files with 71 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
/* Netgroup file parser in nss_files modules.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -159,6 +159,24 @@ _nss_files_endnetgrent (struct __netgrent *result)
return NSS_STATUS_SUCCESS;
}
static char *
strip_whitespace (char *str)
{
char *cp = str;
/* Skip leading spaces. */
while (isspace (*cp))
cp++;
str = cp;
while (*cp != '\0' && ! isspace(*cp))
cp++;
/* Null-terminate, stripping off any trailing spaces. */
*cp = '\0';
return *str == '\0' ? NULL : str;
}
enum nss_status
_nss_netgroup_parseline (char **cursor, struct __netgrent *result,
@@ -235,15 +253,14 @@ _nss_netgroup_parseline (char **cursor, struct __netgrent *result,
memcpy (buffer, host, cp - host);
result->type = triple_val;
buffer[(user - host) - 1] = '\0';
result->val.triple.host = *host == ',' ? NULL : buffer;
buffer[(user - host) - 1] = '\0'; /* Replace ',' with '\0'. */
result->val.triple.host = strip_whitespace (buffer);
buffer[(domain - host) - 1] = '\0';
result->val.triple.user = *user == ',' ? NULL : buffer + (user - host);
buffer[(domain - host) - 1] = '\0'; /* Replace ',' with '\0'. */
result->val.triple.user = strip_whitespace (buffer + (user - host));
buffer[(cp - host) - 1] = '\0';
result->val.triple.domain =
*domain == ')' ? NULL : buffer + (domain - host);
buffer[(cp - host) - 1] = '\0'; /* Replace ')' with '\0'. */
result->val.triple.domain = strip_whitespace (buffer + (domain - host));
status = NSS_STATUS_SUCCESS;