diff options
Diffstat (limited to 'src/nsselect.m')
-rw-r--r-- | src/nsselect.m | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/nsselect.m b/src/nsselect.m index abd58166b1f..5ab3ef77fec 100644 --- a/src/nsselect.m +++ b/src/nsselect.m @@ -58,7 +58,7 @@ symbol_to_nsstring (Lisp_Object sym) if (EQ (sym, QPRIMARY)) return NXPrimaryPboard; if (EQ (sym, QSECONDARY)) return NXSecondaryPboard; if (EQ (sym, QTEXT)) return NSPasteboardTypeString; - return [NSString stringWithUTF8String: SSDATA (SYMBOL_NAME (sym))]; + return [NSString stringWithLispString: SYMBOL_NAME (sym)]; } static NSPasteboard * @@ -78,7 +78,13 @@ ns_string_to_symbol (NSString *t) return QSECONDARY; if ([t isEqualToString: NSPasteboardTypeString]) return QTEXT; - if ([t isEqualToString: NSFilenamesPboardType]) + if ([t isEqualToString: +#if NS_USE_NSPasteboardTypeFileURL != 0 + NSPasteboardTypeFileURL +#else + NSFilenamesPboardType +#endif + ]) return QFILE_NAME; if ([t isEqualToString: NSPasteboardTypeTabularText]) return QTEXT; @@ -114,7 +120,7 @@ clean_local_selection_data (Lisp_Object obj) if (size == 1) return clean_local_selection_data (AREF (obj, 0)); - copy = make_uninit_vector (size); + copy = make_nil_vector (size); for (i = 0; i < size; i++) ASET (copy, i, clean_local_selection_data (AREF (obj, i))); return copy; @@ -170,17 +176,12 @@ ns_string_to_pasteboard_internal (id pb, Lisp_Object str, NSString *gtype) } else { - char *utfStr; NSString *type, *nsStr; NSEnumerator *tenum; CHECK_STRING (str); - utfStr = SSDATA (str); - nsStr = [[NSString alloc] initWithBytesNoCopy: utfStr - length: SBYTES (str) - encoding: NSUTF8StringEncoding - freeWhenDone: NO]; + nsStr = [NSString stringWithLispString: str]; // FIXME: Why those 2 different code paths? if (gtype == nil) { @@ -196,7 +197,6 @@ ns_string_to_pasteboard_internal (id pb, Lisp_Object str, NSString *gtype) eassert (gtype == NSPasteboardTypeString); [pb setString: nsStr forType: gtype]; } - [nsStr release]; ns_store_pb_change_count (pb); } } @@ -473,7 +473,12 @@ nxatoms_of_nsselect (void) [NSNumber numberWithLong:0], NXPrimaryPboard, [NSNumber numberWithLong:0], NXSecondaryPboard, [NSNumber numberWithLong:0], NSPasteboardTypeString, - [NSNumber numberWithLong:0], NSFilenamesPboardType, + [NSNumber numberWithLong:0], +#if NS_USE_NSPasteboardTypeFileURL != 0 + NSPasteboardTypeFileURL, +#else + NSFilenamesPboardType, +#endif [NSNumber numberWithLong:0], NSPasteboardTypeTabularText, nil] retain]; } |