1. 08 Apr, 2010 6 commits
    • * include/mailutils/message.h (mu_message_save_attachment)
      (mu_message_encapsulate, mu_message_unencapsulate): Change type
      of the last argument.
      (mu_mime_io_buffer_create,mu_mime_io_buffer_destroy)
      (mu_mime_io_buffer_set_size,mu_mime_io_buffer_get_size)
      (mu_mime_io_buffer_set_charset,mu_mime_io_buffer_sget_charset)
      (mu_mime_io_buffer_aget_charset): New prototypes.
      (mu_mimehdr_get_disp,mu_mimehdr_aget_disp): Remove unneeded
      parameter.
      * include/mailutils/types.hin (mu_mime_io_buffer_t): New type.
      * mailbox/attachment.c (_msg_info): Rename structure to
      _mu_mime_io_buffer.
      <header_buf,header_len,mu_header_size>: Remove unreferenced members.
      <refcnt,bufsize,charset>: New members.
      <ioffset,ooffset>: Change type to size_t.
      (mu_mime_io_buffer_create,mu_mime_io_buffer_destroy)
      (mu_mime_io_buffer_set_size,mu_mime_io_buffer_get_size)
      (mu_mime_io_buffer_set_charset,mu_mime_io_buffer_sget_charset)
      (mu_mime_io_buffer_aget_charset): New functions.
      (mu_message_save_attachment)
      (mu_message_encapsulate, mu_message_unencapsulate): Take
      mu_mime_io_buffer_t as the last argument.
      * mailbox/mimehdr.c (mu_mimehdr_get_disp): Remove unneeded
      parameter.
      (mu_mimehdr_aget_disp): Remove unneeded parameter. Store
      return value into pvalue.
      
      * examples/mimetest.c (message_display_parts): Use
      mu_mimehdr_aget_disp and mu_mime_io_buffer_* functions.
      * mailbox/testsuite/Mime: Update.
      
      * mh/mhn.c (options, opt_handler): New option --charset.
      (store_handler): Use mu_message_aget_decoded_attachment_name.
      Sergey Poznyakoff authored
    • * mailbox/rfc2047.c: Minor style fix.
      Sergey Poznyakoff authored
    • * examples/python/mimetest.py: Update.
      * include/mailutils/cpp/message.h (get_attachment_name): Overload.
      * libmu_cpp/message.cc (Message::get_attachment_name): Overload.
      * python/libmu_py/message.c (api_message_get_attachment_name): Update.
      * python/mailutils/message.py (Message.get_attachment_name):
      Add optional charset parameter. Return (name, lang) tuple.
      Wojciech Polak authored
    • * mailbox/rfc2047.c (mu_rfc2047_decode): Use temporary buffer
      for reading from the filter stream, to avoid preliminary breaking
      from the read loop when end of the buffer is reached. Realloc the
      buffer as neccessary.
      Sergey Poznyakoff authored
    • * mailbox/mimehdr.c (_header_get_param): If buf is NULL
      on entry, make sure it alwaus points to allocated memory
      afterwards.
      
      * examples/mimetest.c (charset): New variable.
      (main): New command line option -c.
      (message_display_parts): Use mu_message_aget_decoded_attachment_name.
      Pass fname to mu_message_save_attachment.
      Sergey Poznyakoff authored
    • * mailbox/mimehdr.c (_header_get_param): Improve error checking.
      Allow for optional whitespace around the '='.
      * mailbox/rfc2047.c (mu_rfc2047_decode): tocode=NULL is OK.
      Sergey Poznyakoff authored
  2. 06 Apr, 2010 1 commit
    • * mailbox/mimehdr.c: New file.
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add
      mailbox/mimehdr.c.
      * mailbox/attachment.c (_header_get_param)
      (_get_attachment_name, mu_message_aget_attachment_name)
      (mu_message_get_attachment_name: Move to mailbox/mimehdr.c (with
      edits).
      (mu_message_save_attachment): Add a FIXME comment.
      * include/mailutils/message.h (MU_MIMEHDR_MULTILINE)
      (MU_MIMEHDR_CSINFO): New defines.
      (mu_mimehdr_get_disp,mu_mimehdr_aget_disp)
      (mu_mimehdr_get_param,mu_mimehdr_aget_param)
      (mu_mimehdr_decode_param)
      (mu_mimehdr_aget_decoded_param): New prototypes.
      (mu_message_aget_attachment_name): Change signature.
      (mu_message_aget_decoded_attachment_name): New prototype.
      
      * mailbox/mutil.c (mu_hex2ul): Fix a silly bug (have
      anybody ever tried to use that function?!?)
      * mailbox/testsuite/Urls: Update.
      
      * examples/mimetest.c (message_display_parts): Add a FIXME comment.
      * libmu_cpp/message.cc (Message::get_attachment_name): Likewise.
      * mh/mhn.c (store_handler): Likewise.
      * python/libmu_py/message.c (api_message_get_attachment_name): Likewise.
      Sergey Poznyakoff authored
  3. 03 Apr, 2010 1 commit
  4. 01 Apr, 2010 8 commits
    • * libmu_scm/mu_mailbox.c (struct mu_mailbox)<itr>: New member.
      (mu_scm_mailbox_free): Destroy the iterator.
      (mu_scm_mailbox_create0): Initialize itr to NULL.
      (mu-mailbox-first-message, mu-mailbox-next-message)
      (mu-mailbox-more-messages?): New function.
      * guimb/scm/sieve-core.scm (sieve-run): Rewrite
      main loop in the True Schemish Way.
      Sergey Poznyakoff authored
    • * include/mailutils/mailbox.h (mu_mailbox_get_iterator): New function.
      * libproto/include/mailbox0.h (struct _mu_mailbox)<iterator>: New
      member.
      * mailbox/mbxitr.c: New file.
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add mbxitr.c
      Sergey Poznyakoff authored
    • * mailbox/attachment.c (_ISSPECIAL): Fix definition.
      Sergey Poznyakoff authored
    • * mailbox/attachment.c: Fix indentation.
      Sergey Poznyakoff authored
    • * am/guile.m4 (MU_CHECK_GUILE): Check for SCM_DEVAL_P et al.
      * libmu_scm/mu_guile.c (mu_guile_init): Protect calls to
      SCM_DEVAL_P &c. by #ifdef GUILE_DEBUG_MACROS
      * libmu_scm/mu_port.c [!HAVE_SCM_T_OFF](scm_t_off): New typedef.
      (mu_port_make_from_stream): Use scm_new_port_table_entry instead
      of the deprecated scm_add_to_port_table
      Sergey Poznyakoff authored
    • * libmu_scm/mu_logger.c (log_tag): New static.
      (mu-openlog): Preserve log tag in log_tag, because
      openlog stores its first argument as-is.
      Simplify argument handling.
      (mu-logger): Simplify argument handling.
      (mu-closelog): Free log_tag.
      Sergey Poznyakoff authored
    • * am/guile.m4 (MU_CHECK_GUILE): Check for scm_t_off.
      * include/mailutils/guile.h (mu_scm_makenum)
      (mu_set_variable): Remove prototypes.
      * libmu_scm/mu_address.c: Remove calls to deprecated Guile functions.
      * libmu_scm/mu_body.c: Likewise.
      * libmu_scm/mu_guile.c: Likewise.
      * libmu_scm/mu_mailbox.c: Likewise.
      * libmu_scm/mu_message.c: Likewise.
      * libmu_scm/mu_mime.c: Likewise.
      * libmu_scm/mu_util.c: Likewise.
      * libmu_scm/mu_scm.c (mu_scm_makenum): Remove.
      (mu_set_variable): Remove. Use scm_c_define instead.
      Sergey Poznyakoff authored
    • * mailutils/mutil.h: Include mailutils/mutil.h
      Sergey Poznyakoff authored
  5. 31 Mar, 2010 1 commit
    • The mu_cfg_parse_file function ignored special meaning of the
      initial "~/" in file names. This led to user configuration files
      not being read (mu_libcfg_parse_config creates such names if
      mu_load_user_rcfile is set).
      
      * mailbox/cfg_lexer.l (mu_cfg_parse_file): Expand initial tilde
      in the file name. Store expanded file name in the opool.
      (mu_get_config): Destroy tree only if it has actually been
      created.
      * mailbox/cfg_parser.y (mu_cfg_parse): Free allocated memory in
      case of error.
      (do_include): Fix memory leak.
      Sergey Poznyakoff authored
  6. 19 Mar, 2010 2 commits
  7. 12 Mar, 2010 1 commit
  8. 21 Feb, 2010 2 commits
    • * include/mailutils/cfg.h (mu_cfg_node)
      <next,node>: Remove members.
      <nodes>: New member.
      (mu_cfg_tree)<head,tail>: Remove.
      <nodes>: New member.
      (mu_cfg_iter_closure): New struct.
      (mu_cfg_preorder): Change prototype.
      (mu_cfg_postorder): Remove.
      (mu_cfg_create_node_list): New proto.
      (mu_cfg_tree_create_node): Change signature.
      (mu_cfg_tree_add_nodelist): New proto.
      (mu_cfg_find_node): Change signature.
      * include/mailutils/libargp.h (mu_argp_node_list): Remove struct.
      (mu_argp_node_list_init, mu_argp_node_list_add)
      (mu_argp_node_list_new, mu_argp_node_list_finish): Change signature.
      * libmu_argp/cmdline.c (mu_argp_node_list_init, mu_argp_node_list_add)
      (mu_argp_node_list_new, mu_argp_node_list_finish): Take mu_list_t as
      the nodelist argument.
      
      * mailbox/cfg_parser.y (parse_head,parse_tail): Remove.
      (parse_node_list): New static, used instead of the above.
      All uses updated.
      (mu_cfg_alloc_node): Last argument is mu_list_t.
      (mu_cfg_create_node_list): New function.
      (mu_cfg_tree_postprocess): Rewrite.
      (mu_cfg_preorder): Rewrite.
      (mu_cfg_postorder): Remove.
      (mu_cfg_destroy_tree): Use mu_list_destroy to free
      the node list.
      (mu_cfg_scan_tree): Update calls to mu_cfg_preorder.
      (mu_cfg_tree_add_node): Rewrite.
      (mu_cfg_tree_add_nodelist): New function.
      (mu_cfg_find_node): Change type of the first argument.
      (mu_cfg_create_subtree): Rewrite.
      
      * mailbox/cfg_format.c (mu_cfg_format_parse_tree)
      (mu_cfg_format_node): Use new mu_cfg_preorder function.
      
      * libmu_argp/common.c: Update calls to mu_argp_node_ functions.
      * libmu_argp/auth.c: Likewise.
      * comsat/comsat.c: Likewise.
      * config/mailutils-config.c: Likewise.
      * dotlock/dotlock.c: Likewise.
      * imap4d/imap4d.c: Likewise.
      * libmu_argp/sieve.c: Likewise.
      * libmu_argp/tls.c: Likewise.
      * maidag/maidag.c: Likewise.
      * mimeview/mimeview.c: Likewise.
      * movemail/movemail.c: Likewise.
      * pop3d/pop3d.c: Likewise.
      * readmsg/readmsg.c: Likewise.
      * sieve/sieve.c: Likewise.
      Sergey Poznyakoff authored
    • Bugfixes. · afce403c
      * mailbox/listlist.c (mu_list_append_list)
      (mu_list_prepend_list): Initialize head.next and head.prev
      if the destination list was empty.
      * mailbox/freeitem.c: Include stdlib.h.
      * mailbox/list.c: Minor style fix.
      Sergey Poznyakoff authored
  9. 20 Feb, 2010 3 commits
    • * include/mailutils/iterator.h (mu_itrctl_qry_direction)
      (mu_itrctl_set_direction): New mu_itrctl_req constants.
      * mailbox/iterator.c (mu_iterator_dup): Bugfix: copy dup as well.
      * mailbox/list.c (struct list_iterator)
      <backwards>: New member.
      (first, next): Move direction depends on the value
      of list_iterator.backwards.
      (list_itrctl): Handle mu_itrctl_qry_direction and
      mu_itrctl_set_direction
      
      * examples/listop.c (ictl_dir): New function.
      (ictl_ins): Handle new subcommand "dir".
      (help): Show new subcommand "dir".
      * mailbox/testsuite/mailbox/list.exp: Add tests for
      iteration backwards.
      Sergey Poznyakoff authored
    • * include/mailutils/iterator.h (mu_itrctl_delete_nd)
      (mu_itrctl_replace_nd): New mu_itrctl_req constants.
      * include/mailutils/list.h (mu_list_remove_nd)
      (mu_list_replace_nd): New prototypes.
      (mu_list_destroy_item_t): New typedef.
      (mu_list_set_destroy_item): Return mu_list_destroy_item_t.
      * mailbox/list.c (DESTROY_ITEM): New macro.
      (mu_list_destroy): Use DESTROY_ITEM.
      (mu_list_remove, mu_list_replace): Actually destroy the
      item being removed.
      (mu_list_remove_nd, mu_list_replace_nd): New functions.
      (mu_list_set_destroy_item): Return previous value of
      destroy_item.
      (list_itrctl): Handle mu_itrctl_delete_nd and mu_itrctl_replace_nd.
      
      * mailbox/observer.c (mu_observable_create): Register destroy_item
      function.
      (mu_observable_destroy): Remove explicit loop. Rely on destroy_item
      instead.
      (mu_observable_detach): Use mu_iterator_ctl to actually
      remove the event.
      * mh/mh_alias.y (_insert_list): Remove.
      (alias_expand_list): Use mu_iterator_ctl to insert
      replacement list and remove the current item.
      * mh/sortm.c (addop): Register destroy_item function.
      (remop): Remove call to free.
      * movemail/movemail.c (main): <uidl loop>: Use mu_itrctl_delete
      to remove items.
      
      * libmu_sieve/util.c: Minor change.
      
      * mail/util.c (util_slist_compare): New static function.
      (util_slist_add): Register destroy_item and comparison
      functions for the new list.
      (util_slist_remove,util_slist_destroy): Rewrite.
      
      * imap4d/authenticate.c (auth_add): Use mu_list_free_item as
      destroy_item function.
      * imap4d/util.c (util_register_event): Likewise.
      
      * include/mailutils/cpp/list.h (List)<set_destroy_item>: Change
      return value.
      * libmu_cpp/list.cc (List::set_destroy_item): Reflect changes to
      mu_list_set_destroy_item.
      * libmu_argp/common.c: Include stdlib.h
      Sergey Poznyakoff authored
    • * include/mailutils/iterator.h (mu_itrctl_req): New enum.
      (mu_iterator_skip, mu_iterator_ctl)
      (mu_iterator_set_itrctl): New prototypes.
      * include/mailutils/list.h (mu_list_free_item): New prototype.
      * libproto/include/iterator0.h (struct _mu_iterator)<itrctl>: New method.
      * libproto/include/list0.h (_mu_list_clear): New proto.
      * mailbox/iterator.c (mu_iterator_set_itrctl): New function.
      (mu_iterator_skip, mu_iterator_ctl): New functions.
      * mailbox/list.c (_insert_item): Re-implement function.
      (mu_list_insert): Use _insert_item again.
      (mu_list_remove): Don't keep track of the previous item.
      (list_itrctl): New function.
      (mu_list_get_iterator): Set itrctl method.
      * mailbox/listlist.c (clear_list): Rename to _mu_list_clear,
      remove static qualifier. All uses updated.
      
      * mailbox/freeitem.c: New file.
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add freeitem.c.
      
      * examples/listop.c (read_list): Rewrite to simplify
      calling convention. All callers updated.
      (inctl_tell,ictl_del,ictl_repl)
      (ictl_ins,ictl): New functions.
      (help): Add new commands.
      (shell): Handle "inctl" command.
      (delete): Fix memory leak.
      (main): Set mu_list_free_item as a destroy_item function.
      
      * mailbox/testsuite/mailbox/listop.c: Add ictl tests.
      
      * libmu_cfg/sieve.c (_add_path): Set mu_list_free_item as
      a destroy_item function.
      * mailbox/gocs.c (mu_gocs_store): Likewise.
      * maidag/lmtp.c (cfun_rcpt_to): Likewise.
      * imap4d/namespace.c (namespace_init): Likewise.
      * libmu_sieve/conf.c (_path_append): Likewise.
      Sergey Poznyakoff authored
  10. 19 Feb, 2010 3 commits
    • * include/mailutils/list.h (_mu_list_ptr_comparator)
      (mu_list_insert_list, mu_list_append_list)
      (mu_list_prepend_list): New prototypes.
      * libproto/include/list0.h (_mu_list_insert_sublist): New prototype.
      * mailbox/listlist.c: New function.
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add listlist.c.
      * mailbox/list.c: Remove unnecessary parentheses.
      (def_comp): Rename to _mu_list_ptr_comparator.
      Remove static qualifier. All uses updated.
      (_insert_item): Remove.
      (mu_list_insert): Use _mu_list_insert_sublist instead of _insert_item.
      * examples/listop.c (print): Print number of elements.
      (count): New function.
      (ins): Use mu_list_insert if only one new element was given,
      mu_list_insert_list otherwise.
      (help): Update.
      (main)<count>: New keyword.
      * mailbox/testsuite/mailbox/list.exp: Update. Add new tests.
      Sergey Poznyakoff authored
    • * mailbox/attachment.c (MAX_HDR_LEN): Remove unused define.
      * sieve/sieve.c (parser) <ARGP_KEY_NO_ARGS>: Don't check for
      the script,
      (main): ... do it here, instead.
      Sergey Poznyakoff authored
    • * configure.ac [WITH_GSSAPI]: Remove any -Wl directives from GSSAPI_LIBS.
      Sergey Poznyakoff authored
  11. 17 Feb, 2010 2 commits
  12. 11 Feb, 2010 1 commit
  13. 09 Feb, 2010 6 commits
    • * mailbox/base64.c (mu_base64_encode): Make sure output buffer
      is null-terminated.
      * imap4d/auth_gss.c (auth_gssapi): Assume buffer returned
      by mu_base64_encode is null-terminated.
      * libproto/mailer/smtp.c (cram_md5): Take challenge_len
      as argument. All callers updated.
      (smtp_auth): Fix eventual memory override. Assume buffer returned
      by mu_base64_encode is nul-terminated.
      (smtp_parse_ehlo_ack): Fix capability parsing: (a) do not depend
      on the continuation marker ('-' or ' ') and (b) fix parsing of
      the SIZE capablity.
      Move call to mu_rtrim_cset out of the internal loop.
      Sergey Poznyakoff authored
    • * libmu_auth/tls.c (_tls_destroy): Destroy underlying streams,
      unless MU_STREAM_NO_CLOSE is set.
      (_tls_close): Likewise for close.
      Sergey Poznyakoff authored
    • Bugfixes. · 7cdb5991
      * libproto/imap/mbox.c (imap_append_message0): Send trailing CRLF,
      not just LF.
      * mailbox/cfg_parser.y (mu_cfg_parse): Zero out _mu_cfg_debug
      to avoid destroying it doubly.
      * mailbox/mbx_default.c (plus_expand): Remove unused variable.
      Sergey Poznyakoff authored
    • * imap4d/id.c
      * libproto/imap/folder.c
      * libproto/pop/mbox.c
      * sieve/sieve.c
      Sergey Poznyakoff authored
    • * sieve/testsuite/sieve/ext.exp [!HAVE_LIBLTDL]: Use unsupported
      instead of returning 0.
      Sergey Poznyakoff authored
    • * libproto/mailer/remote.c: Fix compilation with --disable-sendmail.
      * mail/testsuite/mail/send.exp: Ignore test (return UNSUPPORTED), if
      sendmail support is not compiled.
      * sieve/testsuite/sieve/redirect.exp: Likewise.
      * sieve/testsuite/sieve/reject.exp: Likewise.
      Sergey Poznyakoff authored
  14. 27 Jan, 2010 1 commit
    • * mailbox/mbx_default.c (plus_expand): Do not treat the part
      between initial + and / as user name.
      * mh/mh_format.c (print_fmt_segment): New function.
      (print_fmt_string): Correctly handle multi-line inputs.
      Sergey Poznyakoff authored
  15. 14 Jan, 2010 1 commit
    • * libmu_scm/mu_mailbox.c (mu-mailbox-get-port): Fix return value.
      * libmu_scm/mu_port.c (mu_port_flush): Avoid warnings on passing
      arg 2 to mu_stream_write.
      (mu_port_free): Return 0.
      * libmu_scm/mu_message.c (mu_scm_message_free): Return 0.
      Sergey Poznyakoff authored
  16. 13 Jan, 2010 1 commit
    • * libmu_scm/mu_address.c: Use scm_to_locale_string
      instead of relying on scm_i_string_chars.
      * libmu_scm/mu_logger.c: Likewise.
      * libmu_scm/mu_mailbox.c: Likewise.
      * libmu_scm/mu_scm.c: Likewise.
      * libmu_scm/mu_util.c: Likewise.
      * libmu_scm/mu_message.c: Likewise.
      (mu_scm_message_add_owner): Don't use SCM_NEWCELL.
      (mu-message-get-envelope)
      (mu-message-get-envelope-date): New functions.
      (string_sloppy_member): Compare scm_i_string_length
      bytes from the car.
      (mu-message-get-header-fields): Don't use SCM_NEWCELL.
      * libmu_scm/mu_port.c (mu_port_make_from_stream): Don't use SCM_NEWCELL.
      Sergey Poznyakoff authored