diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-04-29 22:06:49 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-04-29 22:30:48 +0300 |
commit | e6ae2852edb142fcf84dc489715f8984843dfe0c (patch) | |
tree | 3f1ee3b8e88c17740452b257cf6a344066deac9e /include/mailutils/sys | |
parent | 1cf13b32d876b2f7ef0faf8f074142c376aeba1d (diff) | |
download | mailutils-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.h | 7 | ||||
-rw-r--r-- | include/mailutils/sys/mailbox.h | 1 |
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 |