diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2006-04-01 13:28:46 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2006-04-01 13:28:46 +0000 |
| commit | 23655ba4d55a94d2bd09db0ce301097878deb6f2 (patch) | |
| tree | 60ecf8bb277fc3aab2edfb5dfbd4f717e7793b9e /src | |
| parent | a33f1f7b35bdb1ea39e458c2b7c4cdff13fb3650 (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.cxx | 7 |
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') |
