aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea>2005-10-05 21:46:03 +0000
committertma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea>2005-10-05 21:46:03 +0000
commit079f24d46b34fbe15812e51fb09d185c379f0c56 (patch)
treeb5126eaedd0aaceafae12b415f133246da45b0ee
parent3f5e29be54b61c6d9adf87a69b68f21a4116b3e6 (diff)
downloadioquake3-aero-079f24d46b34fbe15812e51fb09d185c379f0c56.tar.gz
ioquake3-aero-079f24d46b34fbe15812e51fb09d185c379f0c56.zip
* Append LCC directory to the PATH variable on all platforms
git-svn-id: svn://svn.icculus.org/quake3/trunk@144 edf5b092-35ff-0310-97b2-ce42778d08ea
-rw-r--r--code/tools/lcc/etc/lcc.c63
1 files changed, 39 insertions, 24 deletions
diff --git a/code/tools/lcc/etc/lcc.c b/code/tools/lcc/etc/lcc.c
index 4a6d0f6..01257fe 100644
--- a/code/tools/lcc/etc/lcc.c
+++ b/code/tools/lcc/etc/lcc.c
@@ -71,34 +71,49 @@ char *tempdir = TEMPDIR; /* directory for temporary files */
static char *progname;
static List lccinputs; /* list of input directories */
+/*
+===============
+AddLCCDirToPath
+
+Append the base path of this file to the PATH so that q3lcc can find q3cpp and
+q3rcc in its own directory. There are probably (much) cleaner ways of doing
+this.
+Tim Angus <tim@ngus.net> 05/09/05
+===============
+*/
+void AddLCCDirToPath( const char *lccBinary )
+{
+ char basepath[ 1024 ];
+ char path[ 4096 ];
+ char *p;
+
+ strncpy( basepath, lccBinary, 1024 );
+ p = strrchr( basepath, '/' );
+ if( !p )
+ p = strrchr( basepath, '\\' );
+
+ if( p )
+ {
+ *p = '\0';
+ strncpy( path, "PATH=", 4096 );
+ strncat( path, getenv( "PATH" ), 4096 );
+#ifdef _WIN32
+ strncat( path, ";", 4096 );
+ strncat( path, basepath, 4096 );
+ _putenv( path );
+#else
+ strncat( path, ":", 4096 );
+ strncat( path, basepath, 4096 );
+ putenv( path );
+#endif
+ }
+}
+
int main(int argc, char *argv[]) {
int i, j, nf;
-
-#ifdef _WIN32
- // Tim Angus <tim@ngus.net> 05/09/05
- // Append the base path of this file to the PATH
- // There are probably (much) cleaner ways of doing this, but
- // IANAWD (Windows Developer)
- {
- char basepath[ 1024 ];
- char path[ 4096 ];
- char *p;
- strncpy( basepath, argv[ 0 ], 1024 );
- p = strrchr( basepath, '\\' );
+ AddLCCDirToPath( argv[ 0 ] );
- if( p )
- {
- *p = '\0';
- strncpy( path, "PATH=", 4096 );
- strncat( path, getenv( "PATH" ), 4096 );
- strncat( path, ";", 4096 );
- strncat( path, basepath, 4096 );
- _putenv( path );
- }
- }
-#endif
-
progname = argv[0];
ac = argc + 50;
av = alloc(ac*sizeof(char *));