Mercurial > pidgin-twitter
changeset 312:e2156468f4e5
better workaround for the bug of pidgin 2.5.x that purple_markup_unescape_entity() returns wrong entity length for a string in hexadecimal numeric expression.
author | Yoshiki Yazawa <[email protected]> |
---|---|
date | Wed, 08 Jul 2009 14:56:48 +0900 |
parents | 5a22c65d019c |
children | 09e1995fbda1 |
files | util.c |
diffstat | 1 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/util.c Sun Jul 05 10:40:27 2009 +0900 +++ b/util.c Wed Jul 08 14:56:48 2009 +0900 @@ -89,19 +89,26 @@ ent = purple_markup_unescape_entity(ptr, &entlen); if(ent != NULL) { while(*ent) { - *ptr2++ = *ent++; + if(ptr2 - html < srclen) + *ptr2++ = *ent++; + else + ent++; } ptr += entlen; } else { - *ptr2++ = *ptr++; + if(ptr2 - html < srclen) + *ptr2++ = *ptr++; + else + ptr++; } } else { - *ptr2++ = *ptr++; + if(ptr2 - html < srclen) + *ptr2++ = *ptr++; + else + ptr++; } - if(ptr2 - html > srclen) - break; } /* for */ str = g_strdup("\0");