aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cocoa/ScintillaCocoa.mm14
-rw-r--r--doc/ScintillaHistory.html4
2 files changed, 18 insertions, 0 deletions
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm
index 56dc306e8..662280092 100644
--- a/cocoa/ScintillaCocoa.mm
+++ b/cocoa/ScintillaCocoa.mm
@@ -557,6 +557,10 @@ public:
return 1;
} else {
CFStringRef cfsVal = CFStringFromString(mixed, lenMixed, encoding);
+ if (!cfsVal) {
+ folded[0] = '\0';
+ return 1;
+ }
NSString *sMapped = [(__bridge NSString *)cfsVal stringByFoldingWithOptions: NSCaseInsensitiveSearch
locale: [NSLocale currentLocale]];
@@ -633,6 +637,9 @@ std::string ScintillaCocoa::CaseMapString(const std::string &s, int caseMapping)
vs.styles[STYLE_DEFAULT].characterSet);
CFStringRef cfsVal = CFStringFromString(s.c_str(), s.length(), encoding);
+ if (!cfsVal) {
+ return s;
+ }
NSString *sMapped;
switch (caseMapping) {
@@ -1248,6 +1255,8 @@ void ScintillaCocoa::DragScroll() {
selectedText.characterSet);
CFStringRef cfsVal = CFStringFromString(selectedText.Data(), selectedText.Length(), encoding);
+ if (!cfsVal)
+ return;
if ([type compare: NSPasteboardTypeString] == NSOrderedSame) {
[pasteboard setString: (__bridge NSString *)cfsVal forType: NSStringPboardType];
@@ -1517,6 +1526,8 @@ void ScintillaCocoa::SetPasteboardData(NSPasteboard *board, const SelectionText
selectedText.characterSet);
CFStringRef cfsVal = CFStringFromString(selectedText.Data(), selectedText.Length(), encoding);
+ if (!cfsVal)
+ return;
NSArray *pbTypes = selectedText.rectangular ?
@[NSStringPboardType, ScintillaRecPboardType] :
@@ -1587,6 +1598,9 @@ Sci::Position ScintillaCocoa::TargetAsUTF8(char *text) const {
vs.styles[STYLE_DEFAULT].characterSet);
const std::string s = RangeText(targetStart, targetEnd);
CFStringRef cfsVal = CFStringFromString(s.c_str(), s.length(), encoding);
+ if (!cfsVal) {
+ return 0;
+ }
const std::string tmputf = EncodedBytesString(cfsVal, kCFStringEncodingUTF8);
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index d2a223985..1429ce7ab 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -545,6 +545,10 @@
<li>
Indicators are drawn for line end characters when displayed.
</li>
+ <li>
+ Crashes fixed on macOS for invalid DBCS characters when dragging text,
+ changing case of text, case-insensitive searching, and retrieving text as UTF-8.
+ </li>
</ul>
<h3>
<a href="https://www.scintilla.org/scite405.zip">Release 4.0.5</a>