X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=platform%2Fexample%2Ffunctions%2Fstdlib%2Fgetenv.c;fp=platform%2Fexample%2Ffunctions%2Fstdlib%2Fgetenv.c;h=aa2817aef661981236cd2a49d895e9d633e2f0c7;hb=3f6094115e79a45413f08361b68b71eb08da306e;hp=0000000000000000000000000000000000000000;hpb=6fbd6cb9dd668081a85f27d4aedae604bd03c6d8;p=pdclib diff --git a/platform/example/functions/stdlib/getenv.c b/platform/example/functions/stdlib/getenv.c new file mode 100644 index 0000000..aa2817a --- /dev/null +++ b/platform/example/functions/stdlib/getenv.c @@ -0,0 +1,48 @@ +/* $Id$ */ + +/* Release $Name$ */ + +/* getenv( const char * ) + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +/* This is an example implementation of getenv() fit for use with POSIX kernels. +*/ + +#include +#include + +#ifndef REGTEST + +extern char * * environ; + +char * getenv( const char * name ) +{ + size_t len = strlen( name ); + size_t index = 0; + while ( environ[ index ] != NULL ) + { + if ( strncmp( environ[ index ], name, len ) == 0 ) + { + return environ[ index ] + len + 1; + } + index++; + } + return NULL; +} + +#endif + +#ifdef TEST +#include <_PDCLIB_test.h> + +int main() +{ + BEGIN_TESTS; + TESTCASE( strcmp( getenv( "SHELL" ), "/bin/sh" ) == 0 ); + return TEST_RESULTS; +} + +#endif