From: Mark D. <the...@us...> - 2004-07-25 22:13:13
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31281/src Modified Files: Makefile.am dialogs.c gaim.h main.c prefs.c server.c Removed Files: gaimrc.c Log Message: I changed the 2 preferences dealing with auto-responses. It's a drop down box. Check it out. I also made Gaim not load .gaimrc Index: Makefile.am =================================================================== RCS file: /cvsroot/gaim/gaim/src/Makefile.am,v retrieving revision 1.159 retrieving revision 1.160 diff -u -d -p -r1.159 -r1.160 --- Makefile.am 18 Jul 2004 21:40:17 -0000 1.159 +++ Makefile.am 25 Jul 2004 22:13:02 -0000 1.160 @@ -143,7 +143,6 @@ gaim_SOURCES = \ dialogs.c \ dnd-hints.c \ gaim-disclosure.c \ - gaimrc.c \ gtkaccount.c \ gtkcellrendererprogress.c \ gtkblist.c \ Index: dialogs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/dialogs.c,v retrieving revision 1.603 retrieving revision 1.604 diff -u -d -p -r1.603 -r1.604 --- dialogs.c 2 Jul 2004 19:16:28 -0000 1.603 +++ dialogs.c 25 Jul 2004 22:13:02 -0000 1.604 @@ -588,6 +588,17 @@ static void away_mess_destroy_ca(GtkWidg away_mess_destroy(NULL, ca); } +static gint sort_awaymsg_list(gconstpointer a, gconstpointer b) +{ + struct away_message *msg_a; + struct away_message *msg_b; + + msg_a = (struct away_message *)a; + msg_b = (struct away_message *)b; + + return (strcmp(msg_a->name, msg_b->name)); +} + static struct away_message *save_away_message(struct create_away *ca) { struct away_message *am; Index: gaim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaim.h,v retrieving revision 1.416 retrieving revision 1.417 diff -u -d -p -r1.416 -r1.417 --- gaim.h 6 Apr 2004 14:29:50 -0000 1.416 +++ gaim.h 25 Jul 2004 22:13:02 -0000 1.417 @@ -43,9 +43,6 @@ extern void show_confirm_del_group(GaimG extern void show_confirm_del_blist_chat(GaimChat *); extern void show_confirm_del_contact(GaimContact *); -/* Functions in gaimrc.c */ -extern gint sort_awaymsg_list(gconstpointer, gconstpointer); - /* Functions in idle.c */ extern gint check_idle(gpointer); Index: main.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/main.c,v retrieving revision 1.124 retrieving revision 1.125 diff -u -d -p -r1.124 -r1.125 --- main.c 17 Jun 2004 00:26:57 -0000 1.124 +++ main.c 25 Jul 2004 22:13:03 -0000 1.125 @@ -70,9 +70,6 @@ # include <gdk/gdkx.h> #endif -extern void load_prefs(); -extern void load_pounces(); - static GtkWidget *name; static GtkWidget *pass; @@ -480,6 +477,7 @@ static void gaim_gtk_quit(void) { /* XXX? */ + /* YYY is there an XXX here? */ /* captain's log, stardate... */ /* LOG system_log(log_quit, NULL, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); */ @@ -611,6 +609,7 @@ int main(int argc, char *argv[]) int opt, opt_user = 0; int i; gboolean gui_check; + gchar *gaimrc, *accountsxml; struct option long_options[] = { {"acct", no_argument, NULL, 'a'}, @@ -839,12 +838,17 @@ int main(int argc, char *argv[]) gaim_plugins_probe(NULL); - /* we only read ~/.gaimrc (load_prefs()) if there is no accounts.xml - * since prefs.xml existed alongside ~/.gaim in 0.64 */ - if (!gaim_accounts_load()) { - load_prefs(); - gaim_prefs_sync(); + /* XXX - Remove this check. Maybe in 2005. --KingAnt, 25 Jul 2004 */ + gaimrc = g_build_filename(gaim_home_dir(), ".gaimrc", NULL); + accountsxml = g_build_filename(gaim_user_dir(), "accounts.xml", NULL); + if (g_file_test(gaimrc, G_FILE_TEST_EXISTS) && + !g_file_test(accountsxml, G_FILE_TEST_EXISTS)) { + gaim_notify_error(NULL, NULL, _("Unable to load preferences"), _("Gaim was not able to load your preferences because they are stored in an old format that is no longer used. Please reconfigure your settings using the Preferences window.")); } + g_free(gaimrc); + g_free(accountsxml); + + gaim_accounts_load(); gaim_set_blist(gaim_blist_new()); gaim_blist_load(); @@ -860,7 +864,6 @@ int main(int argc, char *argv[]) gaim_pounces_load(); gaim_status_load(); - load_pounces(); ui_main(); #ifdef USE_SM Index: prefs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prefs.c,v retrieving revision 1.436 retrieving revision 1.437 diff -u -d -p -r1.436 -r1.437 --- prefs.c 9 Jun 2004 20:47:07 -0000 1.436 +++ prefs.c 25 Jul 2004 22:13:03 -0000 1.437 @@ -112,10 +112,21 @@ void gaim_prefs_init() { gaim_prefs_add_string("/core/away/default_message", _("Slightly less boring default")); - /* Away -> Auto Response */ - gaim_prefs_add_none("/core/away/auto_response"); - gaim_prefs_add_bool("/core/away/auto_response/enabled", TRUE); - gaim_prefs_add_bool("/core/away/auto_response/idle_only", FALSE); + /* Away -> Auto-Reply */ + if (!gaim_prefs_exists("/core/away/auto_response/enabled") || + !gaim_prefs_exists("/core/away/auto_response/idle_only")) { + gaim_prefs_add_string("/core/away/auto_reply", "awayidle"); + } else { + if (!gaim_prefs_get_bool("/core/away/auto_response/enabled")) { + gaim_prefs_add_string("/core/away/auto_reply", "never"); + } else { + if (gaim_prefs_get_bool("/core/away/auto_response/idle_only")) { + gaim_prefs_add_string("/core/away/auto_reply", "awayidle"); + } else { + gaim_prefs_add_string("/core/away/auto_reply", "away"); + } + } + } /* Buddies */ gaim_prefs_add_none("/core/buddies"); @@ -499,16 +510,13 @@ void gaim_prefs_set_string_list(const ch } } -gpointer gaim_prefs_get_generic(const char *name) { +gboolean gaim_prefs_exists(const char *name) { struct gaim_pref *pref = find_pref(name); - if(!pref) { - gaim_debug(GAIM_DEBUG_ERROR, "prefs", - "gaim_prefs_get_generic: Unknown pref %s\n", name); - return NULL; - } + if (pref != NULL) + return TRUE; - return pref->value.generic; + return FALSE; } GaimPrefType gaim_prefs_get_type(const char *name) { @@ -983,8 +991,11 @@ gboolean gaim_prefs_load() { void gaim_prefs_update_old() { /* Remove some no-longer-used prefs */ + gaim_prefs_remove("/core/away/auto_response/enabled"); + gaim_prefs_remove("/core/away/auto_response/idle_only"); gaim_prefs_remove("/core/away/auto_response/in_active_conv"); gaim_prefs_remove("/core/away/auto_response/sec_before_resend"); + gaim_prefs_remove("/core/away/auto_response"); gaim_prefs_remove("/core/conversations/away_back_on_send"); gaim_prefs_remove("/core/conversations/send_urls_as_links"); gaim_prefs_remove("/core/conversations/im/show_login"); Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.428 retrieving revision 1.429 diff -u -d -p -r1.428 -r1.429 --- server.c 24 Jul 2004 15:18:31 -0000 1.428 +++ server.c 25 Jul 2004 22:13:03 -0000 1.429 @@ -260,6 +260,7 @@ int serv_send_im(GaimConnection *gc, con GaimConversation *c; int val = -EINVAL; GaimPluginProtocolInfo *prpl_info = NULL; + const gchar *auto_reply_pref; if (gc != NULL && gc->prpl != NULL) prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); @@ -272,8 +273,13 @@ int serv_send_im(GaimConnection *gc, con if (!(imflags & GAIM_CONV_IM_AUTO_RESP)) serv_touch_idle(gc); + /* + * XXX - If "only auto-reply when away & idle" is set, then shouldn't + * this only reset lar->sent if we're away AND idle? + */ + auto_reply_pref = gaim_prefs_get_string("/core/away/auto_reply"); if (gc->away && (gc->flags & GAIM_CONNECTION_AUTO_RESP) && - gaim_prefs_get_bool("/core/away/auto_response/enabled")) { + strcmp(auto_reply_pref, "never")) { struct last_auto_response *lar; lar = get_last_auto_response(gc, name); @@ -897,6 +903,7 @@ void serv_got_im(GaimConnection *gc, con const char *alias = b ? gaim_get_buddy_alias(b) : name; int row; struct last_auto_response *lar; + const gchar *auto_reply_pref; /* * Either we're going to queue it or not. Because of the way @@ -972,16 +979,17 @@ void serv_got_im(GaimConnection *gc, con * Don't autorespond if: * * - it's not supported on this connection - * - or it's disabled * - or the away message is empty + * - or it's disabled * - or we're not idle and the 'only auto respond if idle' pref * is set */ + auto_reply_pref = gaim_prefs_get_string("/core/away/auto_reply"); if (!(gc->flags & GAIM_CONNECTION_AUTO_RESP) || - !gaim_prefs_get_bool("/core/away/auto_response/enabled") || *gc->away == '\0' || + !strcmp(auto_reply_pref, "never") || (!gc->is_idle && - gaim_prefs_get_bool("/core/away/auto_response/idle_only"))) { + !strcmp(auto_reply_pref, "awayidle"))) { g_free(name); g_free(message); --- gaimrc.c DELETED --- |