? stuphead-0.5.3-1.patch Index: po/ru.po =================================================================== RCS file: /home/cvs/stuphead/po/ru.po,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- po/ru.po 2001/06/06 15:02:18 1.28 +++ po/ru.po 2001/06/07 09:51:53 1.29 @@ -2804,7 +2804,7 @@ #: src/prefs_common.c:1776 msgid "Enable vertical layout of main window (takes effect only after restart)" msgstr "" -"Включить расположение главного окна по-вертикали (необходимо перезагрзуить " +"Включить расположение главного окна по-вертикали (необходимо перезагрузить " "программу)" #: src/prefs_common.c:1783 Index: src/about.c =================================================================== RCS file: /home/cvs/stuphead/src/about.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- src/about.c 2001/05/12 07:26:42 1.5 +++ src/about.c 2001/06/07 16:58:14 1.6 @@ -73,6 +73,7 @@ gchar buf[1024]; window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_about","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), _("About")); gtk_container_set_border_width(GTK_CONTAINER(window), 8); gtk_widget_set_usize(window, 518, 358); Index: src/account.c =================================================================== RCS file: /home/cvs/stuphead/src/account.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- src/account.c 2001/05/08 10:25:01 1.4 +++ src/account.c 2001/06/07 16:58:14 1.5 @@ -230,6 +230,7 @@ debug_print(_("Creating account edit window...\n")); window = gtk_window_new (GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_accountedit","Stuphead"); gtk_widget_set_usize (window, 500, 320); gtk_container_set_border_width (GTK_CONTAINER (window), 8); gtk_window_set_title (GTK_WINDOW (window), _("Edit accounts")); Index: src/addressbook.c =================================================================== RCS file: /home/cvs/stuphead/src/addressbook.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- src/addressbook.c 2001/05/25 14:45:48 1.5 +++ src/addressbook.c 2001/06/07 16:58:14 1.6 @@ -322,6 +322,7 @@ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), _("Address book")); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_addresbook","Stuphead"); gtk_widget_set_usize(window, ADDRESSBOOK_WIDTH, ADDRESSBOOK_HEIGHT); //gtk_container_set_border_width(GTK_CONTAINER(window), BORDER_WIDTH); gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE); @@ -1233,6 +1234,7 @@ debug_print("Creating edit_address window...\n"); window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_editaddress","Stuphead"); gtk_widget_set_usize(window, 400, -1); gtk_container_set_border_width(GTK_CONTAINER(window), 8); gtk_window_set_title(GTK_WINDOW(window), _("Edit address")); Index: src/alertpanel.c =================================================================== RCS file: /home/cvs/stuphead/src/alertpanel.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- src/alertpanel.c 2001/06/01 16:08:32 1.7 +++ src/alertpanel.c 2001/06/07 16:58:14 1.8 @@ -239,6 +239,7 @@ debug_print(_("Creating alert panel dialog...\n")); dialog = gtk_dialog_new(); + gtk_window_set_wmclass(GTK_WINDOW(dialog),"Stuphead_alert","Stuphead"); gtk_window_set_title(GTK_WINDOW(dialog), title); gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, FALSE); // gtk_widget_set_usize(dialog, ALERT_PANEL_WIDTH, -1); Index: src/compose.c =================================================================== RCS file: /home/cvs/stuphead/src/compose.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- src/compose.c 2001/05/29 05:06:53 1.30 +++ src/compose.c 2001/06/07 16:58:14 1.31 @@ -2548,6 +2548,7 @@ compose = g_new0(Compose, 1); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_compose","Stuphead"); if (cur_account->address) { gchar *buf; @@ -3344,6 +3345,7 @@ debug_print("Creating attach_property window...\n"); window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_attachproperty","Stuphead"); gtk_widget_set_usize(window, 480, -1); gtk_container_set_border_width(GTK_CONTAINER(window), 8); gtk_window_set_title(GTK_WINDOW(window), _("Property")); Index: src/conv_iconv.c =================================================================== RCS file: /home/cvs/stuphead/src/conv_iconv.c,v retrieving revision 1.16 retrieving revision 1.19 diff -u -r1.16 -r1.19 --- src/conv_iconv.c 2001/05/30 11:02:18 1.16 +++ src/conv_iconv.c 2001/06/08 11:48:58 1.19 @@ -309,8 +309,8 @@ continue; }; if (!isascii(buf[i]) && !collect) { - strncat(dest,h,i-(h-buf)+1); - h=buf+i; + strncat(dest,h,i-(h-buf)); + h=buf+i-1; collect=TRUE; continue; }; Index: src/foldersel.c =================================================================== RCS file: /home/cvs/stuphead/src/foldersel.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/foldersel.c 2001/03/21 18:09:09 1.2 +++ src/foldersel.c 2001/06/07 16:58:14 1.3 @@ -131,6 +131,7 @@ GtkWidget *confirm_area; window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_foldersel","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), _("Select folder")); gtk_widget_set_usize(window, 300, 400); gtk_container_set_border_width(GTK_CONTAINER(window), BORDER_WIDTH); Index: src/folderview.c =================================================================== RCS file: /home/cvs/stuphead/src/folderview.c,v retrieving revision 1.11 retrieving revision 1.13 diff -u -r1.11 -r1.13 --- src/folderview.c 2001/05/23 15:36:06 1.11 +++ src/folderview.c 2001/06/08 15:05:53 1.13 @@ -717,8 +717,19 @@ if (!node) { g_warning(_("%s not found.\n"), folder); } else { + gchar *ntext; + guint8 nspacing; + GdkPixmap *npixmap_closed; + GdkBitmap *nmask_closed; + GdkPixmap *npixmap_opened; + GdkBitmap *nmask_opened; + gboolean nis_leaf; + gboolean nexpanded; + + gtk_ctree_get_node_info(ctree, node, &ntext, &nspacing,&npixmap_closed, &nmask_closed, + &npixmap_opened, &nmask_opened, &nis_leaf, &nexpanded); gtk_ctree_set_node_info(ctree, node, newname, FOLDER_SPACING, - xpm, mask, xpm, mask, FALSE, TRUE); + xpm, mask, xpm, mask, nis_leaf, nexpanded); if (!prevnode) sibling = GTK_CTREE_ROW(tnode)->children; else @@ -751,7 +762,9 @@ GtkCTree *ctree = GTK_CTREE(folderview->ctree); gchar *text[N_FOLDER_COLS] = {NULL, NULL, NULL, NULL}; gint retval; + gboolean expanded; gchar dir[MAXPATHLEN]; + gchar dirinfo[BUFFSIZE]; gchar *p; gchar *fcache; GtkCTreeNode *parent, *curnode, *topnode; @@ -781,12 +794,16 @@ while (fgets(dir, sizeof(dir), fp) != NULL) { strretchomp(dir); new = unread = total = mtime = 0; - retval = fscanf(fp, "%d %d %d %ld\n", - &new, &unread, &total, &mtime); - if (retval == EOF || retval < 3) { + if (fgets(dirinfo, sizeof(dirinfo), fp) == NULL || + (retval = sscanf(dirinfo, "%d %d %d %ld %d\n",&new, &unread, &total, &mtime, &expanded)) == EOF || + retval <4) { g_print(_("Broken folder list cache.\n")); break; } + if (retval == 4) { + expanded=FALSE; + } + if (type == F_MHFOLDER && !is_dir_exist(dir)) continue; /* get parent directory */ @@ -799,9 +816,10 @@ (GCompareFunc)folderview_compare_path); if (!parent) parent = topnode; g_free(parent_dir); - } else + } else { parent = topnode; - gtk_ctree_expand(ctree, parent); + gtk_ctree_expand(ctree, topnode); + } text[COL_FOLDER] = g_basename(dir); curnode = gtk_ctree_insert_node @@ -810,6 +828,9 @@ folderopenxpm, folderopenxpmmask, (type == F_NEWSGROUP && parent != topnode) ? TRUE : FALSE, FALSE); + if(expanded) { + gtk_ctree_expand(ctree, curnode); + } /* set folder info */ finfo = g_new0(FolderInfo, 1); @@ -844,12 +865,24 @@ FILE *fp = data; FolderInfo *finfo; + gchar *text; + guint8 spacing; + GdkPixmap *pixmap_closed; + GdkBitmap *mask_closed; + GdkPixmap *pixmap_opened; + GdkBitmap *mask_opened; + gboolean is_leaf; + gboolean expanded; + finfo = gtk_ctree_node_get_row_data(ctree, node); if (!finfo || !finfo->path) return; + + gtk_ctree_get_node_info(ctree, node, &text, &spacing,&pixmap_closed, &mask_closed, + &pixmap_opened, &mask_opened, &is_leaf, &expanded); - fprintf(fp, "%s\n%d %d %d %ld\n", + fprintf(fp, "%s\n%d %d %d %ld %d\n", finfo->path, finfo->new, finfo->unread, finfo->total, - finfo->mtime); + finfo->mtime, expanded); } /* add folders to the tree recursively */ Index: src/headerwindow.c =================================================================== RCS file: /home/cvs/stuphead/src/headerwindow.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- src/headerwindow.c 2001/05/18 15:04:52 1.7 +++ src/headerwindow.c 2001/06/07 16:58:14 1.8 @@ -56,6 +56,7 @@ headerwin = g_new0(HeaderWindow, 1); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_headerview","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), _("All header")); gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE); gtk_widget_set_usize(window, 600, 500); Index: src/import.c =================================================================== RCS file: /home/cvs/stuphead/src/import.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- src/import.c 2001/03/28 09:33:37 1.3 +++ src/import.c 2001/06/07 16:58:14 1.4 @@ -111,6 +111,7 @@ GtkWidget *confirm_area; window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_importmbox","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), _("Import")); gtk_widget_set_usize(window, 450, -1); gtk_container_set_border_width(GTK_CONTAINER(window), 4); Index: src/inputdialog.c =================================================================== RCS file: /home/cvs/stuphead/src/inputdialog.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- src/inputdialog.c 2001/03/21 18:09:09 1.3 +++ src/inputdialog.c 2001/06/07 16:58:14 1.4 @@ -119,6 +119,7 @@ GtkWidget *cancel_button; dialog = gtk_dialog_new(); + gtk_window_set_wmclass(GTK_WINDOW(dialog),"Stuphead_dialog","Stuphead"); gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, FALSE); gtk_widget_set_usize(dialog, INPUT_DIALOG_WIDTH, -1); gtk_container_set_border_width Index: src/logwindow.c =================================================================== RCS file: /home/cvs/stuphead/src/logwindow.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/logwindow.c 2001/03/21 18:09:09 1.2 +++ src/logwindow.c 2001/06/07 16:58:14 1.3 @@ -54,6 +54,7 @@ logwin = g_new0(LogWindow, 1); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_logview","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), _("Protocol log")); gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE); gtk_widget_set_usize(window, 520, 400); Index: src/mainwindow.c =================================================================== RCS file: /home/cvs/stuphead/src/mainwindow.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- src/mainwindow.c 2001/06/04 14:56:44 1.18 +++ src/mainwindow.c 2001/06/07 16:58:14 1.19 @@ -466,6 +466,7 @@ /* main window */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_main","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), PROG_VERSION); gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE); gtk_signal_connect(GTK_OBJECT(window), "delete_event", @@ -893,6 +894,7 @@ /* create separated window(s) if needed */ if (type & SEPARATE_FOLDER) { folderwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(folderwin),"Stuphead_folderview","Stuphead"); gtk_window_set_policy(GTK_WINDOW(folderwin), TRUE, TRUE, FALSE); gtk_widget_set_usize(folderwin, -1, @@ -905,6 +907,7 @@ } if (type & SEPARATE_MESSAGE) { messagewin = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(messagewin),"Stuphead_messageview","Stuphead"); gtk_window_set_policy(GTK_WINDOW(messagewin), TRUE, TRUE, FALSE); gtk_widget_set_usize Index: src/messageview.c =================================================================== RCS file: /home/cvs/stuphead/src/messageview.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- src/messageview.c 2001/04/10 06:10:08 1.6 +++ src/messageview.c 2001/06/07 16:58:14 1.7 @@ -112,6 +112,7 @@ MessageView *msgview; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_messageview","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), "Message"); gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE); gtk_widget_set_usize(window, prefs_common.msgwin_width, Index: src/prefs.c =================================================================== RCS file: /home/cvs/stuphead/src/prefs.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- src/prefs.c 2001/05/15 15:18:46 1.5 +++ src/prefs.c 2001/06/07 16:58:14 1.6 @@ -486,6 +486,7 @@ g_return_if_fail(dialog != NULL); window = gtk_window_new (GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_preferences","Stuphead"); gtk_container_set_border_width (GTK_CONTAINER (window), 8); gtk_window_position (GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window), TRUE); Index: src/prefs_common.c =================================================================== RCS file: /home/cvs/stuphead/src/prefs_common.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- src/prefs_common.c 2001/05/31 12:08:07 1.26 +++ src/prefs_common.c 2001/06/07 16:58:14 1.27 @@ -2058,6 +2058,7 @@ /* GtkWidget *ok_btn; */ quote_desc_win = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(quote_desc_win),"Stuphead_quotedesc","Stuphead"); gtk_window_set_title(GTK_WINDOW(quote_desc_win), _("Description of symbols")); gtk_container_set_border_width(GTK_CONTAINER(quote_desc_win), 8); @@ -2617,6 +2618,7 @@ GtkWidget *cancel_btn; window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_displayitem","Stuphead"); gtk_container_set_border_width(GTK_CONTAINER(window), 8); gtk_window_set_title(GTK_WINDOW(window), _("Set display item")); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); @@ -2696,6 +2698,7 @@ if (!font_sel_win) { font_sel_win = gtk_font_selection_dialog_new (_("Font selection")); + gtk_window_set_wmclass(GTK_WINDOW(font_sel_win),"Stuphead_fontsel","Stuphead"); gtk_window_position(GTK_WINDOW(font_sel_win), GTK_WIN_POS_CENTER); gtk_signal_connect(GTK_OBJECT(font_sel_win), "delete_event", @@ -2872,6 +2875,7 @@ GtkWidget *signature_col_btn; window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_colorsel","Stuphead"); gtk_container_set_border_width(GTK_CONTAINER(window), 8); gtk_window_set_title(GTK_WINDOW(window), _("Edit colors")); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); @@ -3000,6 +3004,7 @@ set_emphasis_color[1]=(gdouble)(prefs_common.emphasis_color.green/65535.0); set_emphasis_color[2]=(gdouble)(prefs_common.emphasis_color.blue/65535.0); uricolorseldlg = gtk_color_selection_dialog_new(""); + gtk_window_set_wmclass(GTK_WINDOW(uricolorseldlg),"Stuphead_colorsel","Stuphead"); gtk_window_set_modal(GTK_WINDOW(uricolorseldlg), TRUE); gtk_signal_connect(GTK_OBJECT(uricolorseldlg), "delete_event", GTK_SIGNAL_FUNC(color_select_cancel), GINT_TO_POINTER(what)); Index: src/procmsg.c =================================================================== RCS file: /home/cvs/stuphead/src/procmsg.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- src/procmsg.c 2001/06/04 14:56:44 1.7 +++ src/procmsg.c 2001/06/07 16:58:14 1.8 @@ -64,6 +64,10 @@ static gint procmsg_cmp_flag_msgnum (gconstpointer a, gconstpointer b); +void procmsg_copy_messages_with_dest (const gchar *to, const gchar *from, + GSList *mlist); + + GSList *procmsg_get_msgs(const gchar *folder, gboolean use_cache, gboolean scan_new) { Index: src/progressdialog.c =================================================================== RCS file: /home/cvs/stuphead/src/progressdialog.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/progressdialog.c 2001/03/21 18:09:09 1.2 +++ src/progressdialog.c 2001/06/07 16:58:14 1.3 @@ -52,6 +52,7 @@ progress = g_new0(ProgressDialog, 1); window = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_progressbar","Stuphead"); gtk_widget_set_usize(window, 400, -1); gtk_container_set_border_width(GTK_CONTAINER(window), 8); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); Index: src/selectdialog.c =================================================================== RCS file: /home/cvs/stuphead/src/selectdialog.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- src/selectdialog.c 2001/05/23 15:36:06 1.4 +++ src/selectdialog.c 2001/06/07 16:58:14 1.5 @@ -116,6 +116,7 @@ GtkWidget *cancel_button; dialog = gtk_dialog_new(); + gtk_window_set_wmclass(GTK_WINDOW(dialog),"Stuphead_select","Stuphead"); gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, FALSE); gtk_widget_set_usize(dialog, INPUT_DIALOG_WIDTH, INPUT_DIALOG_HEIGHT); gtk_container_set_border_width Index: src/summary_search.c =================================================================== RCS file: /home/cvs/stuphead/src/summary_search.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/summary_search.c 2001/03/21 18:09:10 1.2 +++ src/summary_search.c 2001/06/07 16:58:14 1.3 @@ -95,6 +95,7 @@ GtkWidget *confirm_area; window = gtk_window_new (GTK_WINDOW_DIALOG); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_search","Stuphead"); gtk_window_set_title (GTK_WINDOW (window), _("Search")); gtk_widget_set_usize (window, 450, -1); //gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); Index: src/viewsource.c =================================================================== RCS file: /home/cvs/stuphead/src/viewsource.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- src/viewsource.c 2001/04/09 08:09:17 1.4 +++ src/viewsource.c 2001/06/07 16:58:14 1.5 @@ -53,6 +53,7 @@ viewsourcewin = g_new0(ViewSourceWindow, 1); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_wmclass(GTK_WINDOW(window),"Stuphead_sourceview","Stuphead"); gtk_window_set_title(GTK_WINDOW(window), _("Source")); gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE); gtk_widget_set_usize(window, 600, 400);