1. 08 Apr, 2010 1 commit
  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
    • * 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
    • * 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
    • Minor fix. · 58e8f426
      * 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
  17. 05 Jan, 2010 4 commits
    • Bugfixes. · c29efb85
      * mailbox/stream.c (mu_stream_readline): Account for terminating
      null (fixes buffer overrun).
      (mu_stream_getline): Fix reallocation condition.
      Sergey Poznyakoff authored
    • * configure.ac: Remove doc/rfc/Makefile.am
      * doc/Makefile.am (SUBDIRS): Remove rfc.
      (EXTRA_DIST): Add rfc/README.
      * doc/rfc/README: New file.
      * doc/rfc/CMC_V1.PS.gz: Remove.
      * doc/rfc/Makefile.am: Remove.
      * doc/rfc/rfc1413.txt: Remove.
      * doc/rfc/rfc1521.txt: Remove.
      * doc/rfc/rfc1731.txt: Remove.
      * doc/rfc/rfc1734.txt: Remove.
      * doc/rfc/rfc1738.txt: Remove.
      * doc/rfc/rfc1870.txt: Remove.
      * doc/rfc/rfc1891.txt: Remove.
      * doc/rfc/rfc1892.txt: Remove.
      * doc/rfc/rfc1893.txt: Remove.
      * doc/rfc/rfc1894.txt: Remove.
      * doc/rfc/rfc1939.txt: Remove.
      * doc/rfc/rfc1957.txt: Remove.
      * doc/rfc/rfc2045.txt: Remove.
      * doc/rfc/rfc2046.txt: Remove.
      * doc/rfc/rfc2047.txt: Remove.
      * doc/rfc/rfc2049.txt: Remove.
      * doc/rfc/rfc2060-errata
      * doc/rfc/rfc2060.txt: Remove.
      * doc/rfc/rfc2087.txt: Remove.
      * doc/rfc/rfc2088.txt: Remove.
      * doc/rfc/rfc2111.txt: Remove.
      * doc/rfc/rfc2177.txt: Remove.
      * doc/rfc/rfc2180.txt: Remove.
      * doc/rfc/rfc2192.txt: Remove.
      * doc/rfc/rfc2193.txt: Remove.
      * doc/rfc/rfc2195.txt: Remove.
      * doc/rfc/rfc2221.txt: Remove.
      * doc/rfc/rfc2222.txt: Remove.
      * doc/rfc/rfc2231.txt: Remove.
      * doc/rfc/rfc2245.txt: Remove.
      * doc/rfc/rfc2298.txt: Remove.
      * doc/rfc/rfc2342.txt: Remove.
      * doc/rfc/rfc2368.txt: Remove.
      * doc/rfc/rfc2384.txt: Remove.
      * doc/rfc/rfc2444.txt: Remove.
      * doc/rfc/rfc2449.txt: Remove.
      * doc/rfc/rfc2595.txt: Remove.
      * doc/rfc/rfc2683.txt: Remove.
      * doc/rfc/rfc2808.txt: Remove.
      * doc/rfc/rfc2821.txt: Remove.
      * doc/rfc/rfc2822.txt: Remove.
      * doc/rfc/rfc2831.txt: Remove.
      * doc/rfc/rfc3028.txt: Remove.
      * doc/rfc/rfc3206.txt: Remove.
      * doc/rfc/rfc3348.txt: Remove.
      * doc/rfc/rfc3431.txt: Remove.
      * doc/rfc/rfc3501.txt: Remove.
      * doc/rfc/rfc3691.txt: Remove.
      * doc/rfc/rfc4314.txt: Remove.
      * doc/rfc/rfc821.txt: Remove.
      * doc/rfc/rfc822.txt: Remove.
      * doc/rfc/rfc934.txt: Remove.
      * doc/rfc/sasl-mechanisms: Remove.
      Sergey Poznyakoff authored
    • * sieve/examples/ex-1.10.2.sv: Use GNU indentation style
      * sieve/examples/ex-2.3a.sv: Likewise.
      * sieve/examples/ex-2.5.1.sv: Likewise.
      * sieve/examples/ex-2.7.3.sv: Likewise.
      * sieve/examples/ex-3.1a.sv: Likewise.
      * sieve/examples/ex-3.1b.sv: Likewise.
      * sieve/examples/ex-3.2.sv: Likewise.
      * sieve/examples/ex-4.1.sv: Likewise.
      * sieve/examples/ex-4.2.sv: Likewise.
      * sieve/examples/ex-4.4a.sv: Likewise.
      * sieve/examples/ex-4.4b.sv: Likewise.
      * sieve/examples/ex-4.5.sv: Likewise.
      * sieve/examples/ex-5.1.sv: Likewise.
      * sieve/examples/ex-5.7.sv: Likewise.
      * sieve/examples/ex-9.sv: Likewise.
      * sieve/examples/ex-save-all.sv: Likewise.
      * sieve/examples/example.sv: Likewise.
      * sieve/examples/exn-5.4.sv: Likewise.
      * sieve/examples/t-complex.sv: Likewise.
      * sieve/examples/t-exists.sv: Likewise.
      * sieve/examples/t-fileinto.sv: Likewise.
      * sieve/examples/t-mailutils.sv: Likewise.
      Sergey Poznyakoff authored
    • Happy GNU year!
      Sergey Poznyakoff authored
  18. 02 Jan, 2010 1 commit
    • * libmu_cfg/init.c (mu_libcfg_parse_config): Do not produce error
      if user configuration file is absent.
      * libmu_sieve/sieve.l: Include config.h in %top section.
      * mh/mh_alias.l: Likewise.
      * mimeview/mimetypes.l: Likewise.
      * mailbox/cfg_lexer.l: Likewise.
      (mu_get_config): Call mu_cfg_tree_postprocess.
      Sergey Poznyakoff authored