Merge pull request #1002 from frarees/handleurl_fix

Fix mvim:// not handling paths with spaces
This commit is contained in:
Yee Cheng Chin
2020-03-01 18:22:44 -08:00
committed by GitHub
+21 -8
View File
@@ -1744,19 +1744,32 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
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];
}
}