0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.0063: Mac: NSStringPboardType is deprecated

Problem:    Mac: NSStringPboardType is deprecated.
Solution:   Use NSPasteboardTypeString. (Akshay Hegde, closes #3022)
This commit is contained in:
Bram Moolenaar 2018-06-17 15:01:04 +02:00
parent 491ac28d5f
commit d595a1910c
2 changed files with 23 additions and 2 deletions

View File

@ -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];
}

View File

@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
63,
/**/
62,
/**/