mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-29 21:37:39 +00:00
Improve the last fix by using newer method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36172 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
478148da52
commit
21464c08f1
2 changed files with 34 additions and 41 deletions
|
@ -64,28 +64,23 @@ static Class aClass;
|
|||
static Class dClass;
|
||||
static Class sClass;
|
||||
|
||||
static BOOL CheckDirectory(NSString *path)
|
||||
static BOOL CheckDirectory(NSString *path, NSError **error)
|
||||
{
|
||||
NSFileManager *mgr;
|
||||
BOOL isDir;
|
||||
|
||||
mgr = [NSFileManager defaultManager];
|
||||
if (([mgr fileExistsAtPath: path isDirectory: &isDir] && isDir) == 0)
|
||||
if ([mgr fileExistsAtPath: path isDirectory: &isDir] && isDir)
|
||||
{
|
||||
NSString *parent;
|
||||
|
||||
parent = [path stringByDeletingLastPathComponent];
|
||||
if ([parent length] < [path length]
|
||||
&& CheckDirectory([parent stringByDeletingLastPathComponent]) == NO)
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
if ([mgr createDirectoryAtPath: path attributes: nil] == NO)
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [mgr createDirectoryAtPath: path
|
||||
withIntermediateDirectories: YES
|
||||
attributes: nil
|
||||
error: error];
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -104,6 +99,7 @@ main(int argc, char** argv, char **env_c)
|
|||
NSDictionary *oldMap;
|
||||
NSEnumerator *enumerator;
|
||||
NSString *path;
|
||||
NSError *error;
|
||||
|
||||
#ifdef GS_PASS_ARGUMENTS
|
||||
[NSProcessInfo initializeWithArguments:argv count:argc environment:env_c];
|
||||
|
@ -197,18 +193,11 @@ main(int argc, char** argv, char **env_c)
|
|||
*/
|
||||
usrRoot = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
|
||||
NSUserDomainMask, YES) lastObject];
|
||||
if (CheckDirectory(usrRoot) == NO)
|
||||
{
|
||||
if (verbose > 0)
|
||||
NSLog(@"couldn't create %@", usrRoot);
|
||||
[pool drain];
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
usrRoot = [usrRoot stringByAppendingPathComponent: @"Services"];
|
||||
if (CheckDirectory(usrRoot) == NO)
|
||||
if (!CheckDirectory(usrRoot, &error))
|
||||
{
|
||||
if (verbose > 0)
|
||||
NSLog(@"couldn't create %@", usrRoot);
|
||||
NSLog(@"couldn't create %@ error: %@", usrRoot, error);
|
||||
[pool drain];
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue