+2002-02-07
+
+ * src/procmsg.c: procmsg_open_message(): fetch message if the cache
+ doesn't exist.
+ * src/foldersel.[ch]: foldersel_folder_sel(): added an argument
+ that specifies the folder selection type.
+
2002-02-06
* src/imap.c: imap_copy_msgs_with_dest(): fixed a bug on traversing
* src/addr_compl.c: get_complete_address(): add "" around the
display name if it contains comma.
get_address_from_edit(): handle the quotation character correctly.
+ * src/addr_compl.c: get_complete_address()
+ src/addressbook.c: addressbook_format_address(): fixed a bug that
+ caused wrong text processing if the display name is empty.
+ * updated NEWS.
2002-02-05
+2002-02-07 [paul] 0.7.0claws56
+
+ * sync with sylpheed 0.7.0cvs38
+ see ChangeLog entries 2002-02-06 {last 2 entries) and
+ 2002-02-07
+
2002-02-07 [darko] 0.7.0claws55
* src/gtkutils.[ch]
+2002-02-07
+
+ * src/procmsg.c: procmsg_open_message(): ¥¥ã¥Ã¥·¥å¤¬Â¸ºß¤·¤Ê¤¤
+ ¾ì¹ç¤Ï¥á¥Ã¥»¡¼¥¸¤ò¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+ * src/foldersel.[ch]: foldersel_folder_sel(): ¥Õ¥©¥ë¥ÀÁªÂò¤Î
+ ¥¿¥¤¥×¤ò»ØÄꤹ¤ë°ú¿ô¤òÄɲá£
+
2002-02-06
* src/imap.c: imap_copy_msgs_with_dest(): ¥ê¥¹¥È¤Î¥È¥é¥Ð¡¼¥¹»þ¤Î
* src/addr_compl.c: get_complete_address(): ɽ¼¨Ì¾¤Ë¥«¥ó¥Þ¤¬´Þ¤Þ¤ì¤Æ
¤¤¤ì¤Ð "" ¤òÄɲ乤ë¤è¤¦¤Ë¤·¤¿¡£
get_address_from_edit(): °úÍÑʸ»ú¤òÀµ¤·¤¯°·¤¦¤è¤¦¤Ë¤·¤¿¡£
+ * src/addr_compl.c: get_complete_address()
+ src/addressbook.c: addressbook_format_address(): ɽ¼¨Ì¾¤¬¶õ¤Î
+ ¾ì¹ç¤Ë¥Æ¥¥¹¥È½èÍý¤ò¸í¤ë¥Ð¥°¤ò½¤Àµ¡£
+ * NEWS ¤ò¹¹¿·¡£
2002-02-05
Changes of Sylpheed
+* 0.7.1
+
+ * Message copy between different type of folders has been enabled.
+ * Multiple message forwarding has been enabled.
+ * Most of key bindings became customizable.
+ * The default menu shortcuts have been modified so that Ctrl is used
+ as the modifier key.
+ * Quick menu shortcut changer has been implemented.
+ * Quick filter rule creation has been implemented.
+ * "Show all header" now displays the headers in the current message
+ view.
+ * File save dialog has been improved.
+ * Mac OS X (Darwin) has been supported.
+ * Ctrl-Enter now works on the composition window.
+ * Crash in mark processing on 64bit architecture has been fixed.
+ * Crash when some fonts couldn't be loaded has been fixed.
+ * Some address completion bugs have been fixed.
+ * Some many other bugs have been fixed.
+
+* 0.7.0
+
+ * Undo / redo function has been implemented.
+ * Regular expression has been supported in filtering.
+ * LDIF file import has been improved.
+ * The cursor on composition window blinks now.
+ * The feature to keep editing after saving to draft has been added.
+ * The position of Subject entry on composition window has been moved
+ to the last.
+ * The menu items have been reorganized.
+ * WMCLASS is set for some windows.
+ * A bug that causes infinite loop at line-wrapping has been fixed.
+ * Some bugfixes for template, addressbook and IMAP4 have been made.
+
* 0.6.6
* The newsgroup subscription dialog has been enhanced.
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws55
+EXTRA_VERSION=claws56
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
wchar_t *wp;
wchar_t rfc_mail_sep;
wchar_t quote;
+ wchar_t lt;
gboolean in_quote = FALSE;
gchar *str;
if (mbtowc(&rfc_mail_sep, ",", 1) < 0) return NULL;
if (mbtowc("e, "\"", 1) < 0) return NULL;
+ if (mbtowc(<, "<", 1) < 0) return NULL;
edit_text = gtk_entry_get_text(entry);
if (edit_text == NULL) return NULL;
return NULL;
}
-#define IS_VALID_CHAR(x) (iswalnum(x) || (x) == quote || ((x) > 0x7f))
+#define IS_VALID_CHAR(x) \
+ (iswalnum(x) || (x) == quote || (x) == lt || ((x) > 0x7f))
/* now scan back until we hit a valid character */
for (; *wp && !IS_VALID_CHAR(*wp); wp++)
p = (address_entry *)g_slist_nth_data
(g_completion_addresses, index - 1);
if (p != NULL) {
- if (strchr_with_skip_quote(p->name, '"', ','))
+ if (!p->name || p->name[0] == '\0')
+ address = g_strdup_printf(p->address);
+ else if (strchr_with_skip_quote(p->name, '"', ','))
address = g_strdup_printf
("\"%s\" <%s>", p->name, p->address);
else
}
}
if( address ) {
- if( name ) {
+ if( name && name[0] != '\0' ) {
if( strchr_with_skip_quote( name, '"', ',' ) )
buf = g_strdup_printf( "\"%s\" <%s>", name, address );
else
FolderItem *dest;
gchar * path;
- dest = foldersel_folder_sel(NULL, NULL);
+ dest = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL);
if (!dest) return;
path = folder_item_get_identifier(dest);
{
FolderItem *src;
- src = foldersel_folder_sel(NULL, NULL);
+ src = foldersel_folder_sel(NULL, FOLDER_SEL_ALL, NULL);
if (src && src->path)
gtk_entry_set_text(GTK_ENTRY(src_entry), src->path);
}
static void foldersel_create (void);
static void foldersel_init (void);
-static void foldersel_set_tree (Folder *cur_folder);
+static void foldersel_set_tree (Folder *cur_folder,
+ FolderSelectionType type);
+
static void foldersel_selected (GtkCList *clist,
gint row,
gint column,
gpointer data);
FolderItem *foldersel_folder_sel(Folder *cur_folder,
+ FolderSelectionType type,
const gchar *default_folder)
{
GtkCTreeNode *node;
gtk_widget_show(window);
manage_window_set_transient(GTK_WINDOW(window));
- foldersel_set_tree(cur_folder);
+ foldersel_set_tree(cur_folder, type);
if (folder_item) {
node = gtk_ctree_find_by_row_data
} \
}
-static void foldersel_set_tree(Folder *cur_folder)
+static void foldersel_set_tree(Folder *cur_folder, FolderSelectionType type)
{
Folder *folder;
GtkCTreeNode *node;
folder = FOLDER(list->data);
g_return_if_fail(folder != NULL);
- if (folder->type == F_NEWS) continue;
- if (cur_folder) {
- if (cur_folder->type != folder->type) continue;
- if (cur_folder->type == F_IMAP) {
- if (cur_folder->account != folder->account)
+ if (type != FOLDER_SEL_ALL) {
+ if (folder->type == F_NEWS)
+ continue;
+ if (type == FOLDER_SEL_MOVE && cur_folder) {
+ if (cur_folder->type != folder->type)
+ continue;
+ if (cur_folder->type == F_IMAP &&
+ cur_folder != folder)
continue;
}
}
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2001 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
#include "folder.h"
-FolderItem *foldersel_folder_sel(Folder *cur_folder,
- const gchar *default_folder);
+typedef enum
+{
+ FOLDER_SEL_ALL,
+ FOLDER_SEL_MOVE,
+ FOLDER_SEL_COPY
+} FolderSelectionType;
+
+FolderItem *foldersel_folder_sel(Folder *cur_folder,
+ FolderSelectionType type,
+ const gchar *default_folder);
#endif /* __FOLDERSEL_H__ */
FolderItem *dest;
gchar *path;
- dest = foldersel_folder_sel(NULL, NULL);
+ dest = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL);
if (!dest)
return;
path = folder_item_get_identifier(dest);
{
FolderItem *to_folder;
- to_folder = foldersel_folder_sel(NULL, NULL);
+ to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_ALL, NULL);
if (to_folder)
folderview_select(mainwin->folderview, to_folder);
FolderItem *item;
gchar *path;
- item = foldersel_folder_sel(NULL, NULL);
+ item = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL);
if (item) {
path = folder_item_get_identifier(item);
gtk_entry_set_text(GTK_ENTRY(receive.inbox_entry), path);
{
FolderItem *dest;
- dest = foldersel_folder_sel(NULL, NULL);
+ dest = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL);
if (!dest) return;
gtk_entry_set_text(GTK_ENTRY(filter.dest_entry), dest->path);
FolderItem *dest;
gchar * path;
- dest = foldersel_folder_sel(NULL, NULL);
+ dest = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL);
if (!dest) return;
path = folder_item_get_identifier(dest);
g_return_val_if_fail(msginfo != NULL, NULL);
- file = procmsg_get_message_file_path(msginfo);
+ file = procmsg_get_message_file(msginfo);
g_return_val_if_fail(file != NULL, NULL);
if ((fp = fopen(file, "r")) == NULL) {
if (!summaryview->folder_item ||
summaryview->folder_item->folder->type == F_NEWS) return;
- to_folder = foldersel_folder_sel(NULL, NULL);
+ to_folder = foldersel_folder_sel(summaryview->folder_item->folder,
+ FOLDER_SEL_MOVE, NULL);
summary_move_selected_to(summaryview, to_folder);
}
if (!summaryview->folder_item) return;
- to_folder = foldersel_folder_sel(NULL, NULL);
+ to_folder = foldersel_folder_sel(summaryview->folder_item->folder,
+ FOLDER_SEL_COPY, NULL);
summary_copy_selected_to(summaryview, to_folder);
}