aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--include/string.h12
-rw-r--r--misc/syslog.c2
-rw-r--r--string/argz-stringify.c4
-rw-r--r--string/strndup.c6
5 files changed, 29 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index d8a44e959e..2e206aba55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2001-08-30 Ulrich Drepper <drepper@redhat.com>
+
+ * string/argz-stringify.c (__argz_stringify): Use __strnlen
+ instead of strnlen.
+ * include/string.h (strndupa): Redefine here to use __strnlen
+ instead of strnlen.
+ * string/strndup.c (__strndup): Use __strnlen not strnlen.
+
+ * misc/syslog.c (vsyslog): Fix typo in last change (connect ->
+ connected).
+
2001-08-30 Jakub Jelinek <jakub@redhat.com>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle
diff --git a/include/string.h b/include/string.h
index 7d268ecfb1..8dda2f1b7e 100644
--- a/include/string.h
+++ b/include/string.h
@@ -47,4 +47,16 @@ extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);
/* Now the real definitions. We do this here since some of the functions
above are defined as macros in the headers. */
#include <string/string.h>
+
+/* Alternative version which doesn't pollute glibc's namespace. */
+#undef strndupa
+#define strndupa(s, n) \
+ (__extension__ \
+ ({ \
+ __const char *__old = (s); \
+ size_t __len = __strnlen (__old, (n)); \
+ char *__new = (char *) __builtin_alloca (__len + 1); \
+ __new[__len] = '\0'; \
+ (char *) memcpy (__new, __old, __len); \
+ }))
#endif
diff --git a/misc/syslog.c b/misc/syslog.c
index 58f81996aa..a27eb2ab92 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -247,7 +247,7 @@ vsyslog(pri, fmt, ap)
openlog_internal(LogTag, LogStat | LOG_NDELAY, 0);
}
- if (!connect || __send(LogFile, buf, bufsize, 0) < 0)
+ if (!connected || __send(LogFile, buf, bufsize, 0) < 0)
{
closelog_internal (); /* attempt re-open next time */
/*
diff --git a/string/argz-stringify.c b/string/argz-stringify.c
index 364555fa8d..9e1c0c7da6 100644
--- a/string/argz-stringify.c
+++ b/string/argz-stringify.c
@@ -1,5 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
- Copyright (C) 1995,96,97,2000 Free Software Foundation, Inc.
+ Copyright (C) 1995,96,97,2000,2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.org>
@@ -29,7 +29,7 @@ __argz_stringify (char *argz, size_t len, int sep)
if (len > 0)
while (1)
{
- size_t part_len = strnlen (argz, len);
+ size_t part_len = __strnlen (argz, len);
argz += part_len;
len -= part_len;
if (len-- <= 1) /* includes final '\0' we want to stop at */
diff --git a/string/strndup.c b/string/strndup.c
index 0bb6080262..98f497c7ed 100644
--- a/string/strndup.c
+++ b/string/strndup.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -42,8 +42,8 @@ __strndup (s, n)
const char *s;
size_t n;
{
- size_t len = strnlen (s, n);
- char *new = malloc (len + 1);
+ size_t len = __strnlen (s, n);
+ char *new = (char *) malloc (len + 1);
if (new == NULL)
return NULL;