Implemented path functions.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4580 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 1999-07-13 15:59:50 +00:00
parent edb2ad2dc9
commit de84940c66
3 changed files with 96 additions and 12 deletions

View file

@ -1,3 +1,8 @@
Tue Jul 13 17:08:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* Source/NSUser.m: Implemented NSStandardApplicationPaths(),
NSStandardLibraryPaths(), and GSStandardPathPrefixes().
Mon Jul 12 5:00:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* Source/NSString.m: Bugfixes in ([stringByStandardizingPath:])

View file

@ -38,6 +38,7 @@
* to use the defaults belonging to the new user.
*/
extern void GSSetUserName(NSString *name);
extern NSArray *GSStandardPathPrefixes(void);
#endif
extern NSString *NSUserName();
extern NSString *NSHomeDirectory();

View file

@ -64,7 +64,7 @@ GSSetUserName(NSString* name)
* other system-dependent sources if LOGNAME is not set.
*/
NSString *
NSUserName ()
NSUserName(void)
{
if (theUserName == nil)
{
@ -104,14 +104,14 @@ NSUserName ()
/* Return the caller's home directory as an NSString object. */
NSString *
NSHomeDirectory ()
NSHomeDirectory(void)
{
return NSHomeDirectoryForUser (NSUserName ());
}
/* Return LOGIN_NAME's home directory as an NSString object. */
NSString *
NSHomeDirectoryForUser (NSString *login_name)
NSHomeDirectoryForUser(NSString *login_name)
{
#if !defined(__WIN32__)
struct passwd *pw;
@ -144,7 +144,8 @@ NSHomeDirectoryForUser (NSString *login_name)
#endif
}
NSString *NSFullUserName(void)
NSString *
NSFullUserName(void)
{
#if HAVE_PWD_H
struct passwd *pw;
@ -157,19 +158,95 @@ NSString *NSFullUserName(void)
#endif
}
NSArray *NSStandardApplicationPaths(void)
NSArray *
GSStandardPathPrefixes(void)
{
NSLog(@"Warning: NSStandardApplicationPaths not implemented\n");
return [NSArray array];
NSDictionary *env;
NSString *prefixes;
NSArray *prefixArray;
env = [[NSProcessInfo processInfo] environment];
prefixes = [env objectForKey: @"GNUSTEP_PATHPREFIX_LIST"];
if (prefixes)
{
#if defined(__WIN32__)
prefixArray = [prefixes componentsSeparatedByString: @";"];
#else
prefixArray = [prefixes componentsSeparatedByString: @":"];
#endif
}
else
{
NSString *strings[3];
NSString *str;
unsigned count = 0;
str = [env objectForKey: @"GNUSTEP_USER_ROOT"];
if (str != nil)
strings[count++] = str;
str = [env objectForKey: @"GNUSTEP_LOCAL_ROOT"];
if (str != nil)
strings[count++] = str;
str = [env objectForKey: @"GNUSTEP_SYSTEM_ROOT"];
if (str != nil)
strings[count++] = str;
if (count)
prefixArray = [NSArray arrayWithObjects: strings count: count];
else
prefixArray = [NSArray array];
}
return prefixArray;
}
NSArray *NSStandardLibraryPaths(void)
NSArray *
NSStandardApplicationPaths(void)
{
NSLog(@"Warning: NSStandardLibraryPaths not implemented\n");
return [NSArray array];
NSArray *prefixArray = GSStandardPathPrefixes();
unsigned numPrefixes = [prefixArray count];
if (numPrefixes > 0)
{
NSString *paths[numPrefixes];
unsigned count;
[prefixArray getObjects: paths];
for (count = 0; count < numPrefixes; count++)
{
paths[count]
= [paths[count] stringByAppendingPathComponent: @"Apps"];
}
return [NSArray arrayWithObjects: paths count: count];
}
return prefixArray; /* An empty array */
}
NSString *NSTemporaryDirectory(void)
NSArray *
NSStandardLibraryPaths(void)
{
NSArray *prefixArray = GSStandardPathPrefixes();
unsigned numPrefixes = [prefixArray count];
if (numPrefixes > 0)
{
NSString *paths[numPrefixes];
unsigned count;
[prefixArray getObjects: paths];
for (count = 0; count < numPrefixes; count++)
{
paths[count]
= [paths[count] stringByAppendingPathComponent: @"Library"];
}
return [NSArray arrayWithObjects: paths count: count];
}
return prefixArray; /* An empty array */
}
NSString *
NSTemporaryDirectory(void)
{
NSFileManager *manager;
NSString *tempDirName, *baseTempDirName;
@ -197,7 +274,8 @@ NSString *NSTemporaryDirectory(void)
return tempDirName;
}
NSString *NSOpenStepRootDirectory(void)
NSString *
NSOpenStepRootDirectory(void)
{
NSString* root = [[[NSProcessInfo processInfo] environment]
objectForKey:@"GNUSTEP_SYSTEM_ROOT"];