1. 26 Oct, 2015 1 commit
    • * libmu_sieve/extensions/vacation.c (match_addresses): Change arguments:
      take primary email address as well as a list of aliases.
      (vacation_reply): Reply if the primary email or one of alias emails are
      listed in recipient list of the original message.  New tag "always_reply"
      reverts to the old behavior: reply regardless of whether the message is
      destined for us.
      Use the current user email as the sender address of the vacation message.
      New tag "return_address" sets the sender address explicitly.
      * sieve/tests/vacation.at: Add new tests.
      Sergey Poznyakoff authored
  2. 25 Oct, 2015 1 commit
    • * libmu_sieve/extensions/vacation.c (build_mime): Fix memory leak.
      This also flushes the message body stream, so its content becomes
      visible for the mailer.
      (noreply_address_p): Rename "addresses" tag to "noreply".
      (check_db): The "database" tag provides vacation database name.
      (vacation_reply): Always set message headers.
      (vacation_tags): Rename "addresses" tag to "noreply".
      New tag: "database"
      
      * sieve/tests/vacation.at: New file.
      * sieve/tests/Makefile.am (TESTSUITE_AT): Add vacation.at.
      * sieve/tests/testsuite.at: Include vacation.at.
      
      * doc/texinfo/programs.texi: Minor change.
      Sergey Poznyakoff authored
  3. 20 Sep, 2015 1 commit
  4. 19 Sep, 2015 1 commit
    • * include/mailutils/wordsplit.h (MU_WRDSX_WORD)
      (MU_WRDSX_QUOTE): New constants.
      (mu_wordsplit_getwords): Rename to mu_wordsplit_get_words.
      * libmailutils/string/wordsplit.c (mu_wordsplit_getwords): Rename
      to mu_wordsplit_get_words.
      
      * libmailutils/base/userprivs.c (mu_switch_to_privs): Fix
      memory overrun when retrieving the current pointer.
      
      * examples/header.c (main): Use mu_wordsplit_get_words
      * imap4d/preauth.c (preauth_getvar): Rewrite according to
      the new API.
      * libmailutils/imapio/create.c (mu_imapio_create): Use MU_WRDSX_
      constants to address ws_escape.
      * libmailutils/imapio/qstring.c: Likewise.
      * libmailutils/mailbox/mbx_default.c: Minor fix.
      * libmailutils/server/acl.c (acl_getvar): Rewrite according to
      the new API.
      * libmailutils/tests/wsp.c: Minor fix.
      * libmailutils/url/create.c (_mu_url_create_internal): Bugfix: alloc
      url->path.
      * libmu_sieve/extensions/list.c (retrieve_next_header): Use
      mu_wordsplit_get_words
      * libproto/mailer/prog.c (prog_getvar): Rewrite according to
      the new API.
      * libproto/mailer/smtp_gsasl.c (get_implemented_mechs): Remove
      unneeded assignment to ws.ws_wordv.
      * mh/folder.c: Use mu_wordsplit_get_words.
      * mh/mhn.c: Likewise.
      * movemail/movemail.c (movemail_getvar): Rewrite according to
      the new API.
      Sergey Poznyakoff authored
  5. 16 Sep, 2015 1 commit
    • The updated version supports tilde and pathname expansion, command
      substitution and standard shell-like replacement constructs in
      variable substitution, such as ${X:-V} etc.
      
      * include/mailutils/wordsplit.h: Update.
      * libmailutils/string/wordsplit.c: Update.
      * libmailutils/tests/wsp.c: Update.
      * libmailutils/tests/wordsplit.at: Update unescape test.
      
      * libmailutils/imapio/create.c (mu_imapio_create): Initialize ws_escape
      array.
      * libmailutils/mime/mimehdr.c (_mime_header_parse): Likewise.
      * libmailutils/tests/modmesg.c: Use mu_wordsplit with MU_WRDSF_NOSPLIT
      to run expansions on the string.
      * mu/shell.c (shell_prompt): Likewise.
      Sergey Poznyakoff authored
  6. 24 Aug, 2015 1 commit
  7. 04 Aug, 2015 2 commits
  8. 11 Jul, 2015 3 commits
    • Sergey Poznyakoff authored
    • * include/mailutils/stream.h (MU_IOCTL_TLSSTREAM): New ioctl code.
      (MU_IOCTL_TLS_GET_CIPHER_INFO): New ioctl opcode.
      * libmailutils/property/assocprop.c (_assoc_prop_fill)
      (_assoc_prop_save): allow for NULL stream pointer.
      * libmu_auth/tls.c (_tls_io_ioctl,_tls_ioctl): Handle
      MU_IOCTL_TLSSTREAM/MU_IOCTL_TLS_GET_CIPHER_INFO ioctl.
      
      * imap4d/io.c (log_cipher): New function.
      (io_setio, imap4d_init_tls_server): Call log_cipher after successfully
      establishing the TLS connection.
      * imap4d/starttls.c (tls_encryption_on): Remove diagnostic output.
      * pop3d/extra.c (log_cipher): New function.
      (pop3d_setio,pop3d_init_tls_server): Call log_cipher after successfully
      establishing the TLS connection.
      Sergey Poznyakoff authored
    • * libmailutils/mailbox/mbx_default.c (mu_normalize_mailbox_url): don't
      place / in front of the username.
      (plus_expand): Use mu_make_file_name and mu_asprintf.  Check for errors.
      (mu_mailbox_create_default): Check for errors.
      Sergey Poznyakoff authored
  9. 10 Jul, 2015 1 commit
    • Avoid calling gnutls_global_init (via mu_tls_module_init) prior
      to forking.  gnutls_global_init opens at least one file descriptor
      (/dev/urandom), and closing it will disrupt its operation.
      Current stable libgnutls (3.3.15) is able to cope with it, but
      there are plenty of systems running much older versions.
      
      * libmailutils/server/msrv.c (mu_m_server_begin): Reset onexit list
      after forking.
      * libmu_auth/tls.c (mu_tls_module_init): Don't call mu_init_tls_libs.
      (_tls_server_open, _tls_client_open): Check return value from
      mu_init_tls_libs.
      * imap4d/auth_gsasl.c (auth_gsasl): Use mu_onexit to
      register onexit functions.
      * imap4d/imap4d.h (util_atexit): Remove prototype.
      * imap4d/starttls.c (imap4d_starttls): Don't register
      mu_deinit_tls_libs: now done by tls library.
      (starttls_init): Don't call mu_init_tls_libs.
      * imap4d/util.c (util_atexit): Remove.
      (util_bye): Update accordingly.
      * pop3d/extra.c (pop3d_setio): Print informational message after
      establishing TLS.
      (pop3d_bye): Don't call mu_deinit_tls_libs: that's done by the library.
      * pop3d/pop3d.c (main): Don't call mu_init_tls_libs.
      Sergey Poznyakoff authored
  10. 09 Jul, 2015 2 commits
  11. 07 Jul, 2015 1 commit
    • Minor changes · 18bc3599
      * lib/Makefile.am: Add -version-info to LDFLAGS
      * libmu_cfg/Makefile.am: Likewise.
      * libmu_argp/Makefile.am: Use LIBADD to add library dependency
      Pass -version-info to LDFLAGS
      Sergey Poznyakoff authored
  12. 02 Jul, 2015 3 commits
    • * libmailutils/cfg/gocs.c (mu_gocs_register): Avoid registering
      same capability twice.
      Sergey Poznyakoff authored
    • * configure.ac: Version 2.99.99
      * NEWS: Update.
      * libmu_argp/mailutils.c: New file.
      * libmu_argp/Makefile.am: Add mailutils.c
      * libmu_argp/cmdline.c (all_cmdline_capa): Add mu_mailutils_cmdline.
      (mu_libargp_init): Register modflags function.
      * libmu_argp/mu_argp.c (mu_build_argp): Retain negative group numbers.
      (argp_capa): New member: modflags.
      (mu_register_argp_capa): Take pointer to modflags function as 3rd
      parameter.
      (mu_build_argp): Use modflags member to alter argp flags.
      (mu_argp_build): Take pointer to flags as its third argument.
      * libmu_argp/muinit.c (mu_app_init): Pass pointer to flags to mu_argp_build.
      * libmu_cfg/init.c (mu_libcfg_init): Silently ignore unknown groups
      
      * include/mailutils/libargp.h (mu_mailutils_cmdline): New extern.
      (mu_cmdline_capa): New member: modflags.
      (mu_argp_build): Change signature.
      (mu_register_argp_capa): Change signature.
      * libmailutils/cfg/gocs.c (std_gocs_table): Add dummy entry for "mailutils"
      
      * mu/Makefile.am (bin_PROGRAMS): Rename to "mailutils".
      * mu/dispatch.c (dispatch_docstring): Use mu_program_name instead of
      the hardcoded name.
      * mu/mu.c: Use "mailutils" capability.
      * mu/mailutils-config.in: Rename to mu/mailutils-config
      
      * comsat/comsat.c: Use "mailutils" capability.
      * dotlock/dotlock.c: Likewise.
      * examples/muauth.c: Likewise.
      * examples/muemail.c: Likewise.
      * frm/frm.c: Likewise.
      * frm/from.c: Likewise.
      * imap4d/imap4d.c: Likewise.
      * maidag/maidag.c: Likewise.
      * mail/mail.c: Likewise.
      * messages/messages.c: Likewise.
      * mimeview/mimeview.c: Likewise.
      * movemail/movemail.c: Likewise.
      * pop3d/pop3d.c: Likewise.
      * pop3d/popauth.c: Likewise.
      * readmsg/readmsg.c: Likewise.
      * sieve/sieve.c: Likewise.
      Sergey Poznyakoff authored
    • * mh/prompter.c (main): Use mu_stream_printf instead of printf
      Sergey Poznyakoff authored
  13. 28 Jun, 2015 2 commits
    • * libproto/maildir/mbox.c (maildir_msg_finish_delivery):
      Don't complain if trying to unlink a nonexistent file.
      Sergey Poznyakoff authored
    • * configure.ac: Check for intptr_t
      * comsat/action.c (need_crlf): Use intermediate cast to intptr_t.
      * imap4d/imap4d.c (cb2_group, mu_get_user_groups): Likewise.
      * libmailutils/stream/file_stream.c (fd_ioctl): Likewise.
      * libmailutils/stream/mapfile_stream.c (_mapfile_ioctl): Likewise.
      * libmailutils/stream/tcp.c (_tcp_ioctl): Likewise.
      * maidag/maidag.c (cb2_group): Likewise.
      
      * frm/common.c (puts_bidi): Fix the type of 3rd parameter to
      fribidi_log2vis
      
      * include/mailutils/body.h: Use MU_DEPRECATED instead of\
       __attribute__ ((deprecated)).
      * include/mailutils/cfg.h: Likewise.
      * include/mailutils/header.h: Likewise.
      * include/mailutils/libargp.h: Likewise.
      * include/mailutils/mailbox.h: Likewise.
      * include/mailutils/mailer.h: Likewise.
      * include/mailutils/registrar.h: Likewise.
      * include/mailutils/message.h: Likewise.
      (mu_message_set_stream): Remove deprecation marker.
      Sergey Poznyakoff authored
  14. 27 Jun, 2015 4 commits
    • * python/libmu_py/libmu_py.c (_ro): Remove inline qualifier.
      * python/libmu_py/libmu_py.h: Likewise.
      Sergey Poznyakoff authored
    • * python/libmu_py/address.c: Use PyInt_FromSize_t to return size_t
      and similar values.
      * python/libmu_py/auth.c: Likewise.
      * python/libmu_py/body.c: Likewise.
      * python/libmu_py/header.c: Likewise.
      * python/libmu_py/mailbox.c: Likewise.
      * python/libmu_py/mailcap.c: Likewise.
      * python/libmu_py/message.c: Likewise.
      * python/libmu_py/mime.c: Likewise.
      * python/libmu_py/sieve.c: Likewise.
      * python/libmu_py/stream.c: Likewise.
      Sergey Poznyakoff authored
    • * lib/python.c (python_proc): Pass a copy of mu_program_name
      as argv[0].
      * python/libmu_py/libmu_py.h (ASSERT_INDEX_RANGE): New macro.
      * python/libmu_py/address.c: Use Py_ssize_t and check returned
      value range when getting size_t arguments.
      * python/libmu_py/auth.c: Likewise.
      * python/libmu_py/folder.c: Likewise.
      * python/libmu_py/header.c: Likewise.
      * python/libmu_py/mailbox.c: Likewise.
      * python/libmu_py/mailcap.c: Likewise.
      * python/libmu_py/message.c: Likewise.
      * python/libmu_py/mime.c: Likewise.
      * python/libmu_py/secret.c: Likewise.
      * python/libmu_py/stream.c: Likewise.
      Sergey Poznyakoff authored
    • * lib/muscript.h: Don't include config.h: the caller is responsible
      for that.
      * lib/guile.c: Include config.h
      * lib/python.c: Likewise.
      * lib/script.c: Likewise.
      * lib/sieve.c: Likewise.
      Sergey Poznyakoff authored
  15. 26 Jun, 2015 3 commits
    • * mh/prompter-tty.c: include signal.h
      Sergey Poznyakoff authored
    • That's a temporary solution until reference counters are implemented
      for mu_body_t
      
      * libmailutils/mailbox/body.c (bstr_close, bstr_done): Don't close
      streams.
      Sergey Poznyakoff authored
    • * configure.ac: Fix checks for readline.  If it is
      not present - bail out if it was explicitly requested
      and silently disable it otherwise.
      Check for dbm_dirfno and dbm_pagfno (see libmu_dbm/ndbm.c,
      below).
      * examples/mboxidx.c (set_charset_filter): Fix array dimensions.
      * lib/python.c (python_done): add missing return statement.
      * libmailutils/address/address.c (mu_address_union): Fix size
      argument to memset.
      * libmailutils/server/msrv.c (mu_m_server_get_hints): Likewise.
      * libmu_compat/vartab.c (vardefn_free): Likewise.
      * libmailutils/cfg/parser.y (_set_fun): cast enum to size_t before
      comparison
      * libmailutils/diag/wd.c (mu_wd): fix while loop.
      * libmailutils/tests/url-parse.c (main): Fix printf format.
      * libmu_dbm/ndbm.c (_ndbm_get_fd): One of dbm_dirfno or
      dbm_pagfno may be missing (on FreeBSD, dbm_pagfno expands
      to a non-defined macro, which produces compilation error.
      * mail/mailvar.c (mailvar_varptr_comp): Remove.
      (mailvar_list_copy): Use mailvar_variable_comp instead
      of the removed mailvar_varptr_comp.
      Sergey Poznyakoff authored
  16. 24 Jun, 2015 2 commits
    • Sergey Poznyakoff authored
    • This commit converts libmuaux into installable shared library that
      includes selected modules from gnulib.  Correspondingly,
      lubmu_argp is also converted into installable shared library, which
      is the main purpose of these changes.  This should allow other packages
      which depend on Mailutils to link against libmu_argp even on systems
      that for some reason choose not to include static libraries in their
      distribution (vide Debian).  Another side effect is that such packages
      won't need to bother about argp being present on the system, as it is
      now included in libmuaux.so.
      
      * bootstrap.conf: Don't create Makefile.am
      Build gnulib using libtool and use mu_am_flags custom module
      * lib/local/modules/mu_am_flags: New file.
      * configure.ac (MU_APP_LIBRARIES): Use libmu_argp.la
      (TCPWRAP_LIBRARIES): Add libmutcpwrap.a
      * lib/Makefile.am: Make libmuaux installable shared library
      New static library libmutcpwrap.a
      * libmu_argp/Makefile.am: Make libmu_argp installable shared library
      * examples/Makefile.am: Use libmu_argp.la
      * examples/cpp/Makefile.am: Likewise.
      * imap4d/Makefile.am: Likewise.
      * mapi/Makefile.am: Likewise.
      * mh/Makefile.am: Likewise,
      * pop3d/Makefile.am: Likewise.
      Sergey Poznyakoff authored
  17. 23 Jun, 2015 2 commits
  18. 05 May, 2015 2 commits
    • Minor fix · 007bb14e
      Sergey Poznyakoff authored
    • * configure.ac: Configure mail/tests subdirectory.
      * mail/Makefile.am (SUBDIRS): Add tests.
      * mail/tests/testsuite.at: New file.
      * mail/tests/Makefile.am: New file.
      * mail/tests/.gitignore: New file.
      * mail/tests/atlocal.in: New file.
      * mail/tests/cols00.at: New file.
      * mail/tests/cols01.at: New file.
      * mail/tests/copy00.at: New file.
      * mail/tests/nohome.at: New file.
      * mail/tests/version.at: New file.
      Sergey Poznyakoff authored
  19. 04 May, 2015 1 commit
    • Last argument is treated as a mailbox only if it begins with
      a mailbox scheme (mbox://, maildir://, etc).
      
      * mail/copy.c (append_to_mailbox)
      (append_to_file): New functions.
      (mail_copy0): Depending on whether mailbox scheme is specified,
      call one of the above functions.
      * doc/texinfo/programs.texi (mail): Fix documentation of the copy
      command.
      * mail/testsuite/mail/write.exp: Update line/character counts for
      [Ss]ave commands.
      Sergey Poznyakoff authored
  20. 03 May, 2015 5 commits
    • * doc/texinfo/programs.texi: Fix description of mail --print
      Sergey Poznyakoff authored
    • * readmsg/readmsg.c: Bail out unless arguments are present.
      * doc/texinfo/programs.texi: Update.
      Sergey Poznyakoff authored
    • The Config file applies to all output formats, which is wrong.
      Use a dedicated configuration file for html output formats, and
      default settings for the rest.
      
      * doc/texinfo/Makefile.am (GENDOCS): Add html-specific configuration file.
      * doc/texinfo/Config: Rename to doc/texinfo/html.init (with changes).
      * doc/texinfo/programs.texi: Fix sectioning.
      Sergey Poznyakoff authored
    • * mail/util.c (util_command_list): Use util_screen_columns instead of
      util_getcols.
      (util_getcols): Don't use COLUMNS.
      (util_getlines): Don't use LINES.
      * mail/mail.c: Don't force COLUMNS and LINES (they are normally not
      exported, so setting them will cause util_getcols and util_getlines
      to return wrong results).
      Set variable "columns" from envvar COLUMNS, if set to a numeric value.
      Set variable "screen" from envvar LINES, if set to a numeric value.
      * mail/from.c (format_headline): Use util_screen_columns instead of
      util_getcols.
      * mail/mailvar.c (mailvar_print,mail_variable): Likewise.
      * mail/print.c (mail_print_msg): Likewise.
      Sergey Poznyakoff authored
    • The _mu_mailbox_pattern variable is supposed to be set only from
      configuration file.  However, the mu_mailbox_url function would
      also set it as a side effect.  This produced strange results;
      in particular unsetting HOME variable caused mail utilities to ignore
      MAIL variable as well (as reported by Dan Jacobson on 2015-04-30,
      <87vbgemcc7.fsf@jidanni.org>).
      
      * configure.ac (MU_PATH_MAILDIR): Don't end with a slash.
      * libmailutils/mailbox/mbx_default.c
      (mu_normalize_mailbox_url): Use mu_make_file_name.
      (mu_mailbox_url): Don't set _mu_mailbox_pattern.
      Sergey Poznyakoff authored
  21. 27 Apr, 2015 1 commit
    • Setting non-existing variable in bin/mail at the start of the session
      caused further calls to set (without arguments) to malfunction.  This
      reveiled bugs in list mapping functions.
      
      On the other hand, invoking completion after "set var=" caused bin/mail
      to coredump.
      
      * libmailutils/list/gmap.c (mu_list_gmap): Initialize rc.
      * libmailutils/list/map.c: Always initialize *res.
      * mail/mailvar.c (mailvar_list_copy): The call to mu_list_map
      does not necessarily create the list. Create it, if it doesn't.
      (mailvar_iterate_next): Redo the loop: check if there are items
      to iterate over.
      Sergey Poznyakoff authored