# HG changeset patch # User Eric Warmenhoven # Date 959242143 0 # Node ID 59f1748b09a6450995b9d48da7ca0cf8467651b3 # Parent ced25773243cdf4d22528aaf348532471de1f57d [gaim-migrate @ 275] Logging in works properly for Oscar now. Let's hope I didn't break the TOC side of things. committer: Tailor Script diff -r ced25773243c -r 59f1748b09a6 TODO --- a/TODO Thu May 25 06:29:22 2000 +0000 +++ b/TODO Thu May 25 08:09:03 2000 +0000 @@ -1,8 +1,7 @@ ---- STUFF FOR 0.9.15 RELEASE --- +--- STUFF FOR 0.9.16 RELEASE --- Gaim 95? KDE Awareness? Smilie Faces - File Transfers Locale Support Make Buddy Chat Prettier Icons for buddy list (I forget what this was) diff -r ced25773243c -r 59f1748b09a6 libfaim/CHANGES.gaim --- a/libfaim/CHANGES.gaim Thu May 25 06:29:22 2000 +0000 +++ b/libfaim/CHANGES.gaim Thu May 25 08:09:03 2000 +0000 @@ -1,3 +1,9 @@ + +Thu May 25 07:10:34 UTC 2000 EWarmenhoven + - Changed around aim.c a bit so that the registering of sounds and + plugins and such gets taken care of after we actually finish signing + on. this should fix a lot of things, but still not the 100% bug (as I + call it now). Wed May 24 19:10:19 UTC 2000 EWarmenhoven - Got rid of aim_select. Good. But it still uses 100% of the CPU. Bad. diff -r ced25773243c -r 59f1748b09a6 libfaim/README.gaim --- a/libfaim/README.gaim Thu May 25 06:29:22 2000 +0000 +++ b/libfaim/README.gaim Thu May 25 08:09:03 2000 +0000 @@ -57,14 +57,9 @@ You can receive more messages in less time with TOC than with libfaim. It's not completely libfaim's fault though. -- It's possible that if the server negotiations don't happen fast enough, it'll -look like you're trying to sign in twice (and in fact you will be). It doesn't -seem to negatively affect anything, but it will when people start using it. (I -think this may actually be related to the auto_recon plugin.) (FIXME for this is -marked in aim.c) - - There are a lot of problems with panel support (funny that I'm supporting the -panel code, and the oscar code I wrote doesn't work well with it). +panel code, and the oscar code I wrote doesn't work well with it). I think this +is related to oscar_callback being funny. - Oscar doesn't do whispering in chat rooms any more (and hasn't for quite a while, evidently). So if you want to "whisper" to someone, just IM them. diff -r ced25773243c -r 59f1748b09a6 src/aim.c --- a/src/aim.c Thu May 25 06:29:22 2000 +0000 +++ b/src/aim.c Thu May 25 08:09:03 2000 +0000 @@ -119,10 +119,10 @@ } char g_screenname[ 64 ]; /* gotta be enough */ +gboolean running = FALSE; void dologin(GtkWidget *widget, GtkWidget *w) { - static gboolean running = FALSE; char *username = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(name)->entry)); char *password = gtk_entry_get_text(GTK_ENTRY(pass)); int i; @@ -157,13 +157,18 @@ if (running) return; running = TRUE; - /* libfaim FIXME : serv_login only starts the process. it's not over - * after serv_login gets called */ if (serv_login(username, password) < 0) { running = FALSE; return; } +#ifdef USE_OSCAR +} +/* we need to do this for Oscar because serv_login only starts the login + * process, it doesn't end there. gaim_setup will be called later from + * oscar.c, after the buddy list is made and serv_finish_login is called */ +void gaim_setup() { +#endif /* USE_OSCAR */ if (sound_options & OPT_SOUND_LOGIN && sound_options & OPT_SOUND_SILENT_SIGNON) { logins_not_muted = 0; @@ -183,7 +188,7 @@ _("Signoff"), signoff, NULL); -#endif +#endif /* USE_APPLET */ #ifdef GAIM_PLUGINS { @@ -199,7 +204,7 @@ c = c->next; } } -#endif +#endif /* GAIM_PLUGINS */ running = FALSE; return; diff -r ced25773243c -r 59f1748b09a6 src/oscar.c --- a/src/oscar.c Thu May 25 06:29:22 2000 +0000 +++ b/src/oscar.c Thu May 25 08:09:03 2000 +0000 @@ -87,15 +87,8 @@ aim_logoff(sess); gdk_input_remove(inpa); } else { - aim_rxdispatch(sess); - /* the rest of this is a bad hack to try and get it to - * update the display at least occasionally */ - gdk_input_remove(inpa); - while (gtk_events_pending()) - gtk_main_iteration(); - inpa = gdk_input_add(gaim_conn->fd, - GDK_INPUT_READ | GDK_INPUT_WRITE | GDK_INPUT_EXCEPTION, - oscar_callback, sess); + if (aim_rxdispatch(sess)) + debug_print("I hate GDK!\n"); } } } @@ -348,6 +341,7 @@ refresh_buddy_window(); #endif serv_finish_login(); + gaim_setup(); if (bud_list_cache_exists()) do_import(NULL, 0); diff -r ced25773243c -r 59f1748b09a6 src/server.c --- a/src/server.c Thu May 25 06:29:22 2000 +0000 +++ b/src/server.c Thu May 25 08:09:03 2000 +0000 @@ -377,9 +377,7 @@ sflap_send(buf, -1, TYPE_DATA); #else /* oscar requires us to do everyone at once (?) */ -/* FIXME : there's something wrong with this code, it causes the entire buddy - * list to update, and can cause other people's buddy lists to improperly update - */ + /* I think this code is OK now. */ if (!(permdeny == 1 || permdeny == 4)) { list = permit; at = 0; while (list) {