From: Sean E. <sea...@us...> - 2002-08-25 10:51:28
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv7426/src Modified Files: aim.c buddy.c buddy_chat.c conversation.c dialogs.c gaim.h gaimrc.c module.c multi.c perl.c prefs.c prpl.c server.c ui.h util.c Log Message: Who never commits anything *now*, Etan? I changed most of the error message text around. If you think any of it should be different, just let me know, or send a patch. Index: aim.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/aim.c,v retrieving revision 1.183 retrieving revision 1.184 diff -u -d -r1.183 -r1.184 --- aim.c 11 Aug 2002 06:42:16 -0000 1.183 +++ aim.c 25 Aug 2002 10:51:22 -0000 1.184 @@ -159,7 +159,7 @@ const char *password = gtk_entry_get_text(GTK_ENTRY(pass)); if (!strlen(username)) { - do_error_dialog(_("Please enter your logon"), _("Signon Error")); + do_error_dialog(_("Please enter your login."), NULL, GAIM_ERROR); return; } Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.322 retrieving revision 1.323 diff -u -d -r1.322 -r1.323 --- buddy.c 22 Aug 2002 00:45:49 -0000 1.322 +++ buddy.c 25 Aug 2002 10:51:22 -0000 1.323 @@ -1626,7 +1626,7 @@ (when & OPT_POUNCE_UNIDLE) ? "returned from being idle" : "returned from being away"); - do_error_dialog(tmp, _("Buddy Pounce")); + do_error_dialog(tmp, NULL, GAIM_INFO); } if (b->options & OPT_POUNCE_SEND_IM) { if (strlen(b->message) > 0) { Index: buddy_chat.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy_chat.c,v retrieving revision 1.154 retrieving revision 1.155 diff -u -d -r1.154 -r1.155 --- buddy_chat.c 2 Aug 2002 04:52:45 -0000 1.154 +++ buddy_chat.c 25 Aug 2002 10:51:23 -0000 1.155 @@ -251,7 +251,7 @@ } if (gc == NULL) { do_error_dialog("You are not currently signed on with any protocols that have " - "the ability to chat.", "Unable to chat"); + "the ability to chat.", NULL, GAIM_ERROR); return; } Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.364 retrieving revision 1.365 diff -u -d -r1.364 -r1.365 --- conversation.c 8 Aug 2002 12:30:29 -0000 1.364 +++ conversation.c 25 Aug 2002 10:51:23 -0000 1.365 @@ -1333,11 +1333,11 @@ if (err < 0) { if (err == -E2BIG) - do_error_dialog(_("Unable to send message: too large"), _("Message Error")); + do_error_dialog(_("Unable to send message. The message is too large"), NULL, GAIM_ERROR); else if (err == -ENOTCONN) debug_printf("Not yet connected\n"); else - do_error_dialog(_("Unable to send message: Unknown reason"), _("Message Error")); + do_error_dialog(_("Unable to send message"), NULL, GAIM_ERROR); } else { gtk_editable_delete_text(GTK_EDITABLE(c->entry), 0, -1); @@ -3478,7 +3478,7 @@ fwrite(data, 1, len, file); fclose(file); } else { - do_error_dialog("Can't open file for writing", "Error"); + do_error_dialog("Can't save icon file to disk", strerror(errno), GAIM_ERROR); } gtk_widget_destroy(c->save_icon); Index: dialogs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/dialogs.c,v retrieving revision 1.328 retrieving revision 1.329 diff -u -d -r1.328 -r1.329 --- dialogs.c 5 Aug 2002 07:33:09 -0000 1.328 +++ dialogs.c 25 Aug 2002 10:51:23 -0000 1.329 @@ -551,55 +551,69 @@ /* The dialog for getting an error */ /*------------------------------------------------------------------------*/ -GtkWidget *do_error_dialog(char *message, char *title) +GtkWidget *do_error_dialog(char *primary, char *secondary, int type) { GtkWidget *d; GtkWidget *label; GtkWidget *close; GtkWidget *img = NULL; - /* -#if GTK_CHECK_VERSION(1,3,0) - char *filename; + GtkWidget *hbox; + char labeltext[1024 * 2]; + char *filename = NULL; + + /* These are the GTK stock dialog icons with our little Gaim logo on top. + * Inspired by the GIMP. */ switch (type){ case GAIM_LOGO: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "gaim.png", NULL); - break; - case GAIM_INFO: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_info.png", NULL); - break; - case GAIM_WARNING: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); - break; - case GAIM_ERROR: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_error.png", NULL); - break; - case GAIM_QUESTION: - filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); - break; + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "gaim.png", NULL); + break; + case GAIM_INFO: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_info.png", NULL); + break; + case GAIM_WARNING: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); + break; + case GAIM_ERROR: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_error.png", NULL); + break; + /* case GAIM_QUESTION: + filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); + break; + */ } - img = gtk_image_new_from_file(filename); -#endif - */ + if (filename) { + img = gtk_image_new_from_file(filename); + gtk_misc_set_alignment(GTK_MISC(img), 0, 0); + } + d = gtk_dialog_new_with_buttons(NULL, NULL, GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT); + g_signal_connect(d, "response", G_CALLBACK(gtk_widget_destroy), NULL); + + gtk_container_set_border_width (GTK_CONTAINER(d), 6); + gtk_window_set_resizable(GTK_WINDOW(d), FALSE); + gtk_dialog_set_has_separator(GTK_DIALOG(d), FALSE); + gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(d)->vbox), 12); + gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(d)->vbox), 6); - d = gtk_dialog_new(); - gtk_window_set_policy(GTK_WINDOW(d), FALSE, FALSE, TRUE); - gtk_widget_realize(d); - label = gtk_label_new(message); + hbox = gtk_hbox_new(FALSE, 12); + gtk_container_add(GTK_CONTAINER(GTK_DIALOG(d)->vbox), hbox); + if (filename) { + gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); + } + gtk_widget_show(img); + + g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", primary, secondary ? secondary : ""); + + label = gtk_label_new(NULL); + gtk_label_set_markup(GTK_LABEL(label), labeltext); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_widget_show(label); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), label, FALSE, FALSE, 5); - - close = picture_button(d, _("Close"), cancel_xpm); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), close, FALSE, FALSE, 5); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(d), 5); - gtk_window_set_title(GTK_WINDOW(d), title); - gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), d); + gtk_widget_show(hbox); aol_icon(d->window); gtk_widget_show(d); - gtk_widget_grab_focus(close); return d; } @@ -1543,7 +1557,7 @@ struct buddy_pounce *bp; if (strlen(gtk_entry_get_text(GTK_ENTRY(b->nameentry))) == 0) { - do_error_dialog(_("Please enter a buddy to pounce."), _("Buddy Pounce Error")); + do_error_dialog(_("Please enter a buddy to pounce."), NULL, GAIM_ERROR); return; } @@ -2109,12 +2123,12 @@ new2 = gtk_entry_get_text(GTK_ENTRY(b->new2)); if (g_strcasecmp(new1, new2)) { - do_error_dialog(_("New Passwords Do Not Match"), _("Gaim - Change Password Error")); + do_error_dialog(_("New Passwords Do Not Match"), NULL, GAIM_ERROR); return; } if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) { - do_error_dialog(_("Fill out all fields completely"), _("Gaim - Change Password Error")); + do_error_dialog(_("Fill out all fields completely"), NULL, GAIM_ERROR); return; } @@ -3428,14 +3442,15 @@ { if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) { /* We shouldn't allow a blank title */ - do_error_dialog(_("You cannot create an away message with a blank title"), - _("Gaim - Error")); + do_error_dialog(_("You cannot save an away message with a blank title"), + _("Please give the message a title, or choose \"Make Away\" to use " + "without saving."), GAIM_ERROR); return 0; } if ((gtk_text_get_length(GTK_TEXT(ca->text)) == 0) && (type <= 1)) { /* We shouldn't allow a blank message */ - do_error_dialog(_("You cannot create an empty away message"), _("Gaim - Error")); + do_error_dialog(_("You cannot create an empty away message"), NULL, GAIM_ERROR); return 0; } @@ -3915,15 +3930,15 @@ if ((fp_new = fopen(path, "w")) == NULL) { g_snprintf(error, BUF_LONG, - "Can't open file %s for writing - %s", path, strerror(errno)); - do_error_dialog(error, "Error"); + _("Couldn't write to %s."), path); + do_error_dialog(error, strerror(errno), GAIM_ERROR); return; } if ((fp_old = fopen(filename, "r")) == NULL) { g_snprintf(error, BUF_LONG, - "Can't open file %s for reading - %s", filename, strerror(errno)); - do_error_dialog(error, "Error"); + _("Couldn't write to %s."), filename); + do_error_dialog(error, strerror(errno), GAIM_ERROR); fclose(fp_new); return; } @@ -3978,8 +3993,8 @@ g_free(tmp); if ((remove(filename)) == -1) { - g_snprintf(buf, 256, _("Unable to remove file %s - %s"), filename, strerror(errno)); - do_error_dialog(buf, _("Error")); + g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename); + do_error_dialog(buf, strerror(errno), GAIM_ERROR); } window = gtk_object_get_user_data(GTK_OBJECT(w)); @@ -4054,8 +4069,8 @@ g_free(tmp); } if ((fp = fopen(filename, "r")) == NULL) { - g_snprintf(buf, BUF_LONG, "Unable to open log file %s", filename); - do_error_dialog(buf, "Error!"); + g_snprintf(buf, BUF_LONG, "Couldn't open log file %s.", filename); + do_error_dialog(buf, strerror(errno), GAIM_ERROR); return; } @@ -4185,8 +4200,8 @@ g_snprintf(filename, 256, "%s/logs/%s.log", tmp, normalize(name)); g_free(tmp); if ((fp = fopen(filename, "r")) == NULL) { - g_snprintf(buf, BUF_LONG, "Unable to open log file %s", filename); - do_error_dialog(buf, "Error!"); + g_snprintf(buf, BUF_LONG, "Couldn't open log file %s", filename); + do_error_dialog(buf, strerror(errno), GAIM_ERROR); return; } @@ -4603,8 +4618,7 @@ gdk_window_set_group(w, mainwindow->window); #endif } - -#if GTK_CHECK_VERSION(1,3,0) + GtkWidget *pixbuf_button(char *text, char *iconfile) { GtkWidget *button, *image, *label, *bbox; @@ -4628,7 +4642,7 @@ gtk_widget_show_all(bbox); return button; } -#endif + GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm) { Index: gaim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaim.h,v retrieving revision 1.330 retrieving revision 1.331 diff -u -d -r1.330 -r1.331 --- gaim.h 11 Aug 2002 06:42:16 -0000 1.330 +++ gaim.h 25 Aug 2002 10:51:23 -0000 1.331 @@ -348,7 +348,7 @@ /* Functions in dialogs.c */ extern void g_show_info_text(struct gaim_connection *, char *, int, char *, ...); -extern GtkWidget *do_error_dialog(char *, char *); +extern GtkWidget *do_error_dialog(char *, char *, int type); extern void show_change_passwd(struct gaim_connection *); extern void show_set_dir(struct gaim_connection *); extern void show_find_email(struct gaim_connection *); Index: gaimrc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gaimrc.c,v retrieving revision 1.99 retrieving revision 1.100 diff -u -d -r1.99 -r1.100 --- gaimrc.c 11 Aug 2002 09:03:32 -0000 1.99 +++ gaimrc.c 25 Aug 2002 10:51:23 -0000 1.100 @@ -1139,7 +1139,7 @@ fclose(f); } else if (opt_rcfile_arg) { g_snprintf(buf, sizeof(buf), _("Could not open config file %s."), opt_rcfile_arg); - do_error_dialog(buf, _("Preferences Error")); + do_error_dialog(buf, NULL, GAIM_ERROR); set_defaults(); } else { set_defaults(); Index: module.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/module.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- module.c 23 Apr 2002 16:30:09 -0000 1.16 +++ module.c 25 Aug 2002 10:51:23 -0000 1.17 @@ -103,13 +103,13 @@ plug->handle = g_module_open(filename, 0); if (!plug->handle) { error = (char *)g_module_error(); - do_error_dialog(error, _("Plugin Error")); + do_error_dialog(_("Gaim was unable to load your plugin."), error, GAIM_ERROR); g_free(plug); return NULL; } if (!g_module_symbol(plug->handle, "gaim_plugin_init", (gpointer *)&gaim_plugin_init)) { - do_error_dialog(g_module_error(), _("Plugin Error")); + do_error_dialog(_("Gaim was unable to load your plugin."), g_module_error(), GAIM_ERROR); g_module_close(plug->handle); g_free(plug); return NULL; @@ -119,7 +119,7 @@ debug_printf("loaded plugin returned %s\n", retval ? retval : "NULL"); if (retval) { plugin_remove_callbacks(plug->handle); - do_error_dialog(retval, _("Plugin Error")); + do_error_dialog("Gaim was unable to load your plugin.", retval, GAIM_ERROR); g_module_close(plug->handle); g_free(plug); return NULL; Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.122 retrieving revision 1.123 diff -u -d -r1.122 -r1.123 --- multi.c 11 Aug 2002 06:42:16 -0000 1.122 +++ multi.c 25 Aug 2002 10:51:23 -0000 1.123 @@ -945,15 +945,17 @@ signoff(u->gc); } else { if (u->protocol == PROTO_TOC) - do_error_dialog(_("You have attempted to login an IM account using the " + do_error_dialog(_("TOC not found."), + _("You have attempted to login an IM account using the " "TOC protocol. Because this protocol is inferior to " "OSCAR, it is now compiled as a plugin by default. " "To login, edit this account to use OSCAR or load the " - "TOC plugin."), _("Login Error")); + "TOC plugin."), GAIM_ERROR); else - do_error_dialog(_("You cannot log this account in; you do not have " + do_error_dialog(_("Protocol not found."), + _("You cannot log this account in; you do not have " "the protocol it uses loaded, or the protocol does " - "not have a login function."), _("Login Error")); + "not have a login function."), GAIM_ERROR); } l = l->next; } @@ -1389,7 +1391,7 @@ gtk_widget_destroy(k->dlg); k = g_new0(struct kick_dlg, 1); k->user = gc->user; - k->dlg = do_error_dialog(buf, title); + k->dlg = do_error_dialog(title, buf, GAIM_ERROR); kicks = g_slist_append(kicks, k); gtk_signal_connect(GTK_OBJECT(k->dlg), "destroy", GTK_SIGNAL_FUNC(set_kick_null), k); if (meter) { Index: perl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/perl.c,v retrieving revision 1.73 retrieving revision 1.74 diff -u -d -r1.73 -r1.74 --- perl.c 16 Aug 2002 01:18:01 -0000 1.73 +++ perl.c 25 Aug 2002 10:51:23 -0000 1.74 @@ -410,7 +410,7 @@ title = SvPV(ST(0), junk); message = SvPV(ST(1), junk); - do_error_dialog(message, title); + do_error_dialog(message, NULL, GAIM_INFO); XSRETURN(0); } @@ -876,7 +876,7 @@ s = s->next; } - do_error_dialog(buf, _("Perl Scripts")); + do_error_dialog(buf, NULL, GAIM_INFO); } #endif /* USE_PERL */ Index: prefs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prefs.c,v retrieving revision 1.236 retrieving revision 1.237 diff -u -d -r1.236 -r1.237 --- prefs.c 18 Aug 2002 17:01:13 -0000 1.236 +++ prefs.c 25 Aug 2002 10:51:23 -0000 1.237 @@ -83,7 +83,6 @@ #endif char fontface[128]; - GtkWidget *prefs_away_list = NULL; GtkWidget *prefs_away_menu = NULL; GtkWidget *preftree = NULL; @@ -104,7 +103,7 @@ GtkCTreeNode *deny_node = NULL; GtkWidget *prefs_proxy_frame = NULL; static GtkWidget *gaim_button(const char *, guint *, int, GtkWidget *); [...1530 lines suppressed...] @@ -2345,7 +1972,9 @@ dropdown = gtk_option_menu_new(); menu = gtk_menu_new(); - + + gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); + while (text) { value = va_arg(menuitems, int); opt = gtk_menu_item_new_with_label(text); @@ -2368,7 +1997,7 @@ gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); gtk_widget_show(dropdown); - return dropdown; + return label; } static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc) Index: prpl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.c,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- prpl.c 10 Aug 2002 02:42:55 -0000 1.56 +++ prpl.c 25 Aug 2002 10:51:23 -0000 1.57 @@ -67,11 +67,12 @@ struct prpl *p; struct prpl *old; if (size != sizeof(struct prpl)) { - do_error_dialog(_("You have attempted to load a protocol which was not compiled" + do_error_dialog(_("Incompatible protocol detected."), + _("You have attempted to load a protocol which was not compiled" " from the same version of the source as this application was." " Unfortunately, because it is not the same version I cannot" " safely tell you which one it was. Needless to say, it was not" - " successfully loaded."), _("Protocol Error")); + " successfully loaded."), GAIM_ERROR); return; } @@ -81,11 +82,12 @@ unload_protocol(old); if (p->protocol == PROTO_ICQ) - do_error_dialog(_("Gaim has loaded the ICQ plugin. This plugin has been deprecated. " + do_error_dialog(_("Libicq.so detected."), + _("Gaim has loaded the ICQ plugin. This plugin has been deprecated. " "As such, it was probably not compiled from the same version of the " "source as this application was, and cannot be guaranteed to work. " "It is reccomended that you use the AIM/ICQ protocol to connect to ICQ"), - _("Protocol Warning")); + GAIM_WARNING); protocols = g_slist_insert_sorted(protocols, p, (GCompareFunc)proto_compare); @@ -103,7 +105,7 @@ g_snprintf(buf, sizeof buf, _("%s was using %s, which got removed." " %s is now offline."), g->username, p->name(), g->username); - do_error_dialog(buf, _("Disconnect")); + do_error_dialog(buf, NULL, GAIM_ERROR); signoff(g); c = connections; } else @@ -587,7 +589,7 @@ msg ? msg : "", find_buddy(gc, ga->who) ? "" : _("\n\nDo you wish to add him or her to your buddy list?")); if (find_buddy(gc, ga->who)) - do_error_dialog(buf, "Added to List"); + do_error_dialog(buf, NULL, GAIM_INFO); else do_ask_dialog(buf, ga, do_add, dont_add); } Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.228 retrieving revision 1.229 diff -u -d -r1.228 -r1.229 --- server.c 7 Jul 2002 14:31:57 -0000 1.228 +++ server.c 25 Aug 2002 10:51:23 -0000 1.229 @@ -52,7 +52,7 @@ if (p && p->login) { if (!strlen(user->password) && !(p->options & OPT_PROTO_NO_PASSWORD)) { - do_error_dialog(_("Please enter your password"), _("Signon Error")); + do_error_dialog(_("Please enter your password"), NULL, GAIM_ERROR); return; } @@ -805,7 +805,7 @@ g_snprintf(buf2, sizeof(buf2), "%s has just been warned by %s.\nYour new warning level is %d%%", gc->username, ((name == NULL)? "an anonymous person" : name), lev); - do_error_dialog(buf2, _("Warned")); + do_error_dialog(buf2, NULL, GAIM_INFO); } void serv_got_typing(struct gaim_connection *gc, char *name, int timeout) { Index: ui.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/ui.h,v retrieving revision 1.46 retrieving revision 1.47 diff -u -d -r1.46 -r1.47 --- ui.h 11 Aug 2002 06:42:17 -0000 1.46 +++ ui.h 25 Aug 2002 10:51:23 -0000 1.47 @@ -81,10 +81,10 @@ #define FACE_YELL 15 #define FACE_TOTAL 16 -#define GAIM_PIXMAP_ICON 0 -#define GAIM_PIXMAP_ERROR 1 -#define GAIM_PIXMAP_WARNING 2 -#define GAIM_PIXMAP_ +#define GAIM_LOGO 0 +#define GAIM_ERROR 1 +#define GAIM_WARNING 2 +#define GAIM_INFO 3 struct debug_window { GtkWidget *window; Index: util.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/util.c,v retrieving revision 1.127 retrieving revision 1.128 diff -u -d -r1.127 -r1.128 --- util.c 2 Aug 2002 21:25:34 -0000 1.127 +++ util.c 25 Aug 2002 10:51:23 -0000 1.128 @@ -353,7 +353,7 @@ if (res < 0) { g_snprintf(buf, BUF_LONG, "Unable to make directory %s for logging", log_all_file); - do_error_dialog(buf, "Error!"); + do_error_dialog(buf, NULL, GAIM_ERROR); g_free(buf); g_free(buf2); g_free(gaim_dir); @@ -375,7 +375,7 @@ if (res < 0) { g_snprintf(buf, BUF_LONG, "Unable to make directory %s for logging", log_all_file); - do_error_dialog(buf, "Error!"); + do_error_dialog(buf, NULL, GAIM_ERROR); g_free(buf); g_free(buf2); g_free(gaim_dir); |