You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(106) |
Oct
(334) |
Nov
(246) |
Dec
(145) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(53) |
Mar
(232) |
Apr
(109) |
May
(137) |
Jun
(63) |
Jul
(26) |
Aug
(263) |
Sep
(193) |
Oct
(507) |
Nov
(440) |
Dec
(241) |
2003 |
Jan
(567) |
Feb
(195) |
Mar
(504) |
Apr
(481) |
May
(524) |
Jun
(522) |
Jul
(594) |
Aug
(502) |
Sep
(643) |
Oct
(508) |
Nov
(430) |
Dec
(377) |
2004 |
Jan
(361) |
Feb
(251) |
Mar
(219) |
Apr
(499) |
May
(461) |
Jun
(419) |
Jul
(314) |
Aug
(519) |
Sep
(416) |
Oct
(247) |
Nov
(305) |
Dec
(382) |
2005 |
Jan
(267) |
Feb
(282) |
Mar
(327) |
Apr
(338) |
May
(189) |
Jun
(400) |
Jul
(462) |
Aug
(530) |
Sep
(316) |
Oct
(523) |
Nov
(481) |
Dec
(650) |
2006 |
Jan
(536) |
Feb
(361) |
Mar
(287) |
Apr
(146) |
May
(101) |
Jun
(169) |
Jul
(221) |
Aug
(498) |
Sep
(300) |
Oct
(236) |
Nov
(209) |
Dec
(205) |
2007 |
Jan
(30) |
Feb
(23) |
Mar
(26) |
Apr
(15) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Adam F. <mi...@us...> - 2001-11-05 11:33:53
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv10551/protocols/oscar Modified Files: oscar.c Log Message: I was made to love magic. Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- oscar.c 2001/11/05 08:25:10 1.54 +++ oscar.c 2001/11/05 11:33:50 1.55 @@ -901,6 +901,7 @@ debug_printf("chatnav: got server ready\n"); aim_conn_addhandler(sess, fr->conn, 0x0001, 0x0007, rateresp_chatnav, 0); aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CTN, AIM_CB_CTN_INFO, gaim_chatnav_info, 0); + aim_setversions(sess, fr->conn); aim_reqrates(sess, fr->conn); return 1; @@ -914,6 +915,7 @@ aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CHT, AIM_CB_CHT_USERLEAVE, gaim_chat_leave, 0); aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CHT, AIM_CB_CHT_ROOMINFOUPDATE, gaim_chat_info_update, 0); aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CHT, AIM_CB_CHT_INCOMINGMSG, gaim_chat_incoming_msg, 0); + aim_setversions(sess, fr->conn); aim_reqrates(sess, fr->conn); return 1; |
From: Eric W. <war...@us...> - 2001-11-05 08:25:13
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv29789/src/protocols/oscar Modified Files: aim.h ft.c im.c oscar.c popups.c Log Message: my back hurts. Index: aim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- aim.h 2001/11/05 02:05:06 1.13 +++ aim.h 2001/11/05 08:25:10 1.14 @@ -783,9 +783,9 @@ } info; }; -faim_export int aim_send_im_ext(aim_session_t *sess, aim_conn_t *conn, struct aim_sendimext_args *args); -faim_export int aim_send_im(aim_session_t *, aim_conn_t *, const char *destsn, unsigned short flags, const char *msg); -faim_export int aim_send_icon(aim_session_t *sess, aim_conn_t *conn, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu16_t iconsum); +faim_export int aim_send_im_ext(aim_session_t *sess, struct aim_sendimext_args *args); +faim_export int aim_send_im(aim_session_t *, const char *destsn, unsigned short flags, const char *msg); +faim_export int aim_send_icon(aim_session_t *sess, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu16_t iconsum); faim_export fu16_t aim_iconsum(const fu8_t *buf, int buflen); faim_export int aim_send_im_direct(aim_session_t *, aim_conn_t *, const char *msg); faim_export const char *aim_directim_getsn(aim_conn_t *conn); @@ -850,7 +850,7 @@ #define AIM_TRANSFER_DENY_NOTSUPPORTED 0x0000 #define AIM_TRANSFER_DENY_DECLINE 0x0001 #define AIM_TRANSFER_DENY_NOTACCEPTING 0x0002 -faim_export int aim_denytransfer(aim_session_t *sess, aim_conn_t *conn, const char *sender, const char *cookie, unsigned short code); +faim_export int aim_denytransfer(aim_session_t *sess, const char *sender, const char *cookie, unsigned short code); faim_export aim_conn_t *aim_accepttransfer(aim_session_t *sess, aim_conn_t *conn, const char *sn, const fu8_t *cookie, const fu8_t *ip, fu16_t listingfiles, fu16_t listingtotsize, fu16_t listingsize, fu32_t listingchecksum, fu16_t rendid); faim_export int aim_getinfo(aim_session_t *, aim_conn_t *, const char *, unsigned short); @@ -888,8 +888,8 @@ unsigned long minmsginterval; /* in milliseconds? */ }; -faim_export int aim_reqicbmparams(aim_session_t *sess, aim_conn_t *conn); -faim_export int aim_seticbmparam(aim_session_t *sess, aim_conn_t *conn, struct aim_icbmparameters *params); +faim_export int aim_reqicbmparams(aim_session_t *sess); +faim_export int aim_seticbmparam(aim_session_t *sess, struct aim_icbmparameters *params); /* auth.c */ Index: ft.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/ft.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ft.c 2001/10/03 20:36:33 1.4 +++ ft.c 2001/11/05 08:25:10 1.5 @@ -28,7 +28,9 @@ }; static int listenestablish(fu16_t portnum); +#if 0 static struct aim_fileheader_t *aim_oft_getfh(unsigned char *hdr); +#endif /** * aim_handlerendconnect - call this to accept OFT connections and set up the required structures Index: im.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/im.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- im.c 2001/11/05 02:05:06 1.13 +++ im.c 2001/11/05 08:25:10 1.14 @@ -144,18 +144,22 @@ * XXX check SNAC size for multipart * */ -faim_export int aim_send_im_ext(aim_session_t *sess, aim_conn_t *conn, struct aim_sendimext_args *args) +faim_export int aim_send_im_ext(aim_session_t *sess, struct aim_sendimext_args *args) { static const fu8_t deffeatures[] = { 0x01, 0x01, 0x01, 0x02 }; + aim_conn_t *conn; int i, msgtlvlen; aim_frame_t *fr; aim_snacid_t snacid; - if (!sess || !conn || !args) + if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) return -EINVAL; + if (!args) + return -EINVAL; + if (args->flags & AIM_IMFLAGS_MULTIPART) { if (args->mpmsg->numparts <= 0) return -EINVAL; @@ -340,7 +344,7 @@ * that requires an explicit message length. Use aim_send_im_ext(). * */ -faim_export int aim_send_im(aim_session_t *sess, aim_conn_t *conn, const char *destsn, fu16_t flags, const char *msg) +faim_export int aim_send_im(aim_session_t *sess, const char *destsn, fu16_t flags, const char *msg) { struct aim_sendimext_args args; @@ -352,24 +356,25 @@ /* Make these don't get set by accident -- they need aim_send_im_ext */ args.flags &= ~(AIM_IMFLAGS_CUSTOMFEATURES | AIM_IMFLAGS_HASICON | AIM_IMFLAGS_MULTIPART); - return aim_send_im_ext(sess, conn, &args); + return aim_send_im_ext(sess, &args); } /* * This is also performance sensitive. (If you can believe it...) * */ -faim_export int aim_send_icon(aim_session_t *sess, aim_conn_t *conn, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu16_t iconsum) +faim_export int aim_send_icon(aim_session_t *sess, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu16_t iconsum) { + aim_conn_t *conn; int i; fu8_t ck[8]; aim_frame_t *fr; aim_snacid_t snacid; - if (!sess || !conn || !sn || !icon || (iconlen <= 0) || (iconlen >= MAXICONLEN)) + if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) return -EINVAL; - if (conn->type != AIM_CONN_TYPE_BOS) + if (!sn || !icon || (iconlen <= 0) || (iconlen >= MAXICONLEN)) return -EINVAL; for (i = 0; i < 8; i++) @@ -1446,12 +1451,16 @@ * AIM_TRANSFER_DENY_NOTACCEPTING -- "client is not accepting transfers" * */ -faim_export int aim_denytransfer(aim_session_t *sess, aim_conn_t *conn, const char *sender, const char *cookie, fu16_t code) +faim_export int aim_denytransfer(aim_session_t *sess, const char *sender, const char *cookie, fu16_t code) { + aim_conn_t *conn; aim_frame_t *fr; aim_snacid_t snacid; aim_tlvlist_t *tl = NULL; + if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) + return -EINVAL; + if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+8+2+1+strlen(sender)+6))) return -ENOMEM; @@ -1479,8 +1488,13 @@ * Request ICBM parameter information. * */ -faim_export int aim_reqicbmparams(aim_session_t *sess, aim_conn_t *conn) +faim_export int aim_reqicbmparams(aim_session_t *sess) { + aim_conn_t *conn; + + if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) + return -EINVAL; + return aim_genericreq_n(sess, conn, 0x0004, 0x0004); } @@ -1490,12 +1504,16 @@ * with the rather unreasonable defaults. You don't want those. Send this. * */ -faim_export int aim_seticbmparam(aim_session_t *sess, aim_conn_t *conn, struct aim_icbmparameters *params) +faim_export int aim_seticbmparam(aim_session_t *sess, struct aim_icbmparameters *params) { + aim_conn_t *conn; aim_frame_t *fr; aim_snacid_t snacid; - if (!sess || !conn || !params) + if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0004))) + return -EINVAL; + + if (!params) return -EINVAL; if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+16))) Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- oscar.c 2001/11/05 02:05:06 1.53 +++ oscar.c 2001/11/05 08:25:10 1.54 @@ -1336,7 +1336,7 @@ int len = fread(buf, 1, st.st_size, file); debug_printf("Sending buddy icon to %s (%d bytes, %d reported)\n", userinfo->sn, len, st.st_size); - aim_send_icon(sess, conn, userinfo->sn, buf, st.st_size, + aim_send_icon(sess, userinfo->sn, buf, st.st_size, st.st_mtime, aim_iconsum(buf, st.st_size)); fclose(file); } else @@ -1949,7 +1949,7 @@ debug_printf("buddy list loaded\n"); - aim_reqicbmparams(sess, fr->conn); + aim_reqicbmparams(sess); aim_bos_reqrights(sess, fr->conn); aim_bos_setgroupperm(sess, fr->conn, AIM_FLAG_ALLUSERS); @@ -2008,7 +2008,7 @@ params->maxmsglen = 8000; params->minmsginterval = 0; - aim_seticbmparam(sess, fr->conn, params); + aim_seticbmparam(sess, params); return 1; } @@ -2151,7 +2151,7 @@ ret = aim_send_im_direct(odata->sess, dim->conn, message); } else { if (imflags & IM_FLAG_AWAY) - ret = aim_send_im(odata->sess, odata->conn, name, AIM_IMFLAGS_AWAY, message); + ret = aim_send_im(odata->sess, name, AIM_IMFLAGS_AWAY, message); else { struct aim_sendimext_args args; GSList *h = odata->hasicons; @@ -2198,7 +2198,7 @@ args.msg = message; args.msglen = strlen(message); - ret = aim_send_im_ext(odata->sess, odata->conn, &args); + ret = aim_send_im_ext(odata->sess, &args); } } if (ret >= 0) Index: popups.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/popups.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- popups.c 2001/11/05 02:05:06 1.1 +++ popups.c 2001/11/05 08:25:10 1.2 @@ -1,10 +1,53 @@ + /* - * This might be fun to implement. Right? Maybe not. + * Popups are just what it sounds like. They're a way for the server to + * open up an informative box on the client's screen. */ #define FAIM_INTERNAL #include <aim.h> +/* + * This is all there is to it. + * + * The message is probably HTML. + * + */ +static int parsepopup(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) +{ + aim_rxcallback_t userfunc; + aim_tlvlist_t *tl; + int ret = 0; + char *msg, *url; + fu16_t width, height, delay; + + tl = aim_readtlvchain(bs); + + msg = aim_gettlv_str(tl, 0x0001, 1); + url = aim_gettlv_str(tl, 0x0002, 1); + width = aim_gettlv16(tl, 0x0003, 1); + height = aim_gettlv16(tl, 0x0004, 1); + delay = aim_gettlv16(tl, 0x0005, 1); + + if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) + ret = userfunc(sess, rx, msg, url, width, height, delay); + + aim_freetlvchain(&tl); + free(msg); + free(url); + + return ret; +} + +static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) +{ + + if (snac->subtype == 0x0002) + return parsepopup(sess, mod, rx, snac, bs); + + return 0; +} + faim_internal int popups_modfirst(aim_session_t *sess, aim_module_t *mod) { @@ -14,7 +57,7 @@ mod->toolversion = 0x0001; mod->flags = 0; strncpy(mod->name, "popups", sizeof(mod->name)); - mod->snachandler = NULL; + mod->snachandler = snachandler; return 0; } |
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv21715 Modified Files: Makefile.am admin.c adverts.c aim.h aim_internal.h bos.c buddylist.c chat.c chatnav.c conn.c im.c info.c login.c meta.c misc.c oscar.c rxhandlers.c search.c stats.c util.c Added Files: invite.c popups.c ssi.c translate.c Log Message: Time has told me You're a rare, rare find A troubled cure For a troubled mind And time has told me Not to ask for more Someday our ocean Will find its shore --- NEW FILE: invite.c --- /* * This isn't really ever used by anyone anymore. * * Once upon a time, there used to be a menu item in AIM clients that * said something like "Invite a friend to use AIM..." and then it would * ask for an email address and it would sent a mail to them saying * how perfectly wonderful the AIM service is and why you should use it * and click here if you hate the person who sent this to you and want to * complain and yell at them in a small box with pretty fonts. * * I could've sworn libfaim had this implemented once, a long long time ago, * but I can't find it. * * I'm mainly adding this so that I can keep advertising that we support * group 6, even though we don't. * */ #define FAIM_INTERNAL #include <aim.h> faim_internal int invite_modfirst(aim_session_t *sess, aim_module_t *mod) { mod->family = 0x0006; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "invite", sizeof(mod->name)); mod->snachandler = NULL; return 0; } --- NEW FILE: popups.c --- /* * This might be fun to implement. Right? Maybe not. */ #define FAIM_INTERNAL #include <aim.h> faim_internal int popups_modfirst(aim_session_t *sess, aim_module_t *mod) { mod->family = 0x0008; mod->version = 0x0001; mod->toolid = 0x0104; mod->toolversion = 0x0001; mod->flags = 0; strncpy(mod->name, "popups", sizeof(mod->name)); mod->snachandler = NULL; return 0; } --- NEW FILE: ssi.c --- /* * Server-Side/Stored Information. * * Relatively new facility that allows storing of certain types of information, * such as a users buddy list, permit/deny list, and permit/deny preferences, * to be stored on the server, so that they can be accessed from any client. * * This is entirely too complicated. * */ #define FAIM_INTERNAL #include <aim.h> /* * Request SSI Rights. */ faim_export int aim_ssi_reqrights(aim_session_t *sess, aim_conn_t *conn) { return aim_genericreq_n(sess, conn, 0x0013, 0x0002); } /* * SSI Rights Information. */ static int parserights(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { int ret = 0; aim_rxcallback_t userfunc; if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) ret = userfunc(sess, rx); return ret; } /* * Request SSI Data. * * The data will only be sent if it is newer than the posted local * timestamp and revision. * * Note that the client should never increment the revision, only the server. * */ faim_export int aim_ssi_reqdata(aim_session_t *sess, aim_conn_t *conn, time_t localstamp, fu16_t localrev) { aim_frame_t *fr; aim_snacid_t snacid; if (!sess || !conn) return -EINVAL; if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+4+2))) return -ENOMEM; snacid = aim_cachesnac(sess, 0x0013, 0x0005, 0x0000, NULL, 0); aim_putsnac(&fr->data, 0x0013, 0x0005, 0x0000, snacid); aimbs_put32(&fr->data, localstamp); aimbs_put16(&fr->data, localrev); aim_tx_enqueue(sess, fr); return 0; } /* * SSI Data. */ static int parsedata(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { int ret = 0; aim_rxcallback_t userfunc; struct aim_ssi_item *list = NULL; fu8_t fmtver; /* guess */ fu16_t itemcount; fu32_t stamp; fmtver = aimbs_get8(bs); itemcount = aimbs_get16(bs); while (aim_bstream_empty(bs) > 4) { /* last four bytes are stamp */ fu16_t namelen, tbslen; struct aim_ssi_item *nl, *el; if (!(nl = malloc(sizeof(struct aim_ssi_item)))) break; memset(nl, 0, sizeof(struct aim_ssi_item)); if ((namelen = aimbs_get16(bs))) nl->name = aimbs_getstr(bs, namelen); nl->gid = aimbs_get16(bs); nl->bid = aimbs_get16(bs); nl->type = aimbs_get16(bs); if ((tbslen = aimbs_get16(bs))) { aim_bstream_t tbs; aim_bstream_init(&tbs, bs->data + bs->offset /* XXX */, tbslen); nl->data = (void *)aim_readtlvchain(&tbs); aim_bstream_advance(bs, tbslen); } for (el = list; el && el->next; el = el->next) ; if (el) el->next = nl; else list = nl; } stamp = aimbs_get32(bs); if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) ret = userfunc(sess, rx, fmtver, itemcount, stamp, list); while (list) { struct aim_ssi_item *tmp; tmp = list->next; aim_freetlvchain((aim_tlvlist_t **)&list->data); free(list); list = tmp; } return ret; } /* * SSI Data Enable Presence. * * Should be sent after receiving 13/6 or 13/f to tell the server you * are ready to begin using the list. It will promptly give you the * presence information for everyone in your list and put your permit/deny * settings into effect. * */ faim_export int aim_ssi_enable(aim_session_t *sess, aim_conn_t *conn) { return aim_genericreq_n(sess, conn, 0x0013, 0x0007); } /* * SSI Begin Data Modification. * * Tells the server you're going to start modifying data. * */ faim_export int aim_ssi_modbegin(aim_session_t *sess, aim_conn_t *conn) { return aim_genericreq_n(sess, conn, 0x0013, 0x0011); } /* * SSI End Data Modification. * * Tells the server you're done modifying data. * */ faim_export int aim_ssi_modend(aim_session_t *sess, aim_conn_t *conn) { return aim_genericreq_n(sess, conn, 0x0013, 0x0012); } /* * SSI Data Unchanged. * * Response to aim_ssi_reqdata() if the server-side data is not newer than * posted local stamp/revision. * */ static int parsedataunchanged(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { int ret = 0; aim_rxcallback_t userfunc; if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) ret = userfunc(sess, rx); return ret; } static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { if (snac->subtype == 0x0003) return parserights(sess, mod, rx, snac, bs); else if (snac->subtype == 0x006) return parsedata(sess, mod, rx, snac, bs); else if (snac->subtype == 0x00f) return parsedataunchanged(sess, mod, rx, snac, bs); return 0; } faim_internal int ssi_modfirst(aim_session_t *sess, aim_module_t *mod) { mod->family = 0x0013; mod->version = 0x0001; mod->toolid = 0x0110; mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "ssi", sizeof(mod->name)); mod->snachandler = snachandler; return 0; } --- NEW FILE: translate.c --- /* * I have no idea why this group was issued. I have never seen anything * that uses it. From what I remember, the last time I tried to poke at * the server with this group, it whined about not supporting it. * * But we advertise it anyway, because its fun. * */ #define FAIM_INTERNAL #include <aim.h> faim_internal int translate_modfirst(aim_session_t *sess, aim_module_t *mod) { mod->family = 0x000c; mod->version = 0x0001; mod->toolid = 0x0104; mod->toolversion = 0x0001; mod->flags = 0; strncpy(mod->name, "translate", sizeof(mod->name)); mod->snachandler = NULL; return 0; } Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile.am 2001/09/27 19:27:52 1.4 +++ Makefile.am 2001/11/05 02:05:06 1.5 @@ -23,17 +23,21 @@ ft.c \ im.c \ info.c \ + invite.c \ login.c \ md5.c \ meta.c \ misc.c \ msgcookie.c \ + popups.c \ rxhandlers.c \ rxqueue.c \ search.c \ snac.c \ + ssi.c \ stats.c \ tlv.c \ + translate.c \ txqueue.c \ util.c \ oscar.c @@ -56,17 +60,21 @@ ft.c \ im.c \ info.c \ + invite.c \ login.c \ md5.c \ meta.c \ misc.c \ msgcookie.c \ + popups.c \ rxhandlers.c \ rxqueue.c \ search.c \ snac.c \ + ssi.c \ stats.c \ tlv.c \ + translate.c \ txqueue.c \ util.c \ oscar.c Index: admin.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/admin.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- admin.c 2001/09/09 10:07:13 1.2 +++ admin.c 2001/11/05 02:05:06 1.3 @@ -77,7 +77,9 @@ { mod->family = 0x0007; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = AIM_TOOL_NEWWIN; + mod->toolversion = 0x0361; /* XXX this and above aren't right */ mod->flags = 0; strncpy(mod->name, "admin", sizeof(mod->name)); mod->snachandler = snachandler; @@ -85,35 +87,6 @@ return 0; } -faim_export int aim_auth_clientready(aim_session_t *sess, aim_conn_t *conn) -{ - static const struct aim_tool_version tools[] = { - {0x0001, 0x0003, AIM_TOOL_NEWWIN, 0x0361}, - {0x0007, 0x0001, AIM_TOOL_NEWWIN, 0x0361}, - }; - int j; - aim_frame_t *tx; - int toolcount = sizeof(tools) / sizeof(struct aim_tool_version); - aim_snacid_t snacid; - - if (!(tx = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x0002, 1152))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x0002, 0x0000, NULL, 0); - aim_putsnac(&tx->data, 0x0001, 0x0002, 0x0000, snacid); - - for (j = 0; j < toolcount; j++) { - aimbs_put16(&tx->data, tools[j].group); - aimbs_put16(&tx->data, tools[j].version); - aimbs_put16(&tx->data, tools[j].tool); - aimbs_put16(&tx->data, tools[j].toolversion); - } - - aim_tx_enqueue(sess, tx); - - return 0; -} - faim_export int aim_auth_changepasswd(aim_session_t *sess, aim_conn_t *conn, const char *newpw, const char *curpw) { aim_frame_t *tx; @@ -134,28 +107,6 @@ aim_writetlvchain(&tx->data, &tl); aim_freetlvchain(&tl); - - aim_tx_enqueue(sess, tx); - - return 0; -} - -faim_export int aim_auth_setversions(aim_session_t *sess, aim_conn_t *conn) -{ - aim_frame_t *tx; - aim_snacid_t snacid; - - if (!(tx = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 18))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x0017, 0x0000, NULL, 0); - aim_putsnac(&tx->data, 0x0001, 0x0017, 0x0000, snacid); - - aimbs_put16(&tx->data, 0x0001); - aimbs_put16(&tx->data, 0x0003); - - aimbs_put16(&tx->data, 0x0007); - aimbs_put16(&tx->data, 0x0001); aim_tx_enqueue(sess, tx); Index: adverts.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/adverts.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- adverts.c 2001/09/09 10:07:13 1.2 +++ adverts.c 2001/11/05 02:05:06 1.3 @@ -6,34 +6,28 @@ #define FAIM_INTERNAL #include <aim.h> -faim_export int aim_ads_clientready(aim_session_t *sess, aim_conn_t *conn) +faim_export int aim_ads_requestads(aim_session_t *sess, aim_conn_t *conn) { - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x0002, 0x1a))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x0002, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0001, 0x0002, 0x0000, snacid); - - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, 0x0002); + return aim_genericreq_n(sess, conn, 0x0005, 0x0002); +} - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, 0x0013); +static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) +{ + return 0; +} - aimbs_put16(&fr->data, 0x0005); - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, 0x0001); +faim_internal int adverts_modfirst(aim_session_t *sess, aim_module_t *mod) +{ - aim_tx_enqueue(sess, fr); + mod->family = 0x0005; + mod->version = 0x0001; + mod->toolid = 0x0001; + mod->toolversion = 0x0001; + mod->flags = 0; + strncpy(mod->name, "adverts", sizeof(mod->name)); + mod->snachandler = snachandler; return 0; } -faim_export int aim_ads_requestads(aim_session_t *sess, aim_conn_t *conn) -{ - return aim_genericreq_n(sess, conn, 0x0005, 0x0002); -} + Index: aim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- aim.h 2001/11/04 07:42:28 1.12 +++ aim.h 2001/11/05 02:05:06 1.13 @@ -500,6 +500,7 @@ typedef int (*aim_rxcallback_t)(aim_session_t *, aim_frame_t *, ...); /* aim_login.c */ +faim_export int aim_clientready(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_sendflapver(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_request_login(aim_session_t *sess, aim_conn_t *conn, const char *sn); faim_export int aim_send_login(aim_session_t *, aim_conn_t *, const char *, const char *, struct client_info_s *, const char *key); @@ -564,9 +565,8 @@ faim_export int aim_bos_setbuddylist(aim_session_t *, aim_conn_t *, const char *); faim_export int aim_bos_setprofile(aim_session_t *sess, aim_conn_t *conn, const char *profile, const char *awaymsg, fu16_t caps); faim_export int aim_bos_setgroupperm(aim_session_t *, aim_conn_t *, fu32_t mask); -faim_export int aim_bos_clientready(aim_session_t *, aim_conn_t *); -faim_export int aim_bos_reqrate(aim_session_t *, aim_conn_t *); -faim_export int aim_bos_ackrateresp(aim_session_t *, aim_conn_t *); +faim_export int aim_reqrates(aim_session_t *, aim_conn_t *); +faim_export int aim_ratesack(aim_session_t *, aim_conn_t *); faim_export int aim_bos_setprivacyflags(aim_session_t *, aim_conn_t *, fu32_t); faim_export int aim_bos_reqpersonalinfo(aim_session_t *, aim_conn_t *); faim_export int aim_bos_reqservice(aim_session_t *, aim_conn_t *, fu16_t); @@ -591,7 +591,6 @@ #define AIM_RATE_CODE_WARNING 0x0002 #define AIM_RATE_CODE_LIMIT 0x0003 #define AIM_RATE_CODE_CLEARLIMIT 0x0004 -faim_export int aim_ads_clientready(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_ads_requestads(aim_session_t *sess, aim_conn_t *conn); /* aim_im.c */ @@ -896,9 +895,7 @@ /* auth.c */ faim_export int aim_auth_sendcookie(aim_session_t *, aim_conn_t *, const fu8_t *); -faim_export int aim_auth_clientready(aim_session_t *, aim_conn_t *); faim_export int aim_auth_changepasswd(aim_session_t *, aim_conn_t *, const char *newpw, const char *curpw); -faim_export int aim_auth_setversions(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_auth_reqconfirm(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_auth_getinfo(aim_session_t *sess, aim_conn_t *conn, fu16_t info); faim_export int aim_auth_setemail(aim_session_t *sess, aim_conn_t *conn, const char *newemail); @@ -923,18 +920,39 @@ #define AIM_CHATFLAGS_AWAY 0x0002 faim_export int aim_chat_send_im(aim_session_t *sess, aim_conn_t *conn, fu16_t flags, const char *msg, int msglen); faim_export int aim_chat_join(aim_session_t *sess, aim_conn_t *conn, fu16_t exchange, const char *roomname, fu16_t instance); -faim_export int aim_chat_clientready(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_chat_attachname(aim_conn_t *conn, const char *roomname); faim_export char *aim_chat_getname(aim_conn_t *conn); faim_export aim_conn_t *aim_chat_getconn(aim_session_t *, const char *name); faim_export int aim_chatnav_reqrights(aim_session_t *sess, aim_conn_t *conn); -faim_export int aim_chatnav_clientready(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_chat_invite(aim_session_t *sess, aim_conn_t *conn, const char *sn, const char *msg, fu16_t exchange, const char *roomname, fu16_t instance); faim_export int aim_chatnav_createroom(aim_session_t *sess, aim_conn_t *conn, const char *name, fu16_t exchange); faim_export int aim_chat_leaveroom(aim_session_t *sess, const char *name); + + +#define AIM_SSI_TYPE_BUDDY 0x0000 +#define AIM_SSI_TYPE_GROUP 0x0001 +#define AIM_SSI_TYPE_PERMITLIST 0x0002 +#define AIM_SSI_TYPE_DENYLIST 0x0003 +#define AIM_SSI_TYPE_PDINFO 0x0004 +#define AIM_SSI_TYPE_PRESENCEPREFS 0x0005 + +struct aim_ssi_item { + char *name; + fu16_t gid; + fu16_t bid; + fu16_t type; + void *data; + struct aim_ssi_item *next; +}; + +faim_export int aim_ssi_reqrights(aim_session_t *sess, aim_conn_t *conn); +faim_export int aim_ssi_reqdata(aim_session_t *sess, aim_conn_t *conn, time_t localstamp, fu16_t localrev); +faim_export int aim_ssi_enable(aim_session_t *sess, aim_conn_t *conn); +faim_export int aim_ssi_modbegin(aim_session_t *sess, aim_conn_t *conn); +faim_export int aim_ssi_modend(aim_session_t *sess, aim_conn_t *conn); /* aim_util.c */ /* Index: aim_internal.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim_internal.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- aim_internal.h 2001/10/03 20:36:33 1.4 +++ aim_internal.h 2001/11/05 02:05:06 1.5 @@ -17,9 +17,11 @@ #define AIM_MODULENAME_MAXLEN 16 #define AIM_MODFLAG_MULTIFAMILY 0x0001 typedef struct aim_module_s { - unsigned short family; - unsigned short flags; - unsigned short version; + fu16_t family; + fu16_t version; + fu16_t toolid; + fu16_t toolversion; + fu16_t flags; char name[AIM_MODULENAME_MAXLEN+1]; int (*snachandler)(aim_session_t *sess, struct aim_module_s *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs); void (*shutdown)(aim_session_t *sess, struct aim_module_s *mod); @@ -29,7 +31,8 @@ faim_internal int aim__registermodule(aim_session_t *sess, int (*modfirst)(aim_session_t *, aim_module_t *)); faim_internal void aim__shutdownmodules(aim_session_t *sess); - +faim_internal aim_module_t *aim__findmodulebygroup(aim_session_t *sess, fu16_t group); +faim_internal aim_module_t *aim__findmodule(aim_session_t *sess, const char *name); faim_internal int buddylist_modfirst(aim_session_t *sess, aim_module_t *mod); faim_internal int admin_modfirst(aim_session_t *sess, aim_module_t *mod); @@ -43,6 +46,11 @@ faim_internal int chat_modfirst(aim_session_t *sess, aim_module_t *mod); faim_internal int locate_modfirst(aim_session_t *sess, aim_module_t *mod); faim_internal int general_modfirst(aim_session_t *sess, aim_module_t *mod); +faim_internal int ssi_modfirst(aim_session_t *sess, aim_module_t *mod); +faim_internal int invite_modfirst(aim_session_t *sess, aim_module_t *mod); +faim_internal int translate_modfirst(aim_session_t *sess, aim_module_t *mod); +faim_internal int popups_modfirst(aim_session_t *sess, aim_module_t *mod); +faim_internal int adverts_modfirst(aim_session_t *sess, aim_module_t *mod); faim_internal int aim_genericreq_n(aim_session_t *, aim_conn_t *conn, fu16_t family, fu16_t subtype); faim_internal int aim_genericreq_n_snacid(aim_session_t *, aim_conn_t *conn, fu16_t family, fu16_t subtype); Index: bos.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/bos.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- bos.c 2001/09/09 10:07:13 1.2 +++ bos.c 2001/11/05 02:05:06 1.3 @@ -62,7 +62,9 @@ { mod->family = 0x0009; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0110; + mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "bos", sizeof(mod->name)); mod->snachandler = snachandler; Index: buddylist.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/buddylist.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- buddylist.c 2001/10/03 20:36:33 1.4 +++ buddylist.c 2001/11/05 02:05:06 1.5 @@ -76,7 +76,9 @@ { mod->family = 0x0003; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0110; + mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "buddylist", sizeof(mod->name)); mod->snachandler = snachandler; Index: chat.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/chat.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- chat.c 2001/10/03 20:36:33 1.5 +++ chat.c 2001/11/05 02:05:06 1.6 @@ -238,34 +238,6 @@ return 0; } -faim_export int aim_chat_clientready(aim_session_t *sess, aim_conn_t *conn) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 0x20))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x0002, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0001, 0x0002, 0x0000, snacid); - - aimbs_put16(&fr->data, 0x000e); - aimbs_put16(&fr->data, 0x0001); - - aimbs_put16(&fr->data, 0x0004); - aimbs_put16(&fr->data, 0x0001); - - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, 0x0003); - - aimbs_put16(&fr->data, 0x0004); - aimbs_put16(&fr->data, 0x0686); - - aim_tx_enqueue(sess, fr); - - return 0; -} - faim_export int aim_chat_leaveroom(aim_session_t *sess, const char *name) { aim_conn_t *conn; @@ -704,7 +676,9 @@ { mod->family = 0x000e; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0004; /* XXX this doesn't look right */ + mod->toolversion = 0x0001; /* nor does this */ mod->flags = 0; strncpy(mod->name, "chat", sizeof(mod->name)); mod->snachandler = snachandler; Index: chatnav.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/chatnav.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- chatnav.c 2001/09/09 10:07:13 1.2 +++ chatnav.c 2001/11/05 02:05:06 1.3 @@ -18,34 +18,6 @@ return aim_genericreq_n_snacid(sess, conn, 0x000d, 0x0002); } -faim_export int aim_chatnav_clientready(aim_session_t *sess, aim_conn_t *conn) -{ - aim_frame_t *fr; - aim_snacid_t snacid; - - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 0x20))) - return -ENOMEM; - - snacid = aim_cachesnac(sess, 0x0001, 0x0002, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0001, 0x0002, 0x0000, snacid); - - aimbs_put16(&fr->data, 0x000d); - aimbs_put16(&fr->data, 0x0001); - - aimbs_put16(&fr->data, 0x0004); - aimbs_put16(&fr->data, 0x0001); - - aimbs_put16(&fr->data, 0x0001); - aimbs_put16(&fr->data, 0x0003); - - aimbs_put16(&fr->data, 0x0004); - aimbs_put16(&fr->data, 0x0686); - - aim_tx_enqueue(sess, fr); - - return 0; -} - faim_export int aim_chatnav_createroom(aim_session_t *sess, aim_conn_t *conn, const char *name, fu16_t exchange) { aim_frame_t *fr; @@ -390,7 +362,9 @@ { mod->family = 0x000d; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0004; /* XXX this doesn't look right */ + mod->toolversion = 0x0001; /* XXX nor does this */ mod->flags = 0; strncpy(mod->name, "chatnav", sizeof(mod->name)); mod->snachandler = snachandler; Index: conn.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/conn.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- conn.c 2001/10/29 11:23:22 1.4 +++ conn.c 2001/11/05 02:05:06 1.5 @@ -862,17 +862,24 @@ * Register all the modules for this session... */ aim__registermodule(sess, misc_modfirst); /* load the catch-all first */ + aim__registermodule(sess, general_modfirst); + aim__registermodule(sess, locate_modfirst); aim__registermodule(sess, buddylist_modfirst); + aim__registermodule(sess, msg_modfirst); + aim__registermodule(sess, adverts_modfirst); + aim__registermodule(sess, invite_modfirst); aim__registermodule(sess, admin_modfirst); + aim__registermodule(sess, popups_modfirst); aim__registermodule(sess, bos_modfirst); aim__registermodule(sess, search_modfirst); aim__registermodule(sess, stats_modfirst); - aim__registermodule(sess, auth_modfirst); - aim__registermodule(sess, msg_modfirst); + aim__registermodule(sess, translate_modfirst); aim__registermodule(sess, chatnav_modfirst); aim__registermodule(sess, chat_modfirst); - aim__registermodule(sess, locate_modfirst); - aim__registermodule(sess, general_modfirst); + /* missing 0x0f - 0x12 */ + aim__registermodule(sess, ssi_modfirst); + /* missing 0x14 - 0x16 */ + aim__registermodule(sess, auth_modfirst); return; } Index: im.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/im.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- im.c 2001/10/31 09:18:11 1.12 +++ im.c 2001/11/05 02:05:06 1.13 @@ -1626,7 +1626,9 @@ { mod->family = 0x0004; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0110; + mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "messaging", sizeof(mod->name)); mod->snachandler = snachandler; Index: info.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/info.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- info.c 2001/11/04 07:42:28 1.6 +++ info.c 2001/11/05 02:05:06 1.7 @@ -627,7 +627,9 @@ { mod->family = 0x0002; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0101; + mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "locate", sizeof(mod->name)); mod->snachandler = snachandler; Index: login.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/login.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- login.c 2001/10/15 03:16:01 1.8 +++ login.c 2001/11/05 02:05:06 1.9 @@ -1001,7 +1001,9 @@ { mod->family = 0x0001; - mod->version = 0x0000; + mod->version = 0x0003; + mod->toolid = 0x0110; + mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "general", sizeof(mod->name)); mod->snachandler = snachandler; Index: meta.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/meta.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- meta.c 2001/09/09 10:07:13 1.2 +++ meta.c 2001/11/05 02:05:06 1.3 @@ -4,6 +4,7 @@ * */ +#define FAIM_INTERNAL #include <aim.h> faim_export char *aim_getbuilddate(void) Index: misc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/misc.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- misc.c 2001/10/15 03:16:01 1.6 +++ misc.c 2001/11/05 02:05:06 1.7 @@ -215,35 +215,36 @@ * Send Client Ready. * */ -faim_export int aim_bos_clientready(aim_session_t *sess, aim_conn_t *conn) +faim_export int aim_clientready(aim_session_t *sess, aim_conn_t *conn) { - struct aim_tool_version tools[] = { - {0x0001, 0x0003, AIM_TOOL_WIN32, 0x0686}, - {0x0002, 0x0001, AIM_TOOL_WIN32, 0x0001}, - {0x0003, 0x0001, AIM_TOOL_WIN32, 0x0001}, - {0x0004, 0x0001, AIM_TOOL_WIN32, 0x0001}, - {0x0006, 0x0001, AIM_TOOL_WIN32, 0x0001}, - {0x0008, 0x0001, AIM_TOOL_WIN32, 0x0001}, - {0x0009, 0x0001, AIM_TOOL_WIN32, 0x0001}, - {0x000a, 0x0001, AIM_TOOL_WIN32, 0x0001}, - {0x000b, 0x0001, AIM_TOOL_WIN32, 0x0001} - }; - int j; + aim_conn_inside_t *ins = (aim_conn_inside_t *)conn->inside; + struct snacgroup *sg; aim_frame_t *fr; aim_snacid_t snacid; - int toolcount = sizeof(tools)/sizeof(struct aim_tool_version); + if (!ins) + return -EINVAL; + if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 1152))) return -ENOMEM; snacid = aim_cachesnac(sess, 0x0001, 0x0002, 0x0000, NULL, 0); aim_putsnac(&fr->data, 0x0001, 0x0002, 0x0000, snacid); - for (j = 0; j < toolcount; j++) { - aimbs_put16(&fr->data, tools[j].group); - aimbs_put16(&fr->data, tools[j].version); - aimbs_put16(&fr->data, tools[j].tool); - aimbs_put16(&fr->data, tools[j].toolversion); + /* + * Send only the tool versions that the server cares about (that it + * marked as supporting in the server ready SNAC). + */ + for (sg = ins->groups; sg; sg = sg->next) { + aim_module_t *mod; + + if ((mod = aim__findmodulebygroup(sess, sg->group))) { + aimbs_put16(&fr->data, mod->family); + aimbs_put16(&fr->data, mod->version); + aimbs_put16(&fr->data, mod->toolid); + aimbs_put16(&fr->data, mod->toolversion); + } else + faimdprintf(sess, 1, "aim_clientready: server supports group 0x%04x but we don't!\n", sg->group); } aim_tx_enqueue(sess, fr); @@ -255,7 +256,7 @@ * Request Rate Information. * */ -faim_export int aim_bos_reqrate(aim_session_t *sess, aim_conn_t *conn) +faim_export int aim_reqrates(aim_session_t *sess, aim_conn_t *conn) { return aim_genericreq_n(sess, conn, 0x0001, 0x0006); } @@ -264,7 +265,7 @@ * Rate Information Response Acknowledge. * */ -faim_export int aim_bos_ackrateresp(aim_session_t *sess, aim_conn_t *conn) +faim_export int aim_ratesack(aim_session_t *sess, aim_conn_t *conn) { aim_frame_t *fr; aim_snacid_t snacid; @@ -275,6 +276,8 @@ snacid = aim_cachesnac(sess, 0x0001, 0x0008, 0x0000, NULL, 0); aim_putsnac(&fr->data, 0x0001, 0x0008, 0x0000, snacid); + + /* XXX store the rate info in the inside struct, make this dynamic */ aimbs_put16(&fr->data, 0x0001); aimbs_put16(&fr->data, 0x0002); aimbs_put16(&fr->data, 0x0003); @@ -311,37 +314,32 @@ faim_export int aim_setversions(aim_session_t *sess, aim_conn_t *conn) { + aim_conn_inside_t *ins = (aim_conn_inside_t *)conn->inside; + struct snacgroup *sg; aim_frame_t *fr; aim_snacid_t snacid; - static const struct version { - fu16_t group; - fu16_t version; - } versions[] = { - {0x0001, 0x0003}, - {0x0002, 0x0001}, - {0x0003, 0x0001}, - {0x0004, 0x0001}, - {0x0006, 0x0001}, - {0x0008, 0x0001}, - {0x0009, 0x0001}, - {0x000a, 0x0001}, - {0x000b, 0x0002}, - {0x000c, 0x0001}, - {0x0013, 0x0001}, - {0x0015, 0x0001}, - }; - int numversions = sizeof(versions) / sizeof(struct version); - int i; - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + (4*numversions)))) + if (!ins) + return -EINVAL; + + if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 1152))) return -ENOMEM; snacid = aim_cachesnac(sess, 0x0001, 0x0017, 0x0000, NULL, 0); - aim_putsnac(&fr->data, 0x0001, 0x0017, 0x0000, snacid); - for (i = 0; i < numversions; i++) { - aimbs_put16(&fr->data, versions[i].group); - aimbs_put16(&fr->data, versions[i].version); + + /* + * Send only the versions that the server cares about (that it + * marked as supporting in the server ready SNAC). + */ + for (sg = ins->groups; sg; sg = sg->next) { + aim_module_t *mod; + + if ((mod = aim__findmodulebygroup(sess, sg->group))) { + aimbs_put16(&fr->data, mod->family); + aimbs_put16(&fr->data, mod->version); + } else + faimdprintf(sess, 1, "aim_setversions: server supports group 0x%04x but we don't!\n", sg->group); } aim_tx_enqueue(sess, fr); Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- oscar.c 2001/11/01 02:25:13 1.52 +++ oscar.c 2001/11/05 02:05:06 1.53 @@ -859,8 +859,8 @@ static int server_ready_auth(aim_session_t *sess, aim_frame_t *fr, ...) { - aim_auth_setversions(sess, fr->conn); - aim_bos_reqrate(sess, fr->conn); + aim_setversions(sess, fr->conn); + aim_reqrates(sess, fr->conn); debug_printf("done with AUTH ServerReady\n"); return 1; @@ -868,7 +868,7 @@ static int server_ready_bos(aim_session_t *sess, aim_frame_t *fr, ...) { aim_setversions(sess, fr->conn); - aim_bos_reqrate(sess, fr->conn); /* request rate info */ + aim_reqrates(sess, fr->conn); /* request rate info */ debug_printf("done with BOS ServerReady\n"); return 1; @@ -879,8 +879,8 @@ struct chat_connection *chatcon; static int id = 1; - aim_bos_ackrateresp(sess, fr->conn); - aim_chat_clientready(sess, fr->conn); + aim_ratesack(sess, fr->conn); + aim_clientready(sess, fr->conn); chatcon = find_oscar_chat_by_conn(gc, fr->conn); chatcon->id = id; chatcon->cnv = serv_got_joined_chat(gc, id++, chatcon->show); @@ -890,8 +890,8 @@ static int rateresp_chatnav(aim_session_t *sess, aim_frame_t *fr, ...) { - aim_bos_ackrateresp(sess, fr->conn); - aim_chatnav_clientready(sess, fr->conn); + aim_ratesack(sess, fr->conn); + aim_clientready(sess, fr->conn); aim_chatnav_reqrights(sess, fr->conn); return 1; @@ -901,7 +901,7 @@ debug_printf("chatnav: got server ready\n"); aim_conn_addhandler(sess, fr->conn, 0x0001, 0x0007, rateresp_chatnav, 0); aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CTN, AIM_CB_CTN_INFO, gaim_chatnav_info, 0); - aim_bos_reqrate(sess, fr->conn); + aim_reqrates(sess, fr->conn); return 1; } @@ -914,7 +914,7 @@ aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CHT, AIM_CB_CHT_USERLEAVE, gaim_chat_leave, 0); aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CHT, AIM_CB_CHT_ROOMINFOUPDATE, gaim_chat_info_update, 0); aim_conn_addhandler(sess, fr->conn, AIM_CB_FAM_CHT, AIM_CB_CHT_INCOMINGMSG, gaim_chat_incoming_msg, 0); - aim_bos_reqrate(sess, fr->conn); + aim_reqrates(sess, fr->conn); return 1; } @@ -1935,7 +1935,7 @@ static int rateresp_bos(aim_session_t *sess, aim_frame_t *fr, ...) { struct gaim_connection *gc = sess->aux_data; - aim_bos_ackrateresp(sess, fr->conn); + aim_ratesack(sess, fr->conn); aim_bos_reqpersonalinfo(sess, fr->conn); aim_bos_reqlocaterights(sess, fr->conn); aim_bos_setprofile(sess, fr->conn, gc->user->user_info, NULL, gaim_caps); @@ -1963,8 +1963,8 @@ struct gaim_connection *gc = sess->aux_data; struct oscar_data *od = gc->proto_data; - aim_bos_ackrateresp(sess, fr->conn); - aim_auth_clientready(sess, fr->conn); + aim_ratesack(sess, fr->conn); + aim_clientready(sess, fr->conn); debug_printf("connected to auth (admin)\n"); if (od->chpass) { @@ -2039,7 +2039,7 @@ debug_printf("BOS rights: Max permit = %d / Max deny = %d\n", maxpermits, maxdenies); - aim_bos_clientready(sess, fr->conn); + aim_clientready(sess, fr->conn); aim_bos_reqservice(sess, fr->conn, AIM_CONN_TYPE_CHATNAV); Index: rxhandlers.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/rxhandlers.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- rxhandlers.c 2001/09/09 10:07:14 1.2 +++ rxhandlers.c 2001/11/05 02:05:06 1.3 @@ -18,7 +18,19 @@ struct aim_rxcblist_s *next; }; -static aim_module_t *findmodule(aim_session_t *sess, const char *name) +faim_internal aim_module_t *aim__findmodulebygroup(aim_session_t *sess, fu16_t group) +{ + aim_module_t *cur; + + for (cur = (aim_module_t *)sess->modlistv; cur; cur = cur->next) { + if (cur->family == group) + return cur; + } + + return NULL; +} + +faim_internal aim_module_t *aim__findmodule(aim_session_t *sess, const char *name) { aim_module_t *cur; @@ -46,7 +58,7 @@ return -1; } - if (findmodule(sess, mod->name)) { + if (aim__findmodule(sess, mod->name)) { if (mod->shutdown) mod->shutdown(sess, mod); free(mod); @@ -56,7 +68,7 @@ mod->next = (aim_module_t *)sess->modlistv; (aim_module_t *)sess->modlistv = mod; - faimdprintf(sess, 1, "registered module %s (family 0x%04x)\n", mod->name, mod->family); + faimdprintf(sess, 1, "registered module %s (family 0x%04x, version = 0x%04x, tool 0x%04x, tool version 0x%04x)\n", mod->name, mod->family, mod->version, mod->toolid, mod->toolversion); return 0; } Index: search.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/search.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- search.c 2001/09/09 10:07:14 1.2 +++ search.c 2001/11/05 02:05:06 1.3 @@ -109,7 +109,9 @@ { mod->family = 0x000a; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0110; + mod->toolversion = 0x047b; mod->flags = 0; strncpy(mod->name, "search", sizeof(mod->name)); mod->snachandler = snachandler; Index: stats.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/stats.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- stats.c 2001/09/09 10:07:14 1.2 +++ stats.c 2001/11/05 02:05:06 1.3 @@ -28,7 +28,9 @@ { mod->family = 0x000b; - mod->version = 0x0000; + mod->version = 0x0001; + mod->toolid = 0x0104; + mod->toolversion = 0x0001; mod->flags = 0; strncpy(mod->name, "stats", sizeof(mod->name)); mod->snachandler = snachandler; Index: util.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/util.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- util.c 2001/09/09 10:07:14 1.2 +++ util.c 2001/11/05 02:05:06 1.3 @@ -4,6 +4,7 @@ * */ +#define FAIM_INTERNAL #include <aim.h> #include <ctype.h> |
From: Eric W. <war...@us...> - 2001-11-04 12:54:44
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv9011/src Modified Files: gtkimhtml.c Log Message: this doesn't affect gaim at all. Index: gtkimhtml.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.c,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -r1.64 -r1.65 --- gtkimhtml.c 2001/11/01 18:50:39 1.64 +++ gtkimhtml.c 2001/11/04 12:54:41 1.65 @@ -35,6 +35,13 @@ #include <locale.h> #endif +#if GTK_CHECK_VERSION(1,3,0) +#define GTK_IMHTML_GET_STYLE_FONT(style) gtk_style_get_font (style) +#else +#define GTK_IMHTML_GET_STYLE_FONT(style) (style)->font +#define GTK_CLASS_TYPE(class) (class)->type +#endif + #include "pixmaps/angel.xpm" #include "pixmaps/bigsmile.xpm" #include "pixmaps/burp.xpm" @@ -319,7 +326,11 @@ static gint gtk_imhtml_motion_notify_event (GtkWidget *, GdkEventMotion *); static void +#if GTK_CHECK_VERSION(1,3,0) +gtk_imhtml_finalize (GObject *object) +#else gtk_imhtml_destroy (GtkObject *object) +#endif { GtkIMHtml *imhtml; @@ -387,8 +398,12 @@ gtk_smiley_tree_destroy (imhtml->smiley_data); +#if GTK_CHECK_VERSION(1,3,0) + G_OBJECT_CLASS (parent_class)->finalize (object); +#else if (GTK_OBJECT_CLASS (parent_class)->destroy != NULL) (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +#endif } static void @@ -420,8 +435,13 @@ &attributes, attributes_mask); gdk_window_set_user_data (widget->window, widget); +#if GTK_CHECK_VERSION(1,3,0) + attributes.x = widget->style->xthickness + BORDER_SIZE; + attributes.y = widget->style->xthickness + BORDER_SIZE; +#else attributes.x = widget->style->klass->xthickness + BORDER_SIZE; attributes.y = widget->style->klass->xthickness + BORDER_SIZE; +#endif attributes.width = MAX (1, (gint) widget->allocation.width - (gint) attributes.x * 2); attributes.height = MAX (1, (gint) widget->allocation.height - (gint) attributes.y * 2); attributes.event_mask = gtk_widget_get_events (widget) @@ -436,7 +456,7 @@ gdk_window_set_cursor (widget->window, imhtml->arrow_cursor); - imhtml->default_font = gdk_font_ref (GTK_WIDGET (imhtml)->style->font); + imhtml->default_font = gdk_font_ref (GTK_IMHTML_GET_STYLE_FONT (widget->style)); gdk_window_set_background (widget->window, &widget->style->base [GTK_STATE_NORMAL]); gdk_window_set_background (GTK_LAYOUT (imhtml)->bin_window, @@ -699,7 +719,11 @@ GList *chunks; struct line_info *line; gfloat x, y; +#if GTK_CHECK_VERSION(1,3,0) + guint32 width, height; +#else gint width, height; +#endif x = GTK_LAYOUT (imhtml)->hadjustment->value; y = GTK_LAYOUT (imhtml)->vadjustment->value; @@ -752,6 +776,7 @@ gtk_imhtml_draw_focus (GTK_WIDGET (imhtml)); } +#if !GTK_CHECK_VERSION(1,3,0) static void gtk_imhtml_draw (GtkWidget *widget, GdkRectangle *area) @@ -761,6 +786,7 @@ imhtml = GTK_IMHTML (widget); gtk_imhtml_draw_exposed (imhtml); } +#endif static void gtk_imhtml_style_set (GtkWidget *widget, @@ -888,6 +914,22 @@ widget->allocation = *allocation; +#if GTK_CHECK_VERSION(1,3,0) + new_xsize = MAX (1, (gint) allocation->width - + (gint) (widget->style->xthickness + BORDER_SIZE) * 2); + new_ysize = MAX (1, (gint) allocation->height - + (gint) (widget->style->ythickness + BORDER_SIZE) * 2); + + if (GTK_WIDGET_REALIZED (widget)) { + gint x = widget->style->xthickness + BORDER_SIZE; + gint y = widget->style->ythickness + BORDER_SIZE; + gdk_window_move_resize (widget->window, + allocation->x, allocation->y, + allocation->width, allocation->height); + gdk_window_move_resize (layout->bin_window, + x, y, new_xsize, new_ysize); + } +#else new_xsize = MAX (1, (gint) allocation->width - (gint) (widget->style->klass->xthickness + BORDER_SIZE) * 2); new_ysize = MAX (1, (gint) allocation->height - @@ -902,6 +944,7 @@ gdk_window_move_resize (layout->bin_window, x, y, new_xsize, new_ysize); } +#endif layout->hadjustment->page_size = new_xsize; layout->hadjustment->page_increment = new_xsize / 2; @@ -1279,14 +1322,16 @@ gtk_imhtml_tip_paint (GtkIMHtml *imhtml) { GtkStyle *style; + GdkFont *font; gint y, baseline_skip, gap; style = imhtml->tip_window->style; + font = GTK_IMHTML_GET_STYLE_FONT (style); - gap = (style->font->ascent + style->font->descent) / 4; + gap = (font->ascent + font->descent) / 4; if (gap < 2) gap = 2; - baseline_skip = style->font->ascent + style->font->descent + gap; + baseline_skip = font->ascent + font->descent + gap; if (!imhtml->tip_bit) return FALSE; @@ -1294,7 +1339,7 @@ gtk_paint_flat_box (style, imhtml->tip_window->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, NULL, imhtml->tip_window, "tooltip", 0, 0, -1, -1); - y = style->font->ascent + 4; + y = font->ascent + 4; gtk_paint_string (style, imhtml->tip_window->window, GTK_STATE_NORMAL, NULL, imhtml->tip_window, "tooltip", 4, y, imhtml->tip_bit->url); @@ -1307,6 +1352,7 @@ GtkIMHtml *imhtml = data; GtkWidget *widget = GTK_WIDGET (imhtml); GtkStyle *style; + GdkFont *font; gint gap, x, y, w, h, scr_w, scr_h, baseline_skip; if (!imhtml->tip_bit || !GTK_WIDGET_DRAWABLE (widget)) { @@ -1328,16 +1374,17 @@ gtk_widget_ensure_style (imhtml->tip_window); style = imhtml->tip_window->style; + font = GTK_IMHTML_GET_STYLE_FONT (style); scr_w = gdk_screen_width (); scr_h = gdk_screen_height (); - gap = (style->font->ascent + style->font->descent) / 4; + gap = (font->ascent + font->descent) / 4; if (gap < 2) gap = 2; - baseline_skip = style->font->ascent + style->font->descent + gap; + baseline_skip = font->ascent + font->descent + gap; - w = 8 + gdk_string_width (style->font, imhtml->tip_bit->url); + w = 8 + gdk_string_width (font, imhtml->tip_bit->url); h = 8 - gap + baseline_skip; gdk_window_get_pointer (NULL, &x, &y, NULL); @@ -1357,7 +1404,7 @@ if (imhtml->tip_bit->font) y = y + imhtml->tip_bit->font->ascent + imhtml->tip_bit->font->descent; else - y = y + style->font->ascent + style->font->descent; + y = y + font->ascent + font->descent; gtk_widget_set_usize (imhtml->tip_window, w, h); gtk_widget_set_uposition (imhtml->tip_window, x, y); @@ -1755,10 +1802,16 @@ static void gtk_imhtml_class_init (GtkIMHtmlClass *class) { +#if GTK_CHECK_VERSION(1,3,0) + GObjectClass *gobject_class; +#endif GtkObjectClass *object_class; GtkWidgetClass *widget_class; GtkLayoutClass *layout_class; +#if GTK_CHECK_VERSION(1,3,0) + gobject_class = (GObjectClass*) class; +#endif object_class = (GtkObjectClass*) class; widget_class = (GtkWidgetClass*) class; layout_class = (GtkLayoutClass*) class; @@ -1768,19 +1821,25 @@ signals [URL_CLICKED] = gtk_signal_new ("url_clicked", GTK_RUN_FIRST, - object_class->type, + GTK_CLASS_TYPE (object_class), GTK_SIGNAL_OFFSET (GtkIMHtmlClass, url_clicked), gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1, GTK_TYPE_POINTER); +#if GTK_CHECK_VERSION(1,3,0) + gobject_class->finalize = gtk_imhtml_finalize; +#else gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL); object_class->destroy = gtk_imhtml_destroy; +#endif widget_class->realize = gtk_imhtml_realize; +#if !GTK_CHECK_VERSION(1,3,0) widget_class->draw = gtk_imhtml_draw; widget_class->draw_focus = gtk_imhtml_draw_focus; +#endif widget_class->style_set = gtk_imhtml_style_set; widget_class->expose_event = gtk_imhtml_expose_event; widget_class->size_allocate = gtk_imhtml_size_allocate; @@ -3451,15 +3510,27 @@ gtk_widget_set_usize (GTK_WIDGET (imhtml), -1, imhtml->y); +#if GTK_CHECK_VERSION(1,3,0) if (!(options & GTK_IMHTML_NO_SCROLL) && scrolldown && (imhtml->y >= MAX (1, (GTK_WIDGET (imhtml)->allocation.height - + (GTK_WIDGET (imhtml)->style->ythickness + BORDER_SIZE) * 2)))) + gtk_adjustment_set_value (vadj, imhtml->y - + MAX (1, (GTK_WIDGET (imhtml)->allocation.height - + (GTK_WIDGET (imhtml)->style->ythickness + + BORDER_SIZE) * 2))); +#else + if (!(options & GTK_IMHTML_NO_SCROLL) && + scrolldown && + (imhtml->y >= MAX (1, + (GTK_WIDGET (imhtml)->allocation.height - (GTK_WIDGET (imhtml)->style->klass->ythickness + BORDER_SIZE) * 2)))) gtk_adjustment_set_value (vadj, imhtml->y - MAX (1, (GTK_WIDGET (imhtml)->allocation.height - (GTK_WIDGET (imhtml)->style->klass->ythickness + BORDER_SIZE) * 2))); +#endif if (url) { g_free (url); |
From: Eric W. <war...@us...> - 2001-11-04 10:46:41
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv17011/src Modified Files: gtkspell.c Log Message: "just come a little closer" Index: gtkspell.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkspell.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- gtkspell.c 2001/10/16 19:37:47 1.12 +++ gtkspell.c 2001/11/04 10:46:39 1.13 @@ -76,26 +76,44 @@ } static char *readline() { - int len = 1024; - gchar *buf = g_malloc(len); - int pos = 0; - do { - int val = read(fd_read[0], buf + pos, 1); - if (val <= 0) { + static gchar *buf = NULL; + char *end; + char *ret; + char *tmp; + + /* read until we get a newline */ + while (!buf || (end = strchr(buf, '\n')) == NULL) { + char space[1024]; + int ret = read(fd_read[0], space, 1023); + if (ret < 0) { error_print("read: %s\n", strerror(errno)); - g_free(buf); return NULL; - } - pos += val; - if (pos == len) { - len *= 2; - buf = g_realloc(buf, len); } - } while (buf[pos - 1] != '\n'); + space[ret] = 0; + if (buf) { + tmp = buf; + buf = g_strconcat(tmp, space, NULL); + g_free(tmp); + } else + buf = g_strdup(space); + } - buf = g_realloc(buf, pos + 1); - buf[pos] = 0; - return buf; + /* we got a newline, and end points to it. + * copy out the data, reset buf, return */ + + if (end[1] == 0) { + /* only one line is in the buffer */ + ret = buf; + buf = NULL; + return ret; + } + + ret = g_strndup(buf, end - buf + 1); + tmp = buf; + buf = g_strdup(end + 1); + g_free(tmp); + + return ret; } static char *readresponse() { |
From: Eric W. <war...@us...> - 2001-11-04 10:46:41
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv17011/plugins Modified Files: lagmeter.c Log Message: "just come a little closer" Index: lagmeter.c =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/lagmeter.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- lagmeter.c 2001/10/12 17:35:22 1.18 +++ lagmeter.c 2001/11/04 10:46:38 1.19 @@ -79,6 +79,7 @@ ms += tv.tv_usec - my_lag_tv.tv_usec; update_lag(ms); + g_free(*message); *message = NULL; } g_free(name); |
From: Adam F. <mi...@us...> - 2001-11-04 07:42:31
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv24670/protocols/oscar Modified Files: aim.h info.c Log Message: So I was out driving around and went to get back on I-80, but there was no Westbound onramp at Cutting. I was so unpleased. I kept driving. Their were signs for San Rafael, so I just kept going. Little did I know that the it was referring to an onramp to westbound 580, and that it was quite a distance from where I started. It was good, though, because I was bored anyway. Index: aim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- aim.h 2001/10/27 01:58:12 1.11 +++ aim.h 2001/11/04 07:42:28 1.12 @@ -809,6 +809,7 @@ #define AIM_CAPS_SAVESTOCKS 0x0080 #define AIM_CAPS_SENDBUDDYLIST 0x0100 #define AIM_CAPS_GAMES2 0x0200 +#define AIM_CAPS_EVERYBUDDY 0x0400 #define AIM_CAPS_LAST 0x8000 faim_export int aim_0002_000b(aim_session_t *sess, aim_conn_t *conn, const char *sn); Index: info.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/info.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- info.c 2001/10/03 20:36:33 1.5 +++ info.c 2001/11/04 07:42:28 1.6 @@ -124,32 +124,45 @@ unsigned char data[16]; } aim_caps[] = { - {AIM_CAPS_BUDDYICON, - {0x09, 0x46, 0x13, 0x46, 0x4c, 0x7f, 0x11, 0xd1, + /* + * Chat is oddball. + */ + {AIM_CAPS_CHAT, + {0x74, 0x8f, 0x24, 0x20, 0x62, 0x87, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, + /* + * These are mostly in order. + */ {AIM_CAPS_VOICE, {0x09, 0x46, 0x13, 0x41, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, - {AIM_CAPS_IMIMAGE, - {0x09, 0x46, 0x13, 0x45, 0x4c, 0x7f, 0x11, 0xd1, + {AIM_CAPS_SENDFILE, + {0x09, 0x46, 0x13, 0x43, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, - {AIM_CAPS_CHAT, - {0x74, 0x8f, 0x24, 0x20, 0x62, 0x87, 0x11, 0xd1, + /* + * Advertised by the EveryBuddy client. + */ + {AIM_CAPS_EVERYBUDDY, + {0x09, 0x46, 0x13, 0x44, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, - {AIM_CAPS_GETFILE, - {0x09, 0x46, 0x13, 0x48, 0x4c, 0x7f, 0x11, 0xd1, + {AIM_CAPS_IMIMAGE, + {0x09, 0x46, 0x13, 0x45, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, - {AIM_CAPS_SENDFILE, - {0x09, 0x46, 0x13, 0x43, 0x4c, 0x7f, 0x11, 0xd1, + {AIM_CAPS_BUDDYICON, + {0x09, 0x46, 0x13, 0x46, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, {AIM_CAPS_SAVESTOCKS, {0x09, 0x46, 0x13, 0x47, 0x4c, 0x7f, 0x11, 0xd1, + 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, + + {AIM_CAPS_GETFILE, + {0x09, 0x46, 0x13, 0x48, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}, /* |
From: Adam F. <mi...@us...> - 2001-11-04 07:42:31
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv24670 Modified Files: buddy.c Log Message: So I was out driving around and went to get back on I-80, but there was no Westbound onramp at Cutting. I was so unpleased. I kept driving. Their were signs for San Rafael, so I just kept going. Little did I know that the it was referring to an onramp to westbound 580, and that it was quite a distance from where I started. It was good, though, because I was bored anyway. Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.268 retrieving revision 1.269 diff -u -d -r1.268 -r1.269 --- buddy.c 2001/11/02 01:41:36 1.268 +++ buddy.c 2001/11/04 07:42:28 1.269 @@ -1877,7 +1877,7 @@ static char buf[256], *tmp; int count = 0, i = 0; gushort bit = 1; - while (bit <= 0x80) { + while (bit <= 0x400) { if (bit & caps) { switch (bit) { case 0x1: @@ -1899,10 +1899,14 @@ tmp = _("Send File"); break; case 0x40: + case 0x200: tmp = _("Games"); break; case 0x80: tmp = _("Stocks"); + break; + case 0x400: + tmp = _("EveryBuddy Bug"); break; default: tmp = NULL; |
From: Eric W. <war...@us...> - 2001-11-02 23:02:33
|
Update of /cvsroot/gaim/gaim/src/protocols/yahoo In directory usw-pr-cvs1:/tmp/cvs-serv4233 Modified Files: yay.c Log Message: no one saw that Index: yay.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/yay.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- yay.c 2001/11/02 22:58:15 1.24 +++ yay.c 2001/11/02 23:02:31 1.25 @@ -179,8 +179,8 @@ va_start(ap, sess); id = va_arg(ap, char *); - t = va_arg(ap, time_t); who = va_arg(ap, char *); + t = va_arg(ap, time_t); msg = va_arg(ap, char *); va_end(ap); |
From: Eric W. <war...@us...> - 2001-11-02 22:58:18
|
Update of /cvsroot/gaim/gaim/src/protocols/yahoo In directory usw-pr-cvs1:/tmp/cvs-serv2935 Modified Files: rxhandlers.c yay.c Log Message: Howdy, Doody Index: rxhandlers.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/rxhandlers.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- rxhandlers.c 2001/09/27 23:58:48 1.4 +++ rxhandlers.c 2001/11/02 22:58:15 1.5 @@ -287,12 +287,13 @@ break; case YAHOO_SERVICE_NEWCONTACT: if (yahoo_makeint(pkt->msgtype) == 3) { - char **str_array = g_strsplit(pkt->content, ",,", 2); + char **str_array = g_strsplit(pkt->content, ",", 3); if (sess->callbacks[YAHOO_HANDLE_BUDDYADDED].function) (*sess->callbacks[YAHOO_HANDLE_BUDDYADDED].function)(sess, pkt->nick2, str_array[0], - str_array[1]); + atol(str_array[1]), + str_array[2]); g_strfreev(str_array); } else yahoo_parse_status(sess, pkt); Index: yay.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/yay.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- yay.c 2001/11/02 21:10:20 1.23 +++ yay.c 2001/11/02 22:58:15 1.24 @@ -173,11 +173,13 @@ static int yahoo_buddyadded(struct yahoo_session *sess, ...) { va_list ap; char *id; + time_t t; char *who; char *msg; va_start(ap, sess); id = va_arg(ap, char *); + t = va_arg(ap, time_t); who = va_arg(ap, char *); msg = va_arg(ap, char *); va_end(ap); |
From: Eric W. <war...@us...> - 2001-11-02 21:10:23
|
Update of /cvsroot/gaim/gaim/src/protocols/yahoo In directory usw-pr-cvs1:/tmp/cvs-serv6318/protocols/yahoo Modified Files: yay.c Log Message: 00 it's magic, you know Index: yay.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/yay.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- yay.c 2001/10/29 11:23:22 1.22 +++ yay.c 2001/11/02 21:10:20 1.23 @@ -514,7 +514,7 @@ } if (group) - yahoo_add_buddy(yd->sess, yd->active_id, group, name, ""); + yahoo_add_buddy(yd->sess, yd->active_id, group, normalize(name), ""); } static void yahoo_add_buddies(struct gaim_connection *gc, GList *buddies) { |
From: Eric W. <war...@us...> - 2001-11-02 20:55:59
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv1789 Modified Files: dialogs.c Log Message: hi Index: dialogs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/dialogs.c,v retrieving revision 1.279 retrieving revision 1.280 diff -u -d -r1.279 -r1.280 --- dialogs.c 2001/11/02 01:41:37 1.279 +++ dialogs.c 2001/11/02 20:55:55 1.280 @@ -1748,8 +1748,8 @@ g_free(n); if (!d) { p->gc->deny = g_slist_append(p->gc->deny, name); - build_block_list(); serv_add_deny(p->gc, name); + build_block_list(); do_export(p->gc); } else g_free(name); @@ -1765,8 +1765,8 @@ g_free(n); if (!d) { p->gc->permit = g_slist_append(p->gc->permit, name); - build_allow_list(); serv_add_permit(p->gc, name); + build_allow_list(); do_export(p->gc); } else g_free(name); |
From: Eric W. <war...@us...> - 2001-11-02 20:55:59
|
Update of /cvsroot/gaim/gaim/src/protocols/msn In directory usw-pr-cvs1:/tmp/cvs-serv1789/protocols/msn Modified Files: msn.c Log Message: hi Index: msn.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/msn.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- msn.c 2001/10/25 18:30:22 1.32 +++ msn.c 2001/11/02 20:55:55 1.33 @@ -1579,7 +1579,7 @@ { struct msn_data *md = gc->proto_data; char buf[MSN_BUF_LEN]; - GSList *s; + GSList *s, *t = NULL; if (gc->permdeny == PERMIT_ALL || gc->permdeny == DENY_SOME) g_snprintf(buf, sizeof(buf), "BLP %d AL\r\n", ++md->trId); @@ -1609,28 +1609,53 @@ s = g_slist_nth(gc->permit, g_slist_length(md->permit)); while (s) { char *who = s->data; + s = s->next; + if (!strchr(who, '@')) { + t = g_slist_append(t, who); + continue; + } g_snprintf(buf, sizeof(buf), "ADD %d AL %s %s\r\n", ++md->trId, who, who); if (msn_write(md->fd, buf, strlen(buf)) < 0) { hide_login_progress(gc, "Write error"); signoff(gc); return; } - s = s->next; } + while (t) { + char *who = t->data; + gc->permit = g_slist_remove(gc->permit, who); + g_free(who); + t = t->next; + } + if (t) + g_slist_free(t); + t = NULL; g_slist_free(md->permit); md->permit = NULL; s = g_slist_nth(gc->deny, g_slist_length(md->deny)); while (s) { char *who = s->data; + s = s->next; + if (!strchr(who, '@')) { + t = g_slist_append(t, who); + continue; + } g_snprintf(buf, sizeof(buf), "ADD %d AL %s %s\r\n", ++md->trId, who, who); if (msn_write(md->fd, buf, strlen(buf)) < 0) { hide_login_progress(gc, "Write error"); signoff(gc); return; } - s = s->next; } + while (t) { + char *who = t->data; + gc->deny = g_slist_remove(gc->deny, who); + g_free(who); + t = t->next; + } + if (t) + g_slist_free(t); g_slist_free(md->deny); md->deny = NULL; } @@ -1640,6 +1665,13 @@ struct msn_data *md = gc->proto_data; char buf[MSN_BUF_LEN]; + if (!strchr(who, '@')) { + do_error_dialog(_("Invalid name"), _("MSN Error")); + gc->permit = g_slist_remove(gc->permit, who); + g_free(who); + return; + } + g_snprintf(buf, sizeof(buf), "ADD %d AL %s %s\r\n", ++md->trId, who, who); if (msn_write(md->fd, buf, strlen(buf)) < 0) { hide_login_progress(gc, "Write error"); @@ -1665,6 +1697,13 @@ { struct msn_data *md = gc->proto_data; char buf[MSN_BUF_LEN]; + + if (!strchr(who, '@')) { + do_error_dialog(_("Invalid name"), _("MSN Error")); + gc->deny = g_slist_remove(gc->deny, who); + g_free(who); + return; + } g_snprintf(buf, sizeof(buf), "ADD %d BL %s %s\r\n", ++md->trId, who, who); if (msn_write(md->fd, buf, strlen(buf)) < 0) { |
From: Eric W. <war...@us...> - 2001-11-02 10:30:42
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv22644/plugins Modified Files: chatlist.c Log Message: right. thanks. Index: chatlist.c =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/chatlist.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- chatlist.c 2001/10/23 08:06:09 1.5 +++ chatlist.c 2001/11/02 10:30:39 1.6 @@ -203,7 +203,6 @@ c++; } gtk_list_append_items(GTK_LIST(cp->list1), items); - g_free(text); } static void refresh_list(GtkWidget *w, gpointer *m) |
From: Eric W. <war...@us...> - 2001-11-02 07:53:29
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv21129/src Modified Files: buddy_chat.c Log Message: fine. Index: buddy_chat.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy_chat.c,v retrieving revision 1.129 retrieving revision 1.130 diff -u -d -r1.129 -r1.130 --- buddy_chat.c 2001/11/02 01:41:36 1.129 +++ buddy_chat.c 2001/11/02 07:53:23 1.130 @@ -1017,6 +1017,11 @@ return; } + if (*name == '@') + name++; + if (*name == '+') + name++; + c = find_conversation(name); if (c != NULL) { |
From: Eric W. <war...@us...> - 2001-11-02 01:41:40
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv15499/src Modified Files: away.c buddy.c buddy_chat.c conversation.c dialogs.c html.c list.c module.c multi.c perl.c prefs.c prpl.c server.c ticker.c util.c Log Message: everything changed! not really. actually to be quite honest nothing changed. it's really bad that all of these files use prpl references. most of them shouldn't. Index: away.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/away.c,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- away.c 2001/10/31 10:27:07 1.65 +++ away.c 2001/11/02 01:41:36 1.66 @@ -436,7 +436,7 @@ con = g_slist_next(con); } - tmp = msgs = (*gc->prpl->away_states)(gc); + tmp = msgs = gc->prpl->away_states(gc); if ((g_list_length(msgs) == 1) && !strcmp(msgs->data, GAIM_AWAY_CUSTOM)) { awy = away_messages; @@ -503,7 +503,7 @@ } g_snprintf(buf, sizeof(buf), "%s (%s)", - gc->username, (*gc->prpl->name)()); + gc->username, gc->prpl->name()); menuitem = gtk_menu_item_new_with_label(buf); gtk_menu_append(GTK_MENU(awaymenu), menuitem); gtk_widget_show(menuitem); @@ -512,7 +512,7 @@ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); gtk_widget_show(submenu); - tmp = msgs = (*gc->prpl->away_states)(gc); + tmp = msgs = gc->prpl->away_states(gc); if ((g_list_length(msgs) == 1) && (!strcmp(msgs->data, GAIM_AWAY_CUSTOM))) { Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.267 retrieving revision 1.268 diff -u -d -r1.267 -r1.268 --- buddy.c 2001/10/31 10:35:16 1.267 +++ buddy.c 2001/11/02 01:41:36 1.268 @@ -164,7 +164,7 @@ if ((bs = find_buddy_show(new_gs, b->name)) == NULL) { if (g->gc->prpl->list_icon) { bs = new_buddy_show(new_gs, b, - (*g->gc->prpl->list_icon)(b->uc)); + g->gc->prpl->list_icon(b->uc)); } else { bs = new_buddy_show(new_gs, b, (char **)no_icon_xpm); } @@ -217,7 +217,7 @@ } if (g->gc->prpl->list_icon) { bs = new_buddy_show(new_gs, b, - (*g->gc->prpl->list_icon)(b->uc)); + g->gc->prpl->list_icon(b->uc)); } else { bs = new_buddy_show(new_gs, b, (char **)no_icon_xpm); } @@ -640,7 +640,7 @@ while (cn) { g = (struct gaim_connection *)cn->data; if (g->prpl->buddy_menu) { - GList *mo = (*g->prpl->buddy_menu)(g, b->name); + GList *mo = g->prpl->buddy_menu(g, b->name); menuitem = gtk_menu_item_new_with_label(g->username); gtk_menu_append(GTK_MENU(menu), menuitem); @@ -669,7 +669,7 @@ } else { g = (struct gaim_connection *)cn->data; if (g->prpl->buddy_menu) { - GList *mo = (*g->prpl->buddy_menu)(g, b->name); + GList *mo = g->prpl->buddy_menu(g, b->name); while (mo) { struct proto_buddy_menu *pbm = mo->data; @@ -949,7 +949,7 @@ if (!bs) { if (gc->prpl->list_icon) bs = new_buddy_show(gs, b, - (*gc->prpl->list_icon)(b-> + gc->prpl->list_icon(b-> uc)); else bs = new_buddy_show(gs, b, (char **)no_icon_xpm); @@ -2082,7 +2082,7 @@ bs->sound = 2; } else if (bs->log_timer == 0) { if (gc->prpl->list_icon) - xpm = (*gc->prpl->list_icon)(b->uc); + xpm = gc->prpl->list_icon(b->uc); if (xpm == NULL) xpm = (char **)no_icon_xpm; pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); Index: buddy_chat.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy_chat.c,v retrieving revision 1.128 retrieving revision 1.129 diff -u -d -r1.128 -r1.129 --- buddy_chat.c 2001/10/29 06:47:49 1.128 +++ buddy_chat.c 2001/11/02 01:41:36 1.129 @@ -141,7 +141,7 @@ g_list_free(chatentries); chatentries = NULL; - tmp = list = (*joinchatgc->prpl->chat_info)(joinchatgc); + tmp = list = joinchatgc->prpl->chat_info(joinchatgc); while (list) { GtkWidget *label; GtkWidget *rowbox; @@ -217,7 +217,7 @@ continue; if (!joinchatgc) joinchatgc = g; - g_snprintf(buf, sizeof buf, "%s (%s)", g->username, (*g->prpl->name)()); + g_snprintf(buf, sizeof buf, "%s (%s)", g->username, g->prpl->name()); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), g); gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(joinchat_choose), g); @@ -806,7 +806,7 @@ static void chat_press_info(GtkObject *obj, struct conversation *b) { if (b->gc) - (*b->gc->prpl->get_info)(b->gc, gtk_object_get_user_data(obj)); + b->gc->prpl->get_info(b->gc, gtk_object_get_user_data(obj)); } static gint right_click_chat(GtkObject *obj, GdkEventButton *event, struct conversation *b) Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.288 retrieving revision 1.289 diff -u -d -r1.288 -r1.289 --- conversation.c 2001/10/27 23:46:12 1.288 +++ conversation.c 2001/11/02 01:41:37 1.289 @@ -428,7 +428,7 @@ struct gaim_connection *gc = cn->data; cn = cn->next; if (gc->prpl->convo_closed) - (*gc->prpl->convo_closed)(gc, c->name); + gc->prpl->convo_closed(gc, c->name); } remove_icon(c); remove_checkbox(c); @@ -1965,7 +1965,7 @@ while (g) { c = (struct gaim_connection *)g->data; - g_snprintf(buf, sizeof buf, "%s (%s)", c->username, (*c->prpl->name)()); + g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name()); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), cnv); gtk_signal_connect(GTK_OBJECT(opt), "activate", Index: dialogs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/dialogs.c,v retrieving revision 1.278 retrieving revision 1.279 diff -u -d -r1.278 -r1.279 --- dialogs.c 2001/10/31 18:52:40 1.278 +++ dialogs.c 2001/11/02 01:41:37 1.279 @@ -830,7 +830,7 @@ while (g) { c = (struct gaim_connection *)g->data; g_snprintf(buf, sizeof(buf), "%s (%s)", - c->username, (*c->prpl->name)()); + c->username, c->prpl->name()); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), b); gtk_signal_connect(GTK_OBJECT(opt), "activate", @@ -2724,7 +2724,7 @@ while (g) { c = (struct gaim_connection *)g->data; - g_snprintf(buf, sizeof buf, "%s (%s)", c->username, (*c->prpl->name)()); + g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name()); opt = gtk_menu_item_new_with_label(buf); gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_import_gc), c); gtk_widget_show(opt); Index: html.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/html.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- html.c 2001/10/23 08:06:09 1.23 +++ html.c 2001/11/02 01:41:37 1.24 @@ -113,7 +113,7 @@ } struct grab_url_data { - void (*callback)(gpointer, char *); + void (* callback)(gpointer, char *); gpointer data; struct g_url *website; char *url; @@ -202,7 +202,7 @@ } } -void grab_url(char *url, gboolean full, void (*callback)(gpointer, char *), gpointer data) +void grab_url(char *url, gboolean full, void callback(gpointer, char *), gpointer data) { int sock; struct grab_url_data *gunk = g_new0(struct grab_url_data, 1); Index: list.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/list.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- list.c 2001/10/24 10:23:48 1.7 +++ list.c 2001/11/02 01:41:37 1.8 @@ -126,7 +126,7 @@ b->present = 0; if (gc->prpl->normalize) - good = (*gc->prpl->normalize)(buddy); + good = gc->prpl->normalize(buddy); else good = buddy; @@ -223,7 +223,7 @@ norm = gc->prpl->normalize; else norm = normalize; - whoname = g_strdup((*norm)(who)); + whoname = g_strdup(norm(who)); grp = gc->groups; while (grp) { g = (struct group *)grp->data; @@ -231,7 +231,7 @@ mem = g->members; while (mem) { b = (struct buddy *)mem->data; - if (!strcmp((*norm)(b->name), whoname)) { + if (!strcmp(norm(b->name), whoname)) { g_free(whoname); return g; } @@ -250,7 +250,7 @@ norm = z->prpl->normalize; else norm = normalize; - whoname = g_strdup((*norm)(who)); + whoname = g_strdup(norm(who)); grp = z->groups; while (grp) { g = (struct group *)grp->data; @@ -258,7 +258,7 @@ mem = g->members; while (mem) { b = (struct buddy *)mem->data; - if (!strcmp((*norm)(b->name), whoname)) { + if (!strcmp(norm(b->name), whoname)) { g_free(whoname); return g; } @@ -291,7 +291,7 @@ norm = gc->prpl->normalize; else norm = normalize; - whoname = g_strdup((*norm)(who)); + whoname = g_strdup(norm(who)); grp = gc->groups; while (grp) { g = (struct group *)grp->data; @@ -299,7 +299,7 @@ mem = g->members; while (mem) { b = (struct buddy *)mem->data; - if (!strcmp((*norm)(b->name), whoname)) { + if (!strcmp(norm(b->name), whoname)) { g_free(whoname); return b; } @@ -317,7 +317,7 @@ norm = z->prpl->normalize; else norm = normalize; - whoname = g_strdup((*norm)(who)); + whoname = g_strdup(norm(who)); grp = z->groups; while (grp) { g = (struct group *)grp->data; @@ -325,7 +325,7 @@ mem = g->members; while (mem) { b = (struct buddy *)mem->data; - if (!strcmp((*norm)(b->name), whoname)) { + if (!strcmp(norm(b->name), whoname)) { g_free(whoname); return b; } Index: module.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/module.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- module.c 2001/10/15 19:52:44 1.12 +++ module.c 2001/11/02 01:41:37 1.13 @@ -115,7 +115,7 @@ return NULL; } - retval = (*gaim_plugin_init)(plug->handle); + retval = gaim_plugin_init(plug->handle); debug_printf("loaded plugin returned %s\n", retval ? retval : "NULL"); if (retval) { plugin_remove_callbacks(plug->handle); @@ -128,13 +128,13 @@ plugins = g_list_append(plugins, plug); if (g_module_symbol(plug->handle, "name", (gpointer *)&cfunc)) { - plug->name = (*cfunc)(); + plug->name = cfunc(); } else { plug->name = NULL; } if (g_module_symbol(plug->handle, "description", (gpointer *)&cfunc)) - plug->description = (*cfunc)(); + plug->description = cfunc(); else plug->description = NULL; @@ -150,7 +150,7 @@ /* Attempt to call the plugin's remove function (if there) */ if (g_module_symbol(p->handle, "gaim_plugin_remove", (gpointer *)&gaim_plugin_remove)) - (*gaim_plugin_remove)(); + gaim_plugin_remove(); plugin_remove_callbacks(p->handle); @@ -190,7 +190,7 @@ debug_printf("Unloading %s\n", g_module_name(p->handle)); if (g_module_symbol(p->handle, "gaim_plugin_remove", (gpointer *)&gaim_plugin_remove)) - (*gaim_plugin_remove)(); + gaim_plugin_remove(); plugin_remove_callbacks(p->handle); plugins = g_list_remove(plugins, p); g_free(p); @@ -491,7 +491,7 @@ case event_blist_update: case event_quit: zero = g->function; - (*zero)(g->data); + zero(g->data); break; /* one arg */ @@ -500,7 +500,7 @@ case event_new_conversation: case event_error: one = g->function; - (*one)(arg1, g->data); + one(arg1, g->data); break; /* two args */ @@ -514,7 +514,7 @@ case event_set_info: case event_draw_menu: two = g->function; - (*two)(arg1, arg2, g->data); + two(arg1, arg2, g->data); break; /* three args */ @@ -528,7 +528,7 @@ case event_back: case event_warned: three = g->function; - (*three)(arg1, arg2, arg3, g->data); + three(arg1, arg2, arg3, g->data); break; /* four args */ @@ -538,7 +538,7 @@ case event_chat_send_invite: case event_chat_invited: four = g->function; - (*four)(arg1, arg2, arg3, arg4, g->data); + four(arg1, arg2, arg3, arg4, g->data); break; default: @@ -567,7 +567,7 @@ while (c) { p = (struct gaim_plugin *)c->data; if (g_module_symbol(p->handle, "gaim_plugin_remove", (gpointer *)&gaim_plugin_remove)) - (*gaim_plugin_remove)(); + gaim_plugin_remove(); g_free(p); c = c->next; } Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.102 retrieving revision 1.103 diff -u -d -r1.102 -r1.103 --- multi.c 2001/11/02 00:52:07 1.102 +++ multi.c 2001/11/02 01:41:37 1.103 @@ -103,7 +103,7 @@ while (h) { n = (struct buddy *)h->data; if (gc->prpl->buddy_free) - (*gc->prpl->buddy_free)(n); + gc->prpl->buddy_free(n); h = g_slist_remove(h, n); g_free(n); } @@ -150,7 +150,7 @@ { struct prpl *p = find_prpl(proto); if (p && p->name) - return (*p->name)(); + return p->name(); else return "Unknown"; } @@ -357,7 +357,7 @@ if (!found) count++; if (e->name) - opt = gtk_menu_item_new_with_label((*e->name)()); + opt = gtk_menu_item_new_with_label(e->name()); else opt = gtk_menu_item_new_with_label("Unknown"); gtk_object_set_user_data(GTK_OBJECT(opt), u); @@ -606,12 +606,12 @@ if (!p->user_opts) return; - tmp = op = (*p->user_opts)(); + tmp = op = p->user_opts(); if (!op) return; - g_snprintf(buf, sizeof(buf), "%s Options", (*p->name)()); + g_snprintf(buf, sizeof(buf), "%s Options", p->name()); u->proto_frame = gtk_frame_new(buf); gtk_box_pack_start(GTK_BOX(box), u->proto_frame, FALSE, FALSE, 0); gtk_widget_show(u->proto_frame); @@ -1088,7 +1088,7 @@ return; i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); gtk_clist_set_text(GTK_CLIST(list), i, 1, "Yes"); - gtk_clist_set_text(GTK_CLIST(list), i, 3, (*gc->prpl->name)()); + gtk_clist_set_text(GTK_CLIST(list), i, 3, gc->prpl->name()); return; } Index: perl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/perl.c,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- perl.c 2001/10/24 11:07:35 1.63 +++ perl.c 2001/11/02 01:41:37 1.64 @@ -378,7 +378,7 @@ { struct gaim_connection *gc = (struct gaim_connection *)SvIV(ST(1)); if (g_slist_find(connections, gc)) - XST_mPV(i++, (*gc->prpl->name)()); + XST_mPV(i++, gc->prpl->name()); else XST_mPV(i++, "Unknown"); } Index: prefs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prefs.c,v retrieving revision 1.194 retrieving revision 1.195 diff -u -d -r1.194 -r1.195 --- prefs.c 2001/10/31 23:46:54 1.194 +++ prefs.c 2001/11/02 01:41:37 1.195 @@ -2117,7 +2117,7 @@ c = c->next; if (!gc->prpl->set_permit_deny) continue; - g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, (*gc->prpl->name)()); + g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name()); opt = gtk_menu_item_new_with_label(buf); gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(deny_gc_opt), gc); gtk_widget_show(opt); @@ -2341,7 +2341,7 @@ /* this is a hack */ void (*func)(); func = gtk_ctree_node_get_row_data(ctree, node); - (*func)(); + func(); } void show_prefs() Index: prpl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.c,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- prpl.c 2001/10/25 07:03:08 1.45 +++ prpl.c 2001/11/02 01:41:37 1.46 @@ -92,7 +92,7 @@ char buf[256]; g_snprintf(buf, sizeof buf, _("%s was using %s, which got removed." " %s is now offline."), g->username, - (*p->name)(), g->username); + p->name(), g->username); do_error_dialog(buf, _("Disconnect")); signoff(g); c = connections; @@ -235,7 +235,7 @@ static void proto_act(GtkObject *obj, struct gaim_connection *gc) { char *act = gtk_object_get_user_data(obj); - (*gc->prpl->do_action)(gc, act); + gc->prpl->do_action(gc, act); } void do_proto_menu() @@ -282,7 +282,7 @@ c = g_slist_next(c); } - tmp = act = (*gc->prpl->actions)(); + tmp = act = gc->prpl->actions(); while (act) { if (act->data == NULL) { @@ -311,7 +311,7 @@ continue; } - g_snprintf(buf, sizeof(buf), "%s (%s)", gc->username, (*gc->prpl->name)()); + g_snprintf(buf, sizeof(buf), "%s (%s)", gc->username, gc->prpl->name()); menuitem = gtk_menu_item_new_with_label(buf); gtk_menu_append(GTK_MENU(protomenu), menuitem); gtk_widget_show(menuitem); @@ -320,7 +320,7 @@ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); gtk_widget_show(submenu); - tmp = act = (*gc->prpl->actions)(); + tmp = act = gc->prpl->actions(); while (act) { if (act->data == NULL) { Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.205 retrieving revision 1.206 diff -u -d -r1.205 -r1.206 --- server.c 2001/11/01 00:26:19 1.205 +++ server.c 2001/11/02 01:41:37 1.206 @@ -54,8 +54,8 @@ return; } - debug_printf("Logging in using %s\n", (*p->name)()); - (*p->login)(user); + debug_printf("Logging in using %s\n", p->name()); + p->login(user); } else { do_error_dialog(_("You cannot log this account in; you do not have " "the protocol it uses loaded, or the protocol does " @@ -67,7 +67,7 @@ { struct gaim_connection *gc = d; if (gc->prpl && gc->prpl->keepalive) - (*gc->prpl->keepalive)(gc); + gc->prpl->keepalive(gc); return TRUE; } @@ -99,7 +99,7 @@ update_keepalive(gc, FALSE); if (gc->prpl && gc->prpl->close) - (*gc->prpl->close)(gc); + gc->prpl->close(gc); account_offline(gc); destroy_gaim_conn(gc); @@ -146,7 +146,7 @@ { int val = -EINVAL; if (gc->prpl && gc->prpl->send_im) - val = (*gc->prpl->send_im)(gc, name, message, flags); + val = gc->prpl->send_im(gc, name, message, flags); if (!(flags & IM_FLAG_AWAY)) serv_touch_idle(gc); @@ -157,27 +157,27 @@ void serv_get_info(struct gaim_connection *g, char *name) { if (g && g->prpl && g->prpl->get_info) - (*g->prpl->get_info)(g, name); + g->prpl->get_info(g, name); } void serv_get_dir(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->get_dir) - (*g->prpl->get_dir)(g, name); + g->prpl->get_dir(g, name); } void serv_set_dir(struct gaim_connection *g, char *first, char *middle, char *last, char *maiden, char *city, char *state, char *country, int web) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_dir) - (*g->prpl->set_dir)(g, first, middle, last, maiden, city, state, country, web); + g->prpl->set_dir(g, first, middle, last, maiden, city, state, country, web); } void serv_dir_search(struct gaim_connection *g, char *first, char *middle, char *last, char *maiden, char *city, char *state, char *country, char *email) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->dir_search) - (*g->prpl->dir_search)(g, first, middle, last, maiden, city, state, country, email); + g->prpl->dir_search(g, first, middle, last, maiden, city, state, country, email); } @@ -193,7 +193,7 @@ strncpy_nohtml(buf, message, strlen(message) + 1); } - (*gc->prpl->set_away)(gc, state, buf); + gc->prpl->set_away(gc, state, buf); plugin_event(event_away, gc, state, buf, 0); @@ -220,30 +220,30 @@ { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_info) { plugin_event(event_set_info, g, info, 0, 0); - (*g->prpl->set_info)(g, info); + g->prpl->set_info(g, info); } } void serv_change_passwd(struct gaim_connection *g, char *orig, char *new) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->change_passwd) - (*g->prpl->change_passwd)(g, orig, new); + g->prpl->change_passwd(g, orig, new); } void serv_add_buddy(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->add_buddy) - (*g->prpl->add_buddy)(g, name); + g->prpl->add_buddy(g, name); } void serv_add_buddies(struct gaim_connection *g, GList *buddies) { if (g && g_slist_find(connections, g) && g->prpl) { if (g->prpl->add_buddies) - (*g->prpl->add_buddies)(g, buddies); + g->prpl->add_buddies(g, buddies); else if (g->prpl->add_buddy) while (buddies) { - (*g->prpl->add_buddy)(g, buddies->data); + g->prpl->add_buddy(g, buddies->data); buddies = buddies->next; } } @@ -253,7 +253,7 @@ void serv_remove_buddy(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->remove_buddy) - (*g->prpl->remove_buddy)(g, name); + g->prpl->remove_buddy(g, name); } void serv_remove_buddies(struct gaim_connection *gc, GList *g) @@ -263,7 +263,7 @@ if (!gc->prpl) return; /* how the hell did that happen? */ if (gc->prpl->remove_buddies) - (*gc->prpl->remove_buddies)(gc, g); + gc->prpl->remove_buddies(gc, g); else { while (g) { serv_remove_buddy(gc, g->data); @@ -275,25 +275,25 @@ void serv_add_permit(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->add_permit) - (*g->prpl->add_permit)(g, name); + g->prpl->add_permit(g, name); } void serv_add_deny(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->add_deny) - (*g->prpl->add_deny)(g, name); + g->prpl->add_deny(g, name); } void serv_rem_permit(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->rem_permit) - (*g->prpl->rem_permit)(g, name); + g->prpl->rem_permit(g, name); } void serv_rem_deny(struct gaim_connection *g, char *name) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->rem_deny) - (*g->prpl->rem_deny)(g, name); + g->prpl->rem_deny(g, name); } void serv_set_permit_deny(struct gaim_connection *g) @@ -302,26 +302,26 @@ * or when the user toggles the permit/deny mode in the prefs. In either case you should * probably be resetting and resending the permit/deny info when you get this. */ if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_permit_deny) - (*g->prpl->set_permit_deny)(g); + g->prpl->set_permit_deny(g); } void serv_set_idle(struct gaim_connection *g, int time) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->set_idle) - (*g->prpl->set_idle)(g, time); + g->prpl->set_idle(g, time); } void serv_warn(struct gaim_connection *g, char *name, int anon) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->warn) - (*g->prpl->warn)(g, name, anon); + g->prpl->warn(g, name, anon); } void serv_join_chat(struct gaim_connection *g, GList *data) { if (g && g_slist_find(connections, g) && g->prpl && g->prpl->join_chat) - (*g->prpl->join_chat)(g, data); + g->prpl->join_chat(g, data); } void serv_chat_invite(struct gaim_connection *g, int id, char *message, char *name) @@ -329,7 +329,7 @@ char *buffy = message && *message ? g_strdup(message) : NULL; plugin_event(event_chat_send_invite, g, (void *)id, name, &buffy); if (g && g_slist_find(connections, g) && g->prpl && g->prpl->chat_invite) - (*g->prpl->chat_invite)(g, id, buffy, name); + g->prpl->chat_invite(g, id, buffy, name); if (buffy) g_free(buffy); } @@ -340,20 +340,20 @@ return; if (g->prpl && g->prpl->chat_leave) - (*g->prpl->chat_leave)(g, id); + g->prpl->chat_leave(g, id); } void serv_chat_whisper(struct gaim_connection *g, int id, char *who, char *message) { if (g->prpl && g->prpl->chat_whisper) - (*g->prpl->chat_whisper)(g, id, who, message); + g->prpl->chat_whisper(g, id, who, message); } int serv_chat_send(struct gaim_connection *g, int id, char *message) { int val = -EINVAL; if (g->prpl && g->prpl->chat_send) - val = (*g->prpl->chat_send)(g, id, message); + val = g->prpl->chat_send(g, id, message); serv_touch_idle(g); return val; } Index: ticker.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/ticker.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- ticker.c 2001/10/19 08:39:48 1.17 +++ ticker.c 2001/11/02 01:41:37 1.18 @@ -293,7 +293,7 @@ if( b->present ) { xpm = NULL; if (gc->prpl->list_icon) - xpm = (*gc->prpl->list_icon)(b->uc); + xpm = gc->prpl->list_icon(b->uc); if (xpm == NULL) xpm = (char **)no_icon_xpm; pm = gdk_pixmap_create_from_xpm_d(blist->window, &bm, NULL, xpm); Index: util.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/util.c,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- util.c 2001/10/25 20:58:01 1.110 +++ util.c 2001/11/02 01:41:37 1.111 @@ -963,32 +963,32 @@ switch (what) { case log_signon: g_snprintf(text, sizeof(text), "+++ %s (%s) signed on @ %s", - gc->username, (*gc->prpl->name)(), full_date()); + gc->username, gc->prpl->name(), full_date()); g_snprintf(html, sizeof(html), "<B>%s</B>", text); break; case log_signoff: g_snprintf(text, sizeof(text), "+++ %s (%s) signed off @ %s", - gc->username, (*gc->prpl->name)(), full_date()); + gc->username, gc->prpl->name(), full_date()); g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); break; case log_away: g_snprintf(text, sizeof(text), "+++ %s (%s) changed away state @ %s", - gc->username, (*gc->prpl->name)(), full_date()); + gc->username, gc->prpl->name(), full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); break; case log_back: g_snprintf(text, sizeof(text), "+++ %s (%s) came back @ %s", - gc->username, (*gc->prpl->name)(), full_date()); + gc->username, gc->prpl->name(), full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_idle: g_snprintf(text, sizeof(text), "+++ %s (%s) became idle @ %s", - gc->username, (*gc->prpl->name)(), full_date()); + gc->username, gc->prpl->name(), full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); break; case log_unidle: g_snprintf(text, sizeof(text), "+++ %s (%s) returned from idle @ %s", - gc->username, (*gc->prpl->name)(), full_date()); + gc->username, gc->prpl->name(), full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_quit: @@ -1000,33 +1000,33 @@ switch (what) { case log_signon: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) signed on @ %s", - gc->username, (*gc->prpl->name)(), who->show, who->name, full_date()); + gc->username, gc->prpl->name(), who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<B>%s</B>", text); break; case log_signoff: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) signed off @ %s", - gc->username, (*gc->prpl->name)(), who->show, who->name, full_date()); + gc->username, gc->prpl->name(), who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); break; case log_away: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) went away @ %s", - gc->username, (*gc->prpl->name)(), who->show, who->name, full_date()); + gc->username, gc->prpl->name(), who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); break; case log_back: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) came back @ %s", - gc->username, (*gc->prpl->name)(), who->show, who->name, full_date()); + gc->username, gc->prpl->name(), who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_idle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) became idle @ %s", - gc->username, (*gc->prpl->name)(), who->show, who->name, full_date()); + gc->username, gc->prpl->name(), who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); break; case log_unidle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) returned from idle @ %s", gc->username, - (*gc->prpl->name)(), who->show, who->name, full_date()); + gc->prpl->name(), who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; default: @@ -1038,33 +1038,33 @@ switch (what) { case log_signon: g_snprintf(text, sizeof(text), "%s (%s) reported that %s signed on @ %s", - gc->username, (*gc->prpl->name)(), who->name, full_date()); + gc->username, gc->prpl->name(), who->name, full_date()); g_snprintf(html, sizeof(html), "<B>%s</B>", text); break; case log_signoff: g_snprintf(text, sizeof(text), "%s (%s) reported that %s signed off @ %s", - gc->username, (*gc->prpl->name)(), who->name, full_date()); + gc->username, gc->prpl->name(), who->name, full_date()); g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); break; case log_away: g_snprintf(text, sizeof(text), "%s (%s) reported that %s went away @ %s", - gc->username, (*gc->prpl->name)(), who->name, full_date()); + gc->username, gc->prpl->name(), who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); break; case log_back: g_snprintf(text, sizeof(text), "%s (%s) reported that %s came back @ %s", - gc->username, (*gc->prpl->name)(), who->name, full_date()); + gc->username, gc->prpl->name(), who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_idle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s became idle @ %s", - gc->username, (*gc->prpl->name)(), who->name, full_date()); + gc->username, gc->prpl->name(), who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); break; case log_unidle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s returned from idle @ %s", gc->username, - (*gc->prpl->name)(), who->name, full_date()); + gc->prpl->name(), who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; default: |
From: Eric W. <war...@us...> - 2001-11-02 00:52:10
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv4124 Modified Files: multi.c Log Message: this is more correct Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.101 retrieving revision 1.102 diff -u -d -r1.101 -r1.102 --- multi.c 2001/11/02 00:50:24 1.101 +++ multi.c 2001/11/02 00:52:07 1.102 @@ -1088,7 +1088,7 @@ return; i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); gtk_clist_set_text(GTK_CLIST(list), i, 1, "Yes"); - gtk_clist_set_text(GTK_CLIST(list), i, 3, proto_name(gc->user->protocol)); + gtk_clist_set_text(GTK_CLIST(list), i, 3, (*gc->prpl->name)()); return; } |
From: Eric W. <war...@us...> - 2001-11-02 00:50:27
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv3686 Modified Files: multi.c Log Message: heh. Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.100 retrieving revision 1.101 diff -u -d -r1.100 -r1.101 --- multi.c 2001/10/27 02:49:01 1.100 +++ multi.c 2001/11/02 00:50:24 1.101 @@ -1088,7 +1088,7 @@ return; i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); gtk_clist_set_text(GTK_CLIST(list), i, 1, "Yes"); - gtk_clist_set_text(GTK_CLIST(list), i, 3, proto_name(gc->protocol)); + gtk_clist_set_text(GTK_CLIST(list), i, 3, proto_name(gc->user->protocol)); return; } |
From: Eric W. <war...@us...> - 2001-11-01 23:07:22
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv11611 Modified Files: configure.ac Log Message: no. Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- configure.ac 2001/11/01 22:38:35 1.26 +++ configure.ac 2001/11/01 23:07:19 1.27 @@ -153,11 +153,17 @@ fi CFLAGS="$CFLAGS $GTK_CFLAGS" -if test "x$enable_panel" = "xyes" ; then +dnl if test "x$enable_panel" = "xyes" ; then dnl Things moved with the new versoin of Orbit. Thanks for dnl telling me, Dan. This should fix them. - CFLAGS="$CFLAGS $ORBIT_CFLAGS" -fi + dnl + dnl The gnome-config script should pick this up and affect GNOME_ variables + dnl correctly. Thus, this check is not needed; if it fails, it is because of + dnl a broken installation or that your appletsConf.sh file is not updated + dnl for the new orbit installation. Gaim shouldn't need to do this. + dnl + dnl CFLAGS="$CFLAGS $ORBIT_CFLAGS" +dnl fi use_pixbuf=no if test "x$enable_pixbuf" = "xyes" ; then |
From: Rob F. <rob...@us...> - 2001-11-01 22:38:40
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv3906 Modified Files: configure.ac Log Message: Oops. Silly me. Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- configure.ac 2001/11/01 22:34:02 1.25 +++ configure.ac 2001/11/01 22:38:35 1.26 @@ -156,7 +156,7 @@ if test "x$enable_panel" = "xyes" ; then dnl Things moved with the new versoin of Orbit. Thanks for dnl telling me, Dan. This should fix them. - CFLAGS="$CFLAGS ORBIT_CFLAGS" + CFLAGS="$CFLAGS $ORBIT_CFLAGS" fi use_pixbuf=no |
From: Rob F. <rob...@us...> - 2001-11-01 22:34:05
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv2903 Modified Files: configure.ac Log Message: The newest Orbit has the orbit.h in a different place... Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- configure.ac 2001/11/01 18:50:39 1.24 +++ configure.ac 2001/11/01 22:34:02 1.25 @@ -153,6 +153,12 @@ fi CFLAGS="$CFLAGS $GTK_CFLAGS" +if test "x$enable_panel" = "xyes" ; then + dnl Things moved with the new versoin of Orbit. Thanks for + dnl telling me, Dan. This should fix them. + CFLAGS="$CFLAGS ORBIT_CFLAGS" +fi + use_pixbuf=no if test "x$enable_pixbuf" = "xyes" ; then AC_PATH_PROG(pixbufcfg, gdk-pixbuf-config) |
From: Rob F. <rob...@us...> - 2001-11-01 21:13:40
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv12590 Modified Files: NEWS Log Message: poo Index: NEWS =================================================================== RCS file: /cvsroot/gaim/gaim/NEWS,v retrieving revision 1.96 retrieving revision 1.97 diff -u -d -r1.96 -r1.97 --- NEWS 2001/11/01 17:34:41 1.96 +++ NEWS 2001/11/01 21:13:36 1.97 @@ -1,5 +1,7 @@ -=[ Gaim ]=- The Pimpin' Penguin AIM Clone That's Good For The Soul! +0.48: + 0.47 (11/01/2001): Rob: Hi. Gaim v0.47 has been released, as you should already know. I hope all of you had a nice little halloween. There are |
From: Eric W. <war...@us...> - 2001-11-01 18:50:43
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv9565/src Modified Files: gtkimhtml.c Log Message: it's 10:50 Index: gtkimhtml.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.c,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- gtkimhtml.c 2001/10/26 23:07:08 1.63 +++ gtkimhtml.c 2001/11/01 18:50:39 1.64 @@ -296,6 +296,7 @@ gint y; gint width; gint height; + GtkIMHtml *imhtml; GtkIMHtmlBit *bit; }; @@ -1475,6 +1476,33 @@ return TRUE; } +static void +menu_open_url (GtkObject *object, + gpointer data) +{ + struct url_widget *uw = data; + + gtk_signal_emit (GTK_OBJECT (uw->imhtml), signals [URL_CLICKED], uw->bit->url); +} + +static void +menu_copy_link (GtkObject *object, + gpointer data) +{ + struct url_widget *uw = data; + GtkIMHtml *imhtml = uw->imhtml; + + if (imhtml->selected_text) + g_string_free (imhtml->selected_text, TRUE); + + gtk_imhtml_select_none (uw->imhtml); + + imhtml->selection = TRUE; + imhtml->selected_text = g_string_new (uw->bit->url); + + gtk_selection_owner_set (GTK_WIDGET (imhtml), GDK_SELECTION_PRIMARY, GDK_CURRENT_TIME); +} + static gint gtk_imhtml_button_press_event (GtkWidget *widget, GdkEventButton *event) @@ -1484,16 +1512,57 @@ GtkAdjustment *hadj = GTK_LAYOUT (widget)->hadjustment; gint x, y; - if (event->button == 1) { - x = event->x + hadj->value; - y = event->y + vadj->value; + x = event->x + hadj->value; + y = event->y + vadj->value; + if (event->button == 1) { imhtml->sel_startx = x; imhtml->sel_starty = y; imhtml->selection = TRUE; gtk_imhtml_select_none (imhtml); } + if (event->button == 3) { + GList *urls = imhtml->urls; + struct url_widget *uw; + + while (urls) { + uw = urls->data; + if ((x > uw->x) && (x < uw->x + uw->width) && + (y > uw->y) && (y < uw->y + uw->height)) { + GtkWidget *menu = gtk_menu_new (); + + GtkWidget *button = gtk_menu_item_new_with_label ("Open URL"); + gtk_signal_connect (GTK_OBJECT (button), "activate", + GTK_SIGNAL_FUNC (menu_open_url), uw); + gtk_menu_append (GTK_MENU (menu), button); + gtk_widget_show (button); + + button = gtk_menu_item_new_with_label ("Copy Link Location"); + gtk_signal_connect (GTK_OBJECT (button), "activate", + GTK_SIGNAL_FUNC (menu_copy_link), uw); + gtk_menu_append (GTK_MENU (menu), button); + gtk_widget_show (button); + + gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, + 3, event->time); + + if (imhtml->tip_timer) { + gtk_timeout_remove (imhtml->tip_timer); + imhtml->tip_timer = 0; + } + if (imhtml->tip_window) { + gtk_widget_destroy (imhtml->tip_window); + imhtml->tip_window = NULL; + } + imhtml->tip_bit = NULL; + + return TRUE; + } + urls = g_list_next (urls); + } + } + return TRUE; } @@ -2226,6 +2295,7 @@ uw->y = imhtml->y; uw->width = width; uw->height = imhtml->llheight; + uw->imhtml = imhtml; uw->bit = bit; imhtml->urls = g_list_append (imhtml->urls, uw); } @@ -2258,6 +2328,7 @@ uw->y = imhtml->y; uw->width = width; uw->height = imhtml->llheight; + uw->imhtml = imhtml; uw->bit = bit; imhtml->urls = g_list_append (imhtml->urls, uw); } |
From: Eric W. <war...@us...> - 2001-11-01 18:50:43
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv9565 Modified Files: ChangeLog HACKING configure.ac Log Message: it's 10:50 Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.350 retrieving revision 1.351 diff -u -d -r1.350 -r1.351 --- ChangeLog 2001/11/01 16:55:08 1.350 +++ ChangeLog 2001/11/01 18:50:39 1.351 @@ -1,5 +1,8 @@ Gaim: The Pimpin' Penguin IM Clone thats good for the soul! +version 0.48: + * Right-click on links to open/copy URL + version 0.47 (11/01/2001): * Better font loading (pays attention to charset now) (thanks Arkadiusz Miskiewicz) Index: HACKING =================================================================== RCS file: /cvsroot/gaim/gaim/HACKING,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- HACKING 2001/10/16 23:37:11 1.25 +++ HACKING 2001/11/01 18:50:39 1.26 @@ -37,6 +37,13 @@ $Date$. Do not expect any information contained within to be current or correct. +Here's something new. Someone requested that I comment the code. No. I'm +a lazy bastard, and I understand most of the code, so I don't need the +comments. I understand that some of you do though. So give me the names +of specific functions that you'd like commented and I'll see what I can +do. It's more likely that those comments will be updated with the code +than this file is, though even that is still unlikely. + CODING STYLE ============ Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- configure.ac 2001/10/30 16:48:23 1.23 +++ configure.ac 2001/11/01 18:50:39 1.24 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/aim.c) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE([gaim], [0.47]) +AM_INIT_AUTOMAKE([gaim], [0.48]) AC_PATH_PROG(sedpath, sed) |
From: Eric W. <war...@us...> - 2001-11-01 18:50:43
|
Update of /cvsroot/gaim/gaim/doc In directory usw-pr-cvs1:/tmp/cvs-serv9565/doc Modified Files: gaim.1 Log Message: it's 10:50 Index: gaim.1 =================================================================== RCS file: /cvsroot/gaim/gaim/doc/gaim.1,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- gaim.1 2001/10/19 05:54:16 1.38 +++ gaim.1 2001/11/01 18:50:39 1.39 @@ -21,7 +21,7 @@ .\" USA. .TH gaim 1 .SH NAME -Gaim v0.47 \- Instant Messaging client +Gaim v0.48 \- Instant Messaging client .SH SYNOPSIS .TP 5 \fBgaim \fI[options]\fR |