From fee56ff68746bb662f87d114be8bbde1bce05e59 Mon Sep 17 00:00:00 2001 From: nicola Date: Tue, 6 Mar 2007 18:22:14 +0000 Subject: [PATCH] Make the services filesystem lookup code a bit more robust git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@24786 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 6 ++++++ Source/GSServicesManager.m | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index ea0c22b0a..92e3e4830 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-03-06 Nicola Pero + + * Source/GSServicesManager.m ([+newWithApplication:]): If the base + library returns an empty User Library path, try using a default + one. + 2007-03-06 Fred Kiefer * Source/NSBox.m (-initWithFrame:): Set content view via the diff --git a/Source/GSServicesManager.m b/Source/GSServicesManager.m index 56c1ecd2a..b16c9cc5d 100644 --- a/Source/GSServicesManager.m +++ b/Source/GSServicesManager.m @@ -508,7 +508,8 @@ static NSString *disabledName = @".GNUstepDisabled"; + (GSServicesManager*) newWithApplication: (NSApplication*)app { NSString *str; - NSString *path; + NSArray *paths; + NSString *path = nil; if (manager != nil) { @@ -521,8 +522,20 @@ static NSString *disabledName = @".GNUstepDisabled"; manager = [GSServicesManager alloc]; - str = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, - NSUserDomainMask, YES) objectAtIndex: 0]; + paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, + NSUserDomainMask, YES); + if ((paths != nil) && ([paths count] > 0)) + { + str = [paths objectAtIndex: 0]; + } + /* + * If standard search paths are not set up, try a default location. + */ + if (str == nil) + { + str = [[NSHomeDirectory() stringByAppendingPathComponent: + @"GNUstep"] stringByAppendingPathComponent: @"Library"]; + } str = [str stringByAppendingPathComponent: @"Services"]; path = [str stringByAppendingPathComponent: servicesName]; manager->_servicesPath = [path copy];