1. 05 Nov, 2016 3 commits
    • * libmailutils/opt/opt.c (sort_group): Don't assume stability of the sort.
      Use auxiliary data structure to sort array of options that contain aliases.
      * libmailutils/tests/parseopt.c (set_prog_args): Fix delimiter.
      * libmailutils/tests/strtoc.c (v_cidr_format): Error checking.
      * maidag/Makefile.am (maidag_LDADD): Reorder libraries to make sure maidag
      uses freshly built libraries (not the ones already installed in the system).
      * mh/pick.c (options): Bugfix.
      Sergey Poznyakoff authored
    • Sergey Poznyakoff authored
    • Minor changes · c8ae6507
      Sergey Poznyakoff authored
  2. 04 Nov, 2016 1 commit
    • * mail/escape.c (parse_headers): Moved to send.c
      (check_headers): New function.
      (escape_continue): Use check_headers.
      * mail/mail.c (read_recipients): New variable.
      The -t option sets read_recipients and editheaders
      * mail/mail.h (parse_headers): New proto.
      * mail/send.c: Special handling for -t option.
      (parse_headers): New function.
      * movemail/movemail.c (onerror statement): Accept a list as
      argument.
      
      * doc/texinfo/mailutils.texi: Update.
      * doc/texinfo/programs.texi: Update.
      Sergey Poznyakoff authored
  3. 03 Nov, 2016 1 commit
    • The field-map statement (.ldap.field-map & .sql.field-map) takes a
      list of mappings as argument.  For compatibility and for internal purposes,
      a string is still allowed.
      
      * doc/texinfo/programs.texi: Update.
      * include/mailutils/cfg.h (mu_cfg_field_map): New proto.
      * include/mailutils/sql.h (mu_password_type): Rename.
      (mu_sql_module_config) <positional>: Remove.
      (mu_sql_decode_password_type): Remove prototype.
      * libmailutils/base/mutil.c (mu_sql_decode_password_type): Remove
      function.
      * libmailutils/cfg/driver.c (mu_cfg_field_map): New function.
      * libmu_auth/ldap.c (cb_field_map): Use mu_cfg_field_map.
      (module_init): Fix default filter.
      * libmu_auth/sql.c (cb_field_map): Use mu_cfg_field_map.
      (mu_sql_param): Rename "password-type" statement to "password-encryption".
      Remove the "positional" statement.
      Sergey Poznyakoff authored
  4. 02 Nov, 2016 3 commits
    • Bugfix · d644964e
      * libmailutils/cfg/parser.y (mu_cfg_parse_config): Silently ignore
      ENOENT
      Sergey Poznyakoff authored
    • The default configuration file name is "mailutils.conf".  Legacy
      configuration file "mailutils.rc" is processed if necessary.
      
      * libmailutils/cli/cli.c: Rename main configuration file to mailutils.conf
      Remove 'rcfile' option aliases.
      (mu_cli_ext): Special handling for legacy configuration file.
      * NEWS: Update.
      * doc/texinfo/mailutils.texi: Update.
      * doc/texinfo/programs.texi: Update.
      Sergey Poznyakoff authored
    • * include/mailutils/cfg.h (mu_cfg_parse_hints):
      Rename site_rcfile to site_file, custom_rcfile to custom_file.
      Remove append_tree and data fields.
      (MU_PARSE_CONFIG_GLOBAL,MU_CFG_PARSE_PROGRAM): Remove.
      (MU_PARSE_CONFIG_VERBOSE): Rename to MU_CF_VERBOSE.
      (MU_PARSE_CONFIG_DUMP): Rename to MU_CF_DUMP.
      (MU_CFG_FMT_LOCUS): Rename to MU_CF_FMT_LOCUS.
      (MU_CFG_FMT_VALUE_ONLY): Rename to MU_CF_FMT_VALUE_ONLY.
      (MU_CFG_FMT_PARAM_PATH): Rename to MU_CF_FMT_PARAM_PATH.
      
      (MU_CFG_COMPATIBILITY,MU_CFG_DEPRECATED): Remove.
      (mu_parse_config, mu_get_config): Remove deprecated functions.
      
      * libmailutils/cli/cli.c (mu_general_help_text): New global.
      (app_data): New struct.
      (init_options): Construct configuration option group depending on
      which configuration files are in use.
      (mu_cli_ext): Don't use per-user configuration files for servers.
      Pass pointer to app_data structure as po.po_data
      (mu_cli): Set MU_CFHINT_PER_USER_FILE flag by default.
      
      * mail/testsuite/lib/mail.exp: Rewrite invocation of the mu_init command.
      * include/mailutils/cli.h (mu_cli_setup) <server>: New field.
      
      * comsat/comsat.c (cli): Mark as server.
      (main): Bugfix: pass pointer to server to mu_cli.
      * imap4d/imap4d.c (cli): Mark as server.
      * pop3d/pop3d.c: Likewise.
      
      * comsat/tests/testsuite.at: Use the --no-site-config
      option.
      * imap4d/tests/testsuite.at: Likewise.
      
      * libmailutils/cfg/driver.c: Update.
      * libmailutils/cfg/format.c: Update.
      * libmailutils/cfg/lexer.l: Update.
      * libmailutils/cfg/parser.y: Update.
      * mu/acl.c: Update.
      
      * pop3d/testsuite/lib/pop3d.exp: Likewise.
      
      * mu/mu.c: Don't read configuration files.
      * mu/query.c: Fix args_doc
      
      * testsuite/lib/mailutils.exp (mu_init): Change option handling.
      Set --no-config option by default.
      Sergey Poznyakoff authored
  5. 01 Nov, 2016 2 commits
    • * libmailutils/stream/logstream.c (_log_write): Force MU_LOG_LOCUS
      mode if the locus is given explicitly.
      Sergey Poznyakoff authored
    • * mh/mh_getopt.c (mh_opt_notimpl_warning): For boolean options,
      don't emit warning if the value would be set to false.
      * mh/anno.c: Fix the type of boolean unimplemented options.
      * mh/refile.c: Likewise.
      * mh/repl.c: Likewise.
      * mh/send.c: Likewise.
      Sergey Poznyakoff authored
  6. 31 Oct, 2016 1 commit
  7. 30 Oct, 2016 1 commit
    • * configure.ac: Version 2.99.993
      * NEWS: Update.
      
      * include/mailutils/opool.h (MU_OPOOL_DEFAULT)
      (MU_OPOOL_ENOMEMABRT): New defines.
      (mu_opool_create): Change meaning of the 2nd argument. All uses updated.
      (mu_opool_free, mu_opool_dup): New proto.
      * libmailutils/base/opool.c (_mu_opool) <memerr>: Replace with flags.
      <head,tail,free>: Rename.
      (mu_opool_free, mu_opool_dup): New functions.
      (mu_opool_head): Bugfix.
      Sergey Poznyakoff authored
  8. 29 Oct, 2016 3 commits
  9. 28 Oct, 2016 1 commit
    • Bugfix · b48ac923
      * configure.ac: Version 2.99.992
      * NEWS: Update.
      * libmailutils/opt/opt.c (add_option_cache): Use opt_default if
      no argument is given.
      Sergey Poznyakoff authored
  10. 24 Oct, 2016 2 commits
    • Sergey Poznyakoff authored
    • * include/mailutils/opt.h (MU_PARSEOPT_SPECIAL_ARGS): New flag.
      (mu_parseopt)<po_special_args>: New field.
      * libmailutils/opt/help.c (option_summary)
      (print_program_usage): Print po_special_args, if defined.
      * libmailutils/opt/opt.c (parseopt_init): Initialize po_special_args
      unless MU_PARSEOPT_SPECIAL_ARGS is set.
      
      MH: Advertise [+FOLDER] special argument if the -folder option is declared.
      
      * mh/mh_getopt.c (folder_option): Bugfix: -folder takes argument.
      (mh_getopt): Set po_special_args if the -folder option is declared.
      * mh/inc.c: Fix arg_doc.
      * mh/mhpath.c: Likewise.
      * mh/repl.c: Likewise.
      * mh/rmf.c: Likewise.
      * mh/rmm.c: Likewise.
      * mh/scan.c: Likewise.
      * mh/show.c: Likewise.
      Sergey Poznyakoff authored
  11. 23 Oct, 2016 1 commit
  12. 22 Oct, 2016 5 commits
    • Bugfixes · d8194bb3
      * libmailutils/cli/cli.c (mu_cli_ext): Initialize hints.data
      (accidentally deleted).
      * libmailutils/opt/help.c (mu_option_describe_options): Don't
      display dup_args_note in single-dash mode.
      * libmailutils/opt/progname.c (mu_set_program_name): Free the
      old value after allocating new copy.  This allows to pass
      mu_full_program_name as argument.  Set mu_program_name to point
      to a segment of mu_full_program_name, not the original arg.
      * mh/mh_getopt.c: Remove duplicate version option.
      * po/POTFILES.in: Add missing files.
      Sergey Poznyakoff authored
    • * include/mailutils/cfg.h (MU_CFG_APPEND_TREE): New flag.
      * include/mailutils/cli.h (mu_version_copyright): New extern.
      (mu_cli_ext): New proto.
      * libmailutils/cfg/parser.y (mu_cfg_parse_config): Check for
      MU_CFG_APPEND_TREE bit set before accessing hints->append_tree.
      * libmailutils/cli/cli.c (param_set): Likewise.
      (mu_cli_ext): New function.
      (mu_cli): Rewrite as an entry point to mu_cli_ext.
      
      * comsat/comsat.c: Remove inclusion of obsolete headers.
      * mu/help.c: Likewise.
      * pop3d/extra.c: Likewise.
      Sergey Poznyakoff authored
    • * libmu_auth/ldap.c: Fix compilation without ldap
      * mh/mh_getopt.c: Fix version output to match what MH-E expects
      Sergey Poznyakoff authored
    • * include/mailutils/cli.h (mu_version_func): Rename to mu_version_hook.
      * libmailutils/cli/cli.c: Likewise.
      * pop3d/popauth.c: Likewise.
      * mh/mh_getopt.c: (mh_getopt): Initialize NLS support. Install
      standard version hook (needed for mh-e autodetect feature).
      
      * mh/ali.c: Update prog_doc. Remove NLS initialization.
      * mh/anno.c: Likewise
      * mh/burst.c: Likewise
      * mh/comp.c: Likewise
      * mh/fmtcheck.c: Likewise
      * mh/folder.c: Likewise
      * mh/forw.c: Likewise
      * mh/inc.c: Likewise
      * mh/install-mh.c: Likewise
      * mh/mark.c: Likewise
      * mh/mhl.c: Likewise
      * mh/mhn.c: Likewise
      * mh/mhparam.c: Likewise
      * mh/mhpath.c: Likewise
      * mh/mhseq.c: Likewise
      * mh/msgchk.c: Likewise
      * mh/pick.c: Likewise
      * mh/prompter.c: Likewise
      * mh/refile.c: Likewise
      * mh/repl.c: Likewise
      * mh/rmf.c: Likewise
      * mh/rmm.c: Likewise
      * mh/scan.c: Likewise
      * mh/send.c: Likewise
      * mh/show.c: Likewise
      * mh/sortm.c: Likewise
      * mh/whatnow.c: Likewise
      * mh/whom.c: Likewise
      Sergey Poznyakoff authored
    • This finishes work started at commit bc73fc65.
      
      * include/mailutils/opt.h (mu_option_cache) <cache_arg>: Made const.
      * libmailutils/opt/opt.c (mu_option_cache_destroy): Don't free cache_arg.
      * doc/texinfo/mu-mh.texi: Update.
      
      * po/POTFILES.in: Remove obsolete files.
      * mh/tests/refile.at: Don't use double-dash options.
      
      * mh/mh_getopt.c (mh_opt_set_folder): New function.
      * mh/mh_getopt.h: Likewise.
      
      * mh/mhn.c: Convert to mh_getopt.
      * mh/mhparam.c: Likewise.
      * mh/mhpath.c: Likewise.
      * mh/mhseq.c: Likewise.
      * mh/msgchk.c: Likewise.
      * mh/pick.c: Likewise.
      * mh/pick.h: Likewise.
      * mh/pick.y: Likewise.
      * mh/prompter.c: Likewise.
      * mh/refile.c: Likewise.
      * mh/repl.c: Likewise.
      * mh/rmf.c: Likewise.
      * mh/rmm.c: Likewise.
      * mh/scan.c: Likewise.
      * mh/send.c: Likewise.
      * mh/show.c: Likewise.
      * mh/sortm.c: Likewise.
      * mh/whatnow.c: Likewise.
      * mh/whom.c: Likewise.
      Sergey Poznyakoff authored
  13. 21 Oct, 2016 1 commit
    • MH utilities will use only single-dash long options.
      
      * include/mailutils/opt.h (mu_option) <opt_default>: New member.
      * libmailutils/opt/opt.c (find_long_option): Improve detection
      of ambiguous options.
      (mu_option_set_value): Use default value (opt_default), if
      supplied.
      * mh/mh_argp.c: Delete.
      * mh/Makefile.am (libmh_a_SOURCES): Remove mh_argp.c
      * mh/mh_getopt.c: Rewrite from scratch using mailutils/opt
      * mh/mh_getopt.h: Likewise.
      * mh/mh.h: Add missing includes
      (mh_read_formfile, mh_alias_read): Change signatures.
      * mh/mh_alias.l (mh_alias_read): Name is const
      * mh/mh_init.c (mh_read_formfile): Name is const.
      
      * mh/ali.c: Convert to mh_getopt.
      * mh/anno.c: Likewise.
      * mh/burst.c: Likewise.
      * mh/comp.c: Likewise.
      * mh/fmtcheck.c: Likewise.
      * mh/folder.c: Likewise.
      * mh/forw.c: Likewise.
      * mh/inc.c: Likewise.
      * mh/install-mh.c: Likewise.
      * mh/mark.c: Likewise.
      * mh/mhl.c: Likewise.
      * mh/scan.c: Likewise.
      
      * mh/tests/burst.at: Don't use double-dash options
      * mh/tests/folder.at: Likewise.
      Sergey Poznyakoff authored
  14. 20 Oct, 2016 3 commits
    • * include/mailutils/opt.h (MU_PARSEOPT_SINGLE_DASH)
      (MU_PARSEOPT_NEGATION): New flags.
      (mu_parseopt) <po_negation, po_long_opt_start>: New fields.
      (mu_option_describe_options): Change signature.
      * libmailutils/opt/help.c (init_usage_vars): Initialize
      long_opt_col depending on the value of MU_PARSEOPT_SINGLE_DASH
      bit.
      (print_option): Handle single-dash long options and boolean
      options with negations.
      (option_summary): Likewise.
      (mu_option_describe_options): Take struct mu_parseopt *
      as its second parameter.
      * libmailutils/opt/opt.c (find_long_option): Handle
      boolean options with negations.  Return also a pointer
      to the mu_option describing the originally used option
      (as opposed to the canonical one returned by the function).
      (parse): Handle single-dash long options.
      (parseopt_init): Initialize po_negation and po_long_opt_start.
      * libmailutils/tests/parseopt.c (parseopt_param): Handle
      MU_PARSEOPT_SINGLE_DASH and MU_PARSEOPT_NEGATION.
      Sergey Poznyakoff authored
    • * libmailutils/stream/wordwrap.c (set_margin): Flush the stream
      if the new margin equals the current offset.
      (_wordwrap_write): Fix conditional
      Sergey Poznyakoff authored
    • * mu/ldflags.c: Ignore "cfg" and "argp" keywords.
      Sergey Poznyakoff authored
  15. 19 Oct, 2016 3 commits
    • Sergey Poznyakoff authored
    • * Makefile.am: Remove libmu_argp and libmu_cfg
      * configure.ac: Likewise.
      * libmu_argp/: Remove.
      * libmu_cfg/: Remove.
      * include/mailutils/Makefile.am (pkginclude_HEADERS): Remove gocs.h,
      libargp.h, libcfg.h
      
      * frm/frm.c: Register tls auth module
      * frm/from.c: Likewise.
      * maidag/maidag.c: Likewise.
      * mail/mail.c: Likewise.
      * messages/messages.c: Likewise.
      * movemail/movemail.c: Likewise.
      * readmsg/readmsg.c: Likewise.
      * sieve/sieve.c: Likewise.
      * frm/frm.h: Remove obsolete includes
      
      * imap4d/Makefile.am: Update.
      * imap4d/imap4d.c: Use mu_cli for command line and configuration
      parsing.
      * imap4d/imap4d.h: Update.
      
      * include/mailutils/gocs.h: Remove.
      * libmailutils/cfg/gocs.c: Remove.
      * libmailutils/cfg/Makefile.am: Remove gocs.c
      
      * include/mailutils/cli.h (mu_cli_capa_apply): Rename to
      mu_cli_capa_extend_settings
      (mu_cli_setup) <inorder, prog_doc_hook>: New fields.
      * include/mailutils/daemon.h: Remove obsolete includes.
      * include/mailutils/gsasl.h: Likewise.
      * include/mailutils/mailutils.h: Update.
      * include/mailutils/mu_auth.h (mu_auth_mode): New enum
      (mu_auth_module): Redo structure.
      * include/mailutils/opt.h (mu_parseopt) <po_prog_doc_hook>: New field.
      * include/mailutils/sql.h (mu_sql_module_config): New extern.
      (mu_sql_interface_index): Change proto.
      * libmailutils/auth/mu_auth.c: Rewrite.
      * libmailutils/auth/system.c (mu_auth_system_module): Update structure
      * libmailutils/cli/capa.c (mu_cli_capa_apply): Rename to
      mu_cli_capa_extend_settings
      * libmailutils/cli/cli.c: Extend settings from auth modules as well.
      * libmailutils/opt/help.c (mu_program_help): Invoke po_prog_doc_hook
      if defined.
      * libmailutils/opt/opt.c (parseopt_init): Check the
      MU_PARSEOPT_PROG_DOC_HOOK flag.
      (find_long_option): Fix recognition of ambiguous options in case
      of exact match.
      * libmu_auth/gsasl.c: Add configuration.
      * libmu_auth/ldap.c: Likewise.
      * libmu_auth/pam.c: Likewise.
      * libmu_auth/radius.c: Likewise.
      * libmu_auth/sql.c: Likewise.
      * libmu_auth/tls.c: Likewise.
      * libmu_auth/virtual.c: Likewise.
      
      * mu/Makefile.am: Update.
      * mu/mu.c: Rewrite using mu_cli
      * mu/mu.h: Likewise.
      * mu/acl.c: Likewise.
      * mu/cflags.c: Likewise.
      * mu/dbm.c: Likewise.
      * mu/dispatch.c: Likewise.
      * mu/filter.c: Likewise.
      * mu/flt2047.c: Likewise.
      * mu/getans.c: Likewise.
      * mu/getarg.c: Likewise.
      * mu/getyn.c: Likewise.
      * mu/help.c: Likewise.
      * mu/imap.c: Likewise.
      * mu/info.c: Likewise.
      * mu/ldflags.c: Likewise.
      * mu/logger.c: Likewise.
      * mu/pop.c: Likewise.
      * mu/query.c: Likewise.
      * mu/send.c: Likewise.
      * mu/shell.c: Likewise.
      * mu/smtp.c: Likewise.
      * mu/util.c: Likewise.
      * mu/verbose.c: Likewise.
      * mu/wicket.c: Likewise.
      
      * pop3d/Makefile.am: Update.
      * pop3d/pop3d.c: Convert to mu_cli interface.
      * pop3d/pop3d.h: Likewise.
      
      * sql/sql.c (mu_sql_interface_index): Change argument qualifiers.
      Sergey Poznyakoff authored
  16. 17 Oct, 2016 1 commit
  17. 16 Oct, 2016 3 commits
  18. 15 Oct, 2016 5 commits
    • Sergey Poznyakoff authored
    • Print "[OPTION...]", instead of "[OPTION]..."
      Sergey Poznyakoff authored
    • Sergey Poznyakoff authored
    • Alternative invocations follow the main one, each on a separate line,
      preceded by " or: ".
      
      * include/mailutils/cli.h (mu_cli_setup) <prog_alt_args>: New member.
      * include/mailutils/opt.h (mu_parseopt) <po_prog_args>: Change type.
      (mu_program_usage): Change signature.
      * include/mailutils/stream.h (MU_IOCTL_WORDWRAP_GET_OFFSET): Rename to
      MU_IOCTL_WORDWRAP_GET_COLUMN. All uses changed.
      * libmailutils/cli/cli.c (mu_cli): Construct po.po_prog_args from
      prog_args and prog_alt_args.
      * libmailutils/opt/help.c (move_margin): Remove.
      (print_program_usage): New static function.
      (mu_program_usage): Second argument instructs how to display options.
      Main work is done by print_program_usage.
      (mu_program_help): Call print_program_usage.
      * libmailutils/opt/opt.c: Update.
      * libmailutils/stream/wordwrap.c (set_margin): Avoid unnecessary flushes.
      
      * libmailutils/tests/parseopt.c (MU_PARSEOPT_PROG_ARGS): Alternative
      argument sets are separated by the pipe sign.
      * libmailutils/tests/Makefile.am: Add new testcase.
      * libmailutils/tests/testsuite.at: Likewise.
      * libmailutils/tests/parseopt_help04.at: Add MU_PARSEOPT_PROG_ARGS
      to keywords.
      * libmailutils/tests/parseopt_help12.at: New file.
      
      * libmailutils/tests/tcli.c (cli): Add alternative arguments.
      
      * dotlock/dotlock.c: Update.
      * mimeview/mimeview.c: Likewise.
      * sieve/sieve.c: Likewise.
      Sergey Poznyakoff authored
    • * include/mailutils/stream.h (MU_IOCTL_WORDWRAP_SET_NEXT_MARGIN)
      (MU_IOCTL_WORDWRAP_GET_OFFSET): New opcodes.
      * libmailutils/stream/wordwrap.c (_wordwrap_flush_line): Replace
      whitespace-only lines with single newline on output.
      (_wordwrap_flush): Fix condition.
      (set_margin): Bugfix.
      (_wordwrap_ctl): Handle new opcodes.
      
      * include/mailutils/cli.h (mu_version_func): Change signature.
      * include/mailutils/opt.h (mu_parseopt) <po_help_hook>
      <po_version_hook>: Change signature.
      (mu_parseopt_fmt_text): Remove.
      (mu_option_describe_options, mu_program_help)
      (mu_program_usage): Change signature.
      (mu_program_version): New prototype.
      * libmailutils/cli/cli.c (mu_version_func): Take mu_stream_t as
      2nd argument.  Use mu_stream_printf for output.
      (extra_help_hook): Likewise.
      * libmailutils/opt/help.c: Rewrite using wordwrap streams.
      * libmailutils/opt/opt.c (fn_help, fn_usage, fn_version): Update.
      * libmailutils/tests/parseopt.c (version_hook): Write to mu_stream_t.
      
      * libmailutils/tests/parseopt_help00.at: Fix expected output.
      * libmailutils/tests/parseopt_help01.at: Likewise.
      * libmailutils/tests/parseopt_help02.at: Likewise.
      * libmailutils/tests/parseopt_help03.at: Likewise.
      * libmailutils/tests/parseopt_help04.at: Likewise.
      * libmailutils/tests/parseopt_help05.at: Likewise.
      * libmailutils/tests/parseopt_help06.at: Likewise.
      * libmailutils/tests/parseopt_help07.at: Likewise.
      * libmailutils/tests/parseopt_help08.at: Likewise.
      * libmailutils/tests/parseopt_help09.at: Likewise.
      * libmailutils/tests/parseopt_help10.at: Likewise.
      * libmailutils/tests/parseopt_help11.at: Likewise.
      Sergey Poznyakoff authored