From a08ee18c50ce2a8f6cae7c926977a7f04b9ce1f0 Mon Sep 17 00:00:00 2001 From: Fred Kiefer Date: Tue, 15 Jul 2003 23:46:04 +0000 Subject: [PATCH] [XPbOwner xSelectionNotify:] and [XPbOwner xProvideSelection:] explicit conversion of transferd strings from/to NSISOLatin1StringEncoding. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@17229 72102866-910b-0410-8b05-ffd578937521 --- Tools/xpbs.m | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Tools/xpbs.m b/Tools/xpbs.m index 90c43d8..2a021f9 100644 --- a/Tools/xpbs.m +++ b/Tools/xpbs.m @@ -804,8 +804,13 @@ xErrorHandler(Display *d, XErrorEvent *e) NSData *d; NSString *s; - s = [NSString stringWithCString: data]; + d = [[NSData alloc] initWithBytes: (void*)data + length: number_items]; + s = [[NSString alloc] initWithData: d + encoding: NSISOLatin1StringEncoding]; + RELEASE(d); d = [NSSerializer serializePropertyList: s]; + RELEASE(s); [self setData: d]; } else @@ -959,12 +964,16 @@ xErrorHandler(Display *d, XErrorEvent *e) if ([osType isEqualToString: NSStringPboardType]) { NSString *s = [_pb stringForType: NSStringPboardType]; + NSData *d = [s dataUsingEncoding: NSISOLatin1StringEncoding]; format = 8; - numItems = [s cStringLength]; - data = malloc(numItems + 1); - if (data) - [s getCString: data]; + if (d != nil) + { + numItems = [d length]; + data = malloc(numItems + 1); + if (data) + [d getBytes: data]; + } } else {