t-suw****@users*****
t-suw****@users*****
2008年 1月 19日 (土) 22:37:04 JST
Index: AquaSKK/CppCFString.cpp
diff -u AquaSKK/CppCFString.cpp:1.6 AquaSKK/CppCFString.cpp:1.7
--- AquaSKK/CppCFString.cpp:1.6 Mon Dec 18 00:05:41 2006
+++ AquaSKK/CppCFString.cpp Sat Jan 19 22:37:04 2008
@@ -1,5 +1,5 @@
/*
- $Id: CppCFString.cpp,v 1.6 2006/12/17 15:05:41 t-suwa Exp $
+ $Id: CppCFString.cpp,v 1.7 2008/01/19 13:37:04 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -100,7 +100,11 @@
}
CppCFString::CppCFString(CFStringRef cf_string_src) : cf_string(0) {
- cf_string = CFStringCreateMutableCopy(NULL, 0, cf_string_src);
+ if(cf_string_src != 0) {
+ cf_string = CFStringCreateMutableCopy(NULL, 0, cf_string_src);
+ } else {
+ cf_string = CFStringCreateMutable(NULL, 0);
+ }
}
CppCFString::CppCFString(const UniChar* uni_string, unsigned int len) : cf_string(0) {
Index: AquaSKK/WordRegisterMode.cpp
diff -u AquaSKK/WordRegisterMode.cpp:1.6 AquaSKK/WordRegisterMode.cpp:1.7
--- AquaSKK/WordRegisterMode.cpp:1.6 Mon Dec 18 00:05:41 2006
+++ AquaSKK/WordRegisterMode.cpp Sat Jan 19 22:37:04 2008
@@ -1,5 +1,5 @@
/*
- $Id: WordRegisterMode.cpp,v 1.6 2006/12/17 15:05:41 t-suwa Exp $
+ $Id: WordRegisterMode.cpp,v 1.7 2008/01/19 13:37:04 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -136,26 +136,31 @@
if(PasteboardGetItemIdentifier(pasteboard, pos + 1, &id) < 0) continue;
CFDataRef data;
- CppCFString str;
+ CFStringRef tmp;
if(PasteboardCopyItemFlavorData(pasteboard, id, CFSTR("public.utf8-plain-text"), &data) == 0) {
- CFStringRef tmp = CFStringCreateWithBytes(NULL, CFDataGetBytePtr(data), CFDataGetLength(data),
- kCFStringEncodingUTF8, false);
- str = CppCFString(tmp);
- CFRelease(tmp);
+ tmp = CFStringCreateWithBytes(NULL, CFDataGetBytePtr(data), CFDataGetLength(data),
+ kCFStringEncodingUTF8, false);
} else {
if(PasteboardCopyItemFlavorData(pasteboard, id, CFSTR("com.apple.traditional-mac-plain-text"), &data) < 0) {
continue;
}
- CFStringRef tmp = CFStringCreateWithBytes(NULL, CFDataGetBytePtr(data), CFDataGetLength(data),
- CFStringGetSystemEncoding(), false);
- str = CppCFString(tmp);
+ tmp = CFStringCreateWithBytes(NULL, CFDataGetBytePtr(data), CFDataGetLength(data),
+ CFStringGetSystemEncoding(), false);
+ }
+
+ if(tmp) {
+ CppCFString str(tmp);
+
+ buffer.insert(caret, str);
+ caret += str.length();
+ display(CppCFString());
+
CFRelease(tmp);
}
- CFRelease(data);
- buffer.insert(caret, str);
- caret += str.length();
- display(CppCFString());
+ if(data) {
+ CFRelease(data);
+ }
break;
}