<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Ok i am trying to brake down the 
clipboard-responsible code so that i can add unicode clipboard support.. the 
news are not so good.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>First, i saw that the code for sending text to the 
clipboard is </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; int clipboardWriteFromAt(int 
count, int byteArrayIndex, int startIndex) </FONT></DIV>
<DIV><FONT face=Arial size=2>in</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; sqWin32Window.c</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>The thing is that we are trying to create a fully 
Unicode VM...this means that the characters that are sent to the VM are Unicode 
(&gt; 256)&nbsp;and we are using a unicode TT font to render them.</FONT></DIV>
<DIV><FONT face=Arial size=2>Now... when i evaluate this </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>c:=Clipboard new.<BR>c 
primitiveClipboardText:'&#945;'&nbsp;&nbsp;&nbsp; "&#945; is unicode char 
945"</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>the </FONT><FONT face=Arial 
size=2>clipboardWriteFromAt is never invoked.</FONT></DIV>
<DIV><FONT face=Arial size=2>That's because in </FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; interp.c </FONT></DIV>
<DIV><FONT face=Arial size=2>at</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; sqInt 
primitiveClipboardText(void)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>the following expression is evaluated to 
TRUE</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>if (!(((s &amp; 1) == 0) &amp;&amp; (((((usqInt) 
(longAt(s))) &gt;&gt; 8) &amp; 15) &gt;= 8))) {<BR>&nbsp;&nbsp;&nbsp;/* begin 
primitiveFail */<BR>&nbsp;&nbsp;&nbsp;successFlag = 
0;<BR>&nbsp;&nbsp;&nbsp;printf("primitive failed 1\n");&nbsp;&nbsp;&nbsp; "This 
printf is mine"<BR>&nbsp;&nbsp;&nbsp;return null;<BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Now what in earth is THIS?</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; (!(((s &amp; 1) == 0) &amp;&amp; 
(((((usqInt) (longAt(s))) &gt;&gt; 8) &amp; 15) &gt;= 8)))</FONT></DIV>
<DIV><FONT face=Arial size=2>Also further down it has</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>if (successFlag) {<BR>&nbsp;&nbsp;&nbsp;sz = 
stSizeOf(s);<BR>&nbsp;&nbsp;&nbsp;clipboardWriteFromAt(sz, s + BaseHeaderSize, 
0);<BR>&nbsp;&nbsp;&nbsp;/* begin pop: */<BR>&nbsp;&nbsp;&nbsp;stackPointer -= 1 
* BytesPerWord;<BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>where stSizeOf goes down to 
assembly...</FONT></DIV>
<DIV><FONT face=Arial size=2>I think i am starting to abandon the fully-unicode 
vision and follow your instructions from the start to use code pages and 
preserve the internal representation of Squeak...</FONT></DIV>
<DIV><FONT face=Arial size=2>I don't think that i will be able to make 
everything unicode in a life time (does it worth it?)...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Christos.</FONT></DIV></BODY></HTML>