diff options
| author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-24 02:13:59 +0000 | 
|---|---|---|
| committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-24 02:13:59 +0000 | 
| commit | a6d58bb6052ac8cb01805a48c4ad2f129126116f (patch) | |
| tree | dd867a099fcbb263a8009a9fb22695b87855dad6 /src/kvilib/system/kvi_env.cpp | |
| download | kvirc-a6d58bb6052ac8cb01805a48c4ad2f129126116f.tar.gz kvirc-a6d58bb6052ac8cb01805a48c4ad2f129126116f.zip  | |
Added KDE3 version of kvirc
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kvirc@1095341 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/kvilib/system/kvi_env.cpp')
| -rw-r--r-- | src/kvilib/system/kvi_env.cpp | 89 | 
1 files changed, 89 insertions, 0 deletions
diff --git a/src/kvilib/system/kvi_env.cpp b/src/kvilib/system/kvi_env.cpp new file mode 100644 index 0000000..1497632 --- /dev/null +++ b/src/kvilib/system/kvi_env.cpp @@ -0,0 +1,89 @@ +//============================================================================= +// +//   File : kvi_env.cpp +//   Creation date : Sat May 05 2002 02:15:21 CEST by Szymon Stefanek +// +//   This file is part of the KVirc irc client distribution +//   Copyright (C) 2002 Szymon Stefanek (pragma@kvirc.net) +// +//   This program is FREE software. You can redistribute it and/or +//   modify it 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 opinion) any later version. +// +//   This program is distributed in the HOPE that it will be USEFUL, +//   but WITHOUT ANY WARRANTY; without even the implied warranty of +//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +//   See the GNU General Public License for more details. +// +//   You should have received a copy of the GNU General Public License +//   along with this program. If not, write to the Free Software Foundation, +//   Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +//============================================================================= +#define __KVILIB__ + +#define _KVI_ENV_CPP_ + +#include "kvi_env.h" +#include "kvi_string.h" +#include "kvi_malloc.h" +#include "kvi_memmove.h" + +#ifndef COMPILE_ON_WINDOWS + +bool kvi_setenv(const char * name,const char * value) +{ +#ifdef HAVE_SETENV +	return (setenv(name,value,1) == 0); +#else +	#ifdef HAVE_PUTENV +		int iLen1 = kvi_strLen(name); +		int iLen2 = kvi_strLen(value); +		char * buf = (char *)kvi_malloc(iLen1 + iLen2 + 2); +		kvi_memmove(buf,name,iLen1); +		*(buf + iLen1) = '='; +		kvi_memmove(buf + iLen1 + 1,value,iLen2); +		*(buf + iLen1 + iLen2 + 1) = '\0'; +		int iRet = putenv(buf); +		if(iRet != 0) +		{ +			kvi_free(buf); +			return false; +		} +		return true; +	#else +		// no setenv , no putenv.. what the hell of system is this ? +		return false; +	#endif +#endif +} + +void kvi_unsetenv(const char * name) +{ +#ifdef HAVE_UNSETENV +	unsetenv(name); +#else +	#ifdef HAVE_PUTENV +		int iLen1 = kvi_strLen(name); +		char * buf = (char *)kvi_malloc(iLen1 + 1); +		kvi_memmove(buf,name,iLen1); +		*(buf + iLen1) = '\0'; +		int iRet = putenv(buf); +		if(iRet != 0) +		{ +			kvi_free(buf); +		} else { +			// hmmm +			if(kvi_getenv(name) == 0) +			{ +				// ok , the string is not in the environment +				// we can free it +				kvi_free(buf); +			} // else this system sux +		} +	#endif +#endif +} + +#endif //!COMPILE_ON_WINDOWS  | 
