1. 28 Dec, 2010 1 commit
    • * include/mailutils/sys/amd.h (_amd_message_append, amd_sort): New protos.
      * libmailutils/base/amd.c (amd_array_expand): Call memmove only if there is
      actually something to move.
      (_amd_message_append, amd_sort): New functions.
      * libproto/maildir/mbox.c (maildir_scan_dir): Append new messages to the
      end of the array, and sort it afterwards. This avoids unnecessary memory
      moves, which improves performance considerably, especially on large
      mailboxes.
      * libproto/mh/mbox.c (mh_scan0): Likewise.
      Sergey Poznyakoff authored
  2. 23 Nov, 2010 1 commit
    • * include/mailutils/sys/amd.h (_amd_data) <delete_msg>: New method.
      * libmailutils/base/amd.c (amd_expunge): If delete_msg is defined,
      use it.
      * libproto/mh/mbox.c (_mh_msg_delete): New method.
      (_mailbox_mh_init): Set delete_msg if "rmmproc" component is
      defined.
      
      * mh/tests/movemsg: New file.
      * mh/tests/Makefile.am (EXTRA_DIST): Add movemsg.
      * mh/tests/rmm.at: Test rmmproc effects.
      * mh/tests/rmf.at (MH_KEYWORDS): Fix copy-n-paste error.
      
      * doc/texinfo/mu-mh.texi: Document rmmproc.
      * mh/TODO: Update.
      Sergey Poznyakoff authored
  3. 22 Nov, 2010 1 commit
    • * include/mailutils/mailbox.h (MU_MAILBOX_UID_TO_MSGNO)
      (MU_MAILBOX_MSGNO_TO_UID): New defines.
      (mu_mailbox_translate): New proto.
      * include/mailutils/sys/mailbox.h (_mu_mailbox) <_translate>: New
      method.
      * libmailutils/mailbox/mailbox.c (mu_mailbox_translate): New
      function.
      * libproto/mh/mbox.c (mh_translate): New function.  Implements
      the _translate method.
      * mh/mh_msgset.c (mh_uid_to_msgno, mh_msgno_to_uid): Remove.  All
      callers updated to use mu_mailbox_translate instead.
      (mh_search_message): Remove.
      (mh_get_message): Rewrite using mu_mailbox_translate.
      
      * mh/comp.c (copy_message): Check return from mu_mailbox_get_message.
      * mh/mh_init.c (mh_draft_message): Rewrite using mu_url_sget_path.
      * mh/tests/comp.at: Test draftfolder functionality.
      Sergey Poznyakoff authored
  4. 20 Nov, 2010 1 commit
    • * libmailutils/mailbox/header.c (mu_header_clear): New function.
      (mu_header_sget_value_n): Tolerate pval == NULL.
      * libmailutils/property/assocprop.c (_assoc_prop_setval): Bugfix.
      (_assoc_prop_clear): New method.
      (mu_assoc_property_init): Reference the stream.
      (mu_assoc_property_init): Initialize _prop_clear.
      * libmailutils/property/create.c (_mu_property_init): Now extern.
      * libmailutils/property/propset.c (mu_property_set_value): Null value
      means unset.
      * libmailutils/tests/prop.at: Test property clear and invalidate.
      * libmailutils/tests/prop.c: New commands: 0 for property clear and ! for
      invalidate.
      
      * libmailutils/property/mhprop.c: New file.
      * libmailutils/property/propclr.c: New file.
      * libmailutils/property/propinv.c: New file.
      * libmailutils/property/Makefile.am (noinst_LTLIBRARIES): Add new files.
      
      * include/mailutils/header.h (mu_header_clear): New proto.
      * include/mailutils/property.h (mu_property_clear)
      (mu_property_invalidate): New protos.
      (mu_mh_prop): New struct.
      (mu_mh_property_init): New proto.
      * include/mailutils/sys/property.h (_mu_property) <_prop_clear>: New member.
      (_mu_property_init): New proto.
      * include/mailutils/mh.h: New file.
      * include/mailutils/Makefile.am (pkginclude_HEADERS): Add mh.h
      
      * libproto/mh/profile.c: New file.
      * libproto/mh/Makefile.am (libmu_mh_la_SOURCES): Add new files.
      
      * libproto/mh/mbox.c (mh_get_property): New static function.
      (_mailbox_mh_init): Set _get_property.
      
      * mh/mh_global.c (current_message, sequences): Remove.  Use mbox
      properties instead.
      (mh_global_sequences_get)
      (mh_global_sequences_set)
      (mh_global_sequences_iterate)
      (mh_global_sequences_drop): Take mbox as first argument. All callers
      updated.
      * mh/mh_init.c (mh_init2): Remove call to mh_global_sequences_get.
      * mh/mh_msgset.c (msgset_cur): Use mh_mailbox_get_cur.
      * mh/mh_sequence.c (mh_seq_read, write_sequence)
      (delete_sequence, mh_seq_add, mh_seq_delete): Take mbox as first argument.
      All callers updated.
      
      * mh/mh.h: Include mailutils/property.h.
      (current_message): Remove.
      (mh_mailbox_cur_default): New extern.
      (mh_global_sequences_get)
      (mh_global_sequences_set)
      (mh_global_sequences_iterate)
      (mh_global_sequences_drop): Take mbox as first argument. All callers
      updated.
      
      * mh/mh_format.c (builtin_cur): Rewrite using mh_message_number.
      
      * mh/mboxprop.c: New file.
      * mh/Makefile.am (libmh_a_SOURCES): Add new file.
      
      * mh/folder.c: Update calls to sequence management functions.
      * mh/mark.c: Likewise.
      * mh/pick.c: Likewise.
      
      * mh/inc.c (main): Set mh_mailbox_cur_default to 1.
      Invalidate properties if changecur is not set.
      * mh/prompter.c (main): Destroy the iterator.
      * mh/rmf.c: Rewrite using mu_mailbox_remove.
      * mh/scan.c: Always close the mailbox.
      
      * mh/tests/folder.at: Update.
      * mh/tests/inc.at: Update.  Inc now sets cur to 1 if it was not
      originally set.  This is what others MHs do.
      Sergey Poznyakoff authored
  5. 27 Oct, 2010 1 commit
  6. 26 Oct, 2010 1 commit
    • The purpose is to make it modular and flexible.  URLs are
      parsed out as they are created.  Missing URL parts can be
      supplied via a "URL hint" at creation time (similar to
      the approach used in creating mu_address_t).  Ports
      can be specified either as numbers or as service names.
      Original port string representation can be retrieved from
      the URL, as well as its numeric value.
      
      * libmailutils/url/accessor.h: New file.
      * libmailutils/url/copy.c: New file.
      * libmailutils/url/create.c: New file.
      * libmailutils/url/decode.c: New file.
      * libmailutils/url/destroy.c: New file.
      * libmailutils/url/dup.c: New file.
      * libmailutils/url/expand.c: New file.
      * libmailutils/url/flag.c: New file.
      * libmailutils/url/get-auth.c: New file.
      * libmailutils/url/get-host.c: New file.
      * libmailutils/url/get-param.c: New file.
      * libmailutils/url/get-path.c: New file.
      * libmailutils/url/get-portstr.c: New file.
      * libmailutils/url/get-query.c: New file.
      * libmailutils/url/get-scheme.c: New file.
      * libmailutils/url/get-secret.c: New file.
      * libmailutils/url/get-user.c: New file.
      * libmailutils/url/match.c: New file.
      * libmailutils/url/port.c: New file.
      * libmailutils/url/scheme.c: New file.
      * libmailutils/url/uplevel.c: New file.
      * libmailutils/url/urlstr.c: New file.
      
      * configure.ac (AC_CONFIG_FILES): Add libmailutils/url/Makefile
      * libmailutils/Makefile.am (SUBDIRS): Add url.
      (libmailutils_la_LIBADD): Link with liburl.
      * libmailutils/base/Makefile.am (libbase_la_SOURCES): Remove url.c
      * libmailutils/base/url.c: Remove.
      
      * libmailutils/string/Makefile.am (libstring_la_SOURCES): Add xdecode.c
      * libmailutils/string/xdecode.c: New file.
      
      * include/mailutils/sys/url.h (_mu_url): Change type to short.
      <_get_port>: Change second argument to unsigned.
      <_get_portstr>: New method.
      * include/mailutils/url.h (MU_URL_SCHEME): New flag.
      (MU_URL_PARSE_HEXCODE, MU_URL_PARSE_HIDEPASS)
      (MU_URL_PARSE_PORTSRV, MU_URL_PARSE_PORTWC)
      (MU_URL_PARSE_PIPE, MU_URL_PARSE_SLASH): New flags.
      (mu_url_create_hint, mu_url_copy_hints): New prototypes.
      (mu_url_parse): Remove.
      (mu_url_get_port): Change second argument to unsigned.
      (mu_url_decode_len,mu_url_decode): Remove.
      (mu_url_decode): New proto.
      (mu_url_sget_portstr, mu_url_aget_portstr)
      (mu_url_get_portstr): New protos.
      
      * include/mailutils/util.h (mu_str_url_decode)
      (mu_str_url_decode_inline): New protos.
      * libproto/pop/mbox.c (pop_open): Port is unsigned.
      
      * libproto/imap/folder.c: Use MU_URL_SCHEME in url_may_have.
      * libproto/maildir/folder.c: Likewise.
      * libproto/mailer/prog.c: Likewise.
      * libproto/mailer/remote.c: Likewise.
      * libproto/mailer/sendmail.c: Likewise.
      * libproto/mailer/smtp.c: Likewise.
      * libproto/mbox/folder.c: Likewise.
      * libproto/mh/folder.c: Likewise.
      * libproto/nntp/folder.c: Likewise.
      * libproto/pop/folder.c: Likewise.
      
      * imap4d/imap4d.c: Remove calls to mu_url_parse.
      * libmailutils/base/registrar.c: Likewise.
      * libmailutils/base/wicket.c: Likewise.
      * libmailutils/mailbox/folder.c: Likewise.
      * libmailutils/mailbox/mailbox.c: Likewise.
      * libmailutils/mailer/mailer.c: Likewise.
      * libmailutils/tests/url-parse.c: Likewise.
      * libmailutils/tests/wicket.c: Likewise.
      * libproto/mailer/smtp_auth.c: Likewise.
      * maidag/deliver.c: Likewise.
      * mu/wicket.c: Likewise.
      
      * libmailutils/mime/mimehdr.c (mu_mimehdr_decode_param): Use
      mu_str_url_decode, instead of mu_url_decode.
      * libmailutils/stream/tcp.c (_tcp_instance)<port>: Change type
      to unsigned short. All uses updated.
      (mu_tcp_stream_create_with_source_ip)
      (mu_tcp_stream_create_with_source_host)
      (mu_tcp_stream_create): Port is unsigned.
      * include/mailutils/stream.h (mu_tcp_stream_create_with_source_ip)
      (mu_tcp_stream_create_with_source_host)
      (mu_tcp_stream_create): Port is unsigned.
      * include/mailutils/cpp/url.h (get_port): Return unsigned.
      * libmu_cpp/url.cc (get_port): Return unsigned.
      (parse): Empty function. Schedule for removal.
      * python/libmu_py/url.c (api_url_parse): Empty function.
      Schedule for removal.
      (api_url_get_port): Port is unsigned.
      
      * libmailutils/base/wicket.c (mu_wicket_file_match_url)
      (mu_wicket_file_match_url): New parameter: parse_flags.
      * mu/wicket.c (wicket_match): Use parse_flags to control
      whether or not to show the plaintext password.
      
      * doc/texinfo/url.texi: Update.
      Sergey Poznyakoff authored
  7. 20 Oct, 2010 1 commit
    • …-smtp-00.  Minor fix in maidag (url mode).
      
      * include/mailutils/registrar.h (MU_RECORD_DEFAULT)
      (MU_RECORD_LOCAL): New flags.
      (_mu_record) <flags,url_may_have,url_must_have>: New members.
      Remove unnecessary externs.
      (mu_record_set_.*): Remove all protos.
      (mu_record_check_url, mu_registrar_test_local_url): New protos.
      * include/mailutils/sys/url.h (_mu_url) <flags>: New member.
      (MU_URL_USER, MU_URL_SECRET, MU_URL_AUTH)
      (MU_URL_HOST, MU_URL_PORT, MU_URL_PATH)
      (MU_URL_PARAM, MU_URL_QUERY)
      (MU_URL_CRED, MU_URL_INET, MU_URL_ALL): New flags.
      (mu_url_get_flags, mu_url_has_flag): New protos.
      * libmailutils/base/registrar.c (mu_record_set_.*): Remove all.
      (mu_record_check_url): New function.
      (mu_registrar_test_local_url): New function.
      * libmailutils/base/url.c (mu_url_copy0): Copy flags.
      (mu_url_parse): Use flags intead of inspecting each
      structure member. Set flags.
      (mu_url_get_flags, mu_url_has_flag): New functions.
      * libmailutils/diag/errors (MU_ERR_URL_MISS_PARTS)
      (MU_ERR_URL_EXTRA_PARTS): New error codes.
      * libmailutils/mailbox/folder.c (mu_folder_create_from_record): Check
      the URL using mu_record_check_url.
      * libproto/imap/folder.c (_imap_record, _imaps_record): Initialize new fields.
      * libproto/maildir/folder.c (_maildir_record): Likewise.
      * libproto/mbox/folder.c (_mbox_record): Likewise.
      * libproto/mh/folder.c (_mh_record): Likewise.
      * libproto/nntp/folder.c (_nntp_record): Likewise.
      * libproto/pop/folder.c (_pop_record, _pops_record): Likewise.
      * libproto/mailer/prog.c (_prog_record): Likewise.
      (_url_prog_init): Remove extra checks, rely on mu_record_check_url.
      * libproto/mailer/remote.c (_mu_remote_smtp_record)
      (_mu_remote_sendmail_record,_mu_remote_prog_record): Initialize new fields.
      * libproto/mailer/sendmail.c (_url_sendmail_init): Remove extra checks, rely
      on mu_record_check_url.
      (_sendmail_record): Initialize new fields.
      * libproto/nntp/url.c (url_nntp_destroy): Remove.
      (_nntp_url_init): Remove extra checks.
      * libproto/pop/url.c (url_pop_destroy): Remove.
      (_url_pop_init, _url_pops_init): Remove extra checks.
      
      * libproto/mailer/smtp.c (_url_smtp_init): Remove extra checks.
      (_smtp_record): Initialize new fields.
      (smtp_mailer_add_auth_mech): New function.
      (smtp_open): Allow for auth= part before the host name.
      
      * maidag/deliver.c (is_remote_url): New function.
      (do_delivery): Do not try to switch user privileges if the
      URL refers to a remote mailbox.
      * maidag/maidag.c (main): Initialize TLS.
      Sergey Poznyakoff authored
  8. 10 Oct, 2010 1 commit
    • * libmailutils/base/mutil.c (mu_hex2ul, mu_hexstr2ul): Move to string/hexstr.c.
      (mu_get_homedir, mu_get_full_path)
      (mu_expand_path_pattern): Move to base/filename.c.
      (mu_getcwd): Move to base/getcwd.c.
      (mu_tilde_expansion): Move to base/tilde.c
      (mu_cpystr): Move to string/cpystr.c.
      (mu_get_host_name): Move to base/hostname.c.
      (mu_set_user_email,mu_set_user_email_domain)
      (mu_get_user_email_domain,mu_aget_user_email_domain)
      (mu_get_user_email,mu_normalize_path): Move to base/usremail.c.
      (mu_tempfile,mu_tempname): Move to base/tempfile.c.
      (mu_spawnvp): Move to base/spawnvp.c.
      (mu_qualify_link,mu_unroll_symlink): Move to base/symlink.c.
      (mu_rfc2822_references,mu_rfc2822_msg_id)
      (mu_rfc2822_in_reply_to): Move to base/msgid.c.
      (mu_strcasestr): Move to string/cstrcasestr.c.
      (mu_string_unfold): Move to string/unfold.c.
      (mu_true_answer_p): Move to string/trueans.c.
      (mu_scheme_autodetect_p): Move to base/schemeauto.c.
      (mu_fd_wait): Move to base/fdwait.c.
      (mu_set_default_fallback,mu_decode_filter): Move to filter/decode.c.
      (__argp_base_name): Move to lib/argp_base.c.
      
      * libmailutils/base/fdwait.c: New file.
      * libmailutils/base/filename.c: New file.
      * libmailutils/base/getcwd.c: New file.
      * libmailutils/base/hostname.c: New file.
      * libmailutils/base/msgid.c: New file.
      * libmailutils/base/schemeauto.c: New file.
      * libmailutils/base/spawnvp.c: New file.
      * libmailutils/base/symlink.c: New file.
      * libmailutils/base/tempfile.c: New file.
      * libmailutils/base/tilde.c: New file.
      * libmailutils/base/usremail.c: New file.
      * libmailutils/base/Makefile.am: Add new files.
      
      * libmailutils/filter/decode.c: New file.
      * libmailutils/filter/Makefile.am: Add new files.
      
      * libmailutils/string/cpystr.c: New file.
      * libmailutils/string/cstrcasestr.c: New file.
      * libmailutils/string/hexstr.c: New file.
      * libmailutils/string/trueans.c: New file.
      * libmailutils/string/unfold.c: New file.
      * libmailutils/string/Makefile.am: Add new files.
      
      * lib/argp_base.c: New file.
      * lib/Makefile.am: Add new files.
      
      * include/mailutils/io.h: Include stdarg.h
      * include/mailutils/mutil.h: Rename to util.h.  Reorder prototypes
      and declarations in logical groups.  All uses changed.
      
      * include/mailutils/cstr.h (mu_strcasestr): New proto, moved from
      include/mailutils/mutil.h.
      Sergey Poznyakoff authored
  9. 09 Oct, 2010 1 commit
  10. 15 Sep, 2010 1 commit
    • * include/mailutils/mailbox.h (mu_mailbox_remove): New function.
      * include/mailutils/stream.h: Add some comments.
      * include/mailutils/sys/amd.h (_amd_data)<remove>: New method.
      (amd_remove_dir): New function.
      * include/mailutils/sys/mailbox.h (_mu_mailbox)<_remove>: New
      method.
      * libmailutils/amd.c (amd_remove_mbox): New function.
      (amd_init_mailbox): Initialize the _remove method.
      (amd_remove_dir): New function.
      * libmailutils/errors (MU_ERR_MBX_REMOVED)
      (MU_ERR_NOT_OPEN, MU_ERR_OPEN): New error codes.
      * libmailutils/mailbox.c: Keep state of the mailbox (open vs. not
      open, removed). Check it before doing anything on it.
      (_MU_MAILBOX_OPEN, _MU_MAILBOX_REMOVED, _MU_MAILBOX_MASK): New
      defines.
      (mu_mailbox_open): Set _MU_MAILBOX_OPEN if the operation succeeds.
      (mu_mailbox_close): Clear _MU_MAILBOX_OPEN if the operation succeeds.
      Refuse to run if the mailbox was not opened.
      (mu_mailbox_remove): New function.
      (all functions): return MU_ERR_MBX_NULL if the mbox argument is
      NULL.
      Check mailbox state on entry and proceed accordingly.
      * libproto/maildir/mbox.c: Implement _remove method.
      (maildir_remove): New function.
      (_mailbox_maildir_init): Initialize amd->_remove.
      * libproto/mbox/mbox.c: Implement _remove method.
      (mbox_remove): New function.
      (_mailbox_mbox_init): Initialize amd->_remove.
      * libproto/mh/mbox.c: Implement _remove method.
      (mh_remove): New function.
      (_mailbox_mh_init): Initialize amd->_remove.
      
      * libmailutils/tests/mbdel.c: New file.
      * libmailutils/tests/.gitignore: Add mbdel.
      * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Likewise.
      (LDADD): List all mailbox formats.
      
      * imap4d/delete.c (imap4d_delete): Use mu_mailbox_remove to
      delete the folder.  Fall back to remove() if it does not appear
      to be a mailbox.
      Sergey Poznyakoff authored
  11. 08 Sep, 2010 1 commit
  12. 05 Jan, 2010 1 commit
  13. 07 Jul, 2009 1 commit
    • * include/mailutils/cctype.h: New file.
      * include/mailutils/cstr.h: New file.
      * include/mailutils/Makefile.am: Add new files.
      * mailbox/cstrcasecmp.c: New file.
      * mailbox/cstrlower.c: New file.
      * mailbox/cstrupper.c: New file.
      * mailbox/muctype.c: New file.
      * mailbox/strltrim.c: New file.
      * mailbox/strrtrim.c: New file.
      * mailbox/strskip.c: New file.
      * mailbox/Makefile.am: Add new files.
      * .gitignore: Update
      
      * gnulib.modules: Remove strcase.
      
      * comsat/comsat.h, imap4d/imap4d.h, include/mailutils/mailutils.h,
      include/mailutils/mutil.h, include/mailutils/sys/pop3.h,
      libmu_scm/mu_scm.h, mail/mail.h: Include cstr.h and cctype.h.
      
      * comsat/oldcfg.c, config/mailutils-config.c,
      examples/mimetest.c, examples/mta.c, examples/nntpclient.c,
      examples/pop3client.c, imap4d/append.c, imap4d/create.c,
      imap4d/delete.c, imap4d/fetch.c, imap4d/id.c,
      imap4d/idle.c, imap4d/list.c, imap4d/namespace.c,
      imap4d/rename.c, imap4d/search.c, imap4d/status.c,
      imap4d/store.c, imap4d/uid.c, imap4d/util.c,
      libmu_argp/compat.c, libmu_auth/ldap.c,
      libmu_auth/sql.c, libmu_scm/mu_message.c,
      libmu_sieve/actions.c, libmu_sieve/comparator.c,
      libmu_sieve/extensions/list.c, libmu_sieve/extensions/spamd.c,
      libmu_sieve/extensions/vacation.c, libmu_sieve/load.c,
      libmu_sieve/sieve.l, libmu_sieve/tests.c,
      libproto/imap/folder.c, libproto/mailer/smtp.c,
      libproto/mbox/mbox.c, libproto/mh/folder.c,
      libproto/mh/mbox.c, libproto/pop/folder.c,
      libproto/pop/mbox.c, libproto/pop/pop3_connect.c,
      maidag/forward.c, maidag/lmtp.c, maidag/maidag.c,
      maidag/maidag.h, maidag/mailquota.c, mail/alt.c,
      mail/copy.c, mail/decode.c, mail/escape.c,
      mail/followup.c, mail/mail.c, mail/mailline.c,
      mail/msgset.y, mail/print.c, mail/reply.c,
      mail/send.c, mail/shell.c, mail/util.c,
      mail/write.c, mailbox/address.c,
      mailbox/amd.c, mailbox/assoc.c,
      mailbox/attachment.c, mailbox/attribute.c,
      mailbox/cfg_lexer.l, mailbox/date.c,
      mailbox/filter.c, mailbox/gdebug.c,
      mailbox/header.c, mailbox/kwd.c,
      mailbox/locale.c, mailbox/mailcap.c,
      mailbox/mailer.c, mailbox/message.c,
      mailbox/message_stream.c, mailbox/mime.c,
      mailbox/msrv.c, mailbox/mutil.c,
      mailbox/parse822.c, mailbox/progmailer.c,
      mailbox/rfc2047.c, mailbox/syslog.c, mailbox/url.c,
      mailbox/version.c, mh/mh.h, mh/mh_alias.l,
      mh/mh_ctx.c, mh/mh_fmtgram.y, mh/mh_init.c,
      mh/mh_list.c, mh/mh_msgset.c, mh/mh_sequence.c,
      mh/mh_whatnow.c, mh/mh_whom.c, mh/mhn.c,
      mh/mhparam.c, mh/pick.y, mh/sortm.c,
      mimeview/mimetypes.y, pop3d/bulletin.c,
      pop3d/expire.c, pop3d/pop3d.c, pop3d/pop3d.h,
      pop3d/popauth.c, pop3d/user.c, readmsg/msglist.c,
      readmsg/readmsg.c, readmsg/readmsg.h, sql/mysql.c,
      sql/postgres.c: Use locale-independent cclass and str functions.
      Sergey Poznyakoff authored
  14. 04 Jul, 2009 1 commit
    • * README-hacking: Update.
      * configure.ac (MU_COMMON_INCLUDES): Remove.
      (MU_LIB_COMMON_INCLUDES,MU_APP_COMMON_INCLUDES): New variables.
      Link lib/gettext.h and lib.intprops.h to include.
      * gnulib.modules: Remove fnmatch.
      * comsat/Makefile.am, config/Makefile.am,
      dotlock/Makefile.am, frm/Makefile.am,
      guimb/Makefile.am, imap4d/Makefile.am,
      maidag/Makefile.am, mail/Makefile.am,
      movemail/Makefile.am, pop3d/Makefile.am,
      python/libmu_py/Makefile.am, readmsg/Makefile.am
      sieve/Makefile.am (INCLUDES): Use MU_APP_COMMON_INCLUDES
      * lib/Makefile.am, examples/Makefile.am,
      libmu_argp/Makefile.am, libmu_auth/Makefile.am,
      libmu_cpp/Makefile.am, libmu_sieve/Makefile.am,
      libproto/imap/Makefile.am, libproto/mailer/Makefile.am,
      libproto/mh/Makefile.am, libproto/nntp/Makefile.am,
      libproto/pop/Makefile.am, mailbox/Makefile.am,
      mapi/Makefile.am, messages/Makefile.am,
      mh/Makefile.am, sql/Makefile.am (INCLUDES): Use MU_LIB_COMMON_INCLUDES
      Sergey Poznyakoff authored
  15. 20 Feb, 2009 1 commit
    • * libproto/include/amd.h (new_msg_file_name): Add an argument indicating
      whether an actual expunsion is going to take place, as opposed to saving
      message flags.
      * libproto/maildir/mbox.c (maildir_new_message_name): Sync with above changes.
      * libproto/mh/mbox.c (_mh_new_message_name): Likewise.
      * mailbox/amd.c (_amd_message_save): Handle unlink requests
      (new_msg_file_name returning NULL name). This avoids creating temp files.
      (amd_expunge): Remove messages that have had MU_ATTRIBUTE_DELETED on mailbox
      open, if the underlying mailbox implementation allows that.
      Sergey Poznyakoff authored
  16. 19 Feb, 2009 1 commit
    • * bootstrap.conf (gnulib_extra_files): Remove.
      * gnulib.modules (inttostr): Add module.
      * include/mailutils/io.h: New file.
      * include/mailutils/Makefile.am: Add io.h
      
      * mailbox/inttostr.c, mailbox/inttostr.h: Remove
      * mailbox/imaxtostr.c, mailbox/offtostr.c, mailbox/umaxtostr.c: Remove
      * mailbox/intprops.h: Remove
      * mailbox/asnprintf.c, mailbox/asprintf.c, mailbox/vasnprintf.c: New files.
      * mailbox/Makefile.am: Update.
      
      * mailbox/mu_umaxtostr.c: rename to lib/mu_umaxtostr.c
      * mailbox/mu_umaxtostr.h: rename to lib/mu_umaxtostr.h
      * lib/Makefile.am (libmuaux_la_SOURCES): Add mu_umaxtostr.[ch]
      
      * libmu_auth/radius.c, libmu_cfg/common.c, libmu_scm/mu_port.c,
      libproto/imap/folder.c, libproto/imap/mbox.c,
      libproto/mbox/mbox.c, libproto/mh/mbox.c, libproto/pop/mbox.c,
      mailbox/acl.c, mailbox/daemon.c, mailbox/mailer.c,
      mailbox/message.c, mailbox/mutil.c, mailbox/stream.c: Use mu_strerror.
      Avoid using mu_umaxtostr.
      Sergey Poznyakoff authored
  17. 08 Dec, 2008 1 commit
  18. 17 Aug, 2008 1 commit
    • * include/mailutils/registrar.h (_mu_record): New method
      `_list_p'.
      (mu_record_list_p): New function.
      * libproto/include/amd.h (MU_AMD_SIZE_FILE_NAME): New define.
      * libproto/maildir/folder.c (_maildir_is_scheme): Return
      MU_FOLDER_ATTRIBUTE_FILE|MU_FOLDER_ATTRIBUTE_DIRECTORY, on
      success.
      Implement _list_p method.
      * libproto/mbox/folder.c (list_helper): Change semantics of the
      2nd argument.  The record is used to determine whether or not
      to list a particular file.
      * libproto/mh/folder.c: Implement _list_p method.
      * mailbox/amd.c (SIZE_FILE_NAME): Replace with
      MU_AMD_SIZE_FILE_NAME from amd.h.
      * mailbox/registrar.c (mu_record_list_p): New function.
      Sergey Poznyakoff authored
  19. 06 Jan, 2008 1 commit
    • * libproto/include/amd.h (struct _amd_message): Remove `deleted',
      add `orig_flags' instead.
      (struct _amd_data): Remove `msg_file_name', add `cur_msg_file_name'
      and `new_msg_file_name'.
      Add `mailbox_size'.
      * libproto/maildir/mbox.c (struct _maildir_message): Remove
      `newflag', add `dir'.
      (maildir_name_info_ptr): New function.
      (mk_info_filename): Bugfix.
      (maildir_cur_message_name, maildir_new_message_name): New
      functions.
      (maildir_msg_init): Set ->dir
      (maildir_msg_finish_delivery): Handle error conditions.
      (maildir_scan_dir): New argument `dirname'. Initialize orig_flags.
      (maildir_qfetch): Initialize dir.
      (_mailbox_maildir_init): Set cur_msg_file_name and
      new_msg_file_name.
      * libproto/mh/mbox.c (_mh_cur_message_name)
      (_mh_new_message_name): New functions.
      (mh_scan0): Initialize orig_flags.
      (_mailbox_mh_init): Set cur_msg_file_name and
      new_msg_file_name.
      * mailbox/amd.c (amd_message_qid, _amd_message_save)
      (amd_append_message, amd_expunge, amd_scan_message)
      (amd_pool_open, amd_header_fill): Use appropriate msg_file_name
      functions.
      (amd_get_size): Implemented.
      * mailbox/mailbox.c (mu_mailbox_flush): Bugfix.
      Sergey Poznyakoff authored
  20. 28 Dec, 2007 1 commit
    • appear in any local URLs.
      
      * TODO, NEWS: Update.
      
      * examples/url-parse.c: Print field/value pairs.
      * include/mailutils/argcv.h (MU_ARGCV_RETURN_DELIMS): New macro.
      (mu_argcv_get_np): New function.
      (mu_argcv_remove): New function.
      * include/mailutils/mutil.h (mu_scheme_autodetect_p): Change
      prototype.
      * include/mailutils/registrar.h (mu_registrar_lookup_url): New
      function.
      (struct _mu_record._is_scheme): Change signature.
      * include/mailutils/url.h (mu_url_sget_fvpairs)
      (mu_url_aget_fvpairs): New functions.
      (mu_url_expand_path): New function.
      
      * libproto/imap/folder.c (folder_imap_list): Fix signature.
      * libproto/nntp/folder.c (nntp_folder_list): Fix signature.
      * libproto/include/amd.h (amd_url_init): Remove.
      * libproto/include/registrar0.h: Fix scheme defines.
      * libproto/include/url0.h (struct _mu_url.fvpairs,fvcount): New
      members.
      * libproto/maildir/folder.c (_maildir_is_scheme): Change
      signature.
      (_maildir_url_init): Remove
      (_maildir_record): Remove url_init.
      * libproto/mbox/folder.c (_path_record): Remove url_init.
      (_mbox_record): Use mu_url_expand_path as url_init.
      (_path_is_scheme): Change signature.
      * libproto/mh/folder.c (_mh_is_scheme): Change signature.
      (_mh_url_init): Remove.
      (_mh_record): Use mu_url_expand_path as url_init.
      * libproto/mbox/Makefile.am (libmu_mbox_la_SOURCES): Remove url.c
      * libproto/mbox/url.c: Remove.
      
      * mail/mail.h, mail/util.c (util_url_to_string): New function.
      * mail/quit.c, mail/summary.c: Use util_url_to_string where
      appropriate.
      * mailbox/amd.c (amd_url_destroy, amd_url_init): Remove.
      * mailbox/argcv.c (mu_argcv_get_np): New function.
      (argcv_scan): Change signature. All callers updated.
      (argcv_get_n): Rewrite using argcv_get_np.
      (mu_argcv_remove): New function.
      
      * mailbox/file_stream.c (struct _prog_stream.argc): Fix data type.
      * mailbox/folder.c (mu_folder_create_from_record): URL initializer
      is optional.
      * mailbox/gdebug.c (mu_global_debug_from_string): Fix datatype of
      argc.
      * mailbox/mailbox.c (mailbox_folder_create): Rewrite.
      (_create_mailbox): Split off _create_mailbox0 function.
      Make URL initializer optional.
      * mailbox/mutil.c (mu_scheme_autodetect_p): Rewrite.
      * mailbox/registrar.c (mu_registrar_lookup_url): New function.
      (mu_registrar_lookup): Rewrite using mu_registrar_lookup_url.
      (mu_record_is_scheme,mu_record_set_is_scheme): Change signature.
      * mailbox/url.c (mu_url_destroy): Destroy fvpairs.
      (url_parse0): Use scheme "file" for URLs beginning with a /.
      Parse parameters.
      (mu_url_sget_fvpairs, mu_url_aget_fvpairs): New functions.
      (mu_url_expand_path): New function.
      * mailbox/testsuite/Urls: Update.
      
      * pop3d/bulletin.c (set_bulletin_db,set_bulletin_source): Allocate
      string storage.
      (read_bulletin_db): Return 0 if no record was found.
      (get_last_delivered_num): Return error code.
      (deliver_pending_bulletins): Rewrite.
      * pop3d/capa.c (pop3d_capa): Bugfix.
      Sergey Poznyakoff authored
  21. 12 Nov, 2007 1 commit
  22. 10 Nov, 2007 1 commit
    • * frm/common.c, imap4d/sync.c, libsieve/runtime.c,
      mh/scan.c: Update declaration of observable actions  .
      * imap4d/select.c, imap4d/status.c, mh/anno.c, mh/forw.c,
      mh/repl.c: Use mu_mailbox_sync instead of
      mu_mailbox_save_attributes.
      * include/mailutils/mailbox.h (mu_mailbox_sync): New function.
      (mu_mailbox_save_attributes): Deprecated.
      * include/mailutils/message.h (mu_message_get_qid)
      (mu_message_set_qid): New functions.
      * include/mailutils/observer.h (MU_EVT_MESSAGE_APPEND): New event.
      (mu_observer_set_action_data): New function. Registers
      action-specific data.
      (mu_observable_notify): Get call-specific data as the third
      argument.
      * include/mailutils/types.hin (mu_message_qid_t): New data type.
      * libproto/imap/folder.c, libproto/imap/mbox.c,
      libproto/include/amd.h, libproto/maildir/mbox.c,
      libproto/mailer/sendmail.c, libproto/mailer/smtp.c,
      libproto/mbox/mboxscan.c, libproto/mh/mbox.c,
      libproto/nntp/mbox.c, libproto/pop/mbox.c, mailbox/folder.c,
      mailbox/mailer.c : Update calls to mu_observable_notify.
      * libproto/include/mailbox0.h (struct _mu_mailbox): Rename
      _save_attributes to _sync.
      * mailbox/amd.c: Likewise
      (_quick_get_message): New member.
      (MAILBOX_NOTIFY): Remove.
      * libproto/include/message0.h (struct _mu_message): New member
      _get_qid.
      * libproto/include/observer0.h (struct _mu_observer): New member
      _action_data.
      * libproto/mbox/mbox.c: Implement mbox_message_qid. Update calls
      to mu_observable_notify.
      (mbox_append_message): Report MU_EVT_MESSAGE_APPEND
      * mailbox/observer.c (mu_observer_destroy): Call _destroy with
      _action_data as its third argument.
      (mu_observer_action, mu_observable_notify): Takes third argument
      (call data)
      (mu_observer_set_action, mu_observer_set_destroy): Update signature.
      (mu_observer_set_action_data): New function.
      
      * libproto/mbox/mbox0.h, mail.local/main.c: Minor change.
      
      * mail.local/Makefile.am (mail_local_LDADD): Add MU_LIB_MAILER
      
      * mailbox/file_stream.c (_file_open): Fix handling of
      MU_STREAM_APPEND. Remove assertion.
      
      * mailbox/mailbox.c (mu_mailbox_quick_get_message): New function
      (mu_mailbox_sync): New function
      (mu_mailbox_get_size): Implement brute-force approach in case the
      mailbox does not provide a method.
      
      * mailbox/message.c (mu_message_get_qid, mu_message_set_qid): New
      function.
      
      * maildag/: New directory. A general-purpose mail delivery agent.
      * maildag/deliver.c: New file.
      * maildag/lmtp.c: New file.
      * maildag/maidag.c: New file.
      * maildag/maidag.h: New file.
      * maildag/mailtmp.c: New file.
      * maildag/mailquota.c: New file.
      * maildag/script.c: New file.
      * maildag/util.c: New file.
      * maildag/Makefile.am: New file.
      * maildag/.cvsignore: New file.
      Sergey Poznyakoff authored
  23. 05 Jul, 2007 1 commit
  24. 28 Jun, 2007 1 commit
  25. 27 Jun, 2007 1 commit
  26. 07 Mar, 2006 1 commit