[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