summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2006-04-01 13:28:46 +0000
committerMatthias Melcher <fltk@matthiasm.com>2006-04-01 13:28:46 +0000
commit23655ba4d55a94d2bd09db0ce301097878deb6f2 (patch)
tree60ecf8bb277fc3aab2edfb5dfbd4f717e7793b9e /src
parenta33f1f7b35bdb1ea39e458c2b7c4cdff13fb3650 (diff)
STR 1200: fixed wrong allocation of copy/paste buffer
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4891 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
-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')