56 lines
1.7 KiB
56 lines
1.7 KiB
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
# |
|
# Filename: package/.../dietlibc/putenv.patch |
|
# Copyright (C) 2006 The T2 SDE Project |
|
# |
|
# More information can be found in the files COPYING and README. |
|
# |
|
# This patch file is dual-licensed. It is available under the license the |
|
# patched project is licensed under, as long as it is an OpenSource license |
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
# of the GNU General Public License as published by the Free Software |
|
# Foundation; either version 2 of the License, or (at your option) any later |
|
# version. |
|
# --- SDE-COPYRIGHT-NOTE-END --- |
|
|
|
For clearenv(). |
|
|
|
- Rene Rebe <rene@exactcode.de> |
|
|
|
--- ./lib/putenv.c 19 Feb 2006 15:38:28 -0000 1.9 |
|
+++ ./lib/putenv.c 22 Jun 2006 14:13:24 -0000 |
|
@@ -2,6 +2,8 @@ |
|
#include <string.h> |
|
#include <errno.h> |
|
|
|
+char **__origenv; /* also used by clearenv */ |
|
+ |
|
int putenv(const char *string) { |
|
size_t len; |
|
int envc; |
|
@@ -9,8 +11,7 @@ |
|
char *tmp; |
|
const char **ep; |
|
char **newenv; |
|
- static char **origenv; |
|
- if (!origenv) origenv=environ; |
|
+ if (!__origenv) __origenv=environ; |
|
if (!(tmp=strchr(string,'='))) { |
|
len=strlen(string); |
|
remove=1; |
|
@@ -29,11 +30,11 @@ |
|
++envc; |
|
} |
|
if (tmp) { |
|
- newenv = (char**) realloc(environ==origenv?0:environ, |
|
+ newenv = (char**) realloc(environ==__origenv?0:environ, |
|
(envc+2)*sizeof(char*)); |
|
if (!newenv) return -1; |
|
- if (envc && (environ==origenv)) { |
|
- memcpy(newenv,origenv,envc*sizeof(char*)); |
|
+ if (envc && (environ==__origenv)) { |
|
+ memcpy(newenv,__origenv,envc*sizeof(char*)); |
|
} |
|
newenv[envc]=(char*)string; |
|
newenv[envc+1]=0;
|
|
|