From 8a0efa53e44919bcf5ccb1d3353618a82afdf8bc Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 17 Feb 2000 19:39:52 +0000 Subject: import newlib-2000-02-17 snapshot --- newlib/libc/stdlib/getenv.c | 101 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 newlib/libc/stdlib/getenv.c (limited to 'newlib/libc/stdlib/getenv.c') diff --git a/newlib/libc/stdlib/getenv.c b/newlib/libc/stdlib/getenv.c new file mode 100644 index 000000000..c9f1ecd96 --- /dev/null +++ b/newlib/libc/stdlib/getenv.c @@ -0,0 +1,101 @@ +/* +FUNCTION +<>---look up environment variable + +INDEX + getenv +INDEX + environ + +ANSI_SYNOPSIS + #include + char *getenv(const char *<[name]>); + +TRAD_SYNOPSIS + #include + char *getenv(<[name]>) + char *<[name]>; + +DESCRIPTION +<> searches the list of environment variable names and values +(using the global pointer `<>') for a variable whose +name matches the string at <[name]>. If a variable name matches, +<> returns a pointer to the associated value. + +RETURNS +A pointer to the (string) value of the environment variable, or +<> if there is no such environment variable. + +PORTABILITY +<> is ANSI, but the rules for properly forming names of environment +variables vary from one system to another. + +<> requires a global pointer <>. +*/ + +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _REENT_ONLY + +#include +#include +#include + +extern char **environ; + +/* + * _findenv -- + * Returns pointer to value associated with name, if any, else NULL. + * Sets offset to be the offset of the name/value combination in the + * environmental array, for use by setenv(3) and unsetenv(3). + * Explicitly removes '=' in argument name. + * + * This routine *should* be a static; don't use it. + */ + +char * +_DEFUN (_findenv, (name, offset), + register _CONST char *name _AND + int *offset) +{ + return _findenv_r (_REENT, name, offset); +} + +/* + * getenv -- + * Returns ptr to value associated with name, if any, else NULL. + */ + +char * +_DEFUN (getenv, (name), + _CONST char *name) +{ + int offset; + char *_findenv_r (); + + return _findenv_r (_REENT, name, &offset); +} + +#endif /* !_REENT_ONLY */ -- cgit v1.2.3