Age | Commit message (Collapse) | Author | Files |
|
|
|
|
|
* include/mailutils/Makefile.am (errno.h): Use explicit file names
instead of implicit variables.
* include/mailutils/sys/Makefile.am (debcat.h): Likewise.
* libmailutils/diag/Makefile.am (muerrno.c): Likewise.
* libmu_argp/Makefile.am (libmu_argp_la_LIBADD): Use relative path
to .la,
|
|
|
|
Remove deprecated types and function calls. Make cipher, mac, and other
priorities configurable.
* include/mailutils/sys/tls-stream.h (_mu_tls_stream): Use gnutls_session_t.
* include/mailutils/tls.h (mu_tls_module_config): New member: priorities.
* libmu_auth/tls.c: Remove deprecated types.
(intialize_tls_session): Make priorities configurable.
(prepare_client_session): Set default priorities.
* libmu_cfg/tls.c: New configuration statement: ssl-priorities.
|
|
* include/mailutils/mailbox.h (mu_mailbox_set_notify)
(mu_mailbox_unset_notify): New protos.
* include/mailutils/sys/mailbox.h (_mu_mailbox) <notify_user>
<notify_fd,notify_sa>: New members.
* libmailutils/mailbox/Makefile.am (libmailbox_la_SOURCES): Add
biffnotify.c
* libmailutils/mailbox/biffnotify.c: New file.
* libmailutils/mailbox/mailbox.c (_mailbox_create_from_record): Initialize
notify_fd.
(mu_mailbox_destroy): Free notify_sa.
(mu_mailbox_close): Close notify_fd.
(mu_mailbox_flush): Rewrite to handle append-only mailboxes effectively.
* libmailutils/server/msrv.c (server_cfg_param): Fix docstring.
* libmailutils/stream/file_stream.c (fd_open): Open fd read-write if
both MU_STREAM_APPEND and MU_STREAM_READ are requested.
* libproto/mbox/mbox.c (mbox_expunge0): Rescan the mailbox if
messages_count == 0. Special handling for append-only mailboxes.
* maidag/deliver.c: Use library notification mechanism.
* mh/inc.c: New option --notify.
* movemail/movemail.c: Likewise.
|
|
|
|
* include/mailutils/msgset.h (mu_msgset_sget_mailbox): New proto.
* include/mailutils/sys/msgset.h (_MU_MSGSET_MODE): New macro.
* libmailutils/msgset/Makefile.am: Add getmbox.c
* libmailutils/msgset/getmbox.c: New file.
* libmailutils/msgset/addset.c: Use _MU_MSGSET_MODE.
* libmailutils/msgset/create.c: Likewise.
* libmailutils/msgset/foreachmsg.c: Likewise.
* libmailutils/msgset/foreachnum.c: Likewise.
* libmailutils/msgset/negate.c: Likewise.
* libmailutils/msgset/subset.c: Likewise.
* libmailutils/msgset/trans.c: Likewise.
* mh/mh.h (mh_private_sequences_iterate): New proto.
* mh/mh_sequence.c (format_closure) <delim>: New member.
(format_sequence): Use delim to avoid outputting leading space.
(save_sequence): Initialize delim.
(mh_private_sequences_iterate): New function.
* mh/rmm.c (main): Remove message numbers from sequences.
* mh/tests/rmm.at: Update.
|
|
* include/mailutils/imap.h (mu_imap_search): New proto.
* libproto/imap/search.c: New file.
* include/mailutils/sys/imap.h (MU_IMAP_CLIENT_SEARCH_RX): New state.
* libproto/imap/fetch.c: Fix debugging categories
* libproto/imap/mbox.c (_imap_messages_recent)
(_imap_message_unseen): Use search if information is not
readily available.
* libproto/imap/status.c (_mu_imap_status_name_table): Comment
out UNSEEN: its semantics is entirely different from what we
need.
* libproto/imap/Makefile.am: Add new file.
* mu/imap.c: Implement search.
* include/mailutils/sys/mailbox.h (_mu_mailbox) <_get_atime>: New method.
* include/mailutils/mailbox.h (mu_mailbox_access_time): New proto.
* libproto/mbox/mbox.c (_mailbox_mbox_init): Initialize
>_get_atime.
* libmailutils/mailbox/mailbox.c (mu_mailbox_access_time): New function.
* libmailutils/datetime/utcoff.c (mu_utc_offset): Rewrite using tzset.
* mh/msgchk.c: Implement --date.
Check for new mail using both recent and unseen messages.
|
|
message stream.
* include/mailutils/sys/body.h (_mu_body)<rawstream>: New member.
* include/mailutils/sys/message.h (_mu_message)<rawstream>: New member.
* libmailutils/mailbox/body.c: Rewrite. Return the specially crafted
"body-stream" for user I/O operations. Writes to that stream trigger
creation of a temporary stream (write-through mode) which will be used
for subsequent I/O.
* libmailutils/mailbox/msgbody.c (mu_message_get_body): Use msg->rawstream.
* libmailutils/mailbox/msgheader.c (message_header_fill): Do not
call mu_message_get_streamref, as that can result in endless recursion.
Use msg->rawstream instead.
* libmailutils/mailbox/msgref.c (_mu_message_free): Destroy both
rawstream and outstream.
* libmailutils/mailbox/msgstream.c (mu_message_set_stream): Set
rawstream.
(mu_message_get_stream): Create outstream as needed.
(mu_message_get_streamref): If the message has been modified,
create the outstream and return it to the caller. This way, the
modifications become visible via the stream interface.
* libmailutils/tests/Makefile.am: Add new testcases.
* libmailutils/tests/testsuite.at: Likewise.
* libmailutils/tests/modmesg.c: New file.
* libmailutils/tests/modmesg00.at: New file.
* libmailutils/tests/modmesg01.at: New file.
* libmailutils/tests/modmesg02.at: New file.
* libmailutils/tests/modmesg03.at: New file.
* mh/mhn.c: Fix message reference counting.
|
|
Also fix iterator synchronization after removing an element and
improve Sieve API.
* include/mailutils/header.h (mu_header_get_itemptr): New proto.
* include/mailutils/iterator.h (mu_iterator_advance): Remove.
(mu_iterator_delitem): New proto.
(mu_iterator_set_delitem): New proto.
* include/mailutils/sieve.h (mu_sieve_register_t) <opt_args>: New member.
(mu_sieve_register_test_ext)
(mu_sieve_register_action_ext): New protos.
* include/mailutils/sys/iterator.h (_mu_iterator) <curitem_p>: Remove.
<delitem>: New member. All uses updated.
* libmailutils/base/iterator.c (mu_iterator_set_delitem): New function.
* libmailutils/mailbox/hdritr.c: Implement bidirectional iteration.
Implement itrctl method.
* libmailutils/mailbox/header.c: Likewise.
* libmailutils/base/assoc.c: Use delitem method instead of curitem_p.
(mu_iterator_delitem): New function.
* libmailutils/base/opool.c
* libmailutils/diag/debug.c
* libmailutils/list/iterator.c
* libmailutils/list/pop.c
* libmailutils/list/remove.c
* libmailutils/list/removenth.c
* libmailutils/mailbox/imapenv.c
* libmailutils/mailbox/mbxitr.c
* libproto/pop/pop3_iterator.c
* libmu_sieve/extensions/Makefile.am: Add editheader.c
* libmu_sieve/extensions/editheader.c: New file.
* libmu_sieve/prog.c (mu_sv_code_command): Allow for optional positional
arguments.
* libmu_sieve/register.c (mu_sieve_test_lookup)
(mu_sieve_action_lookup): Return NULL if a record with
empty (NULL) handler is found.
(mu_sieve_register_test_ext)
(mu_sieve_register_action_ext): New functions.
(mu_sieve_register_test)
(mu_sieve_register_action): Rewrite as wrappers to the above.
* libmu_sieve/util.c (mu_sieve_vlist_do): Allow for SVT_STRING
argument.
* sieve/tests/Makefile.am: Add new testcases.
* sieve/tests/testsuite.at: Include new testcases.
* sieve/tests/addheader.at: New testcase.
* sieve/tests/delheader.at: New testcase.
* NEWS: Update.
* doc/rfc/README: Update.
|
|
Provide special functions for storing and retrieving URL from
mu_smtp_t object, instead of using MU_SMTP_PARAM_URL. The major
drawback of the latter is that URLs in textual form can contain
obfuscated access credentials, which makes them unusable for
authentication.
* include/mailutils/smtp.h (mu_smtp_set_url)
(mu_smtp_get_url)
(mu_smtp_set_secret,mu_smtp_get_secret): New protos.
* include/mailutils/sys/smtp.h (_mu_smtp) <url>: New member.
* libproto/mailer/smtp_secret.c: New file.
* libproto/mailer/smtp_url.c: New file.
* libproto/mailer/Makefile.am (libmu_mailer_la_SOURCES): Add new files.
* libproto/mailer/smtp.c (smtp_open): Use mu_smtp_set_url to preserve
URL credentials.
* libproto/mailer/smtp_auth.c (_mu_smtp_fixup_params): Use smtp->url.
* libproto/mailer/smtp_create.c (mu_smtp_destroy): Destroy smtp->url.
* libproto/mailer/smtp_param.c (mu_smtp_set_param): Special
handling for MU_SMTP_PARAM_URL.
(mu_smtp_get_param): Likewise.
|
|
* doc/texinfo/folder.texi: Update
* include/mailutils/cpp/folder.h (Folder) <set_stream>
<get_stream>: Remove.
* include/mailutils/folder.h (mu_folder_get_stream)
(mu_folder_get_streamref)
(mu_folder_set_stream): Remove.
* include/mailutils/mailbox.h (mu_folder_get_stream)
(mu_folder_get_streamref)
(mu_folder_set_stream): Remove protos.
* include/mailutils/sys/folder.h (_mu_folder)<stream>: Remove.
All uses updated.
* libmailutils/mailbox/folder.c (mu_folder_set_stream)
(mu_folder_get_stream,mu_folder_get_streamref): Remove.
* libmailutils/mailbox/mailbox.c (mu_mailbox_get_stream)
(mu_mailbox_get_streamref): Remove.
* libmu_cpp/folder.cc (get_stream, set_stream): Remove.
* libmu_scm/mu_mailbox.c (mu-mailbox-get-port): Remove.
* python/libmu_py/folder.c (get_stream): Remove.
|
|
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.
|
|
|
|
* NEWS: Update.
* include/mailutils/registrar.h (mu_smtps_record): New extern.
(mu_register_all_mailer_formats): Register mu_smtps_record.
* include/mailutils/sys/registrar.h (MU_SMTPS_SCHEME)
(MU_SMTPS_SCHEME_LEN,MU_SMTPS_PORT): New defines.
* libmailutils/address/address.c (mu_address_get_count): Don't
count parts with NULL emails.
(mu_address_contains_email): Validate email before comparison.
(mu_list_copy): New static.
(mu_address_union): Reuse last subaddress if its email is NULL.
* libmailutils/base/nullrec.c (mu_smtps_record): New placeholder.
* libproto/mailer/smtp.c (mu_smtps_record): New global.
(smtp_open): Implement SMTPS
* mu/send.c: New file.
* mu/Makefile.am (MODULES): Add send.c
|
|
* libmailutils/msgset/Makefile.am (libmsgset_la_SOURCES): Add new files.
* libmailutils/msgset/addset.c: New file.
* libmailutils/msgset/count.c: New file.
* libmailutils/msgset/foreachmsgno.c: New file.
* libmailutils/msgset/foreachuid.c: New file.
* libmailutils/msgset/isempty.c: New file.
* libmailutils/msgset/subset.c: New file.
* libmailutils/msgset/trans.c: New file.
* libmailutils/msgset/add.c (mu_msgset_add_range): Take fourth argument
specifying the conversion mode. Translate numbers as necessary.
* libmailutils/msgset/foreachmsg.c: Translate numbers as necessary.
* libmailutils/msgset/foreachnum.c: Rewrite.
* libmailutils/msgset/negate.c (_invert_range)
(mu_msgset_add_range): Update calls to mu_msgset_add_range.
* libmailutils/msgset/parse.c (parse_msgnum_env)<mode>: New member.
(parse_msgrange): Update calls to mu_msgset_add_range.
(mu_msgset_parse_imap): Change signature. All callers updated.
* libmailutils/msgset/sub.c (mu_msgset_sub_range): Take fourth argument
specifying the conversion mode. Translate numbers as necessary.
* imap4d/copy.c (imap4d_copy0): Update calls to mu_msgset_create
and mu_msgset_parse_imap.
* imap4d/fetch.c (fetch_thunk): Likewise.
* imap4d/search.c (parse_simple_key): Likewise.
* imap4d/store.c (store_thunk): Likewise.
* include/mailutils/msgset.h (MU_MSGSET_NUM,MU_MSGSET_UID): New defines.
(mu_msgset_add,mu_msgset_sub): New protos.
(mu_msgset_add_range,mu_msgset_sub_range): Take 4 arguments. All callers
changed.
* include/mailutils/sys/msgset.h (_mu_msgset_translate_pair)
(_mu_msgset_translate_range): New protos.
* libmailutils/tests/msgset.c: Reflect the above changes.
* testsuite/msgset.c: Likewise.
* libproto/imap/mbox.c: Update calls to mu_msgset functions.
* mh/mh.h (mh_msgset_t): Remove.
(mh_iterator_fp): Remove typedef.
(mh_msgset_parse): Change signature.
(mh_msgset_member,mh_msgset_reverse,mh_msgset_negate)
(mh_msgset_current,mh_msgset_free,mh_msgset_uids): Remove protos.
(mh_msgset_parse_string): New proto.
(mh_msgset_first_current,mh_msgset_first): New proto.
(mh_iterate: Remove proto. Use mu_msgset_foreach* functions instead.
(mh_seq_add,mh_seq_delete): Change signatures.
* mh/mh_init.c (mh_iterate): Remove.
* mh/mh_msgset.c: Rewrite using mu_msgset_t.
* mh/mh_sequence.c: Likewise.
* mh/anno.c: Use new msgset functions.
* mh/burst.c: Likewise.
* mh/comp.c: Likewise.
* mh/folder.c: Likewise.
* mh/forw.c: Likewise.
* mh/mark.c: Likewise.
* mh/mhn.c: Likewise.
* mh/mhpath.c: Likewise.
* mh/mhseq.c: Likewise.
* mh/pick.c: Likewise.
* mh/refile.c: Likewise.
* mh/repl.c: Likewise.
* mh/rmm.c: Likewise.
* mh/scan.c: Likewise.
* mh/send.c: Likewise.
* mh/sortm.c: Likewise.
* mh/whatnowenv.c: Likewise.
* mh/tests/mark.at: Reflect changes in the format of the saved
sequences, which may contain ranges now.
* mu/imap.c: Update calls to mu_msgset functions.
|
|
* include/mailutils/imap.h (mu_imap_fetch,mu_imap_store)
(mu_imap_store_flags,mu_imap_copy): Take mu_msgset_t as the
message set parameter.
* include/mailutils/imapio.h (mu_imapio_send_msgset): New proto.
(mu_imapio_send_command_v,mu_imapio_send_command)
(mu_imapio_send_command_e): Take additional mu_msgset_t parameter.
All uses changed.
* include/mailutils/msgset.h (mu_msgset_parse_imap): Input string
is const.
* include/mailutils/sys/imap.h (imap_command) <msgset>: New member.
* libmailutils/imapio/sendmsgset.c: New file.
* libmailutils/imapio/Makefile.am (libimapio_la_SOURCES): Add sendmsgset.c.
* libmailutils/imapio/sendcmd.c (mu_imapio_send_command): Take additional
mu_msgset_t parameter.
* libmailutils/imapio/sendcmde.c (mu_imapio_send_command_e): Likewise.
* libmailutils/imapio/sendcmdv.c (mu_imapio_send_command_v): Likewise.
* libmailutils/msgset/parse.c (mu_msgset_parse_imap): Input string
is const.
* libproto/imap/copy.c (mu_imap_copy): Take mu_msgset_t as the
message set parameter.
* libproto/imap/fetch.c (mu_imap_fetch): Likewise.
* libproto/imap/store.c (mu_imap_store): Likewise.
* libproto/imap/storeflg.c (mu_imap_store_flags): Likewise.
* libproto/imap/gencom.c (mu_imap_gencom): Send cmd->msgset.
|
|
* configure.ac: Build libmailutils/msgset/Makefile
* include/mailutils/msgset.h: New file.
* include/mailutils/Makefile.am (pkginclude_HEADERS): Add msgset.h
* include/mailutils/mailutils.h: Include mailutils/msgset.h
* include/mailutils/sys/msgset.h: New file.
* include/mailutils/sys/Makefile.am (sysinclude_HEADERS): Add msgset.h
* include/mailutils/types.hin (mu_msgset_t): New type.
* libmailutils/Makefile.am (SUBDIRS): Add msgset.
(libmailutils_la_LIBADD): Add libmsgset.la
* libmailutils/msgset/Makefile.am: New file.
* libmailutils/msgset/add.c: New file.
* libmailutils/msgset/aggr.c: New file.
* libmailutils/msgset/clear.c: New file.
* libmailutils/msgset/create.c: New file.
* libmailutils/msgset/free.c: New file.
* libmailutils/msgset/getitr.c: New file.
* libmailutils/msgset/getlist.c: New file.
* libmailutils/msgset/locate.c: New file.
* libmailutils/msgset/parse.c: New file.
* libmailutils/msgset/print.c: New file.
* libmailutils/msgset/sub.c: New file.
* libmailutils/tests/msgset.at: New file.
* libmailutils/tests/msgset.c: New file.
* libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add msgset.
(TESTSUITE_AT): Add msgset.at.
* libmailutils/tests/testsuite.at: Include msgset.at.
* testsuite/msgset.c: New file.
* testsuite/Makefile.am (noinst_PROGRAMS): Add msgset.
|
|
Some features are missing (notably, quick access), but overall the
implementation offers all necessary features and performs a lot
better than 2.x.
Additionally, this commit fixes a minor bug in the imap4d implementation:
the STORE command did not accept empty flag list.
* NEWS: Update.
* imap4d/store.c (store_thunk): Accept empty list as "items" argument.
* include/mailutils/imap.h (mu_imap_store_flags): New proto.
* include/mailutils/imaputil.h (mu_imap_format_flags): Add new argument.
* include/mailutils/sys/imap.h (_MU_IMAP_MSG_ATTRCHG): New flag.
* libmailutils/imapio/flags.c: Accept three arguments, last one being
a boolean flag specifying whether we want \Recent in the output.
* libproto/imap/storeflg.c: New flag.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add storeflg.c.
* libproto/imap/mbox.c: Finish the basic implementation.
* imap4d/sync.c: Update calls to mu_imap_format_flags.
* imap4d/util.c: Likewise.
* mu/imap.c: Likewise.
* libmailutils/imapio/sendflg.c (mu_imapio_send_flags): Likewise.
|
|
* include/mailutils/sys/imap.h (_mu_imap_mailbox_init): New proto.
(_mu_imap_message,_mu_imap_mailbox): New structures.
* libproto/imap/mbox.c: New file.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Put back mbox.c
* libproto/imap/fetch.c: Fix body/bodystructure parsing.
* libproto/imap/folder.c (_mu_imap_folder_destroy): Close folder.
(_mu_imap_folder_open): Implement STARTTLS.
(_imap_record): Accept parameters in URL, use _mu_imap_mailbox_init
to initialize mailbox.
|
|
* libmailutils/string/wordsplit.c (alloc_space): Fix reallocation
calculations.
* imap4d/fetch.c (bodystructure): Output number of lines for any
TEXT part, not only TEXT/PLAIN.
* include/mailutils/header.h (MU_HEADER_CONTENT_LOCATION): New define.
* include/mailutils/imap.h (mu_imap_fetch_bodystructure): Implement.
(mu_imap_fetch_envelope): Replace data fields with a single pointer
to struct mu_imapenvelope.
* include/mailutils/message.h: Include datetime.h
(mu_imapenvelope, mu_bodystructure): New structs.
(mu_message_type): New type.
(mu_message_get_imapenvelope,mu_message_imapenvelope_free)
(mu_message_set_imapenvelope)
(mu_bodystructure_free,mu_list_free_bodystructure)
(mu_message_get_bodystructure)
(mu_message_set_bodystructure): New protos.
* include/mailutils/mime.h (mu_mime_param_assoc_create)
(mu_mime_param_assoc_add): New protos.
* include/mailutils/sys/message.h (_mu_message)<_imapenvelope>
<_bodystructure>: New methods.
* libmailutils/mailbox/bodystruct.c: New file.
* libmailutils/mailbox/imapenv.c: New file.
* libmailutils/mailbox/Makefile.am (libmailbox_la_SOURCES): Add new
sources.
* libproto/imap/fetch.c: Implement bodystructure.
* mu/imap.c: Likewise.
* testsuite/bs.c: New file.
* testsuite/Makefile.am (noinst_PROGRAMS): Add bs.
|
|
* libmailutils/list/listlist.c (mu_list_append_list): Do nothing if the
source list is empty.
* include/mailutils/sys/imap.h (_mu_imap_url_init)
(_mu_imaps_url_init): New protos.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Restore url.c
* libproto/imap/mbox.c: Deleted
* libproto/imap/url.c: Rewrite.
* libproto/imap/folder.c: Rewrite from scratch.
* configure.ac: Build libproto/imap/tests/Makefile
* include/mailutils/imap.h (mu_imap_session_state)
(mu_imap_iserror, mu_imap_clearerr)
(mu_imap_login_secret): New protos.
* include/mailutils/sys/imap.h (_mu_imap_list_element_is_nil): New proto.
* libmailutils/mailbox/folder.c (mu_folder_list): Pass
MU_FOLDER_ATTRIBUTE_ALL.
* libproto/imap/fake-folder.c: Remove.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Remove fake-folder.c
Add url.c and folder.c
* libproto/imap/create.c (mu_imap_session_state)
(mu_imap_iserror, mu_imap_clearerr): New functions.
* libproto/imap/delete.c: Check input parameters.
* libproto/imap/fetch.c: Use _mu_imap_list_element_is_nil to check for
empty lists.
* libproto/imap/genlist.c: Likewise.
* libproto/imap/rename.c: Likewise.
* libproto/imap/subscribe.c: Likewise.
* libproto/imap/unsubscribe.c: Likewise.
* libproto/imap/resplist.c: Treat NIL and () equally.
* libproto/imap/login.c (mu_imap_login_secret): New function.
* mu/imap.c: Fix a typo.
|
|
* include/mailutils/imap.h (mu_imap_starttls): New proto.
* include/mailutils/imapio.h: Use mu_imapio_t instead of struct _mu_imapio *.
* include/mailutils/sys/imap.h (MU_IMAP_CLIENT_STARTTLS_RX): New state.
* libmailutils/imapio/transport.c: New file.
* libmailutils/imapio/Makefile.am (libimapio_la_SOURCES): Add transport.c
* libproto/imap/starttls.c: New file.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add starttls.c.
* libproto/imap/capability.c (mu_imap_capability): Bugfix: set up
comparator and reclaim function after successful return from mu_list_map.
* libproto/imap/capatst.c (mu_imap_capability_test): Clear MU_IMAP_RESP
bit.
* libproto/imap/err.c (mu_imap_strerror): Return errstr only if
MU_IMAP_RESP is set.
* mu/imap.c: Implement starttls.
|
|
LSUB is pretty similar to LIST, therefore it is implemented as a
wrapper over the latter.
* include/mailutils/imap.h (mu_imap_genlist,mu_imap_genlist_new)
(mu_imap_lsub,mu_imap_lsub_new): New protos.
* include/mailutils/sys/imap.h (MU_IMAP_CLIENT_LSUB_RX): New state.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add new files.
* libproto/imap/genlist.c: New file.
* libproto/imap/list.c: Rewrite using generalized list functions.
* libproto/imap/lsub.c: New file.
* mu/imap.c: Implement lsub.
|
|
* include/mailutils/imap.h (mu_imap_subscribe)
(mu_imap_unsubscribe): New protos.
* include/mailutils/sys/imap.h (MU_IMAP_CLIENT_SUBSCRIBE_RX)
(MU_IMAP_CLIENT_UNSUBSCRIBE_RX): New states.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add
subscribe.c and unsubscribe.c
* libproto/imap/subscribe.c: New file.
* libproto/imap/unsubscribe.c: New file.
* mu/imap.c: Implement subscribe/unsubscribe.
|
|
* include/mailutils/imapio.h (mu_imapio_send_command)
(mu_imapio_send_command_e,mu_imapio_send_command_v)
(mu_imapio_last_error,mu_imapio_clearerr): New protos.
* include/mailutils/sys/imap.h (imap_command)<uid>: Remove.
<extra>: New member.
* libmailutils/imapio/Makefile.am (libimapio_la_SOURCES): Add new files.
* libmailutils/imapio/qstring.c (mu_imapio_send_qstring_unfold): Improve
functionality.
* libmailutils/imapio/sendcmd.c: New file.
* libmailutils/imapio/sendcmde.c: New file.
* libmailutils/imapio/sendcmdv.c: New file.
* libmailutils/imapio/errstate.c: New file.
* libproto/imap/gencom.c (mu_imap_gencom): Use mu_imapio_send_command_v
* libproto/imap/appstrsiz.c: Quote command arguments as necessary.
* libproto/imap/capability.c: Likewise.
* libproto/imap/check.c: Likewise.
* libproto/imap/close.c: Likewise.
* libproto/imap/copy.c: Likewise.
* libproto/imap/delete.c: Likewise.
* libproto/imap/expunge.c: Likewise.
* libproto/imap/fetch.c: Likewise.
* libproto/imap/list.c: Likewise.
* libproto/imap/login.c: Likewise.
* libproto/imap/mbcreate.c: Likewise.
* libproto/imap/noop.c: Likewise.
* libproto/imap/rename.c: Likewise.
* libproto/imap/select.c: Likewise.
* libproto/imap/store.c: Likewise.
* libproto/imap/unselect.c: Likewise.
|
|
* libmailutils/stdstream/basestr.c (mu_strout): Bugfix: initialize
destroy function.
* include/mailutils/imap.h (imap_command)
(mu_imap_gencom): Move to sys/imap.h
(mu_imap_list,mu_imap_list_new): New protos.
* include/mailutils/sys/imap.h (imap_command): New struct (from ../imap.h).
<handler>: Rename to tagged_handler.
(untagged_handler,untagged_handler_data): New members. All uses changed.
(mu_imap_gencom): New proto.
* libproto/imap/list.c: New file.
* libproto/imap/Makefile.am: Add list.c
* libproto/imap/gencom.c: Use supplied untagged_handler to
analize untagged response.
* mu/imap.c: Implement list command.
|
|
This allows programmers to use them right away, much like their stdio
counterparts. The mu_stdstream_setup and friends can be used to
re-initialize them, should the need be.
* include/mailutils/sys/file_stream.h
(_MU_FILE_STREAM_STATIC_FILENAME): New flag.
(_mu_file_stream_setup): New proto.
* include/mailutils/sys/logstream.h (_mu_log_stream_setup): New proto.
* include/mailutils/sys/stream.h (_MU_STR_EVENT_BOOTSTRAP): New event
code.
(_mu_stream) <destroy>: New method.
* libmailutils/stdstream/basestr.c: Define the three standard streams
statically, use bootstrap event to initialize them.
* libmailutils/stdstream/strerr.c (mu_stdstream_strerr_create): Accept
tag==NULL.
* libmailutils/stream/file_stream.c (fd_done): Do not free filename if
_MU_FILE_STREAM_STATIC_FILENAME is set.
(_mu_file_stream_setup): New function.
* libmailutils/stream/logstream.c (NEXT): Check size before advancing
buffer pointer.
(_mu_log_stream_setup): New function.
* libmailutils/stream/stream.c (_bootstrap_event): New macro.
(mu_stream_destroy): If .destroy is defined, use it instead of free(2).
(mu_stream_open,mu_stream_seek,mu_stream_set_buffer)
(mu_stream_read,mu_stream_readdelim,mu_stream_getdelim)
(mu_stream_write,mu_stream_size,mu_stream_wait)
(mu_stream_truncate,mu_stream_shutdown): Call _bootstrap_event at the
beginning.
* libmailutils/tests/.gitignore: Add strin, strout.
* libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add strin, strout.
(TESTSUITE_AT): Add stdstream tests.
* libmailutils/tests/testsuite.at: Include stdstream tests.
* libmailutils/tests/strerr.at: New test case.
* libmailutils/tests/strin.at: Likewise.
* libmailutils/tests/strout.at: Likewise.
* libmailutils/tests/strin.c: New test program.
* libmailutils/tests/strout.c: Likewise.
|
|
* imap4d/append.c (imap4d_append0): Use
mu_message_from_stream_with_envelope with crafted envelope. The effect is
that the envelope of the message always reflects the actual sender, as
deduced from the header (X-Envelope-Sender, Sender, From, in that order)
and the date given with the APPEND command (or current date/time, if not
given).
* imap4d/tests/append00.at: Reflect changes in the envelope.
* imap4d/tests/append01.at: Likewise.
* imap4d/io.c (io_format_completion_response): Call imap4d_sync to
emit eventual non-tagged responses before the tagged one.
* include/mailutils/envelope.h (mu_envelope_set_destroy): New proto.
* include/mailutils/header.h (MU_HEADER_SENDER): Remove duplicate define.
* include/mailutils/imap.h (mu_imap_mailbox_create)
(mu_imap_append_stream_size,mu_imap_append_stream)
(mu_imap_append_message,mu_imapio_send_flags)
(mu_imapio_send_time): New protos.
* include/mailutils/imapio.h (mu_imapio_send_literal): Remove proto.
(mu_imapio_send_literal_string)
(mu_imapio_send_literal_stream): New protos.
* include/mailutils/message.h
(mu_message_from_stream_with_envelope): New proto.
* include/mailutils/sys/imap.h (MU_IMAP_CLIENT_APPEND_RX): New state.
* include/mailutils/sys/message_stream.h (_mu_message_stream)
<envelope>: Rename to envelope_string.
<construct_envelope>: New member.
* libmailutils/imapio/literal.c: Remove.
* libmailutils/imapio/litstream.c: New file.
* libmailutils/imapio/litstring.c: New file.
* libmailutils/imapio/time.c: New file.
* libmailutils/imapio/Makefile.am: Add new files.
* libmailutils/imapio/flags.c (mu_imapio_send_flags): New function.
* libmailutils/imapio/qstring.c (mu_imapio_send_qstring_unfold): Use
mu_imapio_send_literal_string.
* libmailutils/mailbox/envelope.c (mu_envelope_set_destroy): New
function.
* libmailutils/stream/message_stream.c
(mu_message_from_stream_with_envelope): New function.
(mu_stream_to_message): Rewrite as an alternative entry point to the
above.
* libproto/imap/Makefile.am: Add new files.
* libproto/imap/appmsg.c: New file.
* libproto/imap/appstr.c: New file.
* libproto/imap/appstrsiz.c: New file.
* libproto/imap/mbcreate.c: New file.
* mu/imap.c: Implement create and append.
|
|
and UNSELECT.
* include/mailutils/imap.h (imap_command): New struct.
(mu_imap_gencom): New function.
(mu_imap_store,mu_imap_delete)
(mu_imap_rename,mu_imap_mailbox_close,mu_imap_close)
(mu_imap_check): New functions.
(_mu_close_handler): New function.
* include/mailutils/sys/imap.h (mu_imap_client_state): Add new states.
* libproto/imap/gencom.c: New file.
* libproto/imap/close.c: New file.
* libproto/imap/delete.c: New file.
* libproto/imap/rename.c: New file.
* libproto/imap/store.c: New file.
* libproto/imap/unselect.c: New file.
* libproto/imap/check.c: New file.
* libproto/imap/expunge.c: New file.
* libproto/imap/copy.c: New file.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add new files.
* mu/imap.c: Implement new commands.
* mu/shell.c (execute_line): Treat backslash as escape only before
another backslash or double-quote.
|
|
* include/mailutils/imap.h (mu_imap_state): Rename to struct
mu_imap_session_state, prefix all values with MU_IMAP_STATE_.
All uses updated.
* include/mailutils/sys/imap.h (mu_imap_client_state): Prefix all
values with MU_IMAP_CLIENT. Rename MU_IMAP_NO_STATE to MU_IMAP_READY.
All uses updated.
(_mu_imap)<state>: Rename to client_state, fix data type.
(imap_state): Rename to imap_state. All uses updated.
(MU_IMAP_CHECK_EAGAIN): Reset state to MU_IMAP_CLIENT_READY if
MU_ERR_REPLY or MU_ERR_BADREPLY is reported.
* include/mailutils/sys/pop3.h (MU_POP3_CHECK_EAGAIN): Reset state
to MU_POP3_NO_STATE, if MU_ERR_REPLY or MU_ERR_BADREPLY is reported.
* libproto/imap/fetch.c (_date_mapper): Avoid overwriting resp->type.
* libproto/imap/select.c (_mu_imap_collect_flags): Initialize *res
prior to collecting flags into it.
* mu/imap.c: Install a FETCH callback.
|
|
* include/mailutils/imap.h (mu_imap_fetch): New proto.
(MU_IMAP_CB_FETCH): New callback code.
(MU_IMAP_FETCH_BODY,MU_IMAP_FETCH_BODYSTRUCTURE)
(MU_IMAP_FETCH_ENVELOPE,MU_IMAP_FETCH_FLAGS)
(MU_IMAP_FETCH_INTERNALDATE,MU_IMAP_FETCH_RFC822_SIZE)
(MU_IMAP_FETCH_UID): New constants.
(mu_imap_fetch_body,mu_imap_fetch_bodystructure)
(mu_imap_fetch_envelope,mu_imap_fetch_flags)
(mu_imap_fetch_internaldate,mu_imap_fetch_rfc822_size)
(mu_imap_fetch_uid,mu_imap_fetch_response): New structures.
* include/mailutils/sys/imap.h (MU_IMAP_SET_XSCRIPT_MASK)
(MU_IMAP_CLR_XSCRIPT_MASK): New macros.
(mu_imap_client_state)<MU_IMAP_FETCH_RX>: New state.
(_mu_imap_list_nth_element_is_string): New proto.
* libproto/imap/fetch.c: New file.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add fetch.c
* libproto/imap/carrier.c (mu_imap_set_carrier): Update call to
mu_imapio_create.
* libproto/imap/resplist.c (_mu_imap_list_nth_element_is_string): New
function.
* libproto/imap/resproc.c (_process_unsolicited_response): Handle FETCH
response.
* libproto/imap/trace.c (mu_imap_trace_mask): Call mu_imapio_trace_payload
if needed.
* mu/imap.c (imap_bad_callback): New function.
(com_disconnect): Register imap_bad_callback.
(com_fetch): New function.
(imap_comtab): Add the "fetch" command.
* mu/mu.h (mutool_command) <flags>: New member.
* mu/pop.c (pop_comtab): Update initializers.
* mu/shell.c (default_comtab): Update initializers.
(execute_line): Rewrite using incremental wordsplit. This allows for
optionally coalescing arguments with indices >= argmax into one argument.
This is useful for such commands as "prompt" and "fetch".
|
|
* include/mailutils/imapio.h (mu_imapio_create): Change signature. All
uses updated.
(mu_imapio_trace_payload,mu_imapio_get_trace_payload): New protos.
* include/mailutils/sys/imapio.h (_mu_imapio) <_imap_server>
<_imap_trace_payload>: New bits.
* libmailutils/imapio/create.c (mu_imapio_create): Take three arguments,
the third one specifying whether the imapio object is intended for server
or client.
* libmailutils/imapio/getline.c (initial_parse): In server mode, parse
everything at once.
Handle continuation responses in client mode.
(mu_imapio_getline): Toggle MU_XSCRIPT_PAYLOAD only if requested.
* libmailutils/imapio/literal.c: Wait for continuation response (in
client mode).
* libmailutils/imapio/trace.c (mu_imapio_trace_payload)
(mu_imapio_get_trace_payload): New functions.
* libmailutils/tests/imapio.c: New option -server.
* libmailutils/tests/imapio.at: Update literal tests.
|
|
* include/mailutils/imap.h (mu_imap_noop): New proto.
* include/mailutils/sys/imap.h (mu_imap_client_state)
<MU_IMAP_NOOP_RX>: New state.
* libproto/imap/noop.c: New file.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add noop.c
* mu/imap.c (report_failure): New function.
(com_login,select_mbox,com_status): Use report_failure for
error reporting.
(com_noop): New function.
(imap_comtab)<noop>: New command.
|
|
* include/mailutils/imap.h (mu_imap_response_action_t): Move to
sys/imap.h
(mu_imap_foreach_response): Remove.
* include/mailutils/sys/imap.h (_mu_imap)<untagged_resp>: Remove.
All sources updated.
(_mu_imap_response): Change sigature.
(_mu_imap_untagged_response_clear)
(_mu_imap_untagged_response_add): Remove.
(_mu_imap_untagged_response_to_list)
(_mu_imap_process_untagged_response): New protos.
* libproto/imap/connect.c: Use _mu_imap_untagged_response_to_list
and _mu_imap_process_untagged_response.
* libproto/imap/create.c: Update.
* libproto/imap/destroy.c: Update.
* libproto/imap/disconnect.c: Update.
* libproto/imap/capability.c: Update calls to _mu_imap_response
* libproto/imap/id.c: Likewise.
* libproto/imap/login.c: Likewise.
* libproto/imap/logout.c: Likewise.
* libproto/imap/select.c: Likewise.
* libproto/imap/status.c: Likewise.
* libproto/imap/resplist.c (_mu_imap_untagged_response_clear): Remove.
(_mu_imap_untagged_response_add): Remove.
(_mu_imap_untagged_response_to_list): New function.
* libproto/imap/response.c (_mu_imap_response): Take response-processing
function and its closure as arguments.
* libproto/imap/resproc.c (_mu_imap_process_untagged_response): New
function.
(mu_imap_foreach_response): Remove.
* mu/imap.c: Install a BYE callback.
|
|
* include/mailutils/imap.h (MU_IMAP_CB_NO)
(MU_IMAP_CB_BAD,MU_IMAP_CB_BYE)
(MU_IMAP_CB_PREAUTH): New callbacks.
(mu_imap_callback_t): Change signature.
(mu_imap_callback): Change signature.
* include/mailutils/sys/imap.h (mu_imap_client_state)
<MU_IMAP_CLOSING>: New state.
* libproto/imap/callback.c (mu_imap_callback): Change signature.
Fix boundary check.
(mu_imap_register_callback_function): Fix boundary check.
* libproto/imap/connect.c (mu_imap_connect): Use mu_imap_foreach_response
to parse response.
* libproto/imap/response.c (_mu_imap_response): Check number of words
before dereferencing them.
* libproto/imap/resproc.c: Handle all server responses.
* mu/imap.c (com_connect): Set POPAUTH callback.
Set verbosity flags after I/O structure has been created.
|
|
* include/mailutils/sys/imap.h (_mu_imap_seterrstrz): New proto.
* libmailutils/imapio/replstr.c: Update.
* libproto/imap/err.c (_mu_imap_seterrstrz): New function.
* libproto/imap/id.c: Remove superfluous calls to _mu_imap_seterrstr.
* libproto/imap/login.c: Likewise.
* libproto/imap/select.c: Likewise.
* libproto/imap/status.c: Likewise.
* libproto/imap/response.c: Set human-readable text as errstr.
* libproto/imap/resproc.c (ok_response): Reflect changes to
mu_imapio_getline.
|
|
* include/mailutils/imap.h (mu_imap_response_action_t): New typedef.
(mu_imap_foreach_response): New proto.
(MU_IMAP_CB_PERMANENT_FLAGS,MU_IMAP_CB_MESSAGE_COUNT)
(MU_IMAP_CB_RECENT_COUNT,MU_IMAP_CB_FIRST_UNSEEN)
(MU_IMAP_CB_UIDNEXT,MU_IMAP_CB_UIDVALIDITY)
(MU_IMAP_CB_OK,_MU_IMAP_CB_MAX): New constants.
(mu_imap_callback_t): New typedef.
(mu_imap_callback,mu_imap_register_callback_function): New protos.
(MU_IMAP_RESPONSE_ALERT,MU_IMAP_RESPONSE_BADCHARSET)
(MU_IMAP_RESPONSE_CAPABILITY,MU_IMAP_RESPONSE_PARSE)
(MU_IMAP_RESPONSE_PERMANENTFLAGS,MU_IMAP_RESPONSE_READ_ONLY)
(MU_IMAP_RESPONSE_READ_WRITE,MU_IMAP_RESPONSE_TRYCREATE)
(MU_IMAP_RESPONSE_UIDNEXT,MU_IMAP_RESPONSE_UIDVALIDITY)
(MU_IMAP_RESPONSE_UNSEEN): New constants.
(mu_imap_response_codes): New extern.
* include/mailutils/sys/imap.h (_mu_imap) <callback>: New member.
(_mu_imap_collect_flags, _mu_imap_list_at): New protos.
* libproto/imap/resplist.c (_mu_imap_list_at): New function.
* libproto/imap/callback.c: New file.
* libproto/imap/resproc.c: New file.
* libproto/imap/Makefile.am: Add new files.
* libproto/imap/capability.c: Rewrite using mu_imap_foreach_response.
* libproto/imap/id.c: Likewise.
* libproto/imap/select.c: Likewise.
|
|
* include/mailutils/imap.h (mu_imap_status): New proto.
(_mu_imap_status_name_table): New declaration.
* include/mailutils/sys/imap.h (mu_imap_client_state)
<MU_IMAP_STATUS_RX>: New state.
* libproto/imap/status.c: New file.
* libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add status.c
* mu/imap.c: Implement "status"
|
|
* include/mailutils/imap.h (mu_imap_stat): New structs.
(MU_IMAP_STAT_DEFINED_FLAGS,MU_IMAP_STAT_PERMANENT_FLAGS)
(MU_IMAP_STAT_MESSAGE_COUNT,MU_IMAP_STAT_RECENT_COUNT)
(MU_IMAP_STAT_FIRST_UNSEEN,MU_IMAP_STAT_UIDNEXT)
(MU_IMAP_STAT_UIDVALIDITY): New flags.
(mu_imap_select): New proto.
* include/mailutils/imapio.h (mu_imap_flag_to_attribute)
(mu_imap_format_flags): New protos.
* include/mailutils/sys/imap.h (mu_imap_client_state)
<MU_IMAP_SELECT_RX>: New state.
(_mu_imap) <mbox_name,mbox_writable,mbox_stat>: New members.
* libmailutils/imapio/flags.c: New file.
* libmailutils/imapio/Makefile.am: Add flags.c
* libproto/imap/select.c: New file.
* libproto/imap/Makefile.am: Add select.c
* libproto/imap/err.c (_mu_imap_seterrstr)
(_mu_imap_clrerrstr, mu_imap_strerror): Allow for imap==NULL.
* libproto/imap/id.c (mu_imap_id): Set errstr on MU_ERR_BADREPLY
* libproto/imap/login.c (mu_imap_login): Likewise.
* libproto/imap/resplist.c (_mu_imap_list_element_is_string): New function.
* mu/imap.c: Implement examine and select.
|
|
* configure.ac: Build libmailutils/list/Makefile
* include/mailutils/sys/list.h (DESTROY_ITEM): New define.
(_mu_list_insert_item): New proto.
* libmailutils/Makefile.am (SUBDIRS): Add list.
(libmailutils_la_LIBADD): Add list/liblist.la
* libmailutils/base/Makefile.am (libbase_la_SOURCES): Remove list sources.
* libmailutils/base/list.c: Split into smaller files (see below).
* libmailutils/base/listlist.c: Move to libmailutils/list/listlist.c
* libmailutils/list/Makefile.am: New file.
* libmailutils/list/append.c: New file.
* libmailutils/list/array.c: New file.
* libmailutils/list/clear.c: New file.
* libmailutils/list/count.c: New file.
* libmailutils/list/create.c: New file.
* libmailutils/list/destroy.c: New file.
* libmailutils/list/do.c: New file.
* libmailutils/list/empty.c: New file.
* libmailutils/list/get.c: New file.
* libmailutils/list/getcomp.c: New file.
* libmailutils/list/insert.c: New file.
* libmailutils/list/intersect.c: New file.
* libmailutils/list/iterator.c: New file.
* libmailutils/list/locate.c: New file.
* libmailutils/list/prepend.c: New file.
* libmailutils/list/remove.c: New file.
* libmailutils/list/replace.c: New file.
* libmailutils/list/setcomp.c: New file.
* libmailutils/list/setdestr.c: New file.
|
|
|
|
* include/mailutils/imapio.h: New file.
* include/mailutils/sys/imapio.h: New file.
* libmailutils/imapio/create.c: New file.
* libmailutils/imapio/getline.c: New file.
* libmailutils/imapio/literal.c: New file.
* libmailutils/imapio/printf.c: New file.
* libmailutils/imapio/qstring.c: New file.
* libmailutils/imapio/send.c: New file.
* libmailutils/imapio/trace.c: New file.
* libmailutils/imapio/words.c: New file.
* libmailutils/imapio/xscript.c: New file.
* configure.ac: Build libmailutils/imapio/Makefile
* include/mailutils/Makefile.am (pkginclude_HEADERS): Add imapio.h.
* include/mailutils/imapio.h: New file.
* include/mailutils/sys/Makefile.am (sysinclude_HEADERS): Add imapio.h.
* include/mailutils/sys/imapio.h: New file.
* include/mailutils/types.hin (mu_imapio_t): New data type.
* libmailutils/Makefile.am (SUBDIRS): Add imapio.
* libmailutils/tests/Makefile.am: Build imapio
* libmailutils/tests/imapio.c: New source.
* libmailutils/tests/wsp.c: Handle escape argument
|
|
* include/mailutils/sys/tls-stream.h (_mu_tls_stream_s): Remove.
* libmailutils/diag/errors (MU_ERR_BAD_RESUMPTION): Remove. Use EAGAIN
instead.
(MU_ERR_DISABLED): New error code.
* libmu_auth/tls.c (_tls_server_open): Return MU_ERR_DISABLED
when needed.
(_mu_tls_stream_create): Implement error_string method.
* libproto/maildir/mbox.c (maildir_msg_init): Fix return value.
|
|
* lib/mu_dbm.c: Remove.
* lib/mu_dbm.h: Remove.
* lib/Makefile.am: Remove mu_dbm.[ch].
* include/mailutils/sys/dbm.h: New file.
* include/mailutils/sys/Makefile.am: Add dbm.h
* include/mailutils/dbm.h: New file.
* include/mailutils/Makefile.am (pkginclude_HEADERS): Add dbm.h.
* include/mailutils/types.hin (mu_dbm_file_t): New data type.
* libmu_dbm/Makefile.am: New file.
* libmu_dbm/berkeley.c: New file.
* libmu_dbm/close.c: New file.
* libmu_dbm/create.c: New file.
* libmu_dbm/datumfree.c: New file.
* libmu_dbm/dbm.c: New file.
* libmu_dbm/delete.c: New file.
* libmu_dbm/destroy.c: New file.
* libmu_dbm/errstr.c: New file.
* libmu_dbm/fetch.c: New file.
* libmu_dbm/firstkey.c: New file.
* libmu_dbm/gdbm.c: New file.
* libmu_dbm/mudbm.h: New file.
* libmu_dbm/ndbm.c: New file.
* libmu_dbm/nextkey.c: New file.
* libmu_dbm/open.c: New file.
* libmu_dbm/safety.c: New file.
* libmu_dbm/store.c: New file.
* Makefile.am [MU_COND_DBM]: Define LIBMU_DBM_DIR
(SUBDIRS): Add $(LIBMU_DBM_DIR)
* configure.ac: Revamp DBM support: several database types can
be specified at once.
(AC_CONFIG_FILES): Build libmu_dbm/Makefile
* libmu_sieve/extensions/vacation.c: Remove inclusion of mu_dbm.h.
* maidag/Makefile.am (maidag_LDADD): Add DBM libraries.
* maidag/maidag.c: ENABLE_DBM instead of USE_DBM
* maidag/maidag.h: Include <mailutils/dbm.h> instead of mu_dbm.h.
* maidag/mailquota.c (dbm_retrieve_quota): Rewrite using libmu_dbm
library calls.
* mu/Makefile.am [MU_COND_DBM]: Define DBM_C.
(MODULES): Add $(DBM_C).
(AM_CPPFLAGS): Define DBMLIBS.
* mu/ldflags.c (NEEDAUTH): Change definition.
(lib_descr) <weight>: New member. All uses changed.
(add_entry): Null arguments ignored.
(mutool_ldflags): Rewrite traversal of lib_descr.
* mu/dbm.c: New file.
* pop3d/Makefile.am (pop3d_LDADD, popauth_LDADD): Add DBM libraries.
* pop3d/apop.c: Rewrite using libmu_dbm library calls.
* pop3d/bulletin.c: Likewise.
* pop3d/logindelay.c: Likewise.
* pop3d/pop3d.c: Change USE_DBM to ENABLE_DBM.
* pop3d/pop3d.h: Include mailutils/dbm.h instead of mu_dbm.h
* pop3d/popauth.c: Rewrite using libmu_dbm library calls.
* include/mailutils/cctype.h (MU_CTYPE_ENDLN): New character class.
(mu_isendln): New macro.
* libmailutils/string/muctype.c (mu_c_tab): Mark \r and \n as
MU_CTYPE_ENDLN.
|