OSDN Git Service

Use __environ instead of the GNU extension environ.
authorEric Andersen <andersen@codepoet.org>
Fri, 9 Feb 2001 23:06:54 +0000 (23:06 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 9 Feb 2001 23:06:54 +0000 (23:06 -0000)
 -Erik

libc/stdlib/getenv.c
libc/stdlib/putenv.c
libc/stdlib/setenv.c
libc/unistd/execl.c
libc/unistd/execlp.c
libc/unistd/execv.c
libc/unistd/execvp.c

index b5d4de9..ca50402 100644 (file)
@@ -4,10 +4,9 @@
  */
 #include <string.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include <malloc.h>
 
-extern char **environ;
-
 char *getenv(var)
 const char *var;
 {
@@ -16,10 +15,10 @@ const char *var;
 
        len = strlen(var);
 
-       if (!environ)
+       if (!__environ)
                return 0;
 
-       for (p = environ; *p; p++) {
+       for (p = __environ; *p; p++) {
                if (memcmp(var, *p, len) == 0 && (*p)[len] == '=')
                        return *p + len + 1;
        }
index 5b2ebcb..5f27e57 100644 (file)
@@ -4,10 +4,9 @@
  */
 #include <string.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include <malloc.h>
 
-extern char **environ;
-
 #define ADD_NUM 4
 
 int putenv(var)
@@ -25,14 +24,14 @@ const char *var;
        else
                len = r - var;
 
-       if (!environ) {
-               environ = (char **) malloc(ADD_NUM * sizeof(char *));
-               memset(environ, 0, sizeof(char *) * ADD_NUM);
+       if (!__environ) {
+               __environ = (char **) malloc(ADD_NUM * sizeof(char *));
+               memset(__environ, 0, sizeof(char *) * ADD_NUM);
 
                extras = ADD_NUM;
        }
 
-       for (p = environ; *p; p++) {
+       for (p = __environ; *p; p++) {
                if (memcmp(var, *p, len) == 0 && (*p)[len] == '=') {
                        while ((p[0] = p[1]))
                                p++;
@@ -43,20 +42,20 @@ const char *var;
        if (r == 0)
                return 0;
        if (extras <= 0) {                      /* Need more space */
-               d = malloc((p - environ + 1 + ADD_NUM) * sizeof(char *));
+               d = malloc((p - __environ + 1 + ADD_NUM) * sizeof(char *));
 
                if (d == 0)
                        return -1;
 
-               memcpy((void *) d, (void *) environ,
+               memcpy((void *) d, (void *) __environ,
 
-                          (p - environ + 1) * sizeof(char *));
-               p = d + (p - environ);
+                          (p - __environ + 1) * sizeof(char *));
+               p = d + (p - __environ);
                extras = ADD_NUM;
 
                if (mall_env)
                        free(mall_env);
-               environ = d;
+               __environ = d;
                mall_env = d;
        }
        *p++ = strdup((char *) var);
index 6628e4c..a027ced 100644 (file)
@@ -21,9 +21,6 @@ Cambridge, MA 02139, USA.  */
 #include <unistd.h>
 #include <errno.h>
 
-#if !defined(HAVE_GNU_LD) && !defined (__ELF__)
-#define        __environ       environ
-#endif
 
 #if defined(_REENTRENT) || defined(_THREAD_SAFE)
 # include <pthread.h>
index 531c2ee..a05867e 100644 (file)
@@ -3,8 +3,6 @@
 #include <unistd.h>
 #include <stdarg.h>
 
-extern char **environ;
-
 int execl(__const char *path, __const char *arg, ...)
 {
        const char *shortargv[16];
@@ -42,7 +40,7 @@ int execl(__const char *path, __const char *arg, ...)
 
        va_end(args);
 
-       i = execve(path, (char *const *) argv, environ);
+       i = execve(path, (char *const *) argv, __environ);
 
        if (argv != shortargv)
                free(argv);
index 50fb4a0..fef10d3 100644 (file)
@@ -3,7 +3,6 @@
 #include <unistd.h>
 #include <stdarg.h>
 
-extern char **environ;
 extern int execvep(const char *path, char *__const argv[], char *__const envp[]);
 
 int execlp(__const char *file, __const char *arg, ...)
@@ -43,7 +42,7 @@ int execlp(__const char *file, __const char *arg, ...)
 
        va_end(args);
 
-       i = execvep(file, (char *const *) argv, environ);
+       i = execvep(file, (char *const *) argv, __environ);
 
        if (argv != shortargv)
                free(argv);
index 6c8ba0d..486f537 100644 (file)
@@ -1,9 +1,6 @@
-
 #include <unistd.h>
 
-extern char **environ;
-
 int execv(__const char *path, char *__const argv[])
 {
-       return execve(path, argv, environ);
+       return execve(path, argv, __environ);
 }
index 9433033..e7e4960 100644 (file)
@@ -1,10 +1,8 @@
-
 #include <unistd.h>
 
-extern char **environ;
 extern int execvep(const char *path, char *__const argv[], char *__const envp[]);
 
 int execvp(__const char *path, char *__const argv[])
 {
-       return execvep(path, argv, environ);
+       return execvep(path, argv, __environ);
 }