Committed as r8763
(Sorry forgot to add your name in commit credits and SF doesn't let us
modify commit logs :s)
Phil

Mirko Hansen a écrit :
> thanks a lot for your detailed explanation, it helped me really
> understanding the problem. the commit log only said it was a workaround
> for a bug in tk 8.4, so i concluded from the removal of the same piece
> of code (for the outgoing part) that it isn't needed anymore. but ok, so
> i canceled my patch and searched the bug in the code. here's the updated
> diff. it searched one position too far for elided blocks and so it found
> the smileys that had been replaced before. depending on the order of the
> smileys it appeared in some situations.
> the other thing is: should the removed code for the elided-check on
> outgoing smileys also be reactivated? the commit log says that it caused
> amsn to hang up, but this may be due to the same bug in the code.
> 
> Greetings,
> Mirko
> 
> 2007/5/23, Youness Alaoui <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>:
> 
>     you can find all the info you ever need in the tcl/tk man pages. For
>     example :
>     http://www.tcl.tk/man/tcl8.4/TkCmd/text.htm#M39
> 
>     Yes, there is 'no' text that is elided apart from the one we
>     specifically set to elided (the smileys). The
>     reason for it is that, if you ever noticed, when you copy/paste text
>     from the chat window, the smileys get
>     copied too! and we do this by copying all text *including* the
>     elided text. So when we find a smiley, we
>     'elide' that text (this way we can know what the original text was
>     in case we want to copy that text some time),
>     then we search again for the smiley in the text. If (because of that
>     specific tk bug) the search does indeed
>     include the elided text, it means we get an infinite loop which
>     would be something like :
>     set text "hello :) there"
>     set symbol ":)"
>     set pos [search $symbol $text] ; # returns position 6
>     tag elided .. ;# we set the symbol text to elided, so it disappears
>     and we insert the emoticon
>     set pos [search $symbol $text] ;# should not return anything, but
>     with the bug it would return 6
>     ;# since we loop on the 'search', we would always get '6' as return
>     value and we would get an infinite loop.
> 
> 
>     Ok so that was the explanation for why I said infinite loop, but
>     while writing this, I remembered the real
>     issue, the real bug we had. In *SOME* Tk versions the [search]
>     doesn't "include" elided text in its search, but
>     it actually includes it in the position counting. In other words,
>     for example, if we had :
>     set text "hello :):) world"
>     the first search returns position 6, so we elide that text
>     (disappears) and we add an image. it means we now
>     have : "hello X:) world :)" (where X is an image which also takes
>     one character in the position counting)
>     so if we search again for the second smiley, it should be at
>     position 7, right ? yes, it is, but with some Tk
>     versions, even if they do skip the elided text, the position they
>     return is 9 (the 7th position + the 2
>     positions taken by the elided text), so if we try and replace that,
>     it doesn't work.
> 
>     In other words, since some versions include the elided and some
>     don't (and even the Tk team don't know when it
>     happens, on which conditions, etc.. because it could happen and not
>     happen with the same version, depending on
>     the system or whatever), we HAD to do a search --elided to make sure
>     we search EVEN the elided text to be sure
>     we had one behavior not the other and more importantly not either
>     one of the behaviors without knowing which one
>     it is. So we search through all text, including elided, and we
>     manually skip the ones that have the elided tag
>     on them.
> 
>     I hope this was clear. I'm sure there were explanations in the
>     commit log where this was added. Try a 'svn
>     blame' command on the file to get the revision where the fix was
>     added and you'll see if anything important is
>     written there.
> 
>     If it's not clear enough tell me, but I'm not sure if I'm a good
>     enough speaker..
> 
>     KaKaRoTo
> 
>     On Tue, May 22, 2007 at 11:46:48PM +0200, Mirko Hansen wrote:
>     > ah, thanks for the explanation of the elided thing. i'm slightly
>     new to
>     > tcl/tk and wondered what this exactly means. so i greped the
>     source for
>     > elide and it seems that there should be no elided text at all.
>     tell me if
>     > i'm wrong, but the only two things being elided are the smileys
>     and the
>     > play/stop for the voice clips. so in a normal chat message
>     shouldn't be any
>     > elided text. the other thing is, that outgoing messages don't have
>     this
>     > check, too. there should be no difference handling those two from the
>     > textual point of view.
>     > testing on tcl/tk 8.4.1 worked fine, no crash at all. but well ... why
>     > infinite loop? i interpreted this piece of code as a protection agains
>     > replacing (partly) elided text by a smiley. it only prevents
>     replacing text
>     > and doesn't change anything on the control variable of the loop, it
>     > shouldn't result in an infinite loop at all.
>     >
>     > Greetings,
>     > Mirko
>     >
>     > 2007/5/22, Youness Alaoui < [EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>:
>     > >
>     > >what about elided text ? elided is when text is 'hidden', smileys
>     are not
>     > >deleted and replaced by an
>     > >image, they're hidden (elided) so if you don't check and make sure no
>     > >elided text is being read, then
>     > >it will go into infinite loop.. which tcl/tk versions did you
>     test this on
>     > >? try it on 8.4.1 for
>     > >example and see if it works.
>     > >
>     > >KKRT
>     > >
>     > >On Mon, May 21, 2007 at 10:51:30PM +0200, Mirko Hansen wrote:
>     > >> Another fix from me concerning smileys: Sometimes incoming
>     emoticons,
>     > >not
>     > >> separated by a space, in special constellations, aren't
>     replaced by the
>     > >> image. This fix works fine for me, but I'm not sure whether
>     this piece
>     > >of
>     > >> code is still needed. The comment on revision 6270 says it's a
>     > >workaround
>     > >> for a bug in Tk 8.4 on the search command, but on the outgoing
>     part the
>     > >same
>     > >> piece of code has been removed because of errors. So I think this
>     > >removal
>     > >> should be ok, too.
>     > >>
>     > >> Greetings,
>     > >> Mirko
>     > >>
>     > >> 2007/5/20, Mirko Hansen <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]> >:
>     > >> >
>     > >> >Hi,
>     > >> >
>     > >> >this patch fixes the problem that prevents showing the own
>     emoticons in
>     > >> >the chat window, if you use uppercase letters in your profile
>     name.
>     > >> >
>     > >> >Greetings,
>     > >> >Mirko
>     > >> >
>     > >> >
>     > >
>     > >
>     > >>
>     >
>     >-------------------------------------------------------------------------
> 
>     > >> This SF.net email is sponsored by DB2 Express
>     > >> Download DB2 Express C - the FREE version of DB2 express and take
>     > >> control of your XML. No limits. Just data. Click to get it now.
>     > >> http://sourceforge.net/powerbar/db2/
>     > >> _______________________________________________
>     > >> Amsn-devel mailing list
>     > >> Amsn-devel@lists.sourceforge.net
>     <mailto:Amsn-devel@lists.sourceforge.net>
>     > >> https://lists.sourceforge.net/lists/listinfo/amsn-devel
>     <https://lists.sourceforge.net/lists/listinfo/amsn-devel>
>     > >
>     > >
>     >
>     >-------------------------------------------------------------------------
>     > >This SF.net email is sponsored by DB2 Express
>     > >Download DB2 Express C - the FREE version of DB2 express and take
>     > >control of your XML. No limits. Just data. Click to get it now.
>     > >http://sourceforge.net/powerbar/db2/
>     > >_______________________________________________
>     > >Amsn-devel mailing list
>     > >Amsn-devel@lists.sourceforge.net
>     <mailto:Amsn-devel@lists.sourceforge.net>
>     > >https://lists.sourceforge.net/lists/listinfo/amsn-devel
>     <https://lists.sourceforge.net/lists/listinfo/amsn-devel>
>     > >
> 
>     >
>     -------------------------------------------------------------------------
>     > This SF.net email is sponsored by DB2 Express
>     > Download DB2 Express C - the FREE version of DB2 express and take
>     > control of your XML. No limits. Just data. Click to get it now.
>     > http://sourceforge.net/powerbar/db2/
>     > _______________________________________________
>     > Amsn-devel mailing list
>     > Amsn-devel@lists.sourceforge.net
>     <mailto:Amsn-devel@lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/amsn-devel
>     <https://lists.sourceforge.net/lists/listinfo/amsn-devel>
> 
> 
>     -------------------------------------------------------------------------
>     This SF.net email is sponsored by DB2 Express
>     Download DB2 Express C - the FREE version of DB2 express and take
>     control of your XML. No limits. Just data. Click to get it now.
>     http://sourceforge.net/powerbar/db2/
>     _______________________________________________
>     Amsn-devel mailing list
>     Amsn-devel@lists.sourceforge.net
>     <mailto:Amsn-devel@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/amsn-devel
> 
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Amsn-devel mailing list
> Amsn-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/amsn-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Amsn-devel mailing list
Amsn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amsn-devel

Reply via email to