1. 13 Jan, 2012 1 commit
  2. 11 Jan, 2012 1 commit
    • * libmailutils/mailer/mailer.c (mu_mailer_send_fragments): Fix
      3rd argument to _set_to.
      * libproto/mailer/smtp.c (smtp_send_message): SIZE capability
      can appear alone, without specifying maximum size.
      * mh/mh_whom.c (mh_alias_expand): Recreate domain part for addresses
      missing it.
      Sergey Poznyakoff authored
  3. 07 Jan, 2012 1 commit
  4. 05 Jan, 2012 2 commits
  5. 31 Dec, 2011 1 commit
    • * 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
      Sergey Poznyakoff authored
  6. 30 Dec, 2011 3 commits
    • * examples/mta.c: Handle -bD option. Detach from the controlling
      terminal if -bd is given. Print pid and port number in this case.
      * testsuite/smtpsend.c: Fix handling of the trace= option.
      * testsuite/Makefile.am: Add new tests.
      * testsuite/smtp-msg.at: New test case.
      * testsuite/smtp-str.at: New test case.
      * testsuite/testsuite.at: Include new test cases.
      Sergey Poznyakoff authored
    • Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
  7. 28 Dec, 2011 1 commit
    • * imap4d/copy.c (copy_env) <src>: Remove. Not needed now.
      (size_sum,do_copy): Change to a mu_msgset_message_action_t.
      (try_copy,safe_copy): Change signature; use mu_msgset_foreach_message.
      * imap4d/fetch.c (_fetch_from_message): Change to a
      mu_msgset_message_action_t.
      (imap4d_fetch0): Use mu_msgset_foreach_message.
      * imap4d/imap4d.h (imap4d_message_action_t): Remove typedef.
      (util_foreach_message): Remove. Use mu_msgset_foreach_message.
      * imap4d/store.c (_do_store): Change to a mu_msgset_message_action_t.
      (imap4d_store0): Use mu_msgset_foreach_message.
      * imap4d/util.c (util_foreach_message): Remove.
      * include/mailutils/list.h (mu_list_foreach_dir): New proto.
      * include/mailutils/msgset.h (mu_msgset_msgno_action_t)
      (mu_msgset_message_action_t): New typedefs.
      (mu_msgset_negate,mu_msgset_foreach_dir_msgno)
      (mu_msgset_foreach_msgno,mu_msgset_foreach_dir_message)
      (mu_msgset_foreach_message): New protos.
      * libmailutils/list/foreachdir.c: New file.
      * libmailutils/list/Makefile.am (liblist_la_SOURCES): Add foreachdir.c.
      * libmailutils/list/head.c (mu_list_head): Fix conditional.
      * libmailutils/list/tail.c (mu_list_tail): Likewise.
      * libmailutils/msgset/foreachmsg.c: New file.
      * libmailutils/msgset/foreachnum.c: New file.
      * libmailutils/msgset/negate.c: New file.
      * libmailutils/msgset/Makefile.am (libmsgset_la_SOURCES): Add
      new files.
      * libmailutils/msgset/getitr.c (mu_msgset_get_iterator): Call
      mu_msgset_aggregate before doing anything.
      * libmailutils/msgset/getlist.c (mu_msgset_get_list): Likewise.
      * libmailutils/msgset/locate.c (mu_msgset_locate): Likewise.
      * libmailutils/msgset/parse.c (parse_msgrange): Remove duplicated
      code.
      * testsuite/msgset.c: Implement -neg option.
      Sergey Poznyakoff authored
  8. 27 Dec, 2011 1 commit
  9. 26 Dec, 2011 4 commits
    • * imap4d/util.c (util_parse_msgset): Remove. Use mu_msgset_parse_imap.
      All uses changed.
      (util_foreach_message): Change first argument to mu_msgset_t.
      All uses changed.
      * imap4d/imap4d.h: Likewise.
      
      * imap4d/copy.c: Use mu_msgset_t
      * imap4d/fetch.c: Likewise.
      * imap4d/search.c: Likewise.
      * imap4d/store.c: Likewise.
      Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
    • * libmailutils/mailbox/mailbox.c (_MBOX_CHECK_FLAGS): Fix return code.
      Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
  10. 25 Dec, 2011 1 commit
    • * libproto/imap/mbox.c: Add some debugging messages.
      (_imap_mbx_gensync): New function shared among _imap_mbx_sync and
      _imap_mbx_expunge. It aggregates message numbers with same flags
      to separate message sets, thereby reducing the number of STORE
      commands sent to the server.
      Sergey Poznyakoff authored
  11. 23 Dec, 2011 4 commits
    • * include/mailutils/imap.h (MU_IMAP_RESPONSE_UNKNOWN)
      (MU_IMAP_RESPONSE_TAGGED): New defines.
      * libproto/imap/mbox.c (_imap_mbx_open): Fix callback ID.
      * libproto/imap/response.c (_mu_imap_response): Call MU_IMAP_CB_BAD
      callback on tagged BAD responses as well.
      * libproto/imap/storeflg.c (mu_imap_store_flags): Insert space after
      item name.
      Sergey Poznyakoff authored
    • Wojciech Polak authored
    • 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.
      Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
  12. 22 Dec, 2011 3 commits
    • * libproto/imap/fetch.c (_fetch_fold): Fix parsing of BODY[].
      (_mu_imap_parse_fetch_response): Fix return value.
      Sergey Poznyakoff authored
    • * mu/imap.c (com_copy): New function.
      (print_list_item): Treat 0 separator as '/' to avoid preliminary
      truncating the output.
      Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
  13. 21 Dec, 2011 2 commits
    • Old API relied on passing a pointer to the buffer string and its size,
      which is defective.  The new API, in addtion to that, provides functions
      for obtaining a pointer to the statically allocated original value, a
      pointer to dynamically allocated copy, and a function for formatting the
      address directly to a MU stream.
      
      Two functions are marked as deprecated: mu_address_to_string and
      mu_address_format_string.  Both assume a pointer to an allocated string
      of a fixed size, which is far from being convenient nor reliable enough.
      
      * include/mailutils/address.h (MU_ADDR_HINT_ADDR): Rename to
      MU_ADDR_HINT_PRINTABLE
      (mu_address)<addr>: Rename to printable.
      (mu_address_sget_printable,mu_address_aget_printable)
      (mu_address_get_printable): New protos.
      (mu_stream_format_address): New proto.
      (mu_address_to_string)
      (mu_address_format_string): Mark as deprecated.
      (mu_validate_email): New proto.
      * examples/mta.c: Use mu_address_sget_printable instead
      of (mu_address_to_string)
      * libmailutils/address/addrstream.c: New file.
      * libmailutils/address/Makefile.am (libaddress_la_SOURCES): Add
      addrstream.c
      * libmailutils/address/address.c (mu_address_format_string): Rewrite using
      streams.
      (mu_address_to_string): Rewrite as a wrapper over
      mu_address_get_printable.
      (mu_address_sget_printable,mu_address_aget_printable)
      (mu_address_get_printable): New functions.
      * libmailutils/mime/mimehdr.c (_mime_header_parse): Initialize rc.
      * mail/util.c (util_merge_addresses): Use mu_address_aget_printable.
      * mh/mh.h (mh_annotate): Both string args are const.
      * mh/mh_init.c (mh_annotate): Likewise.
      * mh/mh_format.c (builtin_formataddr): Use mu_address_sget_printable.
      * mh/mh_whatnow.c (anno_data)<field,value>: Both are consts.
      (annotate): Use mu_address_sget_printable.
      * mh/send.c (set_address_header): Use mu_address_sget_printable.
      * mu/imap.c (format_email): Use mu_stream_format_address.
      * python/libmu_py/address.c (api_address_to_string): Likewise.
      Sergey Poznyakoff authored
    • This case requires full recursion.
      
      * imap4d/fetch.c (bodystructure): Call fetch_bodystructure0.
      Sergey Poznyakoff authored
  14. 20 Dec, 2011 2 commits
    • Sergey Poznyakoff authored
    • The new implementation is able to return all parameters at once,
      in an associative array. A subset of parameters can be requested.
      The data are automatically converted to the output charset.
      
      In addition, RFC-2047 parser is extended to support language
      specifications (RFC-2231, chapter 5).
      
      * include/mailutils/message.h (MU_MIMEHDR_CSINFO)
      (MU_MIMEHDR_MULTILINE): Remove, not public anymore.
      (mu_mimehdr_get_param,mu_mimehdr_aget_param)
      (mu_message_aget_attachment_name)
      (mu_message_get_attachment_name): Remove pflags agrument.
      * include/mailutils/mime.h (mu_mime_param): New struct.
      (mu_rfc2047_decode_param)
      (mu_mime_header_parse,mu_mime_header_parse_subset): New proto.
      * libmailutils/base/rfc2047.c (_rfc2047_decode_param): New
      auxiliary function.  Use memory stream to collect data.
      (mu_rfc2047_decode): Rewrite as a wrapper around the above.
      (mu_rfc2047_decode_param): New function.
      * libmailutils/filter/decode.c (mu_decode_filter_args): Pass actual
      (instead of maximal) number of arguments to mu_filter_chain_create.
      * libmailutils/mime/mimehdr.c: Rewrite from scratch.
      * libmailutils/tests/.gitignore: Add mimehdr.
      * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add mimehdr.
      (TESTSUITE_AT): Add mimehdr.at.
      * libmailutils/tests/mimehdr.at: New test.
      * libmailutils/tests/mimehdr.c: New test program.
      * libmailutils/tests/testsuite.at: Include.
      Sergey Poznyakoff authored
  15. 16 Dec, 2011 7 commits
    • * include/mailutils/util.h (MU_HIERARCHY_DELIMITER): New define.
      (mu_tilde_expansion): Change signature.  Delimiter is an int.
      * libmailutils/base/tilde.c: Likewise. All uses update.
      
      * imap4d/namespace.c (namespace_checkfullpath)
      (namespace_getfullpath): Remove delim argument. All uses updated.
      * imap4d/util.c (util_getfullpath): Remove delim argument. All uses updated.
      Sergey Poznyakoff authored
    • * imap4d/imap4d.h: Include mailutils/imaputil.h
      * imap4d/list.c: Use mu_folder_imap_match/mu_imap_wildmatch.
      * imap4d/lsub.c: Likewise.
      * imap4d/util.c (util_wcard_match): Move as to libmailutils
      as mu_imap_wildmatch.
      * include/mailutils/imaputil.h: New file.
      * include/mailutils/Makefile.am (pkginclude_HEADERS): Add imaputil.h
      * include/mailutils/folder.h (mu_folder_imap_match)
      (mu_folder_glob_match): New protos.
      * include/mailutils/imapio.h (mu_imap_flag_to_attribute)
      (mu_imap_format_flags): Move to imaputil.h
      * libmailutils/imapio/wildmatch.c: New file.
      * libmailutils/imapio/sendflg.c: New file.
      * libmailutils/imapio/Makefile.am (libimapio_la_SOURCES): Add
      sendflg.c and wildmatch.c.
      * libmailutils/imapio/flags.c (mu_imapio_send_flags): Move to
      sendflg.c
      * libmailutils/mailbox/folder.c (mu_folder_match): Rename to
      mu_folder_glob_match.
      (mu_folder_imap_match): New function.
      (mu_folder_create_from_record): Use mu_folder_imap_match as the default
      matcher.
      * libmailutils/tests/fsfolder.c: Start command line options with a dash.
      New option "-glob".  All uses changed.
      * libproto/imap/select.c: Include imaputil.h
      * mu/imap.c: Likewise.
      Sergey Poznyakoff authored
    • * python/Makefile.am (EXTRA_DIST): Add usercustomize.py
      * python/usercustomize.py: New file.
      * python/libmu_py/Makefile.am (pythonexec_LTLIBRARIES): Remove.
      * python/mailutils/Makefile.am (pythonexec_LTLIBRARIES): New
      variable (moved from ../libmu_py/Makefile.am)
      * python/libmu_py/c_api.c: Move ...
      * python/mailutils/c_api.c: ... there
      Sergey Poznyakoff authored
    • * testsuite/Makefile.am: Add new test cases.
      * testsuite/testsuite.at: Inclide fldel.at, add banners.
      * testsuite/atlocal.in: Define MH_SUPPORT and MAILDIR_SUPPORT
      variables depending on whether the corresponding mailbox format
      is enabled.
      * testsuite/fldel.at: New test case.
      * testsuite/mbdel.at: Skip tests which rely on disabled mailbox
      formats.
      Sergey Poznyakoff authored
    • * include/mailutils/folder.h (_mu_fsfolder_init): New proto.
      * include/mailutils/mailbox.h (mu_mailbox_create_at): New proto.
      * libmailutils/mailbox/mailbox.c (mu_mailbox_create_at): New function.
      * libmailutils/mailbox/Makefile.am (libmailbox_la_SOURCES): Add fsfolder.c
      * libmailutils/mailbox/folder.c (mu_folder_delete): If folder does
      not provide its own method for deletion, use mu_mailbox_remove.
      (mu_folder_open, mu_folder_close, mu_folder_enumerate)
      (mu_folder_lsub, mu_folder_subscribe, mu_folder_unsubscribe)
      (mu_folder_rename): Return EINVAL if folder is NULL.
      (mu_folder_match): Bugfix: don't pass folder flags to fnmatch.
      * libmailutils/mailbox/fsfolder.c: New file. Implementation of
      file-system based folders.
      * libmailutils/mailbox/mailbox (_create_mailbox0): Propagate error
      return from mu_registrar_lookup_url.
      * libmailutils/tests/fsfolder00.at: New test case.
      * libmailutils/tests/fsfolder01.at: New test case.
      * libmailutils/tests/fsfolder02.at: New test case.
      * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add fsfolder.
      (TESTSUITE_AT): Add fsfolder tests.
      * libmailutils/tests/testsuite.at: Include fsfolder tests.
      
      * libproto/mbox/folder.c: Use fsfolder.
      (_mh_is_scheme): Check file even if scheme matches.
      * libproto/maildir/folder.c: Likewise.
      (_maildir_is_scheme): Check file even if scheme matches.
      * libproto/mh/folder.c: Likewise.
      
      * testsuite/fldel.c: New file.
      * testsuite/Makefile.am (noinst_PROGRAMS): Buld fldel.
      Sergey Poznyakoff authored
    • * include/mailutils/imap.h (mu_imap_session_state): Remove.
      (mu_imap_state): Rename to mu_imap_session_state.
      (mu_imap_state_str): Rename to mu_imap_session_state_str.
      * libproto/imap/create.c (mu_imap_session_state)
      (mu_imap_iserror,mu_imap_clearerr): Move to state.c
      * mu/imap.c: Update accordingly.
      Sergey Poznyakoff authored
  16. 15 Dec, 2011 1 commit
    • * 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.
      Sergey Poznyakoff authored
  17. 14 Dec, 2011 5 commits
    • Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
    • 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.
      Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored