Skip to content
Snippets Groups Projects
Commit f5b219ab authored by George Nachman's avatar George Nachman
Browse files

Trim trailing slashes from the initial working directory, unless it is "/".

Fix a bug in stringByTrimmingTrailingCharactersFromCharacterSet:, where it should have removed everything when all the characters in the string belonged to the set.

Issue 5950
parent 6c07918d
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -153,6 +153,14 @@
[self assertString:@"\\~" parsesAsShellCommandTo:@[ @"~" ]];
}
 
- (void)testStringByTrimmingCharset {
XCTAssertEqualObjects([@"abc" stringByTrimmingTrailingCharactersFromCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"a"]], @"abc");
XCTAssertEqualObjects([@"abc" stringByTrimmingTrailingCharactersFromCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"c"]], @"ab");
XCTAssertEqualObjects([@"abc" stringByTrimmingTrailingCharactersFromCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"x"]], @"abc");
XCTAssertEqualObjects([@"abc" stringByTrimmingTrailingCharactersFromCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"bc"]], @"a");
XCTAssertEqualObjects([@"abc" stringByTrimmingTrailingCharactersFromCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"abc"]], @"");
}
- (void)testStringByTrimmingTrailingWhitespace {
XCTAssert([[@"abc" stringByTrimmingTrailingWhitespace] isEqualToString:@"abc"]);
XCTAssert([[@"abc " stringByTrimmingTrailingWhitespace] isEqualToString:@"abc"]);
Loading
Loading
Loading
Loading
@@ -559,7 +559,11 @@ int decode_utf8_char(const unsigned char *datap,
NSRange rangeOfLastWantedCharacter = [self rangeOfCharacterFromSet:invertedCharset
options:NSBackwardsSearch];
if (rangeOfLastWantedCharacter.location == NSNotFound) {
return self;
if ([self rangeOfCharacterFromSet:charset].location == NSNotFound) {
return self;
} else {
return @"";
}
} else if (rangeOfLastWantedCharacter.location + rangeOfLastWantedCharacter.length < self.length) {
NSUInteger i = rangeOfLastWantedCharacter.location + rangeOfLastWantedCharacter.length;
return [self substringToIndex:i];
Loading
Loading
Loading
Loading
@@ -1686,6 +1686,13 @@ ITERM_WEAKLY_REFERENCEABLE
env[PWD_ENVNAME] = [PWD_ENVVALUE stringByExpandingTildeInPath];
}
 
// Remove trailing slashes, unless the path is just "/"
NSString *trimmed = [env[PWD_ENVNAME] stringByTrimmingTrailingCharactersFromCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]];
if (trimmed.length == 0) {
trimmed = @"/";
}
env[PWD_ENVNAME] = trimmed;
NSString *itermId = [self sessionId];
env[@"ITERM_SESSION_ID"] = itermId;
env[@"TERM_PROGRAM_VERSION"] = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment