[quake3-commits] r1732 - in trunk/code: qcommon sys

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Nov 5 15:20:23 EST 2009


Author: tma
Date: 2009-11-05 15:20:23 -0500 (Thu, 05 Nov 2009)
New Revision: 1732

Modified:
   trunk/code/qcommon/files.c
   trunk/code/qcommon/qcommon.h
   trunk/code/sys/sys_unix.c
   trunk/code/sys/sys_win32.c
Log:
* Reimplement r1597-1598 in a better way (Oopss)
* Fix Sys_SetEnv warning


Modified: trunk/code/qcommon/files.c
===================================================================
--- trunk/code/qcommon/files.c	2009-11-04 18:13:05 UTC (rev 1731)
+++ trunk/code/qcommon/files.c	2009-11-05 20:20:23 UTC (rev 1732)
@@ -492,7 +492,10 @@
 		if (*ofs == PATH_SEP) {	
 			// create the directory
 			*ofs = 0;
-			Sys_Mkdir (OSPath);
+			if (!Sys_Mkdir (OSPath)) {
+				Com_Error( ERR_FATAL, "FS_CreatePath: failed to create path \"%s\"\n",
+					OSPath );
+			}
 			*ofs = PATH_SEP;
 		}
 	}
@@ -2807,6 +2810,7 @@
 	
 	// NOTE: same filtering below for mods and basegame
 	if (fs_homepath->string[0] && Q_stricmp(fs_homepath->string,fs_basepath->string)) {
+		FS_CreatePath ( fs_homepath->string );
 		FS_AddGameDirectory ( fs_homepath->string, gameName );
 	}
 

Modified: trunk/code/qcommon/qcommon.h
===================================================================
--- trunk/code/qcommon/qcommon.h	2009-11-04 18:13:05 UTC (rev 1731)
+++ trunk/code/qcommon/qcommon.h	2009-11-05 20:20:23 UTC (rev 1732)
@@ -1071,7 +1071,7 @@
 qboolean	Sys_IsLANAddress (netadr_t adr);
 void		Sys_ShowIP(void);
 
-void	Sys_Mkdir( const char *path );
+qboolean Sys_Mkdir( const char *path );
 char	*Sys_Cwd( void );
 void	Sys_SetDefaultInstallPath(const char *path);
 char	*Sys_DefaultInstallPath(void);
@@ -1092,6 +1092,8 @@
 
 qboolean Sys_LowPhysicalMemory( void );
 
+void Sys_SetEnv(const char *name, const char *value);
+
 /* This is based on the Adaptive Huffman algorithm described in Sayood's Data
  * Compression book.  The ranks are not actually stored, but implicitly defined
  * by the location of a node within a doubly-linked list */

Modified: trunk/code/sys/sys_unix.c
===================================================================
--- trunk/code/sys/sys_unix.c	2009-11-04 18:13:05 UTC (rev 1731)
+++ trunk/code/sys/sys_unix.c	2009-11-05 20:20:23 UTC (rev 1732)
@@ -55,22 +55,11 @@
 		{
 			Q_strncpyz( homePath, p, sizeof( homePath ) );
 #ifdef MACOS_X
-			Q_strcat( homePath, sizeof( homePath ), "/Library" );
-			mkdir( homePath, 0750 );  /* just in case. */
-			Q_strcat( homePath, sizeof( homePath ), "/Application Support" );
-			mkdir( homePath, 0750 );  /* just in case. */
-			Q_strcat( homePath, sizeof( homePath ), "/Quake3" );
+			Q_strcat( homePath, sizeof( homePath ),
+					"/Library/Application Support/Quake3" );
 #else
 			Q_strcat( homePath, sizeof( homePath ), "/.q3a" );
 #endif
-			if( mkdir( homePath, 0750 ) )
-			{
-				if( errno != EEXIST )
-				{
-					Sys_Error( "Unable to create directory \"%s\", error is %s(%d)\n",
-							homePath, strerror( errno ), errno );
-				}
-			}
 		}
 	}
 
@@ -222,9 +211,14 @@
 Sys_Mkdir
 ==================
 */
-void Sys_Mkdir( const char *path )
+qboolean Sys_Mkdir( const char *path )
 {
-	mkdir( path, 0777 );
+	int result = mkdir( path, 0750 );
+
+	if( result != 0 )
+		return errno == EEXIST;
+
+	return qtrue;
 }
 
 /*

Modified: trunk/code/sys/sys_win32.c
===================================================================
--- trunk/code/sys/sys_win32.c	2009-11-04 18:13:05 UTC (rev 1731)
+++ trunk/code/sys/sys_win32.c	2009-11-05 20:20:23 UTC (rev 1732)
@@ -77,14 +77,6 @@
 		Q_strncpyz( homePath, szPath, sizeof( homePath ) );
 		Q_strcat( homePath, sizeof( homePath ), "\\Quake3" );
 		FreeLibrary(shfolder);
-		if( !CreateDirectory( homePath, NULL ) )
-		{
-			if( GetLastError() != ERROR_ALREADY_EXISTS )
-			{
-				Com_Printf("Unable to create directory \"%s\"\n", homePath );
-				return NULL;
-			}
-		}
 	}
 
 	return homePath;
@@ -279,9 +271,14 @@
 Sys_Mkdir
 ==============
 */
-void Sys_Mkdir( const char *path )
+qboolean Sys_Mkdir( const char *path )
 {
-	_mkdir (path);
+	int result = _mkdir( path );
+
+	if( result != 0 )
+		return errno == EEXIST;
+
+	return qtrue;
 }
 
 /*



More information about the quake3-commits mailing list