File tree 1 file changed +21
-8
lines changed
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
1744
1744
NSEnumerator *enumerator = [queries objectEnumerator ];
1745
1745
NSString *param;
1746
1746
while ((param = [enumerator nextObject ])) {
1747
+ // query: <field>=<value>
1747
1748
NSArray *arr = [param componentsSeparatedByString: @" =" ];
1748
1749
if ([arr count ] == 2 ) {
1750
+ // parse field
1751
+ NSString *f = [arr objectAtIndex: 0 ];
1749
1752
#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 ];
1752
1754
#else
1753
- [dict setValue: [[arr lastObject ]
1754
- stringByReplacingPercentEscapesUsingEncoding:
1755
- NSUTF8StringEncoding]
1756
- forKey: [[arr objectAtIndex: 0 ]
1757
- stringByReplacingPercentEscapesUsingEncoding:
1758
- NSUTF8StringEncoding]];
1755
+ f = [f stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
1759
1756
#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];
1760
1773
}
1761
1774
}
1762
1775
You can’t perform that action at this time.
0 commit comments