"Fossies" - the Fresh Open Source Software Archive

Member "ghostview-1.5/getenv.c" (23 Jul 1991, 2023 Bytes) of package /linux/misc/old/ghost/gnu/ghostview/ghostview-1.5.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /*
    2  * Copyright (c) 1987 Regents of the University of California.
    3  * All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms are permitted
    6  * provided that: (1) source distributions retain this entire copyright
    7  * notice and comment, and (2) distributions including binaries display
    8  * the following acknowledgement:  ``This product includes software
    9  * developed by the University of California, Berkeley and its contributors''
   10  * in the documentation or other materials provided with the distribution
   11  * and in all advertising materials mentioning features or use of this
   12  * software. Neither the name of the University nor the names of its
   13  * contributors may be used to endorse or promote products derived
   14  * from this software without specific prior written permission.
   15  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
   16  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   18  */
   19 
   20 #if defined(LIBC_SCCS) && !defined(lint)
   21 static char sccsid[] = "@(#)getenv.c    5.7 (Berkeley) 6/1/90";
   22 #endif /* LIBC_SCCS and not lint */
   23 
   24 #include <stdio.h>
   25 
   26 /*
   27  * getenv --
   28  *  Returns ptr to value associated with name, if any, else NULL.
   29  */
   30 char *
   31 getenv(name)
   32     char *name;
   33 {
   34     int offset;
   35     char *_findenv();
   36 
   37     return(_findenv(name, &offset));
   38 }
   39 
   40 /*
   41  * _findenv --
   42  *  Returns pointer to value associated with name, if any, else NULL.
   43  *  Sets offset to be the offset of the name/value combination in the
   44  *  environmental array, for use by setenv(3) and unsetenv(3).
   45  *  Explicitly removes '=' in argument name.
   46  *
   47  *  This routine *should* be a static; don't use it.
   48  */
   49 char *
   50 _findenv(name, offset)
   51     register char *name;
   52     int *offset;
   53 {
   54     extern char **environ;
   55     register int len;
   56     register char **P, *C;
   57 
   58     for (C = name, len = 0; *C && *C != '='; ++C, ++len);
   59     for (P = environ; *P; ++P)
   60         if (!strncmp(*P, name, len))
   61             if (*(C = *P + len) == '=') {
   62                 *offset = P - environ;
   63                 return(++C);
   64             }
   65     return(NULL);
   66 }