sqInt clipboardReadIntoAt(sqInt count, sqInt byteArrayIndex, sqInt startIndex)
Parms:
count how many bytes are reserved for storing into the oop
byteArrayIndex oops data address
startIndex index into the byteArrayIndex
return: NONE, fake return of zero
From: Interpreter
Why:
To read text data from the text clipboard into Squeak. Note use the extended clipboard plugin from the Sophie team to read other types of data
Responsibility:
Read text data from the system clipboard and place that into the byteArrayIndex area.
MacIntosh
os-9/OSXCarbon
Use GetCurrentScrap, check the size of any text scrap, if present ensure we only copy upto the limit of count.
Cocoa:
Use NSPasteboard
[[possibleData precomposedStringWithCanonicalMapping] UTF8String]
iPhone
Use UIPasteboard
[[possibleData precomposedStringWithCanonicalMapping] UTF8String]
Unix
get current x11 scrap, compare size to count, memcpy the proper number of bytes
Windows
Same as for clipboardsize, get the UTF8 data, strip off the extra LFs
BUGS
startIndex is always passed as zero, I wonder why it is there?
some platforms return bytesMoved as the return value, but the return value is ignored.
Windows does not check count against bytesneeded therefore it can copy over the end of a smaller scrap leading perhaps to a page fault.
Under anything is possible we get the scrap size earlier to decide on how to get the scrap data, it's always possible the scrap could change between those two actions...