summaryrefslogtreecommitdiff
path: root/include/mailutils/sys
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2012-04-29 22:06:49 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2012-04-29 22:30:48 +0300
commite6ae2852edb142fcf84dc489715f8984843dfe0c (patch)
tree3f1ee3b8e88c17740452b257cf6a344066deac9e /include/mailutils/sys
parent1cf13b32d876b2f7ef0faf8f074142c376aeba1d (diff)
downloadmailutils-e6ae2852edb142fcf84dc489715f8984843dfe0c.tar.gz
mailutils-e6ae2852edb142fcf84dc489715f8984843dfe0c.tar.bz2
Implement a copy method in mailbox.
This method copies given messages (ificated by their sequence or UID numbers) to the given mailbox. So far this is implemented only in IMAP[S] folders. The mh/inc utility uses this method to optionally move incorporated messages to other folder (mailbox) instead of simply deleting them. * include/mailutils/imap.h (mu_imap_response) (mu_imap_response_code): New protos. (MU_IMAP_CB_TAGGED_OK,MU_IMAP_CB_TAGGED_NO) (MU_IMAP_CB_TAGGED_BAD): New callback codes. * include/mailutils/mailbox.h (MU_MAILBOX_COPY_UID) (MU_MAILBOX_COPY_CREAT): New constants. (mu_mailbox_msgset_copy) (mu_mailbox_message_copy): New protos. * include/mailutils/sys/imap.h (resp_code): Rename to response to avoid confusion. All uses updated. (response_code): New member. (_mu_imap_process_tagged_response): New proto. * include/mailutils/sys/mailbox.h (_mu_mailbox) <_copy>: New member. * libmailutils/mailbox/Makefile.am (libmailbox_la_SOURCES): Add copy.c * libmailutils/mailbox/copy.c: New file. * libproto/imap/err.c (mu_imap_response): New function. (mu_imap_response_code): New function. * libproto/imap/mbox.c (_imap_copy_to_mailbox) (_mu_imap_mailbox_init): Implement _copy method. * libproto/imap/resplist.c (IS_LBRACE,IS_RBRACE): Fix macros. * libproto/imap/response.c (_mu_imap_response): Call _mu_imap_process_tagged_response to process tagged responses. * libproto/imap/resproc.c (parse_response_code): Bugfix: expected ']' was set off by one. (resptab)<code>: New member. (_mu_imap_process_tagged_response): New function. * mh/inc.c (options, mh_option, opt_handler): New option --moveto. (move_to_mailbox): New variable. (main): If move_to_mailbox is set, move messages to that mailbox instead of deleting them. * mh/mh_getopt.h (mh_arg)<ARG_MOVETO>: New constant. * NEWS: Update. * include/mailutils/folder.h: Add a comment. * libmailutils/mailbox/folder.c: Minor formatting change.
Diffstat (limited to 'include/mailutils/sys')
-rw-r--r--include/mailutils/sys/imap.h7
-rw-r--r--include/mailutils/sys/mailbox.h1
2 files changed, 6 insertions, 2 deletions
diff --git a/include/mailutils/sys/imap.h b/include/mailutils/sys/imap.h
index e8bc9a299..41f995b3d 100644
--- a/include/mailutils/sys/imap.h
+++ b/include/mailutils/sys/imap.h
@@ -85,8 +85,10 @@ struct _mu_imap
{
int flags;
- /* Holds the recect response code */
- enum mu_imap_response resp_code;
+ /* Holds the recent response */
+ enum mu_imap_response response;
+ /* The recent response code */
+ int response_code;
/* Error string (if any) */
char *errstr;
@@ -210,6 +212,7 @@ int _mu_imap_untagged_response_to_list (mu_imap_t imap, mu_list_t *plist);
int _mu_imap_process_untagged_response (mu_imap_t imap, mu_list_t list,
mu_imap_response_action_t fun,
void *data);
+int _mu_imap_process_tagged_response (mu_imap_t imap, mu_list_t resp);
int _mu_imap_response (mu_imap_t imap, mu_imap_response_action_t fun,
void *data);
diff --git a/include/mailutils/sys/mailbox.h b/include/mailutils/sys/mailbox.h
index ebae207f2..f1b8813ed 100644
--- a/include/mailutils/sys/mailbox.h
+++ b/include/mailutils/sys/mailbox.h
@@ -75,6 +75,7 @@ struct _mu_mailbox
int (*_get_uidls) (mu_mailbox_t, mu_list_t);
int (*_translate) (mu_mailbox_t, int cmd, size_t, size_t *);
+ int (*_copy) (mu_mailbox_t, mu_msgset_t, const char *, int);
};
# ifdef __cplusplus

Return to:

Send suggestions and report system problems to the System administrator.