1. 30 Mar, 2011 2 commits
    • * am/ipv6.m4: New file.
      * examples/sa.c: New file.
      * include/mailutils/cidr.h: New file.
      * include/mailutils/sockaddr.h: New file.
      * libmailutils/cidr/Makefile.am: New file.
      * libmailutils/cidr/fromsa.c: New file.
      * libmailutils/cidr/fromstr.c: New file.
      * libmailutils/cidr/match.c: New file.
      * libmailutils/cidr/tosa.c: New file.
      * libmailutils/cidr/tostr.c: New file.
      * libmailutils/sockaddr/Makefile.am: New file.
      * libmailutils/sockaddr/copy.c: New file.
      * libmailutils/sockaddr/create.c: New file.
      * libmailutils/sockaddr/free.c: New file.
      * libmailutils/sockaddr/fromnode.c: New file.
      * libmailutils/sockaddr/insert.c: New file.
      * libmailutils/sockaddr/ipaddr.c: New file.
      * libmailutils/sockaddr/str.c: New file.
      * libmailutils/sockaddr/unlink.c: New file.
      * libmailutils/sockaddr/url.c: New file.
      * libmailutils/tests/cidr.c: New file.
      
      * configure.ac: Call MU_ENABLE_IPV6.
      Build libmailutils/sockaddr and libmailutils/cidr.
      * examples/.gitignore: Add mblconv and sa
      * examples/Makefile.am: (noinst_PROGRAMS): Add sa.
      * examples/aclck.c: Use new ACL API.
      * examples/echosrv.c: Use new mserv API.
      * include/mailutils/Makefile.am (pkginclude_HEADERS): Add cidr.h
      and sockaddr.h
      
      * include/mailutils/acl.h (mu_acl_append, mu_acl_prepend)
      (mu_acl_insert): Change signatures.
      * include/mailutils/debug.h (mu_sockaddr_to_str): Remove proto.
      * include/mailutils/mailutils.h: Include cidr.h and sockaddr.h
      * include/mailutils/server.h (mu_ip_server_create): Change signature.
      (mu_ip_server_get_sockaddr): Likewise.
      (mu_m_server_set_default_address)
      (mu_m_server_get_default_address): Remove.
      * include/mailutils/stream.h (mu_tcp_stream_create_from_sa): New proto.
      * include/mailutils/types.hin (mu_cidr, mu_sockaddr): New structs.
      
      * include/mailutils/url.h (MU_URL_IPV6): New flag.
      (MU_URL_PARSE_DSLASH_OPTIONAL): New parse flag.
      
      * libmailutils/Makefile.am: Descend into cidr and sockaddr. Link in
      libcidr and libsockaddr.
      * libmailutils/diag/debug.c (mu_debug_log_begin): Flush mu_strerr.
      * libmailutils/diag/errors (MU_ERR_NONAME)
      (MU_ERR_BADFLAGS,MU_ERR_SOCKTYPE)
      (MU_ERR_FAMILY,MU_ERR_SERVICE): New errors.
      
      * libmailutils/server/acl.c: Rewrite API using mu_cidr.
      * libmailutils/server/ipsrv.c: Rewrite AI using mu_sockaddr.
      * libmailutils/server/msrv.c: Likewise.
      * libmailutils/stream/tcp.c: Likewise.
      
      * libmailutils/tests/.gitignore: Add cidr.
      * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add cidr.
      * libmailutils/tests/url-parse.c: Support command line options
      to tune the parsing.
      * libmailutils/tests/url.at: Pass options to url-parse.
      * libmailutils/url/create.c (getkn): Return meaningful error code.
      (_mu_url_ctx_parse_host): Accept IPv6 addresses. Set the MU_URL_IPV6
      flag if one is given.
      (_mu_url_ctx_parse): Unless MU_URL_PARSE_DSLASH_OPTIONAL flag is
      given, request :// after scheme part.
      (mu_url_create): Add MU_URL_PARSE_DSLASH_OPTIONAL flag.
      
      * libmu_cfg/acl.c: Use new ACL API.
      * mu/acl.c: Likewise.
      
      * libproto/mailer/smtp.c (smtp_open): Use mu_tcp_stream_create_from_sa
      * libproto/pop/mbox.c (pop_open): Likewise.
      * mu/imap.c (com_connect): Likewise.
      * mu/pop.c (com_connect): Likewise.
      * testsuite/smtpsend.c (main): Likewise.
      Sergey Poznyakoff authored
    • * mh/tests/comp.at: Remove trailing whitespace before comparisons
      Sergey Poznyakoff authored
  2. 23 Mar, 2011 1 commit
    • * libmailutils/filter/c-escape.c: New file.
      * include/mailutils/filter.h (mu_c_escape_filter): New extern.
      * libmailutils/filter/Makefile.am (libfilter_la_SOURCES): Add c-escape.c
      * libmailutils/filter/filter.c (mu_filter_get_list): Add
      mu_c_escape_filter to the list.
      Sergey Poznyakoff authored
  3. 17 Mar, 2011 1 commit
    • * examples/mblconv.c (main): Return 0.
      * examples/murun.c (main): Fix iteration body.
      * imap4d/append.c: Do not pass constructed string as format
      argument to io_completion_response, use %s instead.
      * imap4d/close.c: Likewise.
      * imap4d/create.c: Likewise.
      * imap4d/delete.c: Likewise.
      * imap4d/rename.c: Likewise.
      * imap4d/status.c: Likewise.
      * libmailutils/base/mutil.c (mutil_parse_field_map): Fix return
      code in case of wordsplit failure.
      * libmailutils/cfg/parser.y (GETSNUM): Initialize sign.
      * libmailutils/stream/streamref.c (_streamref_ctl)
      <MU_IOCTL_SEEK_LIMITS>: Initialize lim.
      * libmailutils/string/wordsplit.c: Typecast format width arguments
      to int.
      * libmu_sieve/extensions/vacation.c (check_db): Initialize days.
      Pass correct time value to test_and_update_prop.
      * libproto/pop/mbox.c (pop_create_pop3_message): Fix return code.
      * mail/mail.c (do_and_quit): Pass the command to util_do_command
      via the %s format.
      * mail/unset.c (mail_unset): Likewise.
      * mh/mh_fmtgram.y (function production): LIkewise for mu_error.
      * mu/logger.c (mutool_logger): Fix return code in case
      of mu_stdstream_strerr_create failure.
      Sergey Poznyakoff authored
  4. 16 Mar, 2011 1 commit
    • * comsat/action.c (action_echo): Set omit_newline.
      * libmailutils/mailbox/mbx_default.c: Return 0 on success.
      Fix memory overrun.
      
      * libproto/mailer/smtp.c (smtp_open): Protect tls-related
      code with #ifdef WITH_TLS.
      * libproto/pop/mbox.c (pop_open): Likewise.
      * mu/imap.c (com_connect): Likewise.
      
      * mh/mhn.c (split_args): Preserve quotes.
      (mhn_compose_command): Handle type arguments (%a escape).
      (mhn_show_command): Likewise.
      (store_handler): Fix call to mh_getyn.
      (edit_mime): Pass typeargs to mhn_compose_command.
      Fix test for missing filename.
      * mh/tests/ali.at (ali04): The test wrongly assumed that the
      `root' group has some members.
      * mh/tests/folder.at: Always sort the output from find.
      * mh/tests/rmf.at: Likewise.
      * mh/tests/mhn.at: Likewise.
      Filter out timestamps from the tar output produced by mhn.
      
      * tests/testsuite.at (MH_SETUP): Define moreproc.
      * mh/tests/mhparam.at: Account for changes in mh_profile
      Sergey Poznyakoff authored
  5. 10 Mar, 2011 1 commit
  6. 09 Mar, 2011 1 commit
  7. 07 Mar, 2011 1 commit
    • * include/mailutils/gocs.h (mu_site_rcfile): New extern.
      * include/mailutils/libcfg.h (MU_CONFIG_FILE): Remove.
      (mu_register_cfg_capa): Remove proto.
      (mu_libcfg_register_capa): New proto.
      * libmailutils/cfg/gocs.c (mu_site_rcfile): New variable.
      
      * libmu_argp/muinit.c (mu_app_init): Use mu_site_rcfile instead
      of MU_CONFIG_FILE.
      Destroy parse_tree when no longer needed.
      * libmu_cfg/init.c (cfg_capa_table): Static.
      (find_cfg_capa): Likewise.
      (reserved_name): Treat names starting with dot as reserved.
      (mu_libcfg_register_capa): New function.
      (mu_libcfg_parse_config): Use mu_site_rcfile instead
      of MU_CONFIG_FILE.
      * mu/query.c (mutool_query): Use mu_site_rcfile instead
      of MU_CONFIG_FILE.
      Sergey Poznyakoff authored
  8. 05 Mar, 2011 2 commits
    • This function used to handle include/program statements, which
      is useless now, as these are expanded by mu_cfg_tree_postprocess.
      
      * include/mailutils/cfg.h (mu_cfg_tree_reduce): Change signature.
      (mu_format_config_tree): Change signature.
      (mu_config_clone_root_container): New proto.
      (mu_config_register_section): Rename to mu_config_root_register_section.
      mu_config_container_register_section. All uses changed.
      (mu_config_root_register_section): New proto.
      
      * libmailutils/cfg/driver.c (prog_parser)
      (_cb_include): Remove unnecessary code.
      (mu_build_container): Simplify. All uses updated.
      (mu_cfg_tree_reduce): Simplify invocation. All uses updated.
      
      * libmu_argp/muinit.c (mu_app_init): Re-implement --config-help support.
      
      * sieve/sieve.c (sieve_cfg_param): Fix docstring for "debug".
      * sieve/tests/testsuite.at (MUT_SIEVE_DEFAULT_OPTIONS): New variable.
      (MUT_SIEVE_CMDLINE): Include MUT_SIEVE_DEFAULT_OPTIONS.
      (MUT_SIEVE_COMPILE): Pass MUT_SIEVE_DEFAULT_OPTIONS to sieve.
      Sergey Poznyakoff authored
    • * include/mailutils/cfg.h (mu_cfg_parse_hints): New struct.
      (mu_cfg_tree_postprocess): Change signature.  Last argument is
      struct mu_cfg_parse_hints *.
      (MU_CFG_PARSE_SITE_RCFILE,MU_CFG_PARSE_CUSTOM_RCFILE)
      (MU_CFG_PARSE_PROGRAM): New flags.
      (mu_cfg_parse_config): New proto.
      * libmailutils/cfg/lexer.l (mu_get_config): Fix call to
      mu_cfg_tree_postprocess.
      
      * libmailutils/cfg/parser.y (do_include): Takes hints as 2nd argument.
      (mu_cfg_tree_postprocess): Likewise.
      (mu_cfg_parse_config): New function.
      
      * libmu_cfg/init.c (mu_libcfg_parse_config): Rewrite as a wrapper
      over mu_cfg_parse_config.
      * libmu_argp/muinit.c (mu_app_init): Update.
      
      * mu/query.c: New option --program.
      (mutool_query): Use mu_cfg_parse_config interface.
      Sergey Poznyakoff authored
  9. 04 Mar, 2011 2 commits
    • * include/mailutils/cfg.h (mu_cfg_node) <parent>: New member.
      (MU_CFG_FMT_VALUE_ONLY)
      (MU_CFG_FMT_PARAM_PATH): New flags.
      * libmailutils/cfg/format.c (format_path): New static.
      (format_node,format_node_end): Handle new flags.
      (mu_cfg_format_node): Clear MU_CFG_FMT_VALUE_ONLY if the
      requested node is mu_cfg_node_statement.
      * libmailutils/cfg/parser.y: Set node parents.
      (mu_cfg_find_node): Fix coredump.
      * mu/query.c: New options --value and --path.
      Sergey Poznyakoff authored
    • * libmailutils/server/acl.c (_run_entry): Fix log output.
      * mu/shell.c: Fix compilation without readline.
      Sergey Poznyakoff authored
  10. 19 Feb, 2011 1 commit
    • * libmu_scm/Makefile.am (DOT_X_FILES, DOT_DOC_FILES): Add mu_debug.x and
      mu_debug.doc.
      * mail/send.c (fill_body): Remove extra \n after null message
      body diagnostics.
      Sergey Poznyakoff authored
  11. 21 Jan, 2011 1 commit
    • * include/mailutils/debug.h (mu_debug_get_iterator): New proto.
      * libmailutils/diag/debug.c (mu_debug_get_iterator): New function.
      * libmu_scm/Makefile.am (lib_LTLIBRARIES): Add mu_debug.c.
      
      * include/mailutils/guile.h (mu_scm_debug_init): New proto.
      * libmu_scm/mu_scm.c (mu-register-format): Bugfix.
      (mu_scm_init): Call mu_scm_debug_init.
      Sergey Poznyakoff authored
  12. 19 Jan, 2011 1 commit
    • Bugfix · d9044ffe
      * libmailutils/base/amd.c: Add more debugging info.  Always check the
      return from amd_pool_open and amd_check_message (which returns int now)
      and act accordingly.
      Sergey Poznyakoff authored
  13. 16 Jan, 2011 1 commit
    • * libmailutils/diag/bt.c: New file.
      * libmailutils/diag/wd.c: New file.
      * libmailutils/diag/Makefile.am (libdiag_la_SOURCES): Add bt.c and wd.c
      
      * include/mailutils/debug.h (mu_gdb_bt, mu_wd): New protos.
      * include/mailutils/util.h (mu_getmaxfd): New protos.
      * libmailutils/base/getmaxfd.c: New file.
      * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add getmaxfd.c
      
      * libmailutils/server/acl.c: Use mu_getmaxfd.
      * libmailutils/stream/prog_stream.c: Likewise.
      * mh/mh_whatnow.c: Likewise.
      
      * libmu_scm/mu_body.c (mu-body?): Bugfix.
      Sergey Poznyakoff authored
  14. 15 Jan, 2011 2 commits
    • * libmailutils/mime/attachment.c (_attachment_setup): Remove improper
      initialization of msg.
      (mu_message_encapsulate): Initialize info->msg.
      Sergey Poznyakoff authored
    • Previously implemented way of signal handling was unsafe because of
      the use of unsafe functions in signal handlers. It also allowed for
      recursive invocations of MU calls not supposed to handle recursion
      (such as mu_mailbox_expunge, for example). This changeset fixes it.
      
      * imap4d/imap4d.c (imap4d_child_signal_setup): Change signal set.
      (imap4d_mainloop): Set a jump point for signal handling.
      Restore default handling for SIGILL, SIGBUS, SIGFPE, SIGSEGV, SIGSTOP.
      (master_jmp): New variable.
      (imap4d_master_signal): New function.
      (main): Redo signal handling.
      * imap4d/imap4d.h (child_jmp): New extern.
      (imap4d_enter_critical,imap4d_leave_critical): New protos.
      * imap4d/signal.c (imap4d_master_signal): Move to imap4d.c
      (imap4d_enter_critical,imap4d_leave_critical): New functions.
      (imap4d_child_signal): Rewrite.
      
      * imap4d/append.c: Protect critical sections.
      * imap4d/bye.c: Likewise.
      * imap4d/close.c: Likewise.
      * imap4d/copy.c: Likewise.
      * imap4d/delete.c: Likewise.
      * imap4d/expunge.c: Likewise.
      * imap4d/rename.c: Likewise.
      * imap4d/select.c: Likewise.
      * imap4d/status.c: Likewise.
      
      * scheme/Makefile.am (sievemod_DATA): Add guimb.scmi.
      Sergey Poznyakoff authored
  15. 14 Jan, 2011 1 commit
  16. 09 Jan, 2011 1 commit
  17. 07 Jan, 2011 2 commits
    • * libmu_scm/mu_body.c (mu-body?): New function.
      * libmu_scm/mu_mailbox.c (mu-mailbox?): New function.
      * libmu_scm/mu_message.c (mu-message?): New function.
      * libmu_scm/mu_mime.c (mu-mime?): New function.
      * scheme/guimb.scmi (guimb-process-mailbox): guimb-message returns
      a message to be appended to the output mailbox.
      Sergey Poznyakoff authored
    • * libmu_scm/mailutils.scm.in: Move to libmu_scm/mailutils/mailutils.scm.in.
      Use the MAILUTILS_SCM_LIBRARY_ROOT environment variable to load
      libraries from the specified location (to be used in tests).
      
      * libmu_scm/mailutils/.gitignore: New file.
      * libmu_scm/mailutils/Makefile.am: New file.
      * libmu_scm/Makefile.am (SUBDIRS): Add mailutils
      (mailutils.scm): Remove goal and associated variables.
      
      * scheme/guimb.scmi: New file. Reincarnation of guimb.
      * scheme/Makefile.am: Build guimb from guimb.scmi.
      * scheme/sieve2scm.scmi (sieve-version): Use mu-package
      and mu-version global variables.
      
      * configure.ac (AC_CONFIG_FILES): Add libmu_scm/mailutils/Makefile.
      Sergey Poznyakoff authored
  18. 06 Jan, 2011 1 commit
  19. 02 Jan, 2011 1 commit
  20. 31 Dec, 2010 3 commits
    • Remove guimb. · 79d50145
      It was inoperational since 2009-03-27 and nobody complained, so it seems
      to not be reclaimed at all. FWIW, it will be easy to recreate it entirely
      in Scheme, should the need be.
      
      * guimb/.gitignore: Remove.
      * guimb/Makefile.am: Remove.
      * guimb/collect.c: Remove.
      * guimb/guimb.h: Remove.
      * guimb/main.c: Remove.
      * guimb/util.c: Remove.
      
      * Makefile.am (GUIMB_DIR): Remove.
      [MU_COND_LIBMU_SCM] (SCHEME_DIR): New variable.
      (SUBDIRS): Add SCHEME_DIR instead of GUIMB_DIR.
      * configure.ac (MU_GUILE_SIEVE_MOD_DATA): Remove substitution.
      (AC_CONFIG_FILES): Remove guimb and guimb/scm, add scheme
      
      * guimb/scm/.gitignore: move to scheme/.gitignore
      * guimb/scm/Makefile.am: move to scheme/Makefile.am
      * guimb/scm/README: move to scheme/README
      * guimb/scm/mimeheader.scm: move to scheme/mimeheader.scm
      * guimb/scm/numaddr.scm: move to scheme/numaddr.scm
      * guimb/scm/redirect.scm: move to scheme/redirect.scm
      * guimb/scm/reject.scm: move to scheme/reject.scm
      * guimb/scm/sieve-core.scm: move to scheme/sieve-core.scm
      * guimb/scm/sieve.scm.in: move to scheme/sieve2scm.scmi
      * guimb/scm/vacation.scm: move to scheme/vacation.scm
      Sergey Poznyakoff authored
    • * imap4d/sync.c (notify): Do not emit FETCH replies for recent
      messages.
      Sergey Poznyakoff authored
    • * imap4d/imap4d.c (idle_timeout): Initialize to the default value.
      (Needed for inetd mode)
      * imap4d/sync.c: Revamp table handling.
      Sergey Poznyakoff authored
  21. 30 Dec, 2010 1 commit
    • * include/mailutils/message.h (mu_message_quick_lines): New proto.
      (mu_message_set_lines): Change signature of the 2nd argument.
      * include/mailutils/sys/message.h (_mu_message) <lines>: Change
      signature.
      * libmailutils/diag/errors (MU_ERR_INFO_UNAVAILABLE): New error code.
      * libmailutils/mailbox/message.c (mu_message_set_lines): Change
      signature of the 2nd argument.
      (mu_message_lines): Update call to the _lines method.
      (mu_message_quick_lines): New function.
      * libproto/pop/mbox.c (_POP3_MSG_LINES): New flag.
      (_pop3_message)<message_lines>: New member.
      (pop_create_pop3_message): New function.
      (pop_scan): Use LIST to obtain scan listing.
      (pop_message_lines): New function.
      (pop_create_message): Set _lines method.
      (pop_get_message): Use pop_create_pop3_message.
      
      * mail/from.c (hdr_quick_lines): New function.
      (compile_headline): New escape %L
      
      * pop3d/capa.c (pop3d_capa): Show XLINES capability if
      configured.
      * pop3d/list.c (pop3d_list): Optionally output the number of
      lines in the message.
      * pop3d/pop3d.c (pop3d_xlines): New global.
      (pop3d_cfg_param): New statement "scan-lines".
      * pop3d/pop3d.h (pop3d_xlines): New extern.
      Sergey Poznyakoff authored
  22. 29 Dec, 2010 2 commits
  23. 28 Dec, 2010 5 commits
    • * libmailutils/url/create.c (_mu_url_create_internal): Fix
      parsing of the '|' shortcuts.
      * libmailutils/tests/url.at: Fix '|' test. Add 'prog://' test.
      
      * movemail/movemail.c (set_program_id): Call mu_stdstream_strerr_setup
      to flush changes.
      * frm/common.c: Minor changes
      Sergey Poznyakoff authored
    • * frm/common.c (select_message, msg_index): Remove; use action data instead.
      (action): Use action data to get the selection function and message index.
      (frm_scan): Pass these data in action closure.
      Sergey Poznyakoff authored
    • * imap4d/imap4d.h (util_format_attribute_flags): New prototype.
      * imap4d/sync.c: Rewrite using flag table to keep attribute flags,
      mu_mailbox_translate to convert uids to message numbers and
      MU_EVT_MAILBOX_MESSAGE_EXPUNGE event to report expunged messages.
      * imap4d/util.c  (_imap4d_attrlist): Remove \Recent
      (util_attribute_to_type): Handle \Recent separately.
      (util_format_attribute_flags): New function.
      (util_print_flags): Rewrite as an extra entry point to the above.
      
      mailboxes: New event MU_EVT_MAILBOX_MESSAGE_EXPUNGE.
      
      * include/mailutils/observer.h: Rearrange and partially rename
      event constants (all uses updated):
      MU_EVT_MESSAGE_APPEND   =>   MU_EVT_MAILBOX_MESSAGE_APPEND
      MU_EVT_AUTHORITY_FAILED =>   MU_EVT_FOLDER_AUTHORITY_FAILED
      (MU_EVT_MAILBOX_MESSAGE_EXPUNGE): New event.
      * libproto/mbox/mbox.c: Generate MU_EVT_MAILBOX_MESSAGE_EXPUNGE.
      * libproto/pop/mbox.c: Likewise.
      * libmailutils/base/amd.c: Likewise.
      Sergey Poznyakoff authored
    • * 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
    • * libmu_sieve/extensions/vacation.c (build_mime): Remove superfluous seek.
      (test_and_update_prop): days==0 means "forever", i.e. send a replay to
      each user only once.
      (vacation_reply): If :file tag is given, treat the argument as the
      name of a file containing the reply message.
      (vacation_tags): Add "sender" and "file" tags.
      
      * libmu_sieve/extensions/moderator.c: Always unref transport stream
      after passing it to mu_stream_to_message.
      * maidag/lmtp.c: Likewise.
      * mh/mh_stream.c: Likewise.
      * mh/prompter.c: Likewise.
      * mh/burst.c (flush_stream): Remove extra unnref.
      * sieve/sieve.c: Likewise.
      * testsuite/smtpsend.c: Likewise.
      Sergey Poznyakoff authored
  24. 27 Dec, 2010 1 commit
  25. 25 Dec, 2010 2 commits
    • * libmu_auth/tls.c (_tls_ioctl): Fix typo (opcode used instead of
      code).
      * mu/filter.c (mutool_filter): Reference mu_strin to prevent it from
      destroying.
      * testsuite/smtpsend.c (main): Call mu_stdstream_setup.
      Sergey Poznyakoff authored
    • * libproto/pop/mbox.c (pop_close): Destroy the cached data.
      (pop_destroy): Avoid freeing the same data twice.
      (pop_body_get_stream,pop_body_size,pop_body_lines): Owner is mu_message_t.
      (pop_create_body): Change the owner of the created mu_body_t object.
      
      * movemail/movemail.c: Correctly close both mailboxes if unhandled errors
      occur.
      Sergey Poznyakoff authored
  26. 24 Dec, 2010 1 commit
  27. 23 Dec, 2010 1 commit
    • * libmailutils/base/list.c (list_itrctl): Accept mu_itrctl_set_direction
      and mu_itrctl_qry_direction even if mu_iterator_first has not been called
      yet.
      * movemail/movemail.c: Rewrite using iterators.
      
      * libmailutils/mailer/mailer.c (safe_address_create): Bugfix.
      Sergey Poznyakoff authored