r144 - trunk/code/tools/lcc/etc

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Oct 5 17:46:03 EDT 2005


Author: tma
Date: 2005-10-05 17:46:03 -0400 (Wed, 05 Oct 2005)
New Revision: 144

Modified:
   trunk/code/tools/lcc/etc/lcc.c
Log:
* Append LCC directory to the PATH variable on all platforms


Modified: trunk/code/tools/lcc/etc/lcc.c
===================================================================
--- trunk/code/tools/lcc/etc/lcc.c	2005-10-05 21:07:47 UTC (rev 143)
+++ trunk/code/tools/lcc/etc/lcc.c	2005-10-05 21:46:03 UTC (rev 144)
@@ -71,34 +71,49 @@
 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 at 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 at 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 *));




More information about the quake3-commits mailing list