+2002-03-07
+
+ * manual/en/sylpheed*.html: updated to the latest version.
+ * libkcc/jis.c
+ src/addrcache.c
+ src/addritem.c
+ src/ldif.c
+ src/mgutils.c: include string.h to remove warning about strlen()
+ etc.
+ * src/folder.c
+ src/folderview.c
+ src/inc.c
+ src/logwindow.c
+ src/mainwindow.c
+ src/mimeview.c
+ src/prefs.c
+ src/prefs_common.c
+ src/procheader.c
+ src/send.c
+ src/session.c
+ src/sigstatus.c
+ src/summaryview.c: added break to the last label of switch to
+ prevent the 'deprecated use of label at end of compound statement'
+ warning at gcc-3.0.
+ * src/rfc2015.c: passphrase_cb(): fixed the type of r_hd.
+
+2002-03-06
+
+ * src/inc.[ch]: preserve the pointer to IncProgressDialog to the
+ static list.
+ inc_cancel_all(): new. It cancels the all current incorporation.
+ * src/mainwindow.c: added 'Cancel receiving' menu.
+ * src/textview.c: a minor fix for single-part MIME messages, and
+ a bit of cleanup for textview_write_body().
+
2002-03-05
* src/inc.c: inc_write_uidl_list(): fixed a bug that lost UIDL
+2002-03-07 [paul] 0.7.3claws1
+
+ * sync with sylpheed 0.7.3cvs4
+ see ChangeLog entries 2002-03-06 and 2002-03-07
+
2002-03-07 [melvin] 0.7.2claws34
* src/selective_download.c
+2002-03-07
+
+ * manual/en/sylpheed*.html: ºÇ¿·ÈǤ˹¹¿·¡£
+ * libkcc/jis.c
+ src/addrcache.c
+ src/addritem.c
+ src/ldif.c
+ src/mgutils.c: string.h ¤ò include ¤·¤Æ strlen() Åù¤Î warning
+ ¤ò¼è¤ê½ü¤¤¤¿¡£
+ * src/folder.c
+ src/folderview.c
+ src/inc.c
+ src/logwindow.c
+ src/mainwindow.c
+ src/mimeview.c
+ src/prefs.c
+ src/prefs_common.c
+ src/procheader.c
+ src/send.c
+ src/session.c
+ src/sigstatus.c
+ src/summaryview.c: gcc-3.0 ¤Ç 'deprecated use of label at end of
+ compound statement' ¤Î warning ¤òÈò¤±¤ë¤¿¤á¤Ë switch ¤ÎºÇ¸å¤Î
+ ¥é¥Ù¥ë¤Ë break ¤òÄɲá£
+ * src/rfc2015.c: passphrase_cb(): r_hd ¤Î·¿¤ò½¤Àµ¡£
+
+2002-03-06
+
+ * src/inc.[ch]: IncProgressDialog ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÀÅŪ¤Ê¥ê¥¹¥È¤Ë
+ Êݸ¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+ inc_cancel_all(): ¿·µ¬¡£Á´¤Æ¤Î¸½ºß¤Î¼õ¿®¤ò¥¥ã¥ó¥»¥ë¤¹¤ë¡£
+ * src/mainwindow.c: ¡Ö¼õ¿®¤òÃæ»ß¡×¥á¥Ë¥å¡¼¤òÄɲá£
+ * src/textview.c: ¥·¥ó¥°¥ë¥Ñ¡¼¥È MIME ¥á¥Ã¥»¡¼¥¸¤Î¤¿¤á¤Î¥Þ¥¤¥Ê¡¼
+ ¤Ê½¤Àµ¤È¡¢ textview_write_body() ¤ò¾¯¤·À°Íý¡£
+
2002-03-05
* src/inc.c: inc_write_uidl_list(): UIDL ¥³¥Þ¥ó¥É¤òȯ¹Ô¤¹¤ëÁ°¤Ë
o Caldera Workstation 3.1
o Conectiva Linux 4.0
o Conectiva Linux 5.0
+o Conectiva Linux 7.0
o Vector Linux 1.5
o Yellow Dog Linux 2.0 (glibc 2.2.1)
o Yellow Dog Linux 2.1 (PowerPC)
o ASP Linux 7.2 (glibc 2.2.4)
+o Redmond Linux (Lycoris)
BSD
o HP-UX 11i
o Tru64 Unix 5.0 (OSF1 V5.0)
o SCO UnixWare 7
-o Mac OS X 10.1.2 (Darwin 5.2) + XDarwin (has locale problem)
+o Mac OS X 10.1.3 (Darwin 5.3) + XDarwin (without XLocale support) + libxpg4
Others
-o Windows (cygwin + GTK+ for win32) (unstable)
+o Windows (cygwin + GTK+ for win32) (in progress)
Build it
========
-For installation, just type:
+Please make sure that gtk-devel and glib-devel (or similar) packages are
+installed before the compilation (you may also require flex (lex) and bison
+(yacc)).
+
+To compile and install, just type:
% ./configure
% make
o Caldera Workstation 3.1
o Conectiva Linux 4.0
o Conectiva Linux 5.0
+o Conectiva Linux 7.0
o Vector Linux 1.5
o Yellow Dog Linux 2.0 (glibc 2.2.1)
o Yellow Dog Linux 2.1 (PowerPC)
o ASP Linux 7.2 (glibc 2.2.4)
+o Redmond Linux (Lycoris)
BSD
o HP-UX 11i
o Tru64 Unix 5.0 (OSF1 V5.0)
o SCO UnixWare 7
-o Mac OS X 10.1.2 (Darwin 5.2) + XDarwin (locale ¤ËÌäÂꤢ¤ê)
+o Mac OS X 10.1.3 (Darwin 5.3) + XDarwin (XLocale ̵¤·) + libxpg4
¤½¤Î¾
-o Windows (cygwin + GTK+ for win32) (unstable)
+o Windows (cygwin + GTK+ for win32) (³«È¯Ãæ)
¥Ó¥ë¥É
======
-¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤ËÆþÎϤ·¤Æ¤¯¤À¤µ¤¤:
+¥³¥ó¥Ñ¥¤¥ëÁ°¤Ë gtk-devel ¤È glib-devel (¤¢¤ë¤¤¤ÏÁêÅö¤¹¤ë)¥Ñ¥Ã¥±¡¼¥¸¤¬
+¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤(flex (lex) ¤È bison (yacc)
+¤âɬÍפ«¤â¤·¤ì¤Þ¤»¤ó)¡£
+
+¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤ËÆþÎϤ·¤Æ¤¯¤À¤µ¤¤:
% ./configure
% make
dnl version number
MAJOR_VERSION=0
MINOR_VERSION=7
-MICRO_VERSION=2
+MICRO_VERSION=3
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws34
+EXTRA_VERSION=claws1
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
#include "libkcc.h"
+#include <string.h>
+
extern enum mode outmode;
extern char shiftout[], shiftin[];
extern bool nogaiji;
* Functions to maintain address cache.
*/
+#include <glib.h>
#include <stdio.h>
+#include <string.h>
#include <sys/stat.h>
-#include <glib.h>
#include "mgutils.h"
#include "addritem.h"
* General primitive address item objects.
*/
-#include <stdio.h>
#include <glib.h>
+#include <stdio.h>
+#include <string.h>
#include "addritem.h"
#include "mgutils.h"
case F_DRAFT: folder->draft = item; break;
case F_QUEUE: folder->queue = item; break;
case F_TRASH: folder->trash = item; break;
- default:
- break;
+ default: break;
}
prefs_folder_item_read_config(item);
prefs_common.folder_col_total = width;
break;
default:
+ break;
}
}
#include "filtering.h"
#include "selective_download.h"
+static GList *inc_dialog_list = NULL;
+
static guint inc_lock_count = 0;
static GdkPixmap *currentxpm;
static void inc_put_error (IncState istate);
-static void inc_cancel (GtkWidget *widget,
+static void inc_cancel_cb (GtkWidget *widget,
gpointer data);
static gint inc_spool (void);
text[2] = _("Standby");
gtk_clist_append(GTK_CLIST(inc_dialog->dialog->clist), text);
+ main_window_set_toolbar_sensitive(mainwin);
+ main_window_set_menu_sensitive(mainwin);
+
return inc_start(inc_dialog);
}
gtk_clist_append(GTK_CLIST(inc_dialog->dialog->clist), text);
}
+ main_window_set_toolbar_sensitive(mainwin);
+ main_window_set_menu_sensitive(mainwin);
+
new_msgs += inc_start(inc_dialog);
inc_finished(mainwin, new_msgs > 0);
gtk_window_set_title(GTK_WINDOW(progress->window),
_("Retrieving new messages"));
gtk_signal_connect(GTK_OBJECT(progress->cancel_btn), "clicked",
- GTK_SIGNAL_FUNC(inc_cancel), dialog);
+ GTK_SIGNAL_FUNC(inc_cancel_cb), dialog);
gtk_signal_connect(GTK_OBJECT(progress->window), "delete_event",
GTK_SIGNAL_FUNC(gtk_true), NULL);
/* manage_window_set_transient(GTK_WINDOW(progress->window)); */
dialog->dialog = progress;
dialog->queue_list = NULL;
+ inc_dialog_list = g_list_append(inc_dialog_list, dialog);
+
return dialog;
}
{
g_return_if_fail(inc_dialog != NULL);
+ inc_dialog_list = g_list_remove(inc_dialog_list, inc_dialog);
+
gtk_progress_bar_update
(GTK_PROGRESS_BAR(inc_dialog->mainwin->progressbar), 0.0);
progress_dialog_destroy(inc_dialog->dialog);
}
}
-static void inc_cancel(GtkWidget *widget, gpointer data)
+static void inc_cancel(IncProgressDialog *dialog)
{
- IncProgressDialog *dialog = data;
- IncSession *session = dialog->queue_list->data;
- SockInfo *sockinfo = session->pop3_state->sockinfo;
+ IncSession *session;
+ SockInfo *sockinfo;
+
+ g_return_if_fail(dialog != NULL);
+
+ session = dialog->queue_list->data;
+ sockinfo = session->pop3_state->sockinfo;
if (!sockinfo || session->atm->terminated == TRUE) return;
session->pop3_state->sockinfo = NULL;
}
+gboolean inc_is_active(void)
+{
+ return (inc_dialog_list != NULL);
+}
+
+void inc_cancel_all(void)
+{
+ GList *cur;
+
+ for (cur = inc_dialog_list; cur != NULL; cur = cur->next)
+ inc_cancel((IncProgressDialog *)cur->data);
+}
+
+static void inc_cancel_cb(GtkWidget *widget, gpointer data)
+{
+ inc_cancel((IncProgressDialog *)data);
+}
+
static gint inc_spool(void)
{
gchar *mbox, *logname;
gint inc_drop_message (const gchar *file,
Pop3State *state);
+gboolean inc_is_active (void);
+
+void inc_cancel_all (void);
+
void inc_lock (void);
void inc_unlock (void);
* files).
*/
-#include <sys/stat.h>
#include <glib.h>
+#include <string.h>
+#include <sys/stat.h>
#include "mgutils.h"
#include "ldif.h"
color = &logwindow->msg_color;
break;
default:
+ break;
}
if (head) gtk_text_insert(text, NULL, color, NULL, head, -1);
static void inc_all_account_mail_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
+static void inc_cancel_cb (MainWindow *mainwin,
+ guint action,
+ GtkWidget *widget);
static void send_queue_cb (MainWindow *mainwin,
guint action,
{N_("/_Message/Get new ma_il"), "<control>I", inc_mail_cb, 0, NULL},
{N_("/_Message/Get from _all accounts"),
"<shift><control>I", inc_all_account_mail_cb, 0, NULL},
+ {N_("/_Message/Cancel receivin_g"), NULL, inc_cancel_cb, 0, NULL},
{N_("/_Message/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_Message/Send queued messa_ges"),
- NULL, send_queue_cb, 0, NULL},
+ {N_("/_Message/_Send queued messages"), NULL, send_queue_cb, 0, NULL},
{N_("/_Message/---"), NULL, NULL, 0, "<Separator>"},
{N_("/_Message/Compose a_n email message"), "<control>M", compose_mail_cb, 0, NULL},
{N_("/_Message/Compose a news message"), NULL, compose_news_cb, 0, NULL},
M_THREADED = 1 << 7,
M_UNTHREADED = 1 << 8,
M_ALLOW_DELETE = 1 << 9,
- M_NEWS = 1 << 10,
- M_HAVE_NEWS_ACCOUNT = 1 << 11,
- M_HIDE_READ_MSG = 1 << 12
+ M_INC_ACTIVE = 1 << 10,
+ M_NEWS = 1 << 11,
+ M_HAVE_NEWS_ACCOUNT = 1 << 12,
+ M_HIDE_READ_MSG = 1 << 13
} SensitiveCond;
static SensitiveCond main_window_get_current_state(MainWindow *mainwin)
}
}
+ if (inc_is_active())
+ state |= M_INC_ACTIVE;
+
return state;
}
{"/Message/Get new mail" , M_HAVE_ACCOUNT|M_UNLOCKED},
{"/Message/Get from all accounts" , M_HAVE_ACCOUNT|M_UNLOCKED},
+ {"/Message/Cancel receiving" , M_INC_ACTIVE},
{"/Message/Compose a news message", M_HAVE_NEWS_ACCOUNT},
{"/Message/Reply" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
{"/Message/Reply to sender" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
inc_all_account_mail(mainwin, prefs_common.newmail_notify_manu);
}
+static void inc_cancel_cb(MainWindow *mainwin, guint action, GtkWidget *widget)
+{
+ inc_cancel_all();
+}
+
static void send_queue_cb(MainWindow *mainwin, guint action, GtkWidget *widget)
{
GList *list;
* General functions for create common address book entries.
*/
-#include <stdio.h>
#include <glib.h>
+#include <stdio.h>
+#include <string.h>
#include "mgutils.h"
mimeview_launch(mimeview);
return TRUE;
default:
+ break;
}
if (!mimeview->messageview->mainwin) return FALSE;
gtk_option_menu_set_history(optmenu, 2);
break;
default:
+ break;
}
menu = gtk_option_menu_get_menu(optmenu);
}
static const char *
-passphrase_cb (void *opaque, const char *desc, void *r_hd)
+passphrase_cb (void *opaque, const char *desc, void **r_hd)
{
struct passphrase_cb_info_s *info = opaque;
GpgmeCtx ctx = info ? info->c : NULL;
const char *pass;
if (!desc) {
- /* FIXME: cleanup by looking at *r_hd */
+ /* FIXME: cleanup by looking at **r_hd */
return NULL;
}
ac = account_find_from_id(atoi(p));
break;
default:
+ break;
}
}
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2002 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
static void textview_write_body (TextView *textview,
MimeInfo *mimeinfo,
FILE *fp,
- CodeConverter *conv);
+ const gchar *charset);
static void textview_show_html (TextView *textview,
FILE *fp,
CodeConverter *conv);
gint boundary_len = 0;
const gchar *charset = NULL;
GPtrArray *headers = NULL;
- CodeConverter *conv;
g_return_if_fail(mimeinfo != NULL);
g_return_if_fail(fp != NULL);
textview->body_pos = gtk_stext_get_length(text);
}
- conv = conv_code_converter_new(charset);
- textview_write_body(textview, mimeinfo, fp, conv);
- conv_code_converter_destroy(conv);
+ textview_write_body(textview, mimeinfo, fp, charset);
gtk_stext_thaw(text);
}
gint boundary_len = 0;
const gchar *charset = NULL;
GPtrArray *headers = NULL;
- CodeConverter *conv;
g_return_if_fail(mimeinfo != NULL);
g_return_if_fail(fp != NULL);
if (mimeinfo->mime_type == MIME_MULTIPART) return;
+ if (!mimeinfo->parent &&
+ mimeinfo->mime_type != MIME_TEXT &&
+ mimeinfo->mime_type != MIME_TEXT_HTML &&
+ mimeinfo->mime_type != MIME_TEXT_ENRICHED)
+ return;
+
if (fseek(fp, mimeinfo->fpos, SEEK_SET) < 0) {
perror("fseek");
return;
charset = prefs_common.force_charset;
else if (mimeinfo->charset)
charset = mimeinfo->charset;
- conv = conv_code_converter_new(charset);
- textview_write_body(textview, mimeinfo, fp, conv);
- conv_code_converter_destroy(conv);
+ textview_write_body(textview, mimeinfo, fp, charset);
}
gtk_stext_thaw(text);
#undef TEXT_INSERT
static void textview_write_body(TextView *textview, MimeInfo *mimeinfo,
- FILE *fp, CodeConverter *conv)
+ FILE *fp, const gchar *charset)
{
FILE *tmpfp;
gchar buf[BUFFSIZE];
+ CodeConverter *conv;
+
+ conv = conv_code_converter_new(charset);
tmpfp = procmime_decode_content(NULL, fp, mimeinfo);
if (tmpfp) {
textview_write_line(textview, buf, conv);
fclose(tmpfp);
}
+
+ conv_code_converter_destroy(conv);
}
static void textview_show_html(TextView *textview, FILE *fp,