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: Luke S. <lsc...@us...> - 2002-10-07 02:05:33
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv12500/plugins Modified Files: history.c Log Message: some people (like faceprint) don't log html. Index: history.c =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/history.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- history.c 6 Oct 2002 07:56:43 -0000 1.1 +++ history.c 7 Oct 2002 02:05:29 -0000 1.2 @@ -22,6 +22,7 @@ char buf[HISTORY_SIZE+1]; char *tmp; int size; + GtkIMHtmlOptions options = GTK_IMHTML_NO_COLOURS; if (stat(path, &st) || S_ISDIR(st.st_mode) || st.st_size == 0 || !(fd = fopen(path, "r"))) { @@ -41,8 +42,11 @@ tmp++; if (*tmp) tmp++; - - gtk_imhtml_append_text(GTK_IMHTML(c->text), tmp, strlen(tmp), GTK_IMHTML_NO_COLOURS | GTK_IMHTML_NO_NEWLINE); + + if(*tmp == '<') + options |= GTK_IMHTML_NO_NEWLINE; + + gtk_imhtml_append_text(GTK_IMHTML(c->text), tmp, strlen(tmp), options); g_free(userdir); g_free(logfile); |
From: Christian H. <ch...@us...> - 2002-10-07 00:32:33
|
Update of /cvsroot/gaim/web/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv6770 Modified Files: news.txt Log Message: New version image. Index: news.txt =================================================================== RCS file: /cvsroot/gaim/web/htdocs/news.txt,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- news.txt 6 Oct 2002 23:49:58 -0000 1.5 +++ news.txt 7 Oct 2002 00:32:30 -0000 1.6 @@ -1,7 +1,6 @@ v0.59.4 released! Run for your lives! October 06th, 2002 - 7:45PM EDT We've released the latest and greatest of bug fixes for the stable tree. There aren't very many changes in this release. We mostly let it out to hold everyone over while we work on Gaim v0.60. We think you'll really enjoy it when we're finished. As always, see the <a href="ChangeLog">ChangeLog</a> if you have any questions. -PS: Ignore the version number at the top of the page. I couldn't find Chip at the time I needed to make a release. It'll change when he returns. # Website maintenance September 26th, 2002 - 3:41AM PDT |
From: Christian H. <ch...@us...> - 2002-10-07 00:32:33
|
Update of /cvsroot/gaim/web/htdocs/images In directory usw-pr-cvs1:/tmp/cvs-serv6770/images Modified Files: version.gif Log Message: New version image. Index: version.gif =================================================================== RCS file: /cvsroot/gaim/web/htdocs/images/version.gif,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 Binary files /tmp/cvsokLAe2 and /tmp/cvsuEN1lU differ |
From: Rob F. <rob...@us...> - 2002-10-06 23:50:18
|
Update of /cvsroot/gaim/web/inc In directory usw-pr-cvs1:/tmp/cvs-serv22181 Modified Files: version.inc.php Log Message: Well, hello there ;-) Index: version.inc.php =================================================================== RCS file: /cvsroot/gaim/web/inc/version.inc.php,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- version.inc.php 26 Sep 2002 10:23:23 -0000 1.1.1.1 +++ version.inc.php 6 Oct 2002 23:50:16 -0000 1.2 @@ -3,5 +3,5 @@ * This variable will be inserted into the source tarball and bz2ball * path. Update with every new release. */ - $current_version = "0.59.3"; + $current_version = "0.59.4"; ?> |
From: Rob F. <rob...@us...> - 2002-10-06 23:50:00
|
Update of /cvsroot/gaim/web/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv21962 Modified Files: news.txt ChangeLog Log Message: Werd Index: news.txt =================================================================== RCS file: /cvsroot/gaim/web/htdocs/news.txt,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- news.txt 29 Sep 2002 19:11:53 -0000 1.4 +++ news.txt 6 Oct 2002 23:49:58 -0000 1.5 @@ -1,3 +1,8 @@ +v0.59.4 released! Run for your lives! +October 06th, 2002 - 7:45PM EDT +We've released the latest and greatest of bug fixes for the stable tree. There aren't very many changes in this release. We mostly let it out to hold everyone over while we work on Gaim v0.60. We think you'll really enjoy it when we're finished. As always, see the <a href="ChangeLog">ChangeLog</a> if you have any questions. +PS: Ignore the version number at the top of the page. I couldn't find Chip at the time I needed to make a release. It'll change when he returns. +# Website maintenance September 26th, 2002 - 3:41AM PDT We experienced a few problems with the website, and lost some data. Particularly, the past two news items, relating to the win32 release of gaim and something else I can't remember, and updated FAQ information. We'll be working to restore this data. Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/web/htdocs/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ChangeLog 26 Sep 2002 11:10:35 -0000 1.1 +++ ChangeLog 6 Oct 2002 23:49:58 -0000 1.2 @@ -1,5 +1,13 @@ Gaim: The Pimpin' Penguin IM Clone thats good for the soul! +version 0.59.4 (10/06/2002): + * Removed color keybinnding altogether. + * Added a horizontal scrollbar to Edit page of + buddy list. (Thanks, David Fallon) + * Various bug fixes ((Thanks to (in no particular order) + Ethan Blanton, Mark Doliner, Luke Schierer) + * i18n fixes (thanks, A Lee) + version 0.59.3 (09/14/2002): * Reversed patch that accidentally caused Yahoo not to connect--for implementation reasons @@ -10,7 +18,7 @@ (Thanks Matt Wilson and Ethan Blanton) version 0.59.2 (09/09/2002): - * Japanese translation updated (Thanks, Junichi Uekawa) + * Japanese translation updated (Thanks, Junichi Uekawa) * Won't crash when you set your MSN Friendly name to an empty string. * Default manual browser command changed to reflect the |
From: Sean E. <sea...@us...> - 2002-10-06 21:20:33
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv22971 Modified Files: Tag: gtk1-stable NEWS Log Message: Category: Computers > Internet > ... > International > AOL > Instant Messenger Index: NEWS =================================================================== RCS file: /cvsroot/gaim/gaim/NEWS,v retrieving revision 1.138.2.8 retrieving revision 1.138.2.9 diff -u -d -r1.138.2.8 -r1.138.2.9 --- NEWS 6 Oct 2002 21:03:03 -0000 1.138.2.8 +++ NEWS 6 Oct 2002 21:20:30 -0000 1.138.2.9 @@ -8,6 +8,8 @@ George: I like it! Too bad nobody likes me! + Sean: Did you mean: gimp + 0.59.3 (09/14/2002): Rob: This really has been made a little early. Of course, we figured that some of you may like to connect to Yahoo. Sorry about that |
From: Rob F. <rob...@us...> - 2002-10-06 21:03:06
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv15553 Modified Files: Tag: gtk1-stable NEWS Log Message: blah Index: NEWS =================================================================== RCS file: /cvsroot/gaim/gaim/NEWS,v retrieving revision 1.138.2.7 retrieving revision 1.138.2.8 diff -u -d -r1.138.2.7 -r1.138.2.8 --- NEWS 6 Oct 2002 19:24:25 -0000 1.138.2.7 +++ NEWS 6 Oct 2002 21:03:03 -0000 1.138.2.8 @@ -1,6 +1,12 @@ -=[ Gaim ]=- The Pimpin' Penguin IM Client That's Good For The Soul! 0.59.4 (10/06/2002): + Rob: Well, it has been some time since we made our last release. This + version has a few minor bug fixes. We hope that this will keep everyone + satisfied while we work on the major list of enhancements and changes + to the GTK2 port of Gaim. I think everyone will really like it. + + George: I like it! Too bad nobody likes me! 0.59.3 (09/14/2002): Rob: This really has been made a little early. Of course, we figured |
From: Rob F. <rob...@us...> - 2002-10-06 19:25:05
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv10965 Modified Files: Tag: gtk1-stable ChangeLog Log Message: A kiss goodbye! Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.509.2.35 retrieving revision 1.509.2.36 diff -u -d -r1.509.2.35 -r1.509.2.36 --- ChangeLog 6 Oct 2002 19:22:51 -0000 1.509.2.35 +++ ChangeLog 6 Oct 2002 19:25:02 -0000 1.509.2.36 @@ -1,6 +1,6 @@ Gaim: The Pimpin' Penguin IM Clone thats good for the soul! -version 0.59.4 +version 0.59.4 (10/06/2002): * Removed color keybinnding altogether. * Added a horizontal scrollbar to Edit page of buddy list. (Thanks, David Fallon) |
From: Rob F. <rob...@us...> - 2002-10-06 19:24:28
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv10615 Modified Files: Tag: gtk1-stable NEWS gaim.spec.in configure.ac configure.in Log Message: She's danger!! Index: NEWS =================================================================== RCS file: /cvsroot/gaim/gaim/NEWS,v retrieving revision 1.138.2.6 retrieving revision 1.138.2.7 diff -u -d -r1.138.2.6 -r1.138.2.7 --- NEWS 15 Sep 2002 20:46:57 -0000 1.138.2.6 +++ NEWS 6 Oct 2002 19:24:25 -0000 1.138.2.7 @@ -1,6 +1,6 @@ -=[ Gaim ]=- The Pimpin' Penguin IM Client That's Good For The Soul! -0.59.4: +0.59.4 (10/06/2002): 0.59.3 (09/14/2002): Rob: This really has been made a little early. Of course, we figured Index: gaim.spec.in =================================================================== RCS file: /cvsroot/gaim/gaim/gaim.spec.in,v retrieving revision 1.52.2.5 retrieving revision 1.52.2.6 diff -u -d -r1.52.2.5 -r1.52.2.6 --- gaim.spec.in 15 Sep 2002 02:46:03 -0000 1.52.2.5 +++ gaim.spec.in 6 Oct 2002 19:24:25 -0000 1.52.2.6 @@ -94,6 +94,12 @@ rm -r $RPM_BUILD_ROOT %changelog +* Sun Oct 06 2002 Rob Flynn <ro...@ma...> (0.59.4 release) +- Removed color keybinnding altogether. +- Added a horizontal scrollbar to Edit page of buddy list. (Thanks, David Fallon) +- Various bug fixes ((Thanks to (in no particular order) Ethan Blanton, Mark Doliner, Luke Schierer) +- i18n fixes (thanks, A Lee) + * Sat Sep 14 2002 Rob Flynn <ro...@ma...> (0.59.3 release) - Reversed patch that accidentally caused Yahoo not to connect--for implementation reasons - Changed "color" binding to Ctrl-K. Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.70.2.7 retrieving revision 1.70.2.8 diff -u -d -r1.70.2.7 -r1.70.2.8 --- configure.ac 15 Sep 2002 20:46:57 -0000 1.70.2.7 +++ configure.ac 6 Oct 2002 19:24:25 -0000 1.70.2.8 @@ -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.59.4cvs]) +AM_INIT_AUTOMAKE([gaim], [0.59.4]) AC_PREREQ([2.50]) Index: configure.in =================================================================== RCS file: /cvsroot/gaim/gaim/configure.in,v retrieving revision 1.118.2.7 retrieving revision 1.118.2.8 diff -u -d -r1.118.2.7 -r1.118.2.8 --- configure.in 15 Sep 2002 20:46:56 -0000 1.118.2.7 +++ configure.in 6 Oct 2002 19:24:25 -0000 1.118.2.8 @@ -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.59.4cvs]) +AM_INIT_AUTOMAKE([gaim], [0.59.4]) |
From: Rob F. <rob...@us...> - 2002-10-06 19:22:56
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv9872 Modified Files: Tag: gtk1-stable ChangeLog Log Message: Fomp! Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.509.2.34 retrieving revision 1.509.2.35 diff -u -d -r1.509.2.34 -r1.509.2.35 --- ChangeLog 6 Oct 2002 19:12:03 -0000 1.509.2.34 +++ ChangeLog 6 Oct 2002 19:22:51 -0000 1.509.2.35 @@ -3,9 +3,10 @@ version 0.59.4 * Removed color keybinnding altogether. * Added a horizontal scrollbar to Edit page of - buddy list. (Thanks, David Fallon) - * Bug fixes. (Thanks to (in no particular order) + buddy list. (Thanks, David Fallon) + * Various bug fixes ((Thanks to (in no particular order) Ethan Blanton, Mark Doliner, Luke Schierer) + * i18n fixes (thanks, A Lee) version 0.59.3 (09/14/2002): * Reversed patch that accidentally caused Yahoo |
From: Rob F. <rob...@us...> - 2002-10-06 19:12:10
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv4080 Modified Files: Tag: gtk1-stable ChangeLog Log Message: bleep Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.509.2.33 retrieving revision 1.509.2.34 diff -u -d -r1.509.2.33 -r1.509.2.34 --- ChangeLog 1 Oct 2002 23:25:25 -0000 1.509.2.33 +++ ChangeLog 6 Oct 2002 19:12:03 -0000 1.509.2.34 @@ -4,7 +4,7 @@ * Removed color keybinnding altogether. * Added a horizontal scrollbar to Edit page of buddy list. (Thanks, David Fallon) - * bug fixes. (Thanks to (in no particular order) + * Bug fixes. (Thanks to (in no particular order) Ethan Blanton, Mark Doliner, Luke Schierer) version 0.59.3 (09/14/2002): |
From: Luke S. <lsc...@us...> - 2002-10-06 19:09:14
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv2716/src Modified Files: server.c Log Message: faceprint swears this will improve typing notification. if it makes things worse, we'll lynch him ;-P Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.241 retrieving revision 1.242 diff -u -d -r1.241 -r1.242 --- server.c 30 Sep 2002 01:05:15 -0000 1.241 +++ server.c 6 Oct 2002 19:09:07 -0000 1.242 @@ -179,11 +179,15 @@ int serv_send_im(struct gaim_connection *gc, char *name, char *message, int len, int flags) { int val = -EINVAL; + struct conversation *cnv = find_conversation(name); if (gc->prpl && gc->prpl->send_im) val = gc->prpl->send_im(gc, name, message, len, flags); if (!(flags & IM_FLAG_AWAY)) serv_touch_idle(gc); + + if (cnv && cnv->type_again_timeout) + gtk_timeout_remove(cnv->type_again_timeout); serv_send_typing(gc, name, FALSE); return val; |
From: Mark D. <the...@us...> - 2002-10-06 18:43:05
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv23347/src/protocols/oscar Modified Files: oscar.c Log Message: AIM typing notification works for people not on your buddy list (whoops) Thanks to Luke and Nathan for the hash table idea. Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.154 retrieving revision 1.155 diff -u -d -r1.154 -r1.155 --- oscar.c 6 Oct 2002 05:01:50 -0000 1.154 +++ oscar.c 6 Oct 2002 18:43:02 -0000 1.155 @@ -70,7 +70,6 @@ #define UC_NORMAL 0x10 #define UC_AB 0x20 #define UC_WIRELESS 0x40 -#define UC_TYPINGNOT 0x80 #define AIMHASHDATA "http://gaim.sourceforge.net/aim_data.php3" @@ -106,6 +105,7 @@ GSList *oscar_chats; GSList *direct_ims; GSList *hasicons; + GHashTable *supports_tn; gboolean killme; gboolean icq; @@ -499,6 +499,7 @@ gc->protocol = PROTO_TOC; gc->flags |= OPT_CONN_HTML; } + odata->supports_tn = g_hash_table_new(g_str_hash, g_str_equal); sess = g_new0(aim_session_t, 1); @@ -564,6 +565,7 @@ odata->hasicons = g_slist_remove(odata->hasicons, n); g_free(n); } + g_hash_table_destroy(odata->supports_tn); while (odata->evilhack) { g_free(odata->evilhack->data); odata->evilhack = g_slist_remove(odata->evilhack, odata->evilhack->data); @@ -1332,13 +1334,13 @@ static int incomingim_chan1(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *userinfo, struct aim_incomingim_ch1_args *args) { char *tmp = g_malloc(BUF_LONG); struct gaim_connection *gc = sess->aux_data; + struct oscar_data *od = gc->proto_data; int flags = 0; if (args->icbmflags & AIM_IMFLAGS_AWAY) flags |= IM_FLAG_AWAY; if (args->icbmflags & AIM_IMFLAGS_HASICON) { - struct oscar_data *od = gc->proto_data; struct icon_req *ir = NULL; GSList *h = od->hasicons; char *who = normalize(userinfo->sn); @@ -1409,9 +1411,9 @@ g_snprintf(tmp, BUF_LONG, "%s", args->msg); if (args->icbmflags & AIM_IMFLAGS_TYPINGNOT) { - struct buddy *b = find_buddy(gc, userinfo->sn); - if (b) - b->uc |= UC_TYPINGNOT; + char *who = normalize(userinfo->sn); + if (!g_hash_table_lookup(od->supports_tn, who)) + g_hash_table_insert(od->supports_tn, who, who); } strip_linefeed(tmp); @@ -2774,8 +2776,8 @@ if (dim) aim_send_typing(odata->sess, dim->conn, typing); else { - struct buddy *b = find_buddy(gc, name); - if (b && (b->uc & UC_TYPINGNOT)) { + char *who = normalize(name); + if (g_hash_table_lookup(odata->supports_tn, who)) { if (typing == TYPING) aim_mtn_send(odata->sess, 0x0001, name, 0x0002); else if (typing == TYPED) |
From: Sean E. <sea...@us...> - 2002-10-06 17:02:46
|
Update of /cvsroot/gaim/gaim/src/protocols/irc In directory usw-pr-cvs1:/tmp/cvs-serv17078/src/protocols/irc Modified Files: irc.c Log Message: This'll let you know who /kicked you. Index: irc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/irc/irc.c,v retrieving revision 1.89 retrieving revision 1.90 diff -u -d -r1.89 -r1.90 --- irc.c 6 Oct 2002 00:50:19 -0000 1.89 +++ irc.c 6 Oct 2002 17:02:43 -0000 1.90 @@ -1151,8 +1151,8 @@ return FALSE; gc->buddy_chats = g_slist_remove(gc->buddy_chats, c); c->gc = NULL; - g_snprintf(outbuf, sizeof(outbuf), _("You have been kicked from %s:"), - word[3]); + g_snprintf(outbuf, sizeof(outbuf), _("You have been kicked from %s by %s:"), + word[3], nick); do_error_dialog(outbuf, *word_eol[5] == ':' ? word_eol[5] + 1 : word_eol[5], GAIM_INFO); } else { char *reason = *word_eol[5] == ':' ? word_eol[5] + 1 : word_eol[5]; |
From: Sean E. <sea...@us...> - 2002-10-06 07:56:45
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv9671/plugins Added Files: history.c timestamp.c Log Message: This will make it easier to try it out. --- NEW FILE: history.c --- /* Puts last 4k of log in new conversations a la Everybuddy (and then * stolen by Trillian "Pro") */ #define GAIM_PLUGINS #include "gaim.h" #include "gtkimhtml.h" #include <sys/stat.h> #include <unistd.h> #define HISTORY_SIZE (4 * 1024) GModule *handle; void historize (char *name, void *data) { struct conversation *c = find_conversation(name); struct stat st; FILE *fd; char *userdir = gaim_user_dir(); char *logfile = g_strdup_printf("%s.log", normalize(name)); char *path = g_build_filename(userdir, "logs", logfile, NULL); char buf[HISTORY_SIZE+1]; char *tmp; int size; if (stat(path, &st) || S_ISDIR(st.st_mode) || st.st_size == 0 || !(fd = fopen(path, "r"))) { g_free(userdir); g_free(logfile); g_free(path); return; } fseek(fd, st.st_size > HISTORY_SIZE ? st.st_size - HISTORY_SIZE : st.st_size, SEEK_SET); size = fread(buf, 1, HISTORY_SIZE, fd); tmp = buf; tmp[size] = 0; /* start the history at a newline */ while (*tmp && *tmp != '\n') tmp++; if (*tmp) tmp++; gtk_imhtml_append_text(GTK_IMHTML(c->text), tmp, strlen(tmp), GTK_IMHTML_NO_COLOURS | GTK_IMHTML_NO_NEWLINE); g_free(userdir); g_free(logfile); g_free(path); } char *gaim_plugin_init(GModule *h) { handle = h; gaim_signal_connect(handle, event_new_conversation, historize, NULL); return NULL; } struct gaim_plugin_description desc; struct gaim_plugin_description *gaim_plugin_desc() { desc.api_version = PLUGIN_API_VERSION; desc.name = g_strdup("History"); desc.version = g_strdup(VERSION); desc.description = g_strdup("Shows recently logged conversations in new conversations "); desc.authors = g_strdup("Sean Egan <bj...@bi...>"); desc.url = g_strdup(WEBSITE); return &desc; } --- NEW FILE: timestamp.c --- /* iChat-like timestamps by Sean Egan. * <INSERT GPL HERE> */ #define GAIM_PLUGINS #include <time.h> #include "gaim.h" #include "gtkimhtml.h" #define TIMESTAMP_DELAY (5 * 60 * 1000) GModule *handle; GSList *timestamp_timeouts; gboolean do_timestamp (struct conversation *c) { char *buf; char mdate[6]; time_t tim = time(NULL); if (!g_list_find(conversations, c)) return FALSE; strftime(mdate, sizeof(mdate), "%H:%M", localtime(&tim)); buf = g_strdup_printf(" %s", mdate); write_to_conv(c, buf, WFLAG_NOLOG, NULL, tim, -1); g_free(buf); return TRUE; } void timestamp_new_convo(char *name) { struct conversation *c = find_conversation(name); do_timestamp(c); timestamp_timeouts = g_slist_append(timestamp_timeouts, GINT_TO_POINTER(gtk_timeout_add(TIMESTAMP_DELAY, do_timestamp, c))); } char *gaim_plugin_init(GModule *h) { GList *cnvs = conversations; struct conversation *c; handle = h; while (cnvs) { c = cnvs->data; timestamp_new_convo(c->name); cnvs = cnvs->next; } gaim_signal_connect(handle, event_new_conversation, timestamp_new_convo, NULL); return NULL; } void gaim_plugin_remove() { GSList *to; to = timestamp_timeouts; while (to) { gtk_timeout_remove(to->data); to = to->next; } g_slist_free(timestamp_timeouts); } struct gaim_plugin_description desc; struct gaim_plugin_description *gaim_plugin_desc() { desc.api_version = PLUGIN_API_VERSION; desc.name = g_strdup("Timestamp"); desc.version = g_strdup(VERSION); desc.description = g_strdup("Adds iChat-style timestamps to conversations every 5 minutes."); desc.authors = g_strdup("Sean Egan <bj...@bi...>"); desc.url = g_strdup(WEBSITE); return &desc; } |
From: Sean E. <sea...@us...> - 2002-10-06 07:56:17
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv9183/plugins Modified Files: Makefile.am Log Message: I wrote two plugins tonight, emulating features of other clients. history.c - this puts the last 4kb of your message log in new conversations This was first done by EB, copied by Trillian Pro and gets requested of us once in a while. timestamp.c - adds iChat-style timestamps to conversations. Never use iChat? it puts an inconspicuous timestamp at the top of new conversations and then keeps adding them every 5 minutes. It's hard to explain really--try it out. Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/Makefile.am,v retrieving revision 1.61 retrieving revision 1.62 diff -u -d -r1.61 -r1.62 --- Makefile.am 14 Sep 2002 23:27:26 -0000 1.61 +++ Makefile.am 6 Oct 2002 07:56:14 -0000 1.62 @@ -13,7 +13,7 @@ plugindir = $(libdir)/gaim -plugin_DATA = autorecon.so chatlist.so iconaway.so notify.so spellchk.so +plugin_DATA = autorecon.so chatlist.so iconaway.so notify.so spellchk.so history.so timestamp.so $(plugin_DATA): $(top_srcdir)/src/gaim.h @@ -28,4 +28,5 @@ EXTRA_DIST = ChangeLog PERL-HOWTO HOWTO SIGNALS autorecon.c filectl.c iconaway.c \ - notify.c spellchk.c gaim.pl mailchk.c chatlist.c gtik.c error.c + notify.c spellchk.c gaim.pl mailchk.c chatlist.c gtik.c error.c \ + history.c timestamp.c |
From: Sean E. <sea...@us...> - 2002-10-06 07:56:17
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv9183/src Modified Files: conversation.c Log Message: I wrote two plugins tonight, emulating features of other clients. history.c - this puts the last 4kb of your message log in new conversations This was first done by EB, copied by Trillian Pro and gets requested of us once in a while. timestamp.c - adds iChat-style timestamps to conversations. Never use iChat? it puts an inconspicuous timestamp at the top of new conversations and then keeps adding them every 5 minutes. It's hard to explain really--try it out. Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.384 retrieving revision 1.385 diff -u -d -r1.384 -r1.385 --- conversation.c 6 Oct 2002 05:01:49 -0000 1.384 +++ conversation.c 6 Oct 2002 07:56:14 -0000 1.385 @@ -2038,8 +2038,8 @@ } } - if ((c->is_chat && (chat_options & OPT_CHAT_POPUP)) || - (!c->is_chat && (im_options & OPT_IM_POPUP))) + if (!flags & WFLAG_NOLOG && ((c->is_chat && (chat_options & OPT_CHAT_POPUP)) || + (!c->is_chat && (im_options & OPT_IM_POPUP)))) gdk_window_show(c->window->window); if (flags & WFLAG_RECV) reset_typing(g_strdup(c->name)); |
From: Mark D. <the...@us...> - 2002-10-06 05:01:52
|
Update of /cvsroot/gaim/gaim/src/protocols/yahoo In directory usw-pr-cvs1:/tmp/cvs-serv9466/src/protocols/yahoo Modified Files: yahoo.c Log Message: I like typing notifcation. I think I'll marry it. Also, if I'm going to go around mentioning gaim on resumes, I can't very well tell people to look for "KingAnt"... :-) Index: yahoo.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/yahoo.c,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- yahoo.c 30 Sep 2002 01:05:18 -0000 1.51 +++ yahoo.c 6 Oct 2002 05:01:50 -0000 1.52 @@ -1176,7 +1176,7 @@ yahoo_packet_hash(pkt, 49, "TYPING"); yahoo_packet_hash(pkt, 1, gc->displayname); yahoo_packet_hash(pkt, 14, " "); - yahoo_packet_hash(pkt, 13, typ ? "1" : "0"); + yahoo_packet_hash(pkt, 13, typ == TYPING ? "1" : "0"); yahoo_packet_hash(pkt, 5, who); yahoo_packet_hash(pkt, 1002, "1"); |
From: Mark D. <the...@us...> - 2002-10-06 05:01:52
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv9466/src/protocols/oscar Modified Files: oscar.c Log Message: I like typing notifcation. I think I'll marry it. Also, if I'm going to go around mentioning gaim on resumes, I can't very well tell people to look for "KingAnt"... :-) Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.153 retrieving revision 1.154 diff -u -d -r1.153 -r1.154 --- oscar.c 6 Oct 2002 03:08:47 -0000 1.153 +++ oscar.c 6 Oct 2002 05:01:50 -0000 1.154 @@ -2776,8 +2776,10 @@ else { struct buddy *b = find_buddy(gc, name); if (b && (b->uc & UC_TYPINGNOT)) { - if (typing) + if (typing == TYPING) aim_mtn_send(odata->sess, 0x0001, name, 0x0002); + else if (typing == TYPED) + aim_mtn_send(odata->sess, 0x0001, name, 0x0001); else aim_mtn_send(odata->sess, 0x0001, name, 0x0000); } |
From: Mark D. <the...@us...> - 2002-10-06 05:01:52
|
Update of /cvsroot/gaim/gaim/src/protocols/jabber In directory usw-pr-cvs1:/tmp/cvs-serv9466/src/protocols/jabber Modified Files: jabber.c Log Message: I like typing notifcation. I think I'll marry it. Also, if I'm going to go around mentioning gaim on resumes, I can't very well tell people to look for "KingAnt"... :-) Index: jabber.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/jabber.c,v retrieving revision 1.65 retrieving revision 1.66 diff -u -d -r1.65 -r1.66 --- jabber.c 6 Oct 2002 01:46:26 -0000 1.65 +++ jabber.c 6 Oct 2002 05:01:49 -0000 1.66 @@ -2209,7 +2209,7 @@ if((realwho = get_realwho(gjc, who, FALSE, NULL)) == NULL) return 0; - + x = xmlnode_new_tag("message"); xmlnode_put_attrib(x, "to", realwho); xmlnode_insert_tag(x, "gaim"); @@ -2217,9 +2217,9 @@ y = xmlnode_insert_tag(x, "x"); xmlnode_put_attrib(y, "xmlns", "jabber:x:event"); - if(typing) + if(typing == TYPING) xmlnode_insert_tag(y, "composing"); - + gjab_send(((struct jabber_data *)gc->proto_data)->gjc, x); xmlnode_free(x); g_free(realwho); |
From: Mark D. <the...@us...> - 2002-10-06 05:01:52
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv9466/src Modified Files: conversation.c gaim.h ui.h Log Message: I like typing notifcation. I think I'll marry it. Also, if I'm going to go around mentioning gaim on resumes, I can't very well tell people to look for "KingAnt"... :-) Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.383 retrieving revision 1.384 diff -u -d -r1.383 -r1.384 --- conversation.c 30 Sep 2002 01:05:14 -0000 1.383 +++ conversation.c 6 Oct 2002 05:01:49 -0000 1.384 @@ -284,6 +284,8 @@ g_list_free(c->send_history); if (c->typing_timeout) gtk_timeout_remove(c->typing_timeout); + if (c->type_again_timeout) + gtk_timeout_remove(c->type_again_timeout); g_string_free(c->history, TRUE); g_free(c); } @@ -535,7 +537,8 @@ if (!c->is_chat) { GSList *cn = connections; - serv_send_typing(c->gc, c->name, FALSE); + if (!(misc_options & OPT_MISC_STEALTH_TYPING)) + serv_send_typing(c->gc, c->name, NOT_TYPING); while (cn) { struct gaim_connection *gc = cn->data; cn = cn->next; @@ -820,6 +823,16 @@ gtk_notebook_next_page(notebook); } +gboolean send_typed(gpointer data) +{ + struct conversation *c = (struct conversation*)data; + if (c && c->gc && c->name) { + c->type_again = 1; + serv_send_typing(c->gc, c->name, TYPED); + } + return FALSE; +} + gboolean keypress_callback(GtkWidget *entry, GdkEventKey * event, struct conversation *c) { int pos; @@ -1066,23 +1079,34 @@ if (c && (!(misc_options & OPT_MISC_STEALTH_TYPING)) && !c->is_chat) { char *txt = gtk_editable_get_chars(GTK_EDITABLE(c->entry), 0, -1); - if (gdk_keyval_to_unicode(event->keyval) && + if (gdk_keyval_to_unicode(event->keyval) && (strlen(txt) == 0 || (c->type_again != 0 && time(NULL) > c->type_again))) { - int timeout = serv_send_typing(c->gc, c->name, TRUE); + int timeout = serv_send_typing(c->gc, c->name, TYPING); if (timeout) c->type_again = time(NULL) + timeout; else c->type_again = 0; + + if (c && c->type_again_timeout) + gtk_timeout_remove(c->type_again_timeout); + /* send TYPED after 5 seconds of not typing */ + c->type_again_timeout = gtk_timeout_add(5000, send_typed, (gpointer)c); } else if (strlen(txt) == 1) { if ((GTK_OLD_EDITABLE(c->entry)->current_pos == 1 && event->keyval == GDK_BackSpace) || - (GTK_OLD_EDITABLE(c->entry)->current_pos == 0 && event->keyval == GDK_Delete)) - serv_send_typing(c->gc, c->name, FALSE); + (GTK_OLD_EDITABLE(c->entry)->current_pos == 0 && event->keyval == GDK_Delete)) { + if (c && c->type_again_timeout) + gtk_timeout_remove(c->type_again_timeout); + serv_send_typing(c->gc, c->name, NOT_TYPING); + } } else if (GTK_OLD_EDITABLE(c->entry)->selection_start_pos == 0) { if (GTK_OLD_EDITABLE(c->entry)->selection_end_pos == strlen(txt) && strlen(txt) > 0 && - (event->keyval == GDK_BackSpace || event->keyval == GDK_Delete)) - serv_send_typing(c->gc, c->name, FALSE); + (event->keyval == GDK_BackSpace || event->keyval == GDK_Delete)) { + if (c && c->type_again_timeout) + gtk_timeout_remove(c->type_again_timeout); + serv_send_typing(c->gc, c->name, NOT_TYPING); + } } g_free(txt); } Index: gaim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaim.h,v retrieving revision 1.339 retrieving revision 1.340 diff -u -d -r1.339 -r1.340 --- gaim.h 26 Sep 2002 15:23:33 -0000 1.339 +++ gaim.h 6 Oct 2002 05:01:49 -0000 1.340 @@ -117,6 +117,10 @@ #define PERMIT_SOME 3 #define DENY_SOME 4 +#define NOT_TYPING 0 +#define TYPING 1 +#define TYPED 2 + #define WFLAG_SEND 0x01 #define WFLAG_RECV 0x02 #define WFLAG_AUTO 0x04 Index: ui.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/ui.h,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- ui.h 29 Sep 2002 04:48:40 -0000 1.60 +++ ui.h 6 Oct 2002 05:01:49 -0000 1.61 @@ -148,6 +148,7 @@ gint unseen; guint typing_timeout; time_t type_again; + guint type_again_timeout; /* stuff used just for chat */ GList *in_room; |
From: Mark D. <the...@us...> - 2002-10-06 05:01:51
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv9466 Modified Files: ChangeLog Log Message: I like typing notifcation. I think I'll marry it. Also, if I'm going to go around mentioning gaim on resumes, I can't very well tell people to look for "KingAnt"... :-) Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.553 retrieving revision 1.554 diff -u -d -r1.553 -r1.554 --- ChangeLog 1 Oct 2002 23:22:47 -0000 1.553 +++ ChangeLog 6 Oct 2002 05:01:49 -0000 1.554 @@ -77,6 +77,10 @@ KDE 3.1. (Thanks Robert McQueen, Ari Pollak, Patrick Aussems) * Plugins dialog and perl script menu merged into preferences. * use snprintf instead of sprintf (Thanks William T. Mahan). + * Non-direct connect typing notification for AIM over oscar + (Thanks Mark Doliner) + * Improved typing notification support for Jabber and + Yahoo! (Thanks Nathan Walp) version 0.59 (06/24/2002): * Hungarian translation added (Thanks, Sutto Zoltan) @@ -243,7 +247,7 @@ * Better selection in HTML widget (Thanks BMiller) * New icons for ICQ (Thanks Kevin Miller) * Editable buddy pounces (Thanks Jason Willis) - * Server side buddy lists in Oscar (Thanks KingAnt :-)) + * Server side buddy lists in Oscar (Thanks Mark Doliner :-)) * Fix for the chatlist plugin * Typing Notification (AIM Direct Connect, Yahoo, MSN) * IM Images (Receive Only) |
From: Mark D. <the...@us...> - 2002-10-06 03:08:52
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv18093/src/protocols/oscar Modified Files: aim.h aim_cbtypes.h im.c oscar.c ssi.c Log Message: This adds le non-direct connect typing notification for oscar. How it works, in a nutshell: -AIM servers append a flag telling remote clients you support typing notification -You tell the AIM servers you support typing notification when you sign on (by changing the "flags" passed to aim_seticbmparam()) -Clients send little typing notification messages to other clients, but only when they know that the other client supports it (so after you've received an IM from the other person) I also fixed a compile warning or two dealing with SSI stuff. Things to look out for: -ICQ states doing weird things -Typing notification works with MacAIM clients (iChat and the official one) -Typing notification doesn't try to send stuff to clients that don't support (I have no idea how you're supposed to look out for this. It should be ok) Index: aim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim.h,v retrieving revision 1.46 retrieving revision 1.47 diff -u -d -r1.46 -r1.47 --- aim.h 29 Aug 2002 01:47:15 -0000 1.46 +++ aim.h 6 Oct 2002 03:08:46 -0000 1.47 @@ -168,6 +168,17 @@ "en", \ } +#define CLIENTINFO_AIM_5_0_2938 { \ + "AOL Instant Messenger, version 5.0.2938/WIN32", \ + 0x0109, \ + 0x0005, \ + 0x0000, \ + 0x0000, \ + 0x0b7a, \ + "us", \ + "en", \ +} + #define CLIENTINFO_ICQ_4_65_3281 { \ "ICQ Inc. - Product of ICQ (TM) 2000b.4.65.1.3281.85", \ 0x010a, \ @@ -715,6 +726,7 @@ #define AIM_IMFLAGS_CUSTOMCHARSET 0x0200 /* charset fields set */ #define AIM_IMFLAGS_MULTIPART 0x0400 /* ->mpmsg section valid */ #define AIM_IMFLAGS_OFFLINE 0x0800 /* send to offline user */ +#define AIM_IMFLAGS_TYPINGNOT 0x1000 /* typing notification */ /* * Multipart message structures. @@ -884,6 +896,8 @@ faim_export aim_conn_t *aim_sendfile_initiate(aim_session_t *, const char *destsn, const char *filename, fu16_t numfiles, fu32_t totsize); faim_export int aim_send_im_ch4(aim_session_t *sess, char *sn, fu16_t type, fu8_t *message); +faim_export int aim_mtn_send(aim_session_t *sess, fu16_t type1, char *sn, fu16_t type2); + faim_export aim_conn_t *aim_getfile_initiate(aim_session_t *sess, aim_conn_t *conn, const char *destsn); faim_export int aim_oft_getfile_request(aim_session_t *sess, aim_conn_t *conn, const char *name, int size); faim_export int aim_oft_getfile_ack(aim_session_t *sess, aim_conn_t *conn); @@ -1072,7 +1086,7 @@ faim_export int aim_ssi_cleanlist(aim_session_t *sess, aim_conn_t *conn); faim_export int aim_ssi_addbuddies(aim_session_t *sess, aim_conn_t *conn, const char *gn, const char **sn, unsigned int num); faim_export int aim_ssi_addmastergroup(aim_session_t *sess, aim_conn_t *conn); -faim_export int aim_ssi_addgroups(aim_session_t *sess, aim_conn_t *conn, char **gn, unsigned int num); +faim_export int aim_ssi_addgroups(aim_session_t *sess, aim_conn_t *conn, const char **gn, unsigned int num); faim_export int aim_ssi_addpord(aim_session_t *sess, aim_conn_t *conn, const char **sn, unsigned int num, fu16_t type); faim_export int aim_ssi_movebuddy(aim_session_t *sess, aim_conn_t *conn, char *oldgn, char *newgn, char *sn); faim_export int aim_ssi_rename_group(aim_session_t *sess, aim_conn_t *conn, char *oldgn, char *newgn); Index: aim_cbtypes.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/aim_cbtypes.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- aim_cbtypes.h 5 May 2002 19:02:06 -0000 1.9 +++ aim_cbtypes.h 6 Oct 2002 03:08:47 -0000 1.10 @@ -99,6 +99,7 @@ #define AIM_CB_MSG_MISSEDCALL 0x000a #define AIM_CB_MSG_CLIENTAUTORESP 0x000b #define AIM_CB_MSG_ACK 0x000c +#define AIM_CB_MSG_MTN 0x0014 #define AIM_CB_MSG_DEFAULT 0xffff /* Index: im.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/im.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- im.c 16 May 2002 02:13:45 -0000 1.24 +++ im.c 6 Oct 2002 03:08:47 -0000 1.25 @@ -1,7 +1,5 @@ /* - * aim_im.c - * - * The routines for sending/receiving Instant Messages. + * Family 0x0004 - Routines for sending/receiving Instant Messages. * * Note the term ICBM (Inter-Client Basic Message) which blankets * all types of genericly routed through-server messages. Within @@ -10,7 +8,8 @@ * what would commonly be called an "instant message". Channel 2 * is used for negotiating "rendezvous". These transactions end in * something more complex happening, such as a chat invitation, or - * a file transfer. + * a file transfer. Channel 4 is used for various ICQ messages. + * Examples are normal messages, URLs, and old-style authorization. * * In addition to the channel, every ICBM contains a cookie. For * standard IMs, these are only used for error messages. However, @@ -36,6 +35,8 @@ * 0501 0003 0101 0201 01 WinAIM 2.0.847, 2.1.1187, 3.0.1464, * 4.3.2229, 4.4.2286 * 0501 0004 0101 0102 0101 WinAIM 4.1.2010, libfaim (right here) + * 0501 0003 0101 02 WinAIM 5 + * 0501 0001 01 iChat x.x * 0501 0001 0101 01 AOL v6.0, CompuServe 2000 v6.0, any * TOC client * @@ -194,7 +195,6 @@ msgtlvlen += 4 /* charset */ + args->msglen; } - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, msgtlvlen+128))) return -ENOMEM; @@ -314,6 +314,8 @@ /* * Set the I HAVE A REALLY PURTY ICON flag. + * XXX - This should really only be sent on initial + * IMs and when you change your icon. */ if (args->flags & AIM_IMFLAGS_HASICON) { aimbs_put16(&fr->data, 0x0008); @@ -326,6 +328,7 @@ /* * Set the Buddy Icon Requested flag. + * XXX - Everytime? Surely not... */ if (args->flags & AIM_IMFLAGS_BUDDYREQ) { aimbs_put16(&fr->data, 0x0009); @@ -1345,6 +1348,10 @@ args.icbmflags |= AIM_IMFLAGS_BUDDYREQ; + } else if (type == 0x000b) { /* Non-direct connect typing notification */ + + args.icbmflags |= AIM_IMFLAGS_TYPINGNOT; + } else if (type == 0x0017) { args.extdatalen = length; @@ -2069,6 +2076,82 @@ return ret; } +/* + * Send a mini typing notification (mtn) packet. This is supported by winaim 5 and up. + */ +faim_export int aim_mtn_send(aim_session_t *sess, fu16_t type1, char *sn, fu16_t type2) +{ + aim_conn_t *conn; + aim_frame_t *fr; + aim_snacid_t snacid; + + if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0002))) + return -EINVAL; + + if (!sn) + return -EINVAL; + + if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+11+strlen(sn)+2))) + return -ENOMEM; + + snacid = aim_cachesnac(sess, 0x0004, 0x0014, 0x0000, NULL, 0); + aim_putsnac(&fr->data, 0x0004, 0x0014, 0x0000, snacid); + + /* + * 8 days of light + * Er, that is to say, 8 bytes of 0's + */ + aimbs_put16(&fr->data, 0x0000); + aimbs_put16(&fr->data, 0x0000); + aimbs_put16(&fr->data, 0x0000); + aimbs_put16(&fr->data, 0x0000); + + /* + * Type 1 (should be 0x0001 for mtn) + */ + aimbs_put16(&fr->data, type1); + + /* + * Dest sn + */ + aimbs_put8(&fr->data, strlen(sn)); + aimbs_putraw(&fr->data, sn, strlen(sn)); + + /* + * Type 2 (should be 0x0000, 0x0001, or 0x0002 for mtn) + */ + aimbs_put16(&fr->data, type2); + + aim_tx_enqueue(sess, fr); + + return 0; +} + +/* + * Receive a mini typing notification (mtn) packet. This is supported by winaim5 and up. + */ +static int mtn_receive(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; + char *sn; + fu8_t snlen; + fu16_t type1, type2; + + aim_bstream_advance(bs, 8); /* Unknown - All 0's */ + type1 = aimbs_get16(bs); + snlen = aimbs_get8(bs); + sn = aimbs_getstr(bs, snlen); + type2 = aimbs_get16(bs); + + if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) + ret = userfunc(sess, rx, type1, sn, type2); + + free(sn); + + 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) { @@ -2084,6 +2167,8 @@ return clientautoresp(sess, mod, rx, snac, bs); else if (snac->subtype == 0x000c) return msgack(sess, mod, rx, snac, bs); + else if (snac->subtype == 0x0014) + return mtn_receive(sess, mod, rx, snac, bs); return 0; } Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.152 retrieving revision 1.153 diff -u -d -r1.152 -r1.153 --- oscar.c 6 Oct 2002 00:46:59 -0000 1.152 +++ oscar.c 6 Oct 2002 03:08:47 -0000 1.153 @@ -70,16 +70,17 @@ #define UC_NORMAL 0x10 #define UC_AB 0x20 #define UC_WIRELESS 0x40 +#define UC_TYPINGNOT 0x80 #define AIMHASHDATA "http://gaim.sourceforge.net/aim_data.php3" static int caps_aim = AIM_CAPS_CHAT | AIM_CAPS_BUDDYICON | AIM_CAPS_IMIMAGE; -/* What does AIM_CAPS_ICQ actually mean? -SE */ -/* static int caps_icq = AIM_CAPS_ICQ; */ /* Set AIM caps, because Gaim can still do them over ICQ and * Winicq doesn't mind. */ static int caps_icq = AIM_CAPS_CHAT | AIM_CAPS_BUDDYICON | AIM_CAPS_IMIMAGE; +/* static int caps_icq = AIM_CAPS_ICQ; */ +/* What does AIM_CAPS_ICQ actually mean? -SE */ static fu8_t gaim_features[] = {0x01, 0x01, 0x01, 0x02}; @@ -269,6 +270,7 @@ static int conninitdone_chat (aim_session_t *, aim_frame_t *, ...); static int conninitdone_chatnav (aim_session_t *, aim_frame_t *, ...); static int gaim_parse_msgerr (aim_session_t *, aim_frame_t *, ...); +static int gaim_parse_mtn (aim_session_t *, aim_frame_t *, ...); static int gaim_parse_locaterights(aim_session_t *, aim_frame_t *, ...); static int gaim_parse_buddyrights(aim_session_t *, aim_frame_t *, ...); static int gaim_parse_locerr (aim_session_t *, aim_frame_t *, ...); @@ -708,6 +710,7 @@ aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_LOK, AIM_CB_LOK_ERROR, gaim_parse_searcherror, 0); aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_LOK, 0x0003, gaim_parse_searchreply, 0); aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_MSG, AIM_CB_MSG_ERROR, gaim_parse_msgerr, 0); + aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_MSG, AIM_CB_MSG_MTN, gaim_parse_mtn, 0); aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_LOC, AIM_CB_LOC_USERINFO, gaim_parse_user_info, 0); aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_MSG, AIM_CB_MSG_ACK, gaim_parse_msgack, 0); aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_GEN, AIM_CB_GEN_MOTD, gaim_parse_motd, 0); @@ -1186,7 +1189,7 @@ type |= UC_WIRELESS; } if (info->present & AIM_USERINFO_PRESENT_ICQEXTSTATUS) { - type = (info->icqinfo.status << 7); + type = (info->icqinfo.status << 16); if (!(info->icqinfo.status & AIM_ICQ_STATE_CHAT) && (info->icqinfo.status != AIM_ICQ_STATE_NORMAL)) { type |= UC_UNAVAILABLE; @@ -1405,6 +1408,12 @@ } else g_snprintf(tmp, BUF_LONG, "%s", args->msg); + if (args->icbmflags & AIM_IMFLAGS_TYPINGNOT) { + struct buddy *b = find_buddy(gc, userinfo->sn); + if (b) + b->uc |= UC_TYPINGNOT; + } + strip_linefeed(tmp); serv_got_im(gc, userinfo->sn, tmp, flags, time(NULL), -1); g_free(tmp); @@ -1828,6 +1837,41 @@ return 1; } +static int gaim_parse_mtn(aim_session_t *sess, aim_frame_t *fr, ...) { + struct gaim_connection *gc = sess->aux_data; + va_list ap; + fu16_t type1, type2; + char *sn; + + va_start(ap, fr); + type1 = (fu16_t)va_arg(ap, unsigned int); + sn = va_arg(ap, char *); + type2 = (fu16_t)va_arg(ap, unsigned int); + va_end(ap); + + debug_printf("Received an mtn from %s. Type1 is 0x%04d and type2 is 0x%04d.\n", sn, type1, type2); + + switch (type2) { + case 0x0000: { /* Text has been cleared */ + serv_got_typing_stopped(gc, sn); + } break; + + case 0x0001: { /* Paused typing */ + serv_got_typing_stopped(gc, sn); + } break; + + case 0x0002: { /* Typing */ + serv_got_typing(gc, sn, 0); + } break; + + default: { + printf("Received unknown typing notification type.\n"); + } break; + } + + return 1; +} + static int gaim_parse_locerr(aim_session_t *sess, aim_frame_t *fr, ...) { va_list ap; char *destn; @@ -2413,6 +2457,7 @@ */ /* Maybe senderwarn and recverwarn should be user preferences... */ + params->flags = 0x0000000b; params->maxmsglen = 8000; params->minmsginterval = 0; @@ -2591,16 +2636,16 @@ * an info window because the name will _not_ be in od->evilhack. For getting * only the away message the contact's UIN is put in od->evilhack. */ if ((budlight = find_buddy(gc, who))) { - if ((budlight->uc >> 7) & (AIM_ICQ_STATE_AWAY || AIM_ICQ_STATE_DND || AIM_ICQ_STATE_OUT || AIM_ICQ_STATE_BUSY || AIM_ICQ_STATE_CHAT)) { + if ((budlight->uc >> 16) & (AIM_ICQ_STATE_AWAY || AIM_ICQ_STATE_DND || AIM_ICQ_STATE_OUT || AIM_ICQ_STATE_BUSY || AIM_ICQ_STATE_CHAT)) { if (budlight->caps & AIM_CAPS_ICQSERVERRELAY) g_show_info_text(gc, who, 0, buf, NULL); else { - char *state_msg = gaim_icq_status((budlight->uc & 0xff80) >> 7); + char *state_msg = gaim_icq_status((budlight->uc & 0xffff0000) >> 16); g_show_info_text(gc, who, 2, buf, "<B>Status:</B> ", state_msg, "<BR>\n<HR><BR><I>Remote client does not support sending status messages.</I><BR>\n", NULL); free(state_msg); } } else { - char *state_msg = gaim_icq_status((budlight->uc & 0xff80) >> 7); + char *state_msg = gaim_icq_status((budlight->uc & 0xffff0000) >> 16); g_show_info_text(gc, who, 2, buf, "<B>Status:</B> ", state_msg, NULL); free(state_msg); } @@ -2726,9 +2771,17 @@ static int oscar_send_typing(struct gaim_connection *gc, char *name, int typing) { struct oscar_data *odata = (struct oscar_data *)gc->proto_data; struct direct_im *dim = find_direct_im(odata, name); - if (!dim) - return 0; - aim_send_typing(odata->sess, dim->conn, typing); + if (dim) + aim_send_typing(odata->sess, dim->conn, typing); + else { + struct buddy *b = find_buddy(gc, name); + if (b && (b->uc & UC_TYPINGNOT)) { + if (typing) + aim_mtn_send(odata->sess, 0x0001, name, 0x0002); + else + aim_mtn_send(odata->sess, 0x0001, name, 0x0000); + } + } return 0; } static void oscar_ask_direct_im(struct gaim_connection *gc, char *name); @@ -2825,9 +2878,9 @@ if (odata->icq) { struct buddy *budlight = find_buddy(g, who); if (budlight) - if ((budlight->uc & 0xff80) >> 7) + if ((budlight->uc & 0xffff0000) >> 16) if (budlight->caps & AIM_CAPS_ICQSERVERRELAY) - aim_send_im_ch2_geticqmessage(odata->sess, who, (budlight->uc & 0xff80) >> 7); + aim_send_im_ch2_geticqmessage(odata->sess, who, (budlight->uc & 0xffff0000) >> 16); else debug_printf("Error: Remote client does not support retrieval of status messages.\n"); else @@ -3026,7 +3079,7 @@ sns[tmp] = (char *)((struct buddy*)curbud->data)->name; tmp++; } - aim_ssi_addbuddies(odata->sess, odata->conn, ((struct group*)curgrp->data)->name, sns, tmp); + aim_ssi_addbuddies(odata->sess, odata->conn, ((struct group*)curgrp->data)->name, (const char**)sns, tmp); free(sns); } } @@ -3448,8 +3501,8 @@ static char **oscar_list_icon(int uc) { if (uc == 0) return (char **)icon_online_xpm; - if (uc & 0xff80) { - uc >>= 7; + if (uc & 0xffff0000) { + uc >>= 16; if (uc & AIM_ICQ_STATE_INVISIBLE) return icon_offline_xpm; if (uc & AIM_ICQ_STATE_CHAT) @@ -3654,18 +3707,18 @@ if (od->icq) { struct buddy *budlight = find_buddy(gc, who); if (budlight) - if ((budlight->uc >> 7) & (AIM_ICQ_STATE_AWAY || AIM_ICQ_STATE_DND || AIM_ICQ_STATE_OUT || AIM_ICQ_STATE_BUSY || AIM_ICQ_STATE_CHAT)) + if ((budlight->uc >> 16) & (AIM_ICQ_STATE_AWAY || AIM_ICQ_STATE_DND || AIM_ICQ_STATE_OUT || AIM_ICQ_STATE_BUSY || AIM_ICQ_STATE_CHAT)) if (budlight->caps & AIM_CAPS_ICQSERVERRELAY) - aim_send_im_ch2_geticqmessage(od->sess, who, (budlight->uc & 0xff80) >> 7); + aim_send_im_ch2_geticqmessage(od->sess, who, (budlight->uc & 0xffff0000) >> 16); else { - char *state_msg = gaim_icq_status((budlight->uc & 0xff80) >> 7); + char *state_msg = gaim_icq_status((budlight->uc & 0xffff0000) >> 16); char *dialog_msg = g_strdup_printf(_("<B>UIN:</B> %s<BR><B>Status:</B> %s<BR><HR><BR><I>Remote client does not support sending status messages.</I><BR>"), who, state_msg); g_show_info_text(gc, who, 2, dialog_msg, NULL); free(state_msg); free(dialog_msg); } else { - char *state_msg = gaim_icq_status((budlight->uc & 0xff80) >> 7); + char *state_msg = gaim_icq_status((budlight->uc & 0xffff0000) >> 16); char *dialog_msg = g_strdup_printf(_("<B>UIN:</B> %s<BR><B>Status:</B> %s<BR><HR><BR><I>User has no status message.</I><BR>"), who, state_msg); g_show_info_text(gc, who, 2, dialog_msg, NULL); free(state_msg); @@ -3813,7 +3866,7 @@ } else { debug_printf("ssi: About to delete a permit\n"); if (od->sess->ssi.received_data) - aim_ssi_delpord(od->sess, od->conn, &who, 1, AIM_SSI_TYPE_PERMIT); + aim_ssi_delpord(od->sess, od->conn, (const char **) &who, 1, AIM_SSI_TYPE_PERMIT); } } @@ -3825,7 +3878,7 @@ } else { debug_printf("ssi: About to delete a deny\n"); if (od->sess->ssi.received_data) - aim_ssi_delpord(od->sess, od->conn, &who, 1, AIM_SSI_TYPE_DENY); + aim_ssi_delpord(od->sess, od->conn, (const char **) &who, 1, AIM_SSI_TYPE_DENY); } } Index: ssi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/ssi.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- ssi.c 29 Aug 2002 01:47:15 -0000 1.13 +++ ssi.c 6 Oct 2002 03:08:47 -0000 1.14 @@ -416,7 +416,7 @@ char *newgroup; newgroup = (char*)malloc(strlen("Unknown")*sizeof(char)); strcpy(newgroup, "Unknown"); - aim_ssi_addgroups(sess, conn, &newgroup, 1); + aim_ssi_addgroups(sess, conn, (const char**)&newgroup, 1); } } @@ -581,7 +581,7 @@ * @param num The number of groups names you are adding (size of the sn array). * @return Return 0 if no errors, otherwise return the error number. */ -faim_export int aim_ssi_addgroups(aim_session_t *sess, aim_conn_t *conn, char **gn, unsigned int num) +faim_export int aim_ssi_addgroups(aim_session_t *sess, aim_conn_t *conn, const char **gn, unsigned int num) { struct aim_ssi_item *parentgroup, **newitems; fu16_t i; @@ -714,7 +714,7 @@ /* Look up the new parent group */ if (!(groups[1] = aim_ssi_itemlist_finditem(sess->ssi.items, NULL, newgn, AIM_SSI_TYPE_GROUP))) { - aim_ssi_addgroups(sess, conn, &newgn, 1); + aim_ssi_addgroups(sess, conn, (const char**)&newgn, 1); if (!(groups[1] = aim_ssi_itemlist_finditem(sess->ssi.items, NULL, newgn, AIM_SSI_TYPE_GROUP))) { free(groups); return -ENOMEM; |
From: Sean E. <sea...@us...> - 2002-10-06 03:08:02
|
Update of /cvsroot/gaim/gaim/pixmaps/protocols/icq In directory usw-pr-cvs1:/tmp/cvs-serv17641/pixmaps/protocols/icq Modified Files: Makefile.am Log Message: * cvs grumbles Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/pixmaps/protocols/icq/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile.am 6 Oct 2002 01:40:54 -0000 1.1 +++ Makefile.am 6 Oct 2002 03:07:59 -0000 1.2 @@ -1,4 +1,5 @@ -EXTRA_DIST = gnomeicu-online.xpm \ +EXTRA_DIST = gnomeicu-offline.xpm \ + gnomeicu-online.xpm \ gnomeicu-away.xpm \ gnomeicu-dnd.xpm \ gnomeicu-na.xpm \ |
From: Sean E. <sea...@us...> - 2002-10-06 02:59:29
|
Update of /cvsroot/gaim/gaim/src/protocols/napster In directory usw-pr-cvs1:/tmp/cvs-serv14869/src/protocols/napster Modified Files: napster.c Log Message: I'm a cool guy. Index: napster.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/napster/napster.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- napster.c 6 Oct 2002 01:48:42 -0000 1.22 +++ napster.c 6 Oct 2002 02:59:26 -0000 1.23 @@ -37,7 +37,7 @@ #include "prpl.h" #include "gaim.h" #include "proxy.h" -#include "pixmaps/protocols/napster.xpm" +#include "pixmaps/protocols/napster/napster.xpm" #define NAP_BUF_LEN 4096 |