summaryrefslogtreecommitdiff
path: root/src/os_macosx.m
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-06-17 15:01:04 +0200
committerBram Moolenaar <Bram@vim.org>2018-06-17 15:01:04 +0200
commitd595a1910c5672808e44afa028e253e47f03651f (patch)
treec2a0c89187d05fd7c8ca05634d4a8f4ca4639844 /src/os_macosx.m
parent491ac28d5f91505519c623ebc1a9ab08834bf367 (diff)
downloadvim-git-d595a1910c5672808e44afa028e253e47f03651f.tar.gz
patch 8.1.0063: Mac: NSStringPboardType is deprecatedv8.1.0063
Problem: Mac: NSStringPboardType is deprecated. Solution: Use NSPasteboardTypeString. (Akshay Hegde, closes #3022)
Diffstat (limited to 'src/os_macosx.m')
-rw-r--r--src/os_macosx.m23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/os_macosx.m b/src/os_macosx.m
index b0d29d947..752bdae11 100644
--- a/src/os_macosx.m
+++ b/src/os_macosx.m
@@ -63,8 +63,13 @@ clip_mch_request_selection(VimClipboard *cbd)
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSPasteboard *pb = [NSPasteboard generalPasteboard];
+#ifdef AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ NSArray *supportedTypes = [NSArray arrayWithObjects:VimPboardType,
+ NSPasteboardTypeString, nil];
+#else
NSArray *supportedTypes = [NSArray arrayWithObjects:VimPboardType,
NSStringPboardType, nil];
+#endif
NSString *bestType = [pb availableTypeFromArray:supportedTypes];
if (!bestType) goto releasepool;
@@ -76,7 +81,7 @@ clip_mch_request_selection(VimClipboard *cbd)
/* This type should consist of an array with two objects:
* 1. motion type (NSNumber)
* 2. text (NSString)
- * If this is not the case we fall back on using NSStringPboardType.
+ * If this is not the case we fall back on using NSPasteboardTypeString.
*/
id plist = [pb propertyListForType:VimPboardType];
if ([plist isKindOfClass:[NSArray class]] && [plist count] == 2)
@@ -92,10 +97,15 @@ clip_mch_request_selection(VimClipboard *cbd)
if (!string)
{
- /* Use NSStringPboardType. The motion type is detected automatically.
+ /* Use NSPasteboardTypeString. The motion type is detected automatically.
*/
+#ifdef AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ NSMutableString *mstring =
+ [[pb stringForType:NSPasteboardTypeString] mutableCopy];
+#else
NSMutableString *mstring =
[[pb stringForType:NSStringPboardType] mutableCopy];
+#endif
if (!mstring) goto releasepool;
/* Replace unrecognized end-of-line sequences with \x0a (line feed). */
@@ -178,15 +188,24 @@ clip_mch_set_selection(VimClipboard *cbd)
/* See clip_mch_request_selection() for info on pasteboard types. */
NSPasteboard *pb = [NSPasteboard generalPasteboard];
+#ifdef AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ NSArray *supportedTypes = [NSArray arrayWithObjects:VimPboardType,
+ NSPasteboardTypeString, nil];
+#else
NSArray *supportedTypes = [NSArray arrayWithObjects:VimPboardType,
NSStringPboardType, nil];
+#endif
[pb declareTypes:supportedTypes owner:nil];
NSNumber *motion = [NSNumber numberWithInt:motion_type];
NSArray *plist = [NSArray arrayWithObjects:motion, string, nil];
[pb setPropertyList:plist forType:VimPboardType];
+#ifdef AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
+ [pb setString:string forType:NSPasteboardTypeString];
+#else
[pb setString:string forType:NSStringPboardType];
+#endif
[string release];
}