Allow listing of tools

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10624 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
CaS 2001-08-01 10:59:58 +00:00
parent d8ebb20e61
commit 31d2bf6598
4 changed files with 32 additions and 12 deletions

View file

@ -2,6 +2,9 @@
* Documentation/gsdoc/Base.gsdoc: Documented all the uses of
environment variables I could find.
* Source/NSUserDefaults.m: __createArgumentDictionary ... handle
property lists as arguments correctly.
* Source/NSUser.m: Added GSTooldDirectory to listable paths.
2001-07-31 Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -57,6 +57,7 @@ typedef enum
NSAllApplicationsDirectory,
NSAllLibrariesDirectory,
GSLibrariesDirectory,
GSToolsDirectory,
} NSSearchPathDirectory;
typedef unsigned int NSSearchPathDomainMask;

View file

@ -512,6 +512,7 @@ NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directoryKey,
NSString *devDir = @"Developer";
NSString *libraryDir = @"Library";
NSString *libsDir = @"Libraries";
NSString *toolsDir = @"Tools";
NSString *docDir = @"Documentation";
NSMutableArray *paths = [NSMutableArray new];
NSString *path;
@ -563,7 +564,7 @@ if (domainMask & mask) \
{
NSString *devAppsDir = [devDir stringByAppendingPathComponent: appsDir];
/* FIXME - why not NSUserDomainMask ? */
ADD_PATH (NSUserDomainMask, gnustep_local_root, devAppsDir);
ADD_PATH (NSLocalDomainMask, gnustep_local_root, devAppsDir);
ADD_PATH (NSNetworkDomainMask, gnustep_network_root, devAppsDir);
ADD_PATH (NSSystemDomainMask, gnustep_system_root, devAppsDir);
@ -571,8 +572,8 @@ if (domainMask & mask) \
if (directoryKey == NSAdminApplicationDirectory
|| directoryKey == NSAllApplicationsDirectory)
{
NSString *devAdminDir = [devDir stringByAppendingPathComponent:
adminDir];
NSString *devAdminDir = [devDir stringByAppendingPathComponent: adminDir];
/* FIXME - NSUserDomainMask ? - users have no Administrator directory */
ADD_PATH (NSLocalDomainMask, gnustep_local_root, devAdminDir);
ADD_PATH (NSNetworkDomainMask, gnustep_network_root, devAdminDir);
@ -588,7 +589,7 @@ if (domainMask & mask) \
}
if (directoryKey == NSDeveloperDirectory)
{
/* FIXME - why not NSUserDomainMask ? */
ADD_PATH (NSUserDomainMask, gnustep_local_root, devDir);
ADD_PATH (NSLocalDomainMask, gnustep_local_root, devDir);
ADD_PATH (NSNetworkDomainMask, gnustep_network_root, devDir);
ADD_PATH (NSSystemDomainMask, gnustep_system_root, devDir);
@ -616,6 +617,13 @@ if (domainMask & mask) \
ADD_PATH (NSNetworkDomainMask, gnustep_network_root, libsDir);
ADD_PATH (NSSystemDomainMask, gnustep_system_root, libsDir);
}
if (directoryKey == GSToolsDirectory)
{
ADD_PATH (NSUserDomainMask, gnustep_user_root, toolsDir);
ADD_PATH (NSLocalDomainMask, gnustep_local_root, toolsDir);
ADD_PATH (NSNetworkDomainMask, gnustep_network_root, toolsDir);
ADD_PATH (NSSystemDomainMask, gnustep_system_root, toolsDir);
}
#undef ADD_PATH
fm = [NSFileManager defaultManager];

View file

@ -1123,6 +1123,7 @@ static NSString *pathForUser(NSString *user)
if ([key hasPrefix: @"-"])
{
NSString *old = nil;
/* anything beginning with a '-' is a defaults key and we must strip
the '-' from it. As a special case, we leave the '- in place
for '-GS...' and '--GS...' for backward compatibility. */
@ -1132,27 +1133,34 @@ static NSString *pathForUser(NSString *user)
}
key = [key substringFromIndex: 1];
val = [enumerator nextObject];
if (!val)
if (val == nil)
{ // No more args
[argDict setObject: @"" forKey: key]; // arg is empty.
if (old)
[argDict setObject: @"" forKey: old];
if (old != nil)
{
[argDict setObject: @"" forKey: old];
}
done = YES;
continue;
}
else if ([val hasPrefix: @"-"])
else if ([val hasPrefix: @"-"] == YES)
{ // Yet another argument
[argDict setObject: @"" forKey: key]; // arg is empty.
if (old)
[argDict setObject: @"" forKey: old];
if (old != nil)
{
[argDict setObject: @"" forKey: old];
}
key = val;
continue;
}
else
{ // Real parameter
val = [val propertyList];
[argDict setObject: val forKey: key];
if (old)
[argDict setObject: val forKey: old];
if (old != nil)
{
[argDict setObject: val forKey: old];
}
}
}
done = ((key = [enumerator nextObject]) == nil);