Some fixes, enhancements for environment handling.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1424 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
meep-eep
2004-11-23 23:53:15 +00:00
parent 1b317db686
commit 1a42d65a63
6 changed files with 66 additions and 10 deletions
+2 -1
View File
@@ -37,7 +37,8 @@ uqm_requirements()
have_library vorbisfile || exit 1
# Add defines for HAVE_STRUPR and STRICMP
# Add defines for HAVE_SETENV, HAVE_STRUPR and HAVE_STRICMP
define_have_symbol setenv
define_have_symbol strupr
define_have_symbol stricmp
+5 -2
View File
@@ -18,14 +18,17 @@
#define CONFIGDIR USERDIR
/* Directory where supermelee teams will be stored */
#define MELEEDIR "${UQM_CONFIG_DIR}/teams/"
#define MELEEDIR "${UQM_CONFIG_DIR}teams/"
/* Directory where save games will be stored */
#define SAVEDIR "${UQM_CONFIG_DIR}/save/"
#define SAVEDIR "${UQM_CONFIG_DIR}save/"
/* Defined if words are stored with the most significant byte first */
@WORDS_BIGENDIAN@
/* Defined if your system has setenv of its own */
@HAVE_SETENV@
/* Defined if your system has strupr of its own */
@HAVE_STRUPR@
+6 -3
View File
@@ -9,7 +9,7 @@
#define _CONFIG_H
/* Directory where the UQM game data is located */
#define CONTENTDIR "../content"
#define CONTENTDIR "../content/"
/* Directory where game data will be stored */
//#define USERDIR "../userdata/"
@@ -19,14 +19,17 @@
#define CONFIGDIR USERDIR
/* Directory where supermelee teams will be stored */
#define MELEEDIR "%UQM_CONFIG_DIR%/teams/"
#define MELEEDIR "%UQM_CONFIG_DIR%teams/"
/* Directory where save games will be stored */
#define SAVEDIR "%UQM_CONFIG_DIR%/save/"
#define SAVEDIR "%UQM_CONFIG_DIR%save/"
/* Define if words are stored with the most significant byte first */
#undef WORDS_BIGENDIAN
/* Defined if your system has setenv of its own */
#define HAVE_SETENV
/* Defined if your system has strupr of its own */
#define HAVE_STRUPR
+39
View File
@@ -22,6 +22,7 @@
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include "port.h"
#ifndef HAVE_STRUPR
@@ -40,3 +41,41 @@ strupr (char *str)
}
#endif
#ifndef HAVE_SETENV
int
setenv (const char *name, const char *value, int overwrite)
{
char *string, *ptr;
size_t nameLen, valueLen;
if (!overwrite)
{
char *old;
old = getenv (name);
if (old != NULL)
return 0;
}
nameLen = strlen (name);
valueLen = strlen (value);
string = malloc (nameLen + valueLen + 2);
// "NAME=VALUE\0"
// putenv() does NOT make a copy, but uses the string passed.
ptr = string;
strcpy (string, name);
ptr += nameLen;
*ptr = '=';
ptr++;
strcpy (ptr, value);
return putenv (string);
}
#endif
+6
View File
@@ -98,5 +98,11 @@ typedef unsigned short mode_t;
#define snprintf _snprintf
#endif
// setenv()
#ifndef HAVE_SETENV
int setenv (const char *name, const char *value, int overwrite);
#endif
#endif /* _PORT_H */
+4
View File
@@ -335,10 +335,14 @@ expandPath (char *dest, size_t len, const char *src, int what)
envVar = getenv (envName);
HFree (envName);
if (envVar != NULL)
{
envVarLen = strlen (envVar);
CHECKLEN (buf, envVarLen);
memcpy (bufptr, envVar, envVarLen);
bufptr += envVarLen;
}
src = end;
break;
}