summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Fl_mac.cxx7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Fl_mac.cxx b/src/Fl_mac.cxx
index 36a26f749..eba9ea1fb 100644
--- a/src/Fl_mac.cxx
+++ b/src/Fl_mac.cxx
@@ -2159,14 +2159,15 @@ void Fl::paste(Fl_Widget &receiver, int clipboard) {
Size len = 0;
if (GetCurrentScrap(&scrap) == noErr && scrap != myScrap &&
GetScrapFlavorSize(scrap, kScrapFlavorTypeText, &len) == noErr) {
- if ( len > fl_selection_buffer_length[1] ) {
+ if ( len >= fl_selection_buffer_length[1] ) {
fl_selection_buffer_length[1] = len + 32;
delete[] fl_selection_buffer[1];
- fl_selection_buffer[1] = new char[len];
+ fl_selection_buffer[1] = new char[len + 32];
}
+ fl_selection_length[1] = len; len++;
GetScrapFlavorData( scrap, kScrapFlavorTypeText, &len,
fl_selection_buffer[1] );
- fl_selection_length[1] = len;
+ fl_selection_buffer[1][fl_selection_length[1]] = 0;
// turn all \r characters into \n:
for (int x = 0; x < len; x++) {
if (fl_selection_buffer[1][x] == '\r')