From: <the...@us...> - 2006-04-18 05:48:13
|
Revision: 16056 Author: thekingant Date: 2006-04-17 22:48:07 -0700 (Mon, 17 Apr 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16056&view=rev Log Message: ----------- Fix Coverity CID 28: Fix some checks so that a function isn't ugly. Fix Coverity CID 76, 77 and 112: Get rid of an unnecessary NULL-pointer check after we'd already dereferenced a pointer. Fix Coverity CID 124: Possible use of a NULL pointer in gaim_icon_parseicon. It only had the potential to crash when compiled with g_assertions turned off. Fix Coverity CID 125: Possible use of a NULL pointer in gaim_parse_oncoming. It only had the potential to crash when compiled with g_assertions turned off. Fix Coverity CID 123 and 136: Possible dereference of a NULL pointer in gaim_auth_request(). It was only possible when you turned off g_assertions, and even then I'm not so sure. In any case, the code is certainly cleaner now. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-04-18 04:25:54 UTC (rev 16055) +++ trunk/src/protocols/oscar/oscar.c 2006-04-18 05:48:07 UTC (rev 16056) @@ -1777,7 +1777,7 @@ bi->ipaddr = info->icqinfo.ipaddr; if (info->iconcsumlen) { - const char *filename = NULL, *saved_b16 = NULL; + const char *filename, *saved_b16 = NULL; char *b16 = NULL, *filepath = NULL; GaimBuddy *b = NULL; @@ -1787,7 +1787,10 @@ * If for some reason the checksum is valid, but cached file is not.. * we want to know. */ - filename = gaim_blist_node_get_string((GaimBlistNode*)b, "buddy_icon"); + if (b != NULL) + filename = gaim_blist_node_get_string((GaimBlistNode*)b, "buddy_icon"); + else + filename = NULL; if (filename != NULL) { if (g_file_test(filename, G_FILE_TEST_EXISTS)) saved_b16 = gaim_blist_node_get_string((GaimBlistNode*)b, @@ -2132,20 +2135,26 @@ static void gaim_auth_request(struct name_data *data, char *msg) { - GaimConnection *gc = data->gc; + GaimConnection *gc; + OscarData *od; + GaimBuddy *buddy; + GaimGroup *group; - if (g_list_find(gaim_connections_get_all(), gc)) { - OscarData *od = gc->proto_data; - GaimBuddy *buddy = gaim_find_buddy(gc->account, data->name); - GaimGroup *group = gaim_buddy_get_group(buddy); - if (buddy && group) { - gaim_debug_info("oscar", - "ssi: adding buddy %s to group %s\n", - buddy->name, group->name); - aim_ssi_sendauthrequest(od, data->name, msg ? msg : _("Please authorize me so I can add you to my buddy list.")); - if (!aim_ssi_itemlist_finditem(od->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY)) - aim_ssi_addbuddy(od, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 1); - } + gc = data->gc; + od = gc->proto_data; + buddy = gaim_find_buddy(gaim_connection_get_account(gc), data->name); + if (buddy != NULL) + group = gaim_buddy_get_group(buddy); + else + group = NULL; + + if (group != NULL) + { + gaim_debug_info("oscar", "ssi: adding buddy %s to group %s\n", + buddy->name, group->name); + aim_ssi_sendauthrequest(od, data->name, msg ? msg : _("Please authorize me so I can add you to my buddy list.")); + if (!aim_ssi_itemlist_finditem(od->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY)) + aim_ssi_addbuddy(od, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 1); } } @@ -2902,7 +2911,7 @@ if (!gaim_status_is_available(status) && gaim_status_is_online(status)) { - if ((userinfo != NULL) && (userinfo->flags & AIM_FLAG_AWAY) && + if ((userinfo->flags & AIM_FLAG_AWAY) && (userinfo->away_len > 0) && (userinfo->away != NULL) && (userinfo->away_encoding != NULL)) { gchar *charset = oscar_encoding_extract(userinfo->away_encoding); message = oscar_encoding_to_utf8(charset, userinfo->away, userinfo->away_len); @@ -3188,11 +3197,12 @@ */ if ((iconlen > 0) && (iconlen != 90)) { char *b16; - GaimBuddy *b = gaim_find_buddy(gc->account, sn); + GaimBuddy *b; gaim_buddy_icons_set_for_user(gaim_connection_get_account(gc), sn, icon, iconlen); b16 = gaim_base16_encode(iconcsum, iconcsumlen); - if (b16) { + b = gaim_find_buddy(gc->account, sn); + if ((b16 != NULL) && (b != NULL)) { gaim_blist_node_set_string((GaimBlistNode*)b, "icon_checksum", b16); g_free(b16); } @@ -4470,11 +4480,9 @@ } if ((od->ssi.received_data) && !(aim_ssi_itemlist_finditem(od->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY))) { - if (buddy && group) { - gaim_debug_info("oscar", - "ssi: adding buddy %s to group %s\n", buddy->name, group->name); - aim_ssi_addbuddy(od, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 0); - } + gaim_debug_info("oscar", + "ssi: adding buddy %s to group %s\n", buddy->name, group->name); + aim_ssi_addbuddy(od, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 0); } /* XXX - Should this be done from AIM accounts, as well? */ @@ -5228,14 +5236,15 @@ static const char *oscar_list_icon(GaimAccount *a, GaimBuddy *b) { - if (!b || (b && b->name && b->name[0] == '+')) { + if ((b == NULL) || (b->name == NULL) || aim_sn_is_sms(b->name)) + { if (a != NULL && aim_sn_is_icq(gaim_account_get_username(a))) return "icq"; else return "aim"; } - if (b != NULL && aim_sn_is_icq(b->name)) + if (aim_sn_is_icq(b->name)) return "icq"; return "aim"; } @@ -5252,8 +5261,7 @@ int i = 0; aim_userinfo_t *userinfo = NULL; - if (b != NULL) - account = b->account; + account = b->account; if (account != NULL) gc = account->gc; if (gc != NULL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-04-27 21:58:33
|
Revision: 16098 Author: thekingant Date: 2006-04-27 14:58:30 -0700 (Thu, 27 Apr 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16098&view=rev Log Message: ----------- A note Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-04-25 18:09:54 UTC (rev 16097) +++ trunk/src/protocols/oscar/oscar.c 2006-04-27 21:58:30 UTC (rev 16098) @@ -5216,6 +5216,10 @@ GAIM_MESSAGE_ERROR, time(NULL)); gaim_plugin_oscar_convert_to_best_encoding(gc, NULL, buf, &buf2, &len, &charset, &charsubset); + /* + * Evan S. suggested that maxvis really does mean "number of + * visible characters" and not "number of bytes" + */ if ((len > c->maxlen) || (len > c->maxvis)) { g_free(buf2); return -E2BIG; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-05-02 01:50:05
|
Revision: 16123 Author: rlaager Date: 2006-05-01 18:49:54 -0700 (Mon, 01 May 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16123&view=rev Log Message: ----------- Fix a bug reported as SF Patch #1479875. "in gaim_icqinfo() in oscar.c , the struct tm used for filling in birthday date is not initialized, this cause crash in strftime on amd64 which is indirectly called by gaim_date_format_short. Reproduced on debian sarge amd64 stable." I chose a different solution than what was provided in the patch. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-05-02 01:44:14 UTC (rev 16122) +++ trunk/src/protocols/oscar/oscar.c 2006-05-02 01:49:54 UTC (rev 16123) @@ -3650,12 +3650,22 @@ if (info->gender != 0) oscar_string_append(gc->account, str, "\n<br>", _("Gender"), info->gender == 1 ? _("Female") : _("Male")); if ((info->birthyear > 1900) && (info->birthmonth > 0) && (info->birthday > 0)) { - struct tm tm; - tm.tm_mday = (int)info->birthday; - tm.tm_mon = (int)info->birthmonth-1; - tm.tm_year = (int)info->birthyear-1900; + /* Initialize the struct properly or strftime() will crash + * on some systems (Debian Sarge AMD64). */ + time_t t = time(NULL); + struct tm *tm = localtime(&t); + + tm->tm_mday = (int)info->birthday; + tm->tm_mon = (int)info->birthmonth - 1; + tm->tm_year = (int)info->birthyear - 1900; + + /* To be 100% sure that the fields are re-normalized. + * If you're sure strftime() ALWAYS does this EVERYWHERE, + * feel free to remove it. --rlaager */ + mktime(tm); + oscar_string_append(gc->account, str, "\n<br>", _("Birthday"), - gaim_date_format_short(&tm)); + gaim_date_format_short(tm)); } if ((info->age > 0) && (info->age < 255)) { char age[5]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-05-02 20:08:02
|
Revision: 16126 Author: rlaager Date: 2006-05-02 13:07:55 -0700 (Tue, 02 May 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16126&view=rev Log Message: ----------- SF Patch #1480620 from Sadrul Small typo fix. "Conversation" -> "Conversion" Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-05-02 06:36:36 UTC (rev 16125) +++ trunk/src/protocols/oscar/oscar.c 2006-05-02 20:07:55 UTC (rev 16126) @@ -384,7 +384,7 @@ else ret = g_convert(data, datalen, "UTF-8", charsetstr, NULL, NULL, &err); if (err != NULL) { - gaim_debug_warning("oscar", "Conversation from %s failed: %s.\n", + gaim_debug_warning("oscar", "Conversion from %s failed: %s.\n", charsetstr, err->message); g_error_free(err); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-05-08 17:16:22
|
Revision: 16139 Author: rlaager Date: 2006-05-07 07:14:09 -0700 (Sun, 07 May 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16139&view=rev Log Message: ----------- hingwah says my comment wasn't as accurate as it could be. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-05-07 07:55:13 UTC (rev 16138) +++ trunk/src/protocols/oscar/oscar.c 2006-05-07 14:14:09 UTC (rev 16139) @@ -3651,7 +3651,7 @@ oscar_string_append(gc->account, str, "\n<br>", _("Gender"), info->gender == 1 ? _("Female") : _("Male")); if ((info->birthyear > 1900) && (info->birthmonth > 0) && (info->birthday > 0)) { /* Initialize the struct properly or strftime() will crash - * on some systems (Debian Sarge AMD64). */ + * under some conditions (e.g. Debian sarge w/ LANG=en_HK). */ time_t t = time(NULL); struct tm *tm = localtime(&t); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-05-08 23:53:51
|
Revision: 16143 Author: thekingant Date: 2006-05-07 11:28:32 -0700 (Sun, 07 May 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16143&view=rev Log Message: ----------- Fix another one of those assertion warnings. This also probably makes font tags from iChat work correctly. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-05-07 18:19:02 UTC (rev 16142) +++ trunk/src/protocols/oscar/oscar.c 2006-05-07 18:28:32 UTC (rev 16143) @@ -1859,7 +1859,7 @@ GString *message; gchar *tmp; aim_mpmsg_section_t *curpart; - const char *start; + const char *start, *end; GData *attribs; gaim_debug_misc("oscar", "Received IM from %s with %d parts\n", @@ -1955,7 +1955,7 @@ /* * Convert iChat color tags to normal font tags. */ - if (gaim_markup_find_tag("body", tmp, &start, NULL, &attribs)) + if (gaim_markup_find_tag("body", tmp, &start, &end, &attribs)) { const char *ichattextcolor, *ichatballooncolor; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-06-06 01:49:34
|
Revision: 16213 Author: rlaager Date: 2006-06-03 23:34:30 -0700 (Sat, 03 Jun 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16213&view=rev Log Message: ----------- SF Patch #1499284 from Ka-Hing Cheung "Set available message was broken some while ago (didn't bother to check the exact checkin), I think because of a misplaced else block. Attached is a patch that fixes the problem." Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-06-03 16:47:58 UTC (rev 16212) +++ trunk/src/protocols/oscar/oscar.c 2006-06-04 06:34:30 UTC (rev 16213) @@ -4370,7 +4370,7 @@ else if (primitive == GAIM_STATUS_AVAILABLE) { const char *status_html; - char *status_text; + char *status_text = NULL; status_html = gaim_status_get_attr_string(status, "message"); if (status_html != NULL) @@ -4382,15 +4382,11 @@ char *tmp = g_utf8_find_prev_char(status_text, &status_text[58]); strcpy(tmp, "..."); } - else - { - /* User did not specify an available message */ - status_text = NULL; - } - aim_srv_setstatusmsg(od, status_text); - g_free(status_text); } + aim_srv_setstatusmsg(od, status_text); + g_free(status_text); + /* This is needed for us to un-set any previous away message. */ away = g_strdup(""); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-06-26 03:55:26
|
Revision: 16344 Author: thekingant Date: 2006-06-25 20:55:24 -0700 (Sun, 25 Jun 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16344&view=rev Log Message: ----------- Fix some bugs that Relan (resver) tracked down. Basically we were attempting to convert various strings from some encoding to UTF8 twice. The strings were mostly in ICQ buddy info. He submitted sf patch #1503955, but I like my approach better. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-06-26 03:53:13 UTC (rev 16343) +++ trunk/src/protocols/oscar/oscar.c 2006-06-26 03:55:24 UTC (rev 16344) @@ -726,9 +726,18 @@ } static void -oscar_string_append(GaimAccount *account, GString *str, const char *newline, +oscar_string_append(GString *str, const char *newline, const char *name, const char *value) { + if (value && value[0]) { + g_string_append_printf(str, "%s<b>%s:</b> %s", newline, name, value); + } +} + +static void +oscar_string_convert_and_append(GaimAccount *account, GString *str, const char *newline, + const char *name, const char *value) +{ gchar *utf8; if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { @@ -772,16 +781,16 @@ if (gaim_presence_is_online(presence)) { if (aim_sn_is_icq(b->name)) { GaimStatus *status = gaim_presence_get_active_status(presence); - oscar_string_append(gc->account, str, newline, _("Status"), + oscar_string_append(str, newline, _("Status"), gaim_status_get_name(status)); } } else { tmp = aim_ssi_itemlist_findparentname(od->ssi.local, b->name); if (aim_ssi_waitingforauth(od->ssi.local, tmp, b->name)) - oscar_string_append(gc->account, str, newline, _("Status"), + oscar_string_append(str, newline, _("Status"), _("Not Authorized")); else - oscar_string_append(gc->account, str, newline, _("Status"), + oscar_string_append(str, newline, _("Status"), _("Offline")); } } @@ -792,14 +801,14 @@ (bi->ipaddr & 0x00ff0000) >> 16, (bi->ipaddr & 0x0000ff00) >> 8, (bi->ipaddr & 0x000000ff)); - oscar_string_append(gc->account, str, newline, _("IP Address"), tmp); + oscar_string_append(str, newline, _("IP Address"), tmp); g_free(tmp); } if ((userinfo != NULL) && (userinfo->warnlevel != 0)) { tmp = g_strdup_printf("%d", (int)(userinfo->warnlevel/10.0 + .5)); - oscar_string_append(gc->account, str, newline, _("Warning Level"), tmp); + oscar_string_append(str, newline, _("Warning Level"), tmp); g_free(tmp); } @@ -808,7 +817,7 @@ if (tmp != NULL) { char *tmp2 = g_markup_escape_text(tmp, strlen(tmp)); g_free(tmp); - oscar_string_append(gc->account, str, newline, _("Buddy Comment"), tmp2); + oscar_string_convert_and_append(account, str, newline, _("Buddy Comment"), tmp2); g_free(tmp2); } } @@ -2824,23 +2833,23 @@ if (userinfo->present & AIM_USERINFO_PRESENT_ONLINESINCE) { time_t t = userinfo->onlinesince - od->timeoffset; - oscar_string_append(gc->account, str, "\n<br>", _("Online Since"), gaim_date_format_full(localtime(&t))); + oscar_string_append(str, "\n<br>", _("Online Since"), gaim_date_format_full(localtime(&t))); } if (userinfo->present & AIM_USERINFO_PRESENT_MEMBERSINCE) { time_t t = userinfo->membersince - od->timeoffset; - oscar_string_append(gc->account, str, "\n<br>", _("Member Since"), gaim_date_format_full(localtime(&t))); + oscar_string_append(str, "\n<br>", _("Member Since"), gaim_date_format_full(localtime(&t))); } if (userinfo->capabilities != 0) { tmp = oscar_caps_to_string(userinfo->capabilities); - oscar_string_append(gc->account, str, "\n<br>", _("Capabilities"), tmp); + oscar_string_append(str, "\n<br>", _("Capabilities"), tmp); g_free(tmp); } if (userinfo->present & AIM_USERINFO_PRESENT_IDLE) { tmp = gaim_str_seconds_to_string(userinfo->idletime*60); - oscar_string_append(gc->account, str, "\n<br>", _("Idle"), tmp); + oscar_string_append(str, "\n<br>", _("Idle"), tmp); g_free(tmp); } @@ -2852,7 +2861,7 @@ if (userinfo->status[0] != '\0') tmp = oscar_encoding_to_utf8(userinfo->status_encoding, userinfo->status, userinfo->status_len); - oscar_string_append(gc->account, str, "\n<br>", _("Available Message"), tmp); + oscar_string_convert_and_append(account, str, "\n<br>", _("Available Message"), tmp); g_free(tmp); } @@ -3598,9 +3607,10 @@ static int gaim_icqinfo(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { - GaimConnection *gc = od->gc; + GaimConnection *gc; + GaimAccount *account; GaimBuddy *buddy; - struct buddyinfo *bi = NULL; + struct buddyinfo *bi; gchar who[16]; GString *str; gchar *utf8; @@ -3608,6 +3618,9 @@ va_list ap; struct aim_icq_info *info; + gc = od->gc; + account = gaim_connection_get_account(gc); + va_start(ap, fr); info = va_arg(ap, struct aim_icq_info *); va_end(ap); @@ -3620,20 +3633,22 @@ buddy = gaim_find_buddy(gaim_connection_get_account(gc), who); if (buddy != NULL) bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(buddy->account, buddy->name)); + else + bi = NULL; g_string_append_printf(str, "<b>%s:</b> %s", _("UIN"), who); - oscar_string_append(gc->account, str, "\n<br>", _("Nick"), info->nick); + oscar_string_convert_and_append(account, str, "\n<br>", _("Nick"), info->nick); if ((bi != NULL) && (bi->ipaddr != 0)) { char *tstr = g_strdup_printf("%hhu.%hhu.%hhu.%hhu", (bi->ipaddr & 0xff000000) >> 24, (bi->ipaddr & 0x00ff0000) >> 16, (bi->ipaddr & 0x0000ff00) >> 8, (bi->ipaddr & 0x000000ff)); - oscar_string_append(gc->account, str, "\n<br>", _("IP Address"), tstr); + oscar_string_append(str, "\n<br>", _("IP Address"), tstr); g_free(tstr); } - oscar_string_append(gc->account, str, "\n<br>", _("First Name"), info->first); - oscar_string_append(gc->account, str, "\n<br>", _("Last Name"), info->last); + oscar_string_convert_and_append(account, str, "\n<br>", _("First Name"), info->first); + oscar_string_convert_and_append(account, str, "\n<br>", _("Last Name"), info->last); if (info->email && info->email[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->email))) { g_string_append_printf(str, "\n<br><b>%s:</b> <a href=\"mailto:%s\">%s</a>", _("E-Mail Address"), utf8, utf8); g_free(utf8); @@ -3647,9 +3662,9 @@ } } } - oscar_string_append(gc->account, str, "\n<br>", _("Mobile Phone"), info->mobile); + oscar_string_convert_and_append(account, str, "\n<br>", _("Mobile Phone"), info->mobile); if (info->gender != 0) - oscar_string_append(gc->account, str, "\n<br>", _("Gender"), info->gender == 1 ? _("Female") : _("Male")); + oscar_string_append(str, "\n<br>", _("Gender"), info->gender == 1 ? _("Female") : _("Male")); if ((info->birthyear > 1900) && (info->birthmonth > 0) && (info->birthday > 0)) { /* Initialize the struct properly or strftime() will crash * under some conditions (e.g. Debian sarge w/ LANG=en_HK). */ @@ -3665,13 +3680,13 @@ * feel free to remove it. --rlaager */ mktime(tm); - oscar_string_append(gc->account, str, "\n<br>", _("Birthday"), + oscar_string_append(str, "\n<br>", _("Birthday"), gaim_date_format_short(tm)); } if ((info->age > 0) && (info->age < 255)) { char age[5]; snprintf(age, sizeof(age), "%hhd", info->age); - oscar_string_append(gc->account, str, "\n<br>", _("Age"), age); + oscar_string_append(str, "\n<br>", _("Age"), age); } if (info->personalwebpage && info->personalwebpage[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->personalwebpage))) { g_string_append_printf(str, "\n<br><b>%s:</b> <a href=\"%s\">%s</a>", _("Personal Web Page"), utf8, utf8); @@ -3684,25 +3699,25 @@ g_string_append_printf(str, "<hr>"); if ((info->homeaddr && (info->homeaddr[0])) || (info->homecity && info->homecity[0]) || (info->homestate && info->homestate[0]) || (info->homezip && info->homezip[0])) { g_string_append_printf(str, "<b>%s:</b>", _("Home Address")); - oscar_string_append(gc->account, str, "\n<br>", _("Address"), info->homeaddr); - oscar_string_append(gc->account, str, "\n<br>", _("City"), info->homecity); - oscar_string_append(gc->account, str, "\n<br>", _("State"), info->homestate); - oscar_string_append(gc->account, str, "\n<br>", _("Zip Code"), info->homezip); + oscar_string_convert_and_append(account, str, "\n<br>", _("Address"), info->homeaddr); + oscar_string_convert_and_append(account, str, "\n<br>", _("City"), info->homecity); + oscar_string_convert_and_append(account, str, "\n<br>", _("State"), info->homestate); + oscar_string_convert_and_append(account, str, "\n<br>", _("Zip Code"), info->homezip); g_string_append_printf(str, "\n<hr>"); } if ((info->workaddr && info->workaddr[0]) || (info->workcity && info->workcity[0]) || (info->workstate && info->workstate[0]) || (info->workzip && info->workzip[0])) { g_string_append_printf(str, "<b>%s:</b>", _("Work Address")); - oscar_string_append(gc->account, str, "\n<br>", _("Address"), info->workaddr); - oscar_string_append(gc->account, str, "\n<br>", _("City"), info->workcity); - oscar_string_append(gc->account, str, "\n<br>", _("State"), info->workstate); - oscar_string_append(gc->account, str, "\n<br>", _("Zip Code"), info->workzip); + oscar_string_convert_and_append(account, str, "\n<br>", _("Address"), info->workaddr); + oscar_string_convert_and_append(account, str, "\n<br>", _("City"), info->workcity); + oscar_string_convert_and_append(account, str, "\n<br>", _("State"), info->workstate); + oscar_string_convert_and_append(account, str, "\n<br>", _("Zip Code"), info->workzip); g_string_append_printf(str, "\n<hr>"); } if ((info->workcompany && info->workcompany[0]) || (info->workdivision && info->workdivision[0]) || (info->workposition && info->workposition[0]) || (info->workwebpage && info->workwebpage[0])) { g_string_append_printf(str, "<b>%s:</b>", _("Work Information")); - oscar_string_append(gc->account, str, "\n<br>", _("Company"), info->workcompany); - oscar_string_append(gc->account, str, "\n<br>", _("Division"), info->workdivision); - oscar_string_append(gc->account, str, "\n<br>", _("Position"), info->workposition); + oscar_string_convert_and_append(account, str, "\n<br>", _("Company"), info->workcompany); + oscar_string_convert_and_append(account, str, "\n<br>", _("Division"), info->workdivision); + oscar_string_convert_and_append(account, str, "\n<br>", _("Position"), info->workposition); if (info->workwebpage && info->workwebpage[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->workwebpage))) { g_string_append_printf(str, "\n<br><b>%s:</b> <a href=\"%s\">%s</a>", _("Web Page"), utf8, utf8); g_free(utf8); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-06-26 09:03:58
|
Revision: 16349 Author: thekingant Date: 2006-06-26 02:03:54 -0700 (Mon, 26 Jun 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16349&view=rev Log Message: ----------- Three changes: 1. When you try to sign on with an oscar screen name that is not valid ("123abc" for example), the PRPL will set gc->wants_to_die to TRUE so that the account will not be auto-reconnected. 2. When we get an AIM userinfo packet about someone in our buddy list, if the person has some kind of screen name formatting set ("Mark Doliner" instead of "markdoliner") then we set the buddies server_nick to that formatted name. 3. Add a "Get AIM Info" to the context menu for ICQ buddies who are in the buddy list of an ICQ user. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-06-26 08:07:37 UTC (rev 16348) +++ trunk/src/protocols/oscar/oscar.c 2006-06-26 09:03:54 UTC (rev 16349) @@ -1225,6 +1225,7 @@ if (!aim_snvalid(gaim_account_get_username(account))) { gchar *buf; buf = g_strdup_printf(_("Unable to login: Could not sign on as %s because the screen name is invalid. Screen names must either start with a letter and contain only letters, numbers and spaces, or contain only numbers."), gaim_account_get_username(account)); + gc->wants_to_die = TRUE; gaim_connection_error(gc, buf); g_free(buf); } @@ -2915,6 +2916,11 @@ if (b == NULL) return 1; + if (strcmp(gaim_buddy_get_name(b), userinfo->sn)) + serv_got_alias(gc, gaim_buddy_get_name(b), userinfo->sn); + else + serv_got_alias(gc, gaim_buddy_get_name(b), NULL); + presence = gaim_buddy_get_presence(b); status = gaim_presence_get_active_status(presence); @@ -4227,6 +4233,11 @@ return ret; } +/* + * As of 26 June 2006, ICQ users can request AIM info from + * everyone, and can request ICQ info from ICQ users, and + * AIM users can only request AIM info. + */ static void oscar_get_info(GaimConnection *gc, const char *name) { OscarData *od = (OscarData *)gc->proto_data; @@ -5760,6 +5771,20 @@ g_free(buf); } +static void +oscar_get_aim_info_cb(GaimBlistNode *node, gpointer ignore) +{ + GaimBuddy *buddy; + GaimConnection *gc; + + g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); + + buddy = (GaimBuddy *)node; + gc = gaim_account_get_connection(buddy->account); + + aim_locate_getinfoshort(gc->proto_data, gaim_buddy_get_name(buddy), 0x00000003); +} + static GList *oscar_buddy_menu(GaimBuddy *buddy) { GaimConnection *gc; @@ -5773,6 +5798,14 @@ userinfo = aim_locate_finduserinfo(od, buddy->name); m = NULL; + if (od->icq && aim_sn_is_icq(gaim_buddy_get_name(buddy))) + { + act = gaim_menu_action_new(_("Get AIM Info"), + GAIM_CALLBACK(oscar_get_aim_info_cb), + NULL, NULL); + m = g_list_append(m, act); + } + act = gaim_menu_action_new(_("Edit Buddy Comment"), GAIM_CALLBACK(oscar_buddycb_edit_comment), NULL, NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-07-02 23:56:11
|
Revision: 16404 Author: thekingant Date: 2006-07-02 16:56:08 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16404&view=rev Log Message: ----------- Fix a small bug in oscar where the "Send File" option in the conversation menu would be greyed out if the buddy is not in your buddy list. Thanks to foo in #gaim for pointing this out, unbeknowest to him. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-07-02 22:58:30 UTC (rev 16403) +++ trunk/src/protocols/oscar/oscar.c 2006-07-02 23:56:08 UTC (rev 16404) @@ -6162,8 +6162,8 @@ * Don't allowing sending a file to a user that does not support * file transfer, and don't allow sending to ourselves. */ - if ((userinfo != NULL) && - (userinfo->capabilities & OSCAR_CAPABILITY_SENDFILE) && + if (((userinfo == NULL) || + (userinfo->capabilities & OSCAR_CAPABILITY_SENDFILE)) && aim_sncmp(who, gaim_account_get_username(account))) { return TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-07-16 16:46:43
|
Revision: 16492 Author: thekingant Date: 2006-07-16 09:46:31 -0700 (Sun, 16 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16492&view=rev Log Message: ----------- Fix a casting warning on 64-bit machines Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-07-13 19:43:37 UTC (rev 16491) +++ trunk/src/protocols/oscar/oscar.c 2006-07-16 16:46:31 UTC (rev 16492) @@ -1629,7 +1629,7 @@ separator = strchr(redir->ip, ':'); if (separator != NULL) { - host = g_strndup(redir->ip, (int)separator - (int)redir->ip); + host = g_strndup(redir->ip, separator - redir->ip); port = atoi(separator + 1); } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-07-16 16:59:44
|
Revision: 16494 Author: thekingant Date: 2006-07-16 09:59:10 -0700 (Sun, 16 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16494&view=rev Log Message: ----------- Only do something about formatted screen names for AIM, not ICQ Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-07-16 16:47:44 UTC (rev 16493) +++ trunk/src/protocols/oscar/oscar.c 2006-07-16 16:59:10 UTC (rev 16494) @@ -2916,10 +2916,13 @@ if (b == NULL) return 1; - if (strcmp(gaim_buddy_get_name(b), userinfo->sn)) - serv_got_alias(gc, gaim_buddy_get_name(b), userinfo->sn); - else - serv_got_alias(gc, gaim_buddy_get_name(b), NULL); + if (!aim_sn_is_icq(userinfo->sn)) + { + if (strcmp(gaim_buddy_get_name(b), userinfo->sn)) + serv_got_alias(gc, gaim_buddy_get_name(b), userinfo->sn); + else + serv_got_alias(gc, gaim_buddy_get_name(b), NULL); + } presence = gaim_buddy_get_presence(b); status = gaim_presence_get_active_status(presence); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-16 16:53:24
|
Revision: 16791 Author: thekingant Date: 2006-08-16 09:53:20 -0700 (Wed, 16 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16791&view=rev Log Message: ----------- Patch from Henning Nor?\195?\169n Change the DND, extended away and occupied statuses in oscar so that they allow setting a message. Also change another place so that we show messages for people who are in those statuses. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-08-16 16:20:25 UTC (rev 16790) +++ trunk/src/protocols/oscar/oscar.c 2006-08-16 16:53:20 UTC (rev 16791) @@ -4369,7 +4369,8 @@ /* This is needed for us to un-set any previous away message. */ away = g_strdup(""); } - else if (primitive == GAIM_STATUS_AWAY) + else if ((primitive == GAIM_STATUS_AWAY) || + (primitive == GAIM_STATUS_EXTENDED_AWAY)) { htmlaway = gaim_status_get_attr_string(status, "message"); if ((htmlaway == NULL) || (*htmlaway == '\0')) @@ -5609,19 +5610,25 @@ status_types = g_list_append(status_types, type); /* ICQ-specific status types */ - type = gaim_status_type_new_full(GAIM_STATUS_UNAVAILABLE, - OSCAR_STATUS_ID_OCCUPIED, - _("Occupied"), TRUE, is_icq, FALSE); + type = gaim_status_type_new_with_attrs(GAIM_STATUS_UNAVAILABLE, + OSCAR_STATUS_ID_OCCUPIED, + _("Occupied"), TRUE, is_icq, FALSE, + "message", _("Message"), + gaim_value_new(GAIM_TYPE_STRING), NULL); status_types = g_list_append(status_types, type); - type = gaim_status_type_new_full(GAIM_STATUS_EXTENDED_AWAY, - OSCAR_STATUS_ID_DND, - _("Do Not Disturb"), TRUE, is_icq, FALSE); + type = gaim_status_type_new_with_attrs(GAIM_STATUS_EXTENDED_AWAY, + OSCAR_STATUS_ID_DND, + _("Do Not Disturb"), TRUE, is_icq, FALSE, + "message", _("Message"), + gaim_value_new(GAIM_TYPE_STRING), NULL); status_types = g_list_append(status_types, type); - type = gaim_status_type_new_full(GAIM_STATUS_EXTENDED_AWAY, - OSCAR_STATUS_ID_NA, - _("Not Available"), TRUE, is_icq, FALSE); + type = gaim_status_type_new_with_attrs(GAIM_STATUS_EXTENDED_AWAY, + OSCAR_STATUS_ID_NA, + _("Not Available"), TRUE, is_icq, FALSE, + "message", _("Message"), + gaim_value_new(GAIM_TYPE_STRING), NULL); status_types = g_list_append(status_types, type); type = gaim_status_type_new_full(GAIM_STATUS_OFFLINE, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-18 05:59:52
|
Revision: 16830 Author: thekingant Date: 2006-08-17 22:59:47 -0700 (Thu, 17 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16830&view=rev Log Message: ----------- Patch from Henning Nor?\195?\169n to not show ICQ users as "pending" when they are away without a message Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-08-18 05:58:17 UTC (rev 16829) +++ trunk/src/protocols/oscar/oscar.c 2006-08-18 05:59:47 UTC (rev 16830) @@ -2886,6 +2886,9 @@ gaim_status_set_attr_string(status, "message", message); g_free(message); } + else + /* Set an empty message so that we know not to show "pending" */ + gaim_status_set_attr_string(status, "message", message); gaim_blist_update_buddy_status(b, status); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-18 08:55:11
|
Revision: 16836 Author: thekingant Date: 2006-08-18 01:55:08 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16836&view=rev Log Message: ----------- Not quite sure how I managed to do this Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-08-18 07:40:17 UTC (rev 16835) +++ trunk/src/protocols/oscar/oscar.c 2006-08-18 08:55:08 UTC (rev 16836) @@ -2888,7 +2888,7 @@ } else /* Set an empty message so that we know not to show "pending" */ - gaim_status_set_attr_string(status, "message", message); + gaim_status_set_attr_string(status, "message", ""); gaim_blist_update_buddy_status(b, status); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-06-24 06:47:15
|
Revision: 16324 Author: thekingant Date: 2006-06-23 23:47:11 -0700 (Fri, 23 Jun 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16324&view=rev Log Message: ----------- Handle the oscar icon retrieval timer loop in a slightly more clear way. Modified Paths: -------------- trunk/src/protocols/oscar/oscar.c Modified: trunk/src/protocols/oscar/oscar.c =================================================================== --- trunk/src/protocols/oscar/oscar.c 2006-06-24 06:21:02 UTC (rev 16323) +++ trunk/src/protocols/oscar/oscar.c 2006-06-24 06:47:11 UTC (rev 16324) @@ -1113,9 +1113,8 @@ od->iconconnecting = FALSE; - if (od->icontimer) - gaim_timeout_remove(od->icontimer); - od->icontimer = gaim_timeout_add(100, gaim_icon_timerfunc, gc); + if (od->icontimer == 0) + od->icontimer = gaim_timeout_add(100, gaim_icon_timerfunc, gc); } static int @@ -1815,9 +1814,8 @@ cur = cur->next; if (!cur) { od->requesticon = g_slist_append(od->requesticon, g_strdup(gaim_normalize(account, info->sn))); - if (od->icontimer) - gaim_timeout_remove(od->icontimer); - od->icontimer = gaim_timeout_add(500, gaim_icon_timerfunc, gc); + if (od->icontimer == 0) + od->icontimer = gaim_timeout_add(500, gaim_icon_timerfunc, gc); } } g_free(b16); @@ -3169,9 +3167,8 @@ od->requesticon = g_slist_remove(od->requesticon, sn); g_free(sn); - if (od->icontimer) - gaim_timeout_remove(od->icontimer); - od->icontimer = gaim_timeout_add(500, gaim_icon_timerfunc, gc); + if (od->icontimer == 0) + od->icontimer = gaim_timeout_add(500, gaim_icon_timerfunc, gc); return 1; } @@ -3221,9 +3218,8 @@ cur = cur->next; } - if (od->icontimer) - gaim_timeout_remove(od->icontimer); - od->icontimer = gaim_timeout_add(250, gaim_icon_timerfunc, gc); + if (od->icontimer == 0) + od->icontimer = gaim_timeout_add(250, gaim_icon_timerfunc, gc); return 1; } @@ -3234,6 +3230,8 @@ aim_userinfo_t *userinfo; FlapConnection *conn; + od->icontimer = 0; + conn = flap_connection_getbytype(od, SNAC_FAMILY_BART); if (!conn) { if (!od->iconconnecting) { @@ -3286,7 +3284,9 @@ g_free(sn); } - return TRUE; + od->icontimer = gaim_timeout_add(100, gaim_icon_timerfunc, gc); + + return FALSE; } /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |