mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Tidyups and fix in mingw drive handling
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20911 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
7602f504b2
commit
daaa1f5dd7
4 changed files with 32 additions and 6 deletions
|
@ -9,6 +9,8 @@
|
|||
* Source/GNUmakefile: ditto
|
||||
* Source/Additions/GNUmakefile: Build GSFunctions.m
|
||||
* Source/Additions/GSFunctions.m: New file for extra functions.
|
||||
* Source/NSString.m: ([stringByExpandingTildeInPath]) Improve handling
|
||||
of paths containing mingw drives.
|
||||
|
||||
2005-03-14 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
|
|
|
@ -3586,10 +3586,23 @@ static NSFileManager *fm = nil;
|
|||
first_slash_range = [self rangeOfCharacterFromSet: pathSeps()
|
||||
options: NSLiteralSearch
|
||||
range: ((NSRange){0, length})];
|
||||
if (first_slash_range.length == 0)
|
||||
{
|
||||
first_slash_range.location = length;
|
||||
}
|
||||
|
||||
/*
|
||||
* Anything beginning '~' followed by a single letter is assumed
|
||||
* to be a windows drive specification.
|
||||
*/
|
||||
if (first_slash_range.location == 2 && isalpha([self characterAtIndex: 1]))
|
||||
{
|
||||
return IMMUTABLE(self);
|
||||
}
|
||||
|
||||
if (first_slash_range.location != 1)
|
||||
{
|
||||
/* It is of the form `~username/blah/...' */
|
||||
/* It is of the form `~username/blah/...' or '~username' */
|
||||
int uname_len;
|
||||
NSString *uname;
|
||||
|
||||
|
@ -3608,13 +3621,21 @@ static NSFileManager *fm = nil;
|
|||
}
|
||||
else
|
||||
{
|
||||
/* It is of the form `~/blah/...' */
|
||||
/* It is of the form `~/blah/...' or is '~' */
|
||||
homedir = NSHomeDirectory ();
|
||||
}
|
||||
|
||||
if (homedir != nil)
|
||||
{
|
||||
return [homedir stringByAppendingPathComponent:
|
||||
[self substringFromIndex: first_slash_range.location]];
|
||||
if (first_slash_range.location < length)
|
||||
{
|
||||
return [homedir stringByAppendingPathComponent:
|
||||
[self substringFromIndex: first_slash_range.location]];
|
||||
}
|
||||
else
|
||||
{
|
||||
return IMMUTABLE(homedir);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -723,8 +723,9 @@ static NSString *pathForUser(NSString *user)
|
|||
*/
|
||||
- (id) initWithUser: (NSString*)userName
|
||||
{
|
||||
NSString *path = pathForUser(userName);
|
||||
NSString *path;
|
||||
|
||||
path = pathForUser(userName);
|
||||
return [self initWithContentsOfFile: path];
|
||||
}
|
||||
|
||||
|
|
|
@ -130,6 +130,7 @@ NSString *
|
|||
Win32GetUserProfileDirectory(NSString *loginName)
|
||||
{
|
||||
NSString *s;
|
||||
|
||||
if ([loginName isEqual: NSUserName()] == YES)
|
||||
{
|
||||
[gnustep_global_lock lock];
|
||||
|
@ -161,7 +162,8 @@ Win32GetUserProfileDirectory(NSString *loginName)
|
|||
else
|
||||
{
|
||||
s = nil;
|
||||
NSLog(@"Not implemented! Can't determine other user home directories in Win32.");
|
||||
NSLog(@"Trying to get home for '%@' when user is '%@'", loginName, NSUserName());
|
||||
NSLog(@"Can't determine other user home directories in Win32.");
|
||||
}
|
||||
|
||||
if ([s length] == 0 && [loginName length] != 1)
|
||||
|
|
Loading…
Reference in a new issue