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,3 +1,22 @@
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.
2000-07-25 Ulrich Drepper <drepper@redhat.com> 2000-07-25 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv_builtin.h: Add WCHAR_T alias. * iconv/gconv_builtin.h: Add WCHAR_T alias.

View File

@ -1,8 +1,13 @@
/^[ ]*\.end/ { need_end = 1 } /^[ ]*\.endp/ { need_endp = 1 }
/^[ ]*\.end/ { need_end = 1 }
/^[ ]*\.align/ { if($2 > max) max = $2; } /^[ ]*\.align/ { if($2 > max) max = $2; }
END { END {
if(need_end) if(need_endp)
{
print "#define END_INIT .endp _init";
print "#define END_FINI .endp _fini";
} else if(need_end)
{ {
print "#define END_INIT .end _init"; print "#define END_INIT .end _init";
print "#define END_FINI .end _fini"; print "#define END_FINI .end _fini";

View File

@ -29,6 +29,7 @@ main (void)
const char *s; const char *s;
setenv ("LANGUAGE", "existing-locale", 1); setenv ("LANGUAGE", "existing-locale", 1);
unsetenv ("OUTPUT_CHARSET");
textdomain ("translit"); textdomain ("translit");
bindtextdomain ("translit", OBJPFX "domaindir"); bindtextdomain ("translit", OBJPFX "domaindir");

View File

@ -20,16 +20,13 @@
/* Includes */ /* Includes */
#include <limits.h> #include <limits.h>
#include <resolv.h>
#include <setjmp.h> #include <setjmp.h>
#include <signal.h> #include <signal.h>
#include <unistd.h> #include <unistd.h>
#include <sys/types.h> #include <sys/types.h>
#include <bits/libc-tsd.h> /* for _LIBC_TSD_KEY_N */ #include <bits/libc-tsd.h> /* for _LIBC_TSD_KEY_N */
#define __RES_PTHREAD_INTERNAL
#include <resolv.h> /* for per-thread resolver context */
#include "pt-machine.h" #include "pt-machine.h"
#include "semaphore.h" #include "semaphore.h"
#include "../linuxthreads_db/thread_dbP.h" #include "../linuxthreads_db/thread_dbP.h"

View File

@ -30,6 +30,12 @@
#include "spinlock.h" #include "spinlock.h"
#include "restart.h" #include "restart.h"
/* We need the global/static resolver state here. */
#include <resolv.h>
#undef _res
extern struct __res_state _res;
/* Sanity check. */ /* Sanity check. */
#if __ASSUME_REALTIME_SIGNALS && !defined __SIGRTMIN #if __ASSUME_REALTIME_SIGNALS && !defined __SIGRTMIN
# error "This must not happen; new kernel assumed but old headers" # error "This must not happen; new kernel assumed but old headers"

View File

@ -1,5 +1,5 @@
/* Netgroup file parser in nss_files modules. /* 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. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -159,6 +159,24 @@ _nss_files_endnetgrent (struct __netgrent *result)
return NSS_STATUS_SUCCESS; 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 enum nss_status
_nss_netgroup_parseline (char **cursor, struct __netgrent *result, _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); memcpy (buffer, host, cp - host);
result->type = triple_val; result->type = triple_val;
buffer[(user - host) - 1] = '\0'; buffer[(user - host) - 1] = '\0'; /* Replace ',' with '\0'. */
result->val.triple.host = *host == ',' ? NULL : buffer; result->val.triple.host = strip_whitespace (buffer);
buffer[(domain - host) - 1] = '\0'; buffer[(domain - host) - 1] = '\0'; /* Replace ',' with '\0'. */
result->val.triple.user = *user == ',' ? NULL : buffer + (user - host); result->val.triple.user = strip_whitespace (buffer + (user - host));
buffer[(cp - host) - 1] = '\0'; buffer[(cp - host) - 1] = '\0'; /* Replace ')' with '\0'. */
result->val.triple.domain = result->val.triple.domain = strip_whitespace (buffer + (domain - host));
*domain == ')' ? NULL : buffer + (domain - host);
status = NSS_STATUS_SUCCESS; status = NSS_STATUS_SUCCESS;

View File

@ -87,19 +87,19 @@
typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error }
res_sendhookact; res_sendhookact;
typedef res_sendhookact (*res_send_qhook)__P((struct sockaddr_in * const *ns, typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *ns,
const u_char **query, const u_char **query,
int *querylen, int *querylen,
u_char *ans, u_char *ans,
int anssiz, int anssiz,
int *resplen)); int *resplen);
typedef res_sendhookact (*res_send_rhook)__P((const struct sockaddr_in *ns, typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *ns,
const u_char *query, const u_char *query,
int querylen, int querylen,
u_char *ans, u_char *ans,
int anssiz, int anssiz,
int *resplen)); int *resplen);
struct res_sym { struct res_sym {
int number; /* Identifying number, like T_MX */ int number; /* Identifying number, like T_MX */