summaryrefslogtreecommitdiff
path: root/string
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-08-07 23:50:59 +0000
committerUlrich Drepper <drepper@redhat.com>1996-08-07 23:50:59 +0000
commit233963756b2ef272f8876afec2a2bb629b425e0c (patch)
tree69b27a7182cd444f37d08d08a9f64f957cc64ef9 /string
parent80776ab80da30197fe7eb34d46f12b397b8ce1d4 (diff)
downloadglibc-233963756b2ef272f8876afec2a2bb629b425e0c.tar.gz
Thu Aug 8 01:41:43 1996 Ulrich Drepper <drepper@cygnus.com> * elf/Makefile: Undo change of Tue Aug 6 14:27:11 1996. * elf/dl-support: Add definition of `_dl_sysdep_read_whole_file'. Thu Aug 8 01:15:59 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/i386/fpu_control.h (_FPU_DEFAULT, _FPU_IEEE): Set to 0x137f to allow long double operations. Sun Aug 4 13:12:05 1996 Richard Henderson <rth@tamu.edu> Bug Fixes: * nss/nsswitch.c (_res): Remove redundant variable definition. The real one is in resolve/res_init.c, and having both prevents using -fno-common when building the shared library. * sunrpc/rpc_prot.c (_null_auth): Same. Original is in rpc_common.c. * sysdeps/unix/sysv/linux/alpha/brk.S: When PIC, define __curbrk as a .bss object not a COMMON symbol. * sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/bsd-setjmp.S: Must load $gp before referencing __sigsetjmp symbol. Retain LITUSE for same. Optimizations: * sysdeps/alpha/strlen.S: Rearrange first-word setup and thense the main loop for better dual-issue on EV5. Rearrange binary search to pipeline better and trim one instruction. Cosmetic Changes: * time/localtime.c (localtime_r): Move lock declaration back next to the comment where it was before the 960724 change. * INSTALL, manual/maint.texi: alpha-gnu-linux -> alpha-ANYTHING-linux. The second word is supposed to be the hardware manufacturer. * sysdeps/alpha/_mcount.S: Retain LITUSE for __mcount. * sysdeps/alpha/setjmp.S: Retain LITUSE for __sigsetjmp_aux. * sysdeps/alpha/divrem.h: More local labels, retain LITUSE for _mcount. * sysdeps/alpha/alphaev5/add_n.S, sysdeps/alpha/alphaev5/lshift.S, sysdeps/alpha/alphaev5/rshift.S, sysdeps/alpha/alphaev5/sub_n.S: Same cleanups as with EV4 GMP stuff. Tue Jul 25 03:30:56 1996 Richard Henderson <rth@tamu.edu> * sysdeps/unix/sysv/linux/Makefile [misc] (sysdep_routines): Add clone. * sysdeps/unix/sysv/linux/alpha/clone.S: New file. * sysdeps/unix/sysv/linux/i386/clone.S: New file. Sun Aug 4 00:12:41 1996 David Mosberger-Tang <davidm@azstarnet.com> * sysdeps/unix/sysv/linux/gnu/types.h: Declare __fd_mask as `unsigned long'. * misc/sys/select.h: Declare fd_mask as alias of __fd_mask. Sat Aug 3 16:20:02 1996 David Mosberger-Tang <davidm@azstarnet.com> * sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for Mikasa. * socket/sys/socket.h (send, __send, sendto): Declare buffer pointer as __const. * string/tester.c (main): Test stpncpy. * sysdeps/generic/stpncpy.c (__stpncpy): Fix so it works without segfault when called with an N that is not a multiple of four and src[N-1]=='\0'. * misc/syslog.c (LogType): New variable. (openlog): If connect() with SOCK_DGRAM fails with EPROTOTYPE, try again with SOCK_STREAM (the Linux syslogd uses a socket of the latter type). (vsyslog): When LogType==SOCK_STREAM, also send ASCII NUL terminator as a record-delimiter. If __send(LogFile) fails, call closelog() so logfile gets re-opened next time. Wed Aug 7 15:15:14 1996 Ulrich Drepper <drepper@cygnus.com> * elf/dl-open (_dl_open): Add cast to avoid warning. * manual/memory.texi: Improve some examples to give readers better advice: Use `stpcpy' instead of `strcat' if possible. * manual/string.texi: Document `strtok_r' and `strtok'. * sunrpc/Makefile: Move `+gccwarn' definition before inclusion of Makeconfig. [$(cross-compiling)=no]: Change test before making librpcsvc to this from $(cross-compile). Reported by Andreas Schwab. Tue Aug 6 14:27:11 1996 Ulrich Drepper <drepper@cygnus.com> * elf/Makefile (routines): Move dl-sysdep to here... (rtld-routines): ...from here. This should make static linking work again. * locale/setlocale.c: Add local variable `lock' and add code to `setlocale' to avoid simultaneous changing of global data. * catgets/catgets.c (catopen): Use `__strdup' instead of `strdup'. * catgets/open_catalog (__open_catalog): Use `__stpcpy', `__open', `__fstat', `__read', `__mmap', `__munmap' and `__close' instead of unprotected names.
Diffstat (limited to 'string')
-rw-r--r--string/argz.h78
-rw-r--r--string/envz.h26
2 files changed, 53 insertions, 51 deletions
diff --git a/string/argz.h b/string/argz.h
index 924dd46019..d9314e6bef 100644
--- a/string/argz.h
+++ b/string/argz.h
@@ -1,7 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
-
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-
Written by Miles Bader <miles@gnu.ai.mit.edu>
This program is free software; you can redistribute it and/or
@@ -19,8 +17,8 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __ARGZ_H__
-#define __ARGZ_H__ 1
+#define __ARGZ_H__ 1
#include <features.h>
#include <errno.h> /* Define error_t. */
@@ -32,47 +30,51 @@ __BEGIN_DECLS
/* Make a '\0' separated arg vector from a unix argv vector, returning it in
ARGZ, and the total length in LEN. If a memory allocation error occurs,
ENOMEM is returned, otherwise 0. The result can be destroyed using free. */
-error_t __argz_create __P ((char *const argv[], char **argz, size_t *len));
-error_t argz_create __P ((char *const argv[], char **argz, size_t *len));
+extern error_t __argz_create __P ((char *const __argv[], char **__argz,
+ size_t *__len));
+extern error_t argz_create __P ((char *const __argv[], char **__argz,
+ size_t *__len));
/* Make a '\0' separated arg vector from a SEP separated list in
STRING, returning it in ARGZ, and the total length in LEN. If a
memory allocation error occurs, ENOMEM is returned, otherwise 0.
The result can be destroyed using free. */
-error_t __argz_create_sep __P ((__const char *string, int sep,
- char **argz, size_t *len));
-error_t argz_create_sep __P ((__const char *string, int sep,
- char **argz, size_t *len));
+extern error_t __argz_create_sep __P ((__const char *__string, int __sep,
+ char **__argz, size_t *__len));
+extern error_t argz_create_sep __P ((__const char *__string, int __sep,
+ char **__argz, size_t *__len));
/* Returns the number of strings in ARGZ. */
-size_t __argz_count __P ((__const char *argz, size_t len));
-size_t argz_count __P ((__const char *argz, size_t len));
+extern size_t __argz_count __P ((__const char *__argz, size_t __len));
+extern size_t argz_count __P ((__const char *__argz, size_t __len));
/* Puts pointers to each string in ARGZ into ARGV, which must be large enough
to hold them all. */
-void __argz_extract __P ((char *argz, size_t len, char **argv));
-void argz_extract __P ((char *argz, size_t len, char **argv));
+extern void __argz_extract __P ((char *__argz, size_t __len, char **__argv));
+extern void argz_extract __P ((char *__argz, size_t __len, char **__argv));
/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
except the last into the character SEP. */
-void __argz_stringify __P ((char *argz, size_t len, int sep));
-void argz_stringify __P ((char *argz, size_t len, int sep));
+extern void __argz_stringify __P ((char *__argz, size_t __len, int __sep));
+extern void argz_stringify __P ((char *__argz, size_t __len, int __sep));
/* Append BUF, of length BUF_LEN to the argz vector in ARGZ & ARGZ_LEN. */
-error_t __argz_append __P ((char **argz, size_t *argz_len,
- __const char *buf, size_t buf_len));
-error_t argz_append __P ((char **argz, size_t *argz_len,
- __const char *buf, size_t buf_len));
+extern error_t __argz_append __P ((char **__argz, size_t *__argz_len,
+ __const char *__buf, size_t _buf_len));
+extern error_t argz_append __P ((char **__argz, size_t *__argz_len,
+ __const char *__buf, size_t __buf_len));
/* Append STR to the argz vector in ARGZ & ARGZ_LEN. */
-error_t __argz_add __P ((char **argz, size_t *argz_len,
- __const char *str));
-error_t argz_add __P ((char **argz, size_t *argz_len,
- __const char *str));
+extern error_t __argz_add __P ((char **__argz, size_t *__argz_len,
+ __const char *__str));
+extern error_t argz_add __P ((char **__argz, size_t *__argz_len,
+ __const char *__str));
/* Delete ENTRY from ARGZ & ARGZ_LEN, if it appears there. */
-void __argz_delete __P ((char **argz, size_t *argz_len, char *entry));
-void argz_delete __P ((char **argz, size_t *argz_len, char *entry));
+extern void __argz_delete __P ((char **__argz, size_t *__argz_len,
+ char *__entry));
+extern void argz_delete __P ((char **__argz, size_t *__argz_len,
+ char *__entry));
/* Insert ENTRY into ARGZ & ARGZ_LEN before BEFORE, which should be an
existing entry in ARGZ; if BEFORE is NULL, ENTRY is appended to the end.
@@ -80,10 +82,10 @@ void argz_delete __P ((char **argz, size_t *argz_len, char *entry));
ARGZ, ENTRY) will insert ENTRY at the beginning of ARGZ. If BEFORE is not
in ARGZ, EINVAL is returned, else if memory can't be allocated for the new
ARGZ, ENOMEM is returned, else 0. */
-error_t __argz_insert __P ((char **argz, size_t *argz_len,
- char *before, __const char *entry));
-error_t argz_insert __P ((char **argz, size_t *argz_len,
- char *before, __const char *entry));
+extern error_t __argz_insert __P ((char **__argz, size_t *__argz_len,
+ char *__before, __const char *__entry));
+extern error_t argz_insert __P ((char **__argz, size_t *__argz_len,
+ char *__before, __const char *__entry));
/* Returns the next entry in ARGZ & ARGZ_LEN after ENTRY, or NULL if there
are no more. If entry is NULL, then the first entry is returned. This
@@ -106,25 +108,25 @@ extern char *argz_next __P ((char *argz, size_t __argz_len,
#if defined (__OPTIMIZE__) && __GNUC__ >= 2
extern inline char *
-__argz_next (char *argz, size_t argz_len, const char *entry)
+__argz_next (char *__argz, size_t __argz_len, const char *__entry)
{
- if (entry)
+ if (__entry)
{
- if (entry < argz + argz_len)
- entry = strchr (entry, '\0') + 1;
+ if (__entry < __argz + __argz_len)
+ __entry = strchr (__entry, '\0') + 1;
- return entry >= argz + argz_len ? NULL : (char *) entry;
+ return __entry >= __argz + __argz_len ? NULL : (char *) __entry;
}
else
- if (argz_len > 0)
- return argz;
+ if (__argz_len > 0)
+ return __argz;
else
return 0;
}
extern inline char *
-argz_next (char *argz, size_t argz_len, const char *entry)
+argz_next (char *__argz, size_t __argz_len, const char *__entry)
{
- return __argz_next (argz, argz_len, entry);
+ return __argz_next (__argz, __argz_len, __entry);
}
#endif /* optimizing GCC2 */
diff --git a/string/envz.h b/string/envz.h
index fd8865711d..dfd5e8aeb6 100644
--- a/string/envz.h
+++ b/string/envz.h
@@ -1,7 +1,5 @@
/* Routines for dealing with '\0' separated environment vectors
-
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
-
Written by Miles Bader <miles@gnu.ai.mit.edu>
This program is free software; you can redistribute it and/or
@@ -19,7 +17,9 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __ENVZ_H__
-#define __ENVZ_H__
+
+#define __ENVZ_H__ 1
+#include <features.h>
#include <errno.h>
@@ -28,13 +28,13 @@
#include <argz.h>
/* Returns a pointer to the entry in ENVZ for NAME, or 0 if there is none. */
-char *envz_entry __P ((__const char *__envz, size_t __envz_len,
- __const char *__name));
+extern char *envz_entry __P ((__const char *__envz, size_t __envz_len,
+ __const char *__name));
/* Returns a pointer to the value portion of the entry in ENVZ for NAME, or 0
if there is none. */
-char *envz_get __P ((__const char *__envz, size_t __envz_len,
- __const char *__name));
+extern char *envz_get __P ((__const char *__envz, size_t __envz_len,
+ __const char *__name));
/* Adds an entry for NAME with value VALUE to ENVZ & ENVZ_LEN. If an entry
with the same name already exists in ENVZ, it is removed. If VALUE is
@@ -42,17 +42,17 @@ char *envz_get __P ((__const char *__envz, size_t __envz_len,
return NULL, although envz_entry will still return an entry; this is handy
because when merging with another envz, the null entry can override an
entry in the other one. Null entries can be removed with envz_strip (). */
-error_t envz_add __P ((char **__envz, size_t *__envz_len,
- __const char *__name, __const char *__value));
+extern error_t envz_add __P ((char **__envz, size_t *__envz_len,
+ __const char *__name, __const char *__value));
/* Adds each entry in ENVZ2 to ENVZ & ENVZ_LEN, as if with envz_add(). If
OVERRIDE is true, then values in ENVZ2 will supercede those with the same
name in ENV, otherwise not. */
-error_t envz_merge __P ((char **__envz, size_t *__envz_len,
- __const char *__envz2, size_t __envz2_len,
- int __override));
+extern error_t envz_merge __P ((char **__envz, size_t *__envz_len,
+ __const char *__envz2, size_t __envz2_len,
+ int __override));
/* Remove null entries. */
-void envz_strip __P ((char **__envz, size_t *__envz_len));
+extern void envz_strip __P ((char **__envz, size_t *__envz_len));
#endif /* __ENVZ_H__ */