Skip to content

Commit

Permalink
Merge pull request #1002 from frarees/handleurl_fix
Browse files Browse the repository at this point in the history
Fix mvim:// not handling paths with spaces
  • Loading branch information
ychin committed Mar 2, 2020
2 parents f12f328 + 5f7e769 commit b93473f
Showing 1 changed file with 21 additions and 8 deletions.
29 changes: 21 additions & 8 deletions src/MacVim/MMAppController.m
Expand Up @@ -1744,19 +1744,32 @@ - (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
NSEnumerator *enumerator = [queries objectEnumerator];
NSString *param;
while ((param = [enumerator nextObject])) {
// query: <field>=<value>
NSArray *arr = [param componentsSeparatedByString:@"="];
if ([arr count] == 2) {
// parse field
NSString *f = [arr objectAtIndex:0];
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
[dict setValue:[[arr lastObject] stringByRemovingPercentEncoding]
forKey:[[arr objectAtIndex:0] stringByRemovingPercentEncoding]];
f = [f stringByRemovingPercentEncoding];
#else
[dict setValue:[[arr lastObject]
stringByReplacingPercentEscapesUsingEncoding:
NSUTF8StringEncoding]
forKey:[[arr objectAtIndex:0]
stringByReplacingPercentEscapesUsingEncoding:
NSUTF8StringEncoding]];
f = [f stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
#endif

// parse value
NSString *v = [arr objectAtIndex:1];

// do not decode url, since it's a file URI
BOOL decode = ![f isEqualToString:@"url"];
if (decode)
{
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
v = [f stringByRemovingPercentEncoding];
#else
v = [f stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
#endif
}

[dict setValue:v forKey:f];
}
}

Expand Down

0 comments on commit b93473f

Please sign in to comment.