File tree Expand file tree Collapse file tree 1 file changed +21
-8
lines changed
Expand file tree Collapse file tree 1 file changed +21
-8
lines changed Original file line number Diff line number Diff line change @@ -1744,19 +1744,32 @@ - (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
17441744 NSEnumerator *enumerator = [queries objectEnumerator ];
17451745 NSString *param;
17461746 while ((param = [enumerator nextObject ])) {
1747+ // query: <field>=<value>
17471748 NSArray *arr = [param componentsSeparatedByString: @" =" ];
17481749 if ([arr count ] == 2 ) {
1750+ // parse field
1751+ NSString *f = [arr objectAtIndex: 0 ];
17491752#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
1750- [dict setValue: [[arr lastObject ] stringByRemovingPercentEncoding ]
1751- forKey: [[arr objectAtIndex: 0 ] stringByRemovingPercentEncoding ]];
1753+ f = [f stringByRemovingPercentEncoding ];
17521754#else
1753- [dict setValue: [[arr lastObject ]
1754- stringByReplacingPercentEscapesUsingEncoding:
1755- NSUTF8StringEncoding]
1756- forKey: [[arr objectAtIndex: 0 ]
1757- stringByReplacingPercentEscapesUsingEncoding:
1758- NSUTF8StringEncoding]];
1755+ f = [f stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
17591756#endif
1757+
1758+ // parse value
1759+ NSString *v = [arr objectAtIndex: 1 ];
1760+
1761+ // do not decode url, since it's a file URI
1762+ BOOL decode = ![f isEqualToString: @" url" ];
1763+ if (decode)
1764+ {
1765+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11
1766+ v = [f stringByRemovingPercentEncoding ];
1767+ #else
1768+ v = [f stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
1769+ #endif
1770+ }
1771+
1772+ [dict setValue: v forKey: f];
17601773 }
17611774 }
17621775
You can’t perform that action at this time.
0 commit comments