Deleted Added
full compact
getenv.c (169138) getenv.c (169177)
1/*
2 * Copyright (c) 1987, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#if defined(LIBC_SCCS) && !defined(lint)
31static char sccsid[] = "@(#)getenv.c 8.1 (Berkeley) 6/4/93";
32#endif /* LIBC_SCCS and not lint */
33#include <sys/cdefs.h>
1/*
2 * Copyright (c) 1987, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#if defined(LIBC_SCCS) && !defined(lint)
31static char sccsid[] = "@(#)getenv.c 8.1 (Berkeley) 6/4/93";
32#endif /* LIBC_SCCS and not lint */
33#include <sys/cdefs.h>
34__FBSDID("$FreeBSD: head/lib/libc/stdlib/getenv.c 169138 2007-04-30 16:56:18Z ache $");
34__FBSDID("$FreeBSD: head/lib/libc/stdlib/getenv.c 169177 2007-05-01 16:02:44Z ache $");
35
36#include <stdlib.h>
37#include <stddef.h>
38#include <string.h>
39
40inline char *__findenv(const char *, int *);
41
42/*
43 * __findenv --
44 * Returns pointer to value associated with name, if any, else NULL.
45 * Sets offset to be the offset of the name/value combination in the
35
36#include <stdlib.h>
37#include <stddef.h>
38#include <string.h>
39
40inline char *__findenv(const char *, int *);
41
42/*
43 * __findenv --
44 * Returns pointer to value associated with name, if any, else NULL.
45 * Sets offset to be the offset of the name/value combination in the
46 * environmental array, for use by putenv(3), setenv(3) and unsetenv(3).
46 * environmental array, for use by setenv(3) and unsetenv(3).
47 * Explicitly removes '=' in argument name.
48 *
49 * This routine *should* be a static; don't use it.
50 */
51inline char *
52__findenv(name, offset)
53 const char *name;
54 int *offset;
55{
56 extern char **environ;
57 int len, i;
58 const char *np;
59 char **p, *cp;
60
47 * Explicitly removes '=' in argument name.
48 *
49 * This routine *should* be a static; don't use it.
50 */
51inline char *
52__findenv(name, offset)
53 const char *name;
54 int *offset;
55{
56 extern char **environ;
57 int len, i;
58 const char *np;
59 char **p, *cp;
60
61 if (environ == NULL)
61 if (name == NULL || environ == NULL)
62 return (NULL);
63 for (np = name; *np && *np != '='; ++np)
64 continue;
65 len = np - name;
66 for (p = environ; (cp = *p) != NULL; ++p) {
67 for (np = name, i = len; i && *cp; i--)
68 if (*cp++ != *np++)
69 break;

--- 10 unchanged lines hidden (view full) ---

80 * Returns ptr to value associated with name, if any, else NULL.
81 */
82char *
83getenv(name)
84 const char *name;
85{
86 int offset;
87
62 return (NULL);
63 for (np = name; *np && *np != '='; ++np)
64 continue;
65 len = np - name;
66 for (p = environ; (cp = *p) != NULL; ++p) {
67 for (np = name, i = len; i && *cp; i--)
68 if (*cp++ != *np++)
69 break;

--- 10 unchanged lines hidden (view full) ---

80 * Returns ptr to value associated with name, if any, else NULL.
81 */
82char *
83getenv(name)
84 const char *name;
85{
86 int offset;
87
88 if (name == NULL || !*name || strchr(name, '=') != NULL)
89 return (NULL);
90
91 return (__findenv(name, &offset));
92}
88 return (__findenv(name, &offset));
89}