Mercurial > pidgin.yaz
diff src/protocols/irc/irc.c @ 4793:677d3cb193a1
[gaim-migrate @ 5113]
this removes all the remaining deprecated glib, gdk, gdk-pixbuf, and gtk
function calls. Hopefully I didn't break anything.
Most of this is due to the deprecation of g_strcasecmp and g_strncasecmp.
Two functions I never thought would be deprecated, but apparently they're
no good at comparing utf8 text. g_ascii_str{,n}casecmp is OK when you're
sure that it's ASCII. Otherwise, we're supposed to use g_utf8_collate(),
except that it is case sensitive. Since glib doesn't currently have a
case-insensitive one, I wrote one. If you need to compare utf8 text, you
can use gaim_utf8_strcasecmp().
I have to go do dishes now.
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sun, 16 Mar 2003 00:01:49 +0000 |
parents | 1e28e7d802a1 |
children | 0ed37c803503 |
line wrap: on
line diff
--- a/src/protocols/irc/irc.c Sat Mar 15 22:22:39 2003 +0000 +++ b/src/protocols/irc/irc.c Sun Mar 16 00:01:49 2003 +0000 @@ -206,7 +206,7 @@ while (bcs) { struct gaim_conversation *b = bcs->data; - if (!g_strcasecmp(b->name, name)) + if (!gaim_utf8_strcasecmp(b->name, name)) return b; bcs = bcs->next; } @@ -309,42 +309,42 @@ GString *str = g_string_new(""); char *cur = msg, *end = msg; gboolean bold = FALSE, underline = FALSE, italics = FALSE; - + while ((end = strchr(cur, '<'))) { *end = 0; str = g_string_append(str, cur); cur = ++end; - if (!g_strncasecmp(cur, "B>", 2)) { + if (!g_ascii_strncasecmp(cur, "B>", 2)) { if (!bold) { bold = TRUE; str = g_string_append_c(str, '\2'); } cur = cur + 2; - } else if (!g_strncasecmp(cur, "I>", 2)) { /* use bold for italics too */ + } else if (!g_ascii_strncasecmp(cur, "I>", 2)) { /* use bold for italics too */ if (!italics) { italics = TRUE; str = g_string_append_c(str, '\2'); } cur = cur + 2; - } else if (!g_strncasecmp(cur, "U>", 2)) { + } else if (!g_ascii_strncasecmp(cur, "U>", 2)) { if (!underline) { underline = TRUE; str = g_string_append_c(str, '\37'); } cur = cur + 2; - } else if (!g_strncasecmp(cur, "/B>", 3)) { + } else if (!g_ascii_strncasecmp(cur, "/B>", 3)) { if (bold) { bold = FALSE; str = g_string_append_c(str, '\2'); } cur = cur + 3; - } else if (!g_strncasecmp(cur, "/I>", 3)) { + } else if (!g_ascii_strncasecmp(cur, "/I>", 3)) { if (italics) { italics = FALSE; str = g_string_append_c(str, '\2'); } cur = cur + 3; - } else if (!g_strncasecmp(cur, "/U>", 3)) { + } else if (!g_ascii_strncasecmp(cur, "/U>", 3)) { if (underline) { underline = FALSE; str = g_string_append_c(str, '\37'); @@ -353,7 +353,7 @@ } else { str = g_string_append_c(str, '<'); } - + } str = g_string_append(str, cur); return str; @@ -569,15 +569,18 @@ handle_list(struct gaim_connection *gc, char *list) { struct irc_data *id = gc->proto_data; + char *tmp; GaimBlistNode *gnode, *bnode; + tmp = g_utf8_strdown(list, -1); + id->str = g_string_append_c(id->str, ' '); - id->str = g_string_append(id->str, list); + id->str = g_string_append(id->str, tmp); id->bc--; + g_free(tmp); if (id->bc) return; - g_strdown(id->str->str); for(gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) @@ -587,9 +590,8 @@ if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) continue; if(b->account->gc == gc) { - char *tmp = g_strdup(b->name); + char *tmp = g_utf8_strdown(b->name, -1); char *x, *l; - g_strdown(tmp); x = strstr(id->str->str, tmp); l = x + strlen(b->name); if (x && (*l != ' ' && *l != 0)) @@ -999,7 +1001,7 @@ char *text = word_eol[3]; int n = atoi(word[2]); - if (!g_strncasecmp(gc->displayname, text, strlen(gc->displayname))) + if (!g_ascii_strncasecmp(gc->displayname, text, strlen(gc->displayname))) text += strlen(gc->displayname) + 1; if (*text == ':') text++; @@ -1136,7 +1138,7 @@ who++; if (*who == '+') who++; - if (!g_strcasecmp(who, nick)) { + if (!gaim_utf8_strcasecmp(who, nick)) { char *tmp = g_strdup(r->data); gaim_chat_remove_user(chat, tmp, reason); g_free(tmp); @@ -1308,26 +1310,26 @@ char buf[IRC_BUF_LEN]; char out[IRC_BUF_LEN]; - if (!g_strncasecmp(msg, "VERSION", 7)) { + if (!g_ascii_strncasecmp(msg, "VERSION", 7)) { g_snprintf(buf, sizeof(buf), "\001VERSION Gaim " VERSION ": The Penguin Pimpin' " "Multi-protocol Messaging Client: " WEBSITE "\001"); irc_send_notice (gc, nick, buf); g_snprintf(out, sizeof(out), ">> CTCP VERSION requested from %s", nick); do_error_dialog(out, _("IRC CTCP info"), GAIM_INFO); } - if (!g_strncasecmp(msg, "CLIENTINFO", 10)) { + if (!g_ascii_strncasecmp(msg, "CLIENTINFO", 10)) { g_snprintf(buf, sizeof(buf), "\001CLIENTINFO USERINFO CLIENTINFO VERSION\001"); irc_send_notice (gc, nick, buf); g_snprintf(out, sizeof(out), ">> CTCP CLIENTINFO requested from %s", nick); do_error_dialog(out, _("IRC CTCP info"), GAIM_INFO); } - if (!g_strncasecmp(msg, "USERINFO", 8)) { + if (!g_ascii_strncasecmp(msg, "USERINFO", 8)) { g_snprintf(buf, sizeof(buf), "\001USERINFO Alias: %s\001", gc->account->alias); irc_send_notice (gc, nick, buf); g_snprintf(out, sizeof(out), ">> CTCP USERINFO requested from %s", nick); do_error_dialog(out, _("IRC CTCP info"), GAIM_INFO); } - if (!g_strncasecmp(msg, "ACTION", 6)) { + if (!g_ascii_strncasecmp(msg, "ACTION", 6)) { char *po = strchr(msg + 6, 1); char *tmp; if (po) *po = 0; @@ -1335,13 +1337,13 @@ handle_privmsg(gc, to, nick, tmp); g_free(tmp); } - if (!g_strncasecmp(msg, "PING", 4)) { - g_snprintf(buf, sizeof(buf), "\001%s\001", msg); + if (!g_ascii_strncasecmp(msg, "PING", 4)) { + g_snprintf(buf, sizeof(buf), "\001%s\001", msg); irc_send_notice (gc, nick, buf); g_snprintf(out, sizeof(out), ">> CTCP PING requested from %s", nick); - do_error_dialog(out, _("IRC CTCP info"), GAIM_INFO); + do_error_dialog(out, _("IRC CTCP info"), GAIM_INFO); } - if (!g_strncasecmp(msg, "DCC CHAT", 8)) { + if (!g_ascii_strncasecmp(msg, "DCC CHAT", 8)) { char **chat_args = g_strsplit(msg, " ", 5); char ask[1024]; struct dcc_chat *dccchat = g_new0(struct dcc_chat, 1); @@ -1354,7 +1356,7 @@ } - if (!g_strncasecmp(msg, "DCC SEND", 8)) { + if (!g_ascii_strncasecmp(msg, "DCC SEND", 8)) { struct gaim_xfer *xfer; char **send_args; char *ip, *filename; @@ -1512,7 +1514,7 @@ to = word[3]; msg = *word_eol[4] == ':' ? word_eol[4] + 1 : word_eol[4]; if (msg[0] == 1 && msg[strlen (msg) - 1] == 1) { /* ctcp */ - if (!g_strncasecmp(msg + 1, "DCC ", 4)) + if (!g_ascii_strncasecmp(msg + 1, "DCC ", 4)) process_data_init(pdibuf, buf, word, word_eol, TRUE); handle_ctcp(gc, to, nick, msg + 1, word, word_eol); } else { @@ -1539,25 +1541,25 @@ { char buf[IRC_BUF_LEN]; - if (!g_strcasecmp(word[4], ":\001CLIENTINFO")) { + if (!g_ascii_strcasecmp(word[4], ":\001CLIENTINFO")) { char *p = g_strrstr(word_eol[5], "\001"); *p = 0; g_snprintf(buf, sizeof(buf), "CTCP Answer: %s", word_eol[5]); do_error_dialog(buf, _("CTCP ClientInfo"), GAIM_INFO); - } else if (!g_strcasecmp(word[4], ":\001USERINFO")) { + } else if (!g_ascii_strcasecmp(word[4], ":\001USERINFO")) { char *p = g_strrstr(word_eol[5], "\001"); *p = 0; g_snprintf(buf, sizeof(buf), "CTCP Answer: %s", word_eol[5]); do_error_dialog(buf, _("CTCP UserInfo"), GAIM_INFO); - } else if (!g_strcasecmp(word[4], ":\001VERSION")) { + } else if (!g_ascii_strcasecmp(word[4], ":\001VERSION")) { char *p = g_strrstr(word_eol[5], "\001"); *p = 0; g_snprintf(buf, sizeof(buf), "CTCP Answer: %s", word_eol[5]); do_error_dialog(buf, _("CTCP Version"), GAIM_INFO); - } else if (!g_strcasecmp(word[4], ":\001PING")) { + } else if (!g_ascii_strcasecmp(word[4], ":\001PING")) { char *p = g_strrstr(word_eol[5], "\001"); struct timeval ping_time; struct timeval now; @@ -1601,7 +1603,7 @@ struct gaim_conversation *c; char *hostmask, *p; - if (!g_strcasecmp(gc->displayname, nick)) { + if (!gaim_utf8_strcasecmp(gc->displayname, nick)) { serv_got_joined_chat(gc, id++, chan); } else { c = irc_find_chat(gc, chan); @@ -1672,7 +1674,7 @@ who++; if (*who == '+') who++; - if (!g_strcasecmp(who, nick)) { + if (!gaim_utf8_strcasecmp(who, nick)) { char *tmp = g_strdup(r->data); gaim_chat_remove_user(chat, tmp, reason); g_free(tmp); @@ -2050,7 +2052,7 @@ process_data_init(pdibuf, what + 1, word, word_eol, TRUE); g_string_free(str, FALSE); - if (!g_strcasecmp(pdibuf, "ME")) { + if (!g_ascii_strcasecmp(pdibuf, "ME")) { if (dccchat) { intl = irc_send_convert(gc, word_eol[2], sizeof(buf), &len); g_snprintf(buf, sizeof(buf), "\001ACTION %s\001\r\n", intl); @@ -2063,11 +2065,11 @@ irc_send_privmsg (gc, who, buf, FALSE); g_free(what); return 1; - } else if (!g_strcasecmp(pdibuf, "INVITE")) { + } else if (!g_ascii_strcasecmp(pdibuf, "INVITE")) { char buf[IRC_BUF_LEN]; g_snprintf(buf, sizeof(buf), "INVITE %s\r\n", word_eol[2]); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "TOPIC")) { + } else if (!g_ascii_strcasecmp(pdibuf, "TOPIC")) { if (!*word_eol[2]) { struct gaim_conversation *c; struct gaim_chat *chat; @@ -2089,39 +2091,39 @@ g_free(intl); irc_write(id->fd, buf, strlen(buf)); } - } else if (!g_strcasecmp(pdibuf, "NICK")) { + } else if (!g_ascii_strcasecmp(pdibuf, "NICK")) { if (!*word_eol[2]) { g_free(what); return -EINVAL; } g_snprintf(buf, sizeof(buf), "NICK %s\r\n", word_eol[2]); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "OP")) { + } else if (!g_ascii_strcasecmp(pdibuf, "OP")) { set_mode(gc, who, '+', 'o', word); - } else if (!g_strcasecmp(pdibuf, "DEOP")) { + } else if (!g_ascii_strcasecmp(pdibuf, "DEOP")) { set_mode(gc, who, '-', 'o', word); - } else if (!g_strcasecmp(pdibuf, "VOICE")) { + } else if (!g_ascii_strcasecmp(pdibuf, "VOICE")) { set_mode(gc, who, '+', 'v', word); - } else if (!g_strcasecmp(pdibuf, "DEVOICE")) { + } else if (!g_ascii_strcasecmp(pdibuf, "DEVOICE")) { set_mode(gc, who, '-', 'v', word); - } else if (!g_strcasecmp(pdibuf, "MODE")) { + } else if (!g_ascii_strcasecmp(pdibuf, "MODE")) { char *chan = who; set_chan_mode(gc, chan, word_eol[2]); - } else if (!g_strcasecmp(pdibuf, "QUOTE")) { + } else if (!g_ascii_strcasecmp(pdibuf, "QUOTE")) { if (!*word_eol[2]) { g_free(what); return -EINVAL; } g_snprintf(buf, sizeof(buf), "%s\r\n", word_eol[2]); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "SAY")) { + } else if (!g_ascii_strcasecmp(pdibuf, "SAY")) { if (!*word_eol[2]) { g_free(what); return -EINVAL; } irc_send_privmsg (gc, who, word_eol[2], TRUE); return 1; - } else if (!g_strcasecmp(pdibuf, "MSG")) { + } else if (!g_ascii_strcasecmp(pdibuf, "MSG")) { if (!*word[2]) { g_free(what); return -EINVAL; @@ -2131,7 +2133,7 @@ return -EINVAL; } irc_send_privmsg (gc, word[2], word_eol[3], TRUE); - } else if (!g_strcasecmp(pdibuf, "KICK")) { + } else if (!g_ascii_strcasecmp(pdibuf, "KICK")) { if (!*word[2]) { g_free(what); return -EINVAL; @@ -2143,7 +2145,7 @@ } else g_snprintf(buf, sizeof(buf), "KICK %s %s\r\n", who, word[2]); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "JOIN") || !g_strcasecmp(pdibuf, "J")) { + } else if (!g_ascii_strcasecmp(pdibuf, "JOIN") || !g_ascii_strcasecmp(pdibuf, "J")) { if (!*word[2]) { g_free(what); return -EINVAL; @@ -2153,7 +2155,7 @@ else g_snprintf(buf, sizeof(buf), "JOIN %s\r\n", word[2]); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "PART")) { + } else if (!g_ascii_strcasecmp(pdibuf, "PART")) { char *chan = *word[2] ? word[2] : who; char *reason = word_eol[3]; struct gaim_conversation *c; @@ -2175,49 +2177,49 @@ g_snprintf(buf, sizeof(buf), _("You have left %s"), chan); do_error_dialog(buf, _("IRC Part"), GAIM_INFO); } - } else if (!g_strcasecmp(pdibuf, "WHOIS")) { + } else if (!g_ascii_strcasecmp(pdibuf, "WHOIS")) { g_snprintf(buf, sizeof(buf), "WHOIS %s\r\n", word_eol[2]); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "WHOWAS")) { + } else if (!g_ascii_strcasecmp(pdibuf, "WHOWAS")) { g_snprintf(buf, sizeof(buf), "WHOWAS %s\r\n", word_eol[2]); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "LIST")) { + } else if (!g_ascii_strcasecmp(pdibuf, "LIST")) { g_snprintf(buf, sizeof(buf), "LIST\r\n"); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "QUIT")) { + } else if (!g_ascii_strcasecmp(pdibuf, "QUIT")) { char *reason = word_eol[2]; id->str = g_string_insert(id->str, 0, reason); do_quit(); - } else if (!g_strcasecmp(pdibuf, "VERSION")) { + } else if (!g_ascii_strcasecmp(pdibuf, "VERSION")) { g_snprintf(buf, sizeof(buf), "VERSION\r\n"); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "W")) { + } else if (!g_ascii_strcasecmp(pdibuf, "W")) { g_snprintf(buf, sizeof(buf), "WHO *\r\n"); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "REHASH")) { + } else if (!g_ascii_strcasecmp(pdibuf, "REHASH")) { g_snprintf(buf, sizeof(buf), "REHASH\r\n"); - irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "RESTART")) { + irc_write(id->fd, buf, strlen(buf)); + } else if (!g_ascii_strcasecmp(pdibuf, "RESTART")) { g_snprintf(buf, sizeof(buf), "RESTART\r\n"); irc_write(id->fd, buf, strlen(buf)); - } else if (!g_strcasecmp(pdibuf, "CTCP")) { - if (!g_strcasecmp(word[2], "CLIENTINFO")) { + } else if (!g_ascii_strcasecmp(pdibuf, "CTCP")) { + if (!g_ascii_strcasecmp(word[2], "CLIENTINFO")) { if (word[3]) irc_ctcp_clientinfo(gc, word[3]); - } else if (!g_strcasecmp(word[2], "USERINFO")) { + } else if (!g_ascii_strcasecmp(word[2], "USERINFO")) { if (word[3]) irc_ctcp_userinfo(gc, word[3]); - } else if (!g_strcasecmp(word[2], "VERSION")) { + } else if (!g_ascii_strcasecmp(word[2], "VERSION")) { if (word[3]) irc_ctcp_version(gc, word[3]); - - } else if (!g_strcasecmp(word[2], "PING")) { + + } else if (!g_ascii_strcasecmp(word[2], "PING")) { if (word[3]) irc_ctcp_ping(gc, word[3]); } - } else if (!g_strcasecmp(pdibuf, "DCC")) { + } else if (!g_ascii_strcasecmp(pdibuf, "DCC")) { struct gaim_conversation *c = NULL; - if (!g_strcasecmp(word[2], "CHAT")) { + if (!g_ascii_strcasecmp(word[2], "CHAT")) { if (word[3]) irc_start_chat(gc, word[3]); @@ -2232,7 +2234,7 @@ -1, WFLAG_SYSTEM, time(NULL)); } } - } else if (!g_strcasecmp(pdibuf, "HELP")) { + } else if (!g_ascii_strcasecmp(pdibuf, "HELP")) { struct gaim_conversation *c = NULL; if (is_channel(gc, who)) { c = irc_find_chat(gc, who); @@ -2243,12 +2245,12 @@ g_free(what); return -EINVAL; } - if (!g_strcasecmp(word[2], "OPER")) { + if (!g_ascii_strcasecmp(word[2], "OPER")) { gaim_conversation_write(c, NULL, _("<B>Operator commands:<BR>" "REHASH RESTART</B>"), -1, WFLAG_NOLOG, time(NULL)); - } else if (!g_strcasecmp(word[2], "CTCP")) { + } else if (!g_ascii_strcasecmp(word[2], "CTCP")) { gaim_conversation_write(c, NULL, _("<B>CTCP commands:<BR>" "CLIENTINFO <nick><BR>" @@ -2256,7 +2258,7 @@ "VERSION <nick><BR>" "PING <nick></B><BR>"), -1, WFLAG_NOLOG, time(NULL)); - } else if (!g_strcasecmp(word[2], "DCC")) { + } else if (!g_ascii_strcasecmp(word[2], "DCC")) { gaim_conversation_write(c, NULL, _("<B>DCC commands:<BR>" "CHAT <nick></B>"),