Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
/* Routines for dealing with '\0' separated environment vectors
|
2024-01-01 18:12:26 +00:00
|
|
|
Copyright (C) 1995-2024 Free Software Foundation, Inc.
|
2001-07-06 04:58:11 +00:00
|
|
|
This file is part of the GNU C Library.
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
1996-11-15 04:08:00 +00:00
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
2001-07-06 04:58:11 +00:00
|
|
|
modify it under the terms of the GNU Lesser General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2.1 of the License, or (at your option) any later version.
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
1996-11-15 04:08:00 +00:00
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
2001-07-06 04:58:11 +00:00
|
|
|
Lesser General Public License for more details.
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-09 23:18:22 +00:00
|
|
|
License along with the GNU C Library; if not, see
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 05:40:42 +00:00
|
|
|
<https://www.gnu.org/licenses/>. */
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
1997-06-21 02:59:26 +00:00
|
|
|
#ifndef _ENVZ_H
|
|
|
|
#define _ENVZ_H 1
|
Update.
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.
1996-08-07 23:50:59 +00:00
|
|
|
|
|
|
|
#include <features.h>
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
/* Envz's are argz's too, and should be created etc., using the same
|
|
|
|
routines. */
|
|
|
|
#include <argz.h>
|
|
|
|
|
1996-11-15 04:08:00 +00:00
|
|
|
__BEGIN_DECLS
|
|
|
|
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
/* Returns a pointer to the entry in ENVZ for NAME, or 0 if there is none. */
|
2012-01-08 04:57:22 +00:00
|
|
|
extern char *envz_entry (const char *__restrict __envz, size_t __envz_len,
|
|
|
|
const char *__restrict __name)
|
2000-05-17 12:19:16 +00:00
|
|
|
__THROW __attribute_pure__;
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
|
|
|
/* Returns a pointer to the value portion of the entry in ENVZ for NAME, or 0
|
|
|
|
if there is none. */
|
2012-01-08 04:57:22 +00:00
|
|
|
extern char *envz_get (const char *__restrict __envz, size_t __envz_len,
|
|
|
|
const char *__restrict __name)
|
2000-05-17 12:19:16 +00:00
|
|
|
__THROW __attribute_pure__;
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
|
|
|
/* 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
|
|
|
|
NULL, then the new entry will a special null one, for which envz_get will
|
|
|
|
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 (). */
|
1999-10-09 21:56:43 +00:00
|
|
|
extern error_t envz_add (char **__restrict __envz,
|
|
|
|
size_t *__restrict __envz_len,
|
2012-01-08 04:57:22 +00:00
|
|
|
const char *__restrict __name,
|
|
|
|
const char *__restrict __value) __THROW;
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
|
|
|
/* Adds each entry in ENVZ2 to ENVZ & ENVZ_LEN, as if with envz_add(). If
|
1996-12-20 01:39:50 +00:00
|
|
|
OVERRIDE is true, then values in ENVZ2 will supersede those with the same
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
name in ENV, otherwise not. */
|
1999-10-09 21:56:43 +00:00
|
|
|
extern error_t envz_merge (char **__restrict __envz,
|
|
|
|
size_t *__restrict __envz_len,
|
2012-01-08 04:57:22 +00:00
|
|
|
const char *__restrict __envz2,
|
1999-10-09 21:56:43 +00:00
|
|
|
size_t __envz2_len, int __override) __THROW;
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
1998-12-01 11:25:26 +00:00
|
|
|
/* Remove the entry for NAME from ENVZ & ENVZ_LEN, if any. */
|
1999-10-09 21:56:43 +00:00
|
|
|
extern void envz_remove (char **__restrict __envz,
|
|
|
|
size_t *__restrict __envz_len,
|
2012-01-08 04:57:22 +00:00
|
|
|
const char *__restrict __name) __THROW;
|
1998-12-01 11:25:26 +00:00
|
|
|
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
/* Remove null entries. */
|
1999-10-09 21:56:43 +00:00
|
|
|
extern void envz_strip (char **__restrict __envz,
|
|
|
|
size_t *__restrict __envz_len) __THROW;
|
Mon Apr 29 00:11:59 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* errno.h [!__error_t_defined] (error_t): New type.
* sysdeps/mach/hurd/errnos.awk: #define __error_t_defined after the
typedef in errnos.h.
* string/envz.c, string/envz.h: New files.
* string/argz.h, string/argz-append.c, string/argz-count.c,
string/argz-create.c, string/argz-delete.c, string/argz-extract.c,
string/argz-insert.c, string/argz-stringify.c: New files.
* string/Makefile (routines): Add envz, argz-*.
(headers): Add argz.h, envz.h.
1996-04-29 05:21:53 +00:00
|
|
|
|
1996-11-15 04:08:00 +00:00
|
|
|
__END_DECLS
|
|
|
|
|
1997-06-21 02:59:26 +00:00
|
|
|
#endif /* envz.h */
|