Mercurial > pidgin.yaz
comparison libpurple/util.c @ 30295:77aba27f64da
merged from im.pidgin.pidgin.
removed our modification to jabber file transfer for now.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Wed, 05 May 2010 15:42:34 +0900 |
parents | 06fa97f637a7 5bac51b394e6 |
children | 2a19f7385ba5 |
comparison
equal
deleted
inserted
replaced
30196:28dd2b7331fd | 30295:77aba27f64da |
---|---|
4634 str, *bad, *bad); | 4634 str, *bad, *bad); |
4635 g_return_val_if_reached(NULL); | 4635 g_return_val_if_reached(NULL); |
4636 } | 4636 } |
4637 | 4637 |
4638 workstr = iter = g_new(gchar, strlen(str) + 1); | 4638 workstr = iter = g_new(gchar, strlen(str) + 1); |
4639 for ( ; *str; ++str) { | 4639 while (*str) { |
4640 guchar c = *str; | 4640 gunichar ch = g_utf8_get_char(str); |
4641 if (c >= 0x20 || c == '\t' || c == '\n' || c == '\r') { | 4641 gchar *next = g_utf8_next_char(str); |
4642 *iter = c; | 4642 /* |
4643 ++iter; | 4643 * Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | |
4644 } | 4644 * [#x10000-#x10FFFF] |
4645 */ | |
4646 if ((ch == '\t' || ch == '\n' || ch == '\r') || | |
4647 (ch >= 0x20 && ch <= 0xD7FF) || | |
4648 (ch >= 0xE000 && ch <= 0xFFFD) || | |
4649 (ch >= 0x10000 && ch <= 0x10FFFF)) { | |
4650 memcpy(iter, str, next - str); | |
4651 iter += (next - str); | |
4652 } | |
4653 | |
4654 str = next; | |
4645 } | 4655 } |
4646 | 4656 |
4647 /* nul-terminate the new string */ | 4657 /* nul-terminate the new string */ |
4648 *iter = '\0'; | 4658 *iter = '\0'; |
4649 | 4659 |