Age | Commit message (Collapse) | Author | Files |
|
|
|
* mu-aux/gylwrap (@yysym): Add more symbols from lex.
* mh/mh_alias_lex.l (mh_alias_read): Return meaningful value.
|
|
* mh/mh.h (ali_parse_error): Remove.
* mh/mh_alias_gram.y: Simplify parser. Use location tracking.
* mh/mh_alias_lex.l: Switch to mu_linetrack facility
* mh/tests/ali.at: Update expected location.
|
|
The aim is to get rid of the explicit rules and use the Autmake framework
as much as possible, without hurting the flexibility. To this effect, the
gylwrap tool is rewritten from scratch (in Perl). In compatibility
mode it takes the same arguments as the standard ylwrap. Additional
configuration is supplied in the configuration file gylwrap.conf, located
in the directory where the input file resides.
* mu-aux/gylwrap: Rewrite from scratch.
* configure.ac (MU_YLWRAP): New subst variable.
* libmailutils/base/.gitignore: Update.
* libmailutils/base/Makefile.am: Update.
* libmailutils/base/gylwrap.conf: New file.
* libmailutils/cfg/.gitignore: Update.
* libmailutils/cfg/Makefile.am: Use new YLWRAP
* libmailutils/cfg/cfg.h: Remove.
* libmailutils/cfg/gylwrap.conf: New file.
* libmailutils/cfg/lexer.l: Include mailutils/yyloc.h directly.
* libmailutils/cfg/parser.y: Likewise.
* libmu_sieve/Makefile.am: Use new YLWRAP
* libmu_sieve/gylwrap.conf: New file.
* libmu_sieve/sieve.y: Rename to libmu_sieve/sieve-gram.y
* libmu_sieve/sieve.l: Rename to libmu_sieve/sieve-lex.l
* mail/Makefile.am: Use new YLWRAP
* mh/.gitignore: Update.
* mh/Makefile.am: Use new YLWRAP
* mh/gylwrap.conf: New file.
* mh/mh_alias.y: Rename to mh/mh_alias_gram.y
* mh/mh_alias.l: Rename to mh/mh_alias_lex.l
* mh/pick.y: Rename to mh/pick-gram.y
* mimeview/.gitignore: Update.
* mimeview/Makefile.am: Use new YLWRAP
* mimeview/mimetypes.y: Rename to mimeview/grammar.y
* mimeview/gylwrap.conf: New file.
* mimeview/mimetypes.l: Rename to mimeview/lexer.l
* po/POTFILES.in: Update
|
|
The commit 744c4a9c didn't take into account the -nodraftfolder
and -nowhatnowproc options, which can be used to cancel the
effect of the corresponding facilities. This commit fixes it.
* mh/mh_getopt.c (mh_getopt_ext): New function.
* mh/mh_getopt.h (mh_getopt_ext): New prototype.
(mh_optinit): New struct.
* mh/tests/comp.at: Test the use of Draft-Folder
* mh/tests/forw.at: Likewise.
* mh/tests/repl.at: Likewise.
* mh/comp.c (main): use mh_getopt_ext to properly process draftfolder
and whatnowproc.
* mh/forw.c: Likewise.
* mh/repl.c: Likewise.
* mh/mh.h (mh_whom): Remove.
(mh_whom_header, mh_whom_file, mh_whom_message): New protos.
* mh/mh_alias.y (mh_read_aliases): Don't read aliases twice.
* mh/mh_whatnow.c (whom): Use mh_whom_file.
* mh/mh_whom.c (mh_whom): Rewrite and rename to mh_whom_file.
(mh_whom_header, mh_whom_message): New functions.
* mh/whom.c: Use mh_getopt_ext. Interpret command line
arguments, depending on whether the draftfile facility is in use.
|
|
|
|
This fixes a bug introduced in d30e5a07
* mh/mh.h (mh_whatnow_env) <last_ed>: New member
* mh/mh_whatnow.c (_whatnow): Initialize reedit and last_ed members
Free last_ed before returning
(edit): Prefer wh->last_ed over wh->editor
|
|
* mh/mh_whatnow.c (edit): Disable command expansion in wordsplit.
See also 491bec23.
|
|
|
|
|
|
|
|
MH testsuite produced false negatives when run in a directory accessed
by its logical name (symlink). To fix this, avoiding at the same time
the use of non-portable "pwd -P" & "pwd -L", this commit adds a filter
utility that replaces both logical and physical cwd with a dot on
output. The MH testsuite is updated to use this utility.
* testsuite/cwdrepl.c: New utility
* testsuite/Makefile.am: Build cwdrepl
* testsuite/.gitignore: Update.
* testsuite/cwdrepl.at: New test.
* testsuite/testsuite.at: Include new test.
* mh/tests/atlocal.in (PATH): Add testsuite
(remove_curdir): Remove function.
* mh/tests/comp.at: Use cwdrepl, fix expected output.
* mh/tests/forw.at: Likewise.
* mh/tests/mhn.at: Likewise.
* mh/tests/mhpath.at: Likewise.
* mh/tests/repl.at: Likewise.
|
|
* mh/mh_whatnow.c (edit): Initialize ws.ws_env
|
|
* mh/mh_whatnow.c (edit): Make sure ed is always initialized.
Accept command line arguments in the "editor" and "*-next" values.
|
|
In whatnow shell, edit [program [parameters]] now calls program
with supplied parameters plus the name of the file to edit.
* mh/mh.h (mh_whatnow_env) <reedit>: New member.
* mh/mh_whatnow.c (edit): Rewrite.
* mh/whatnow.c (main): Properly handle argv[1]
* NEWS: Update.
|
|
* mh/mh_init.c (mh_my_email): If Local-Mailbox is set, use
its value.
* mh/tests/scan.at: Add test for Local-Mailbox.
|
|
Calls to mh_global_profile_get and similar functions must appear
only after a call to mh_getopt (more properly, after mh_init and
mh_init2 are callead). This sequence was inadvertently changed
by commit e267ac86, due to which comp, forw, repl and burst stopped
reading important information from .mh_profile. Bug spotted by
Pierre-Jean.
* mh/burst.c: Make sure profile variables are accessed after
the profile is read.
* mh/comp.c: Likewise.
* mh/forw.c: Likewise.
* mh/repl.c: Likewise.
* mh/mh.h (mh_whatnow_env_from_environ): Split into two functions:
mh_whatnow_env_from_environ_early, to be called before mh_getopt,
and mh_whatnow_env_from_environ_late, to be called after it.
* mh/whatnowenv.c: Ditto.
* mh/whatnow.c: Call these two in the right order.
* THANKS: Update.
|
|
* mh/show.c: Set cur before returning. Allow for arguments in
showproc settings. Move to next or prev if invoked with the
corresponding argv[0]
* mh/mh.h (mh_msgset_parse): def argument is const.
(mh_msgset_first_current, mh_msgset_first_uid): Remove proto.
(mh_msgset_first): Change signature.
(mh_msgset_last): New function.
* mh/mh_msgset.c (mh_msgset_first): Return UID or message number
depending on the value of the second parameter.
(mh_msgset_first_current, mh_msgset_first_uid): Remove.
(mh_msgset_last): New function.
* mh/anno.c: Update.
* mh/comp.c: Update.
* mh/folder.c: Update.
* mh/mh_init.c: Update.
* mh/repl.c: Update.
* mh/Makefile.am (install-exec-hook): Link show to prev and next
|
|
* mh/etc/Makefile.am (bindir): Override. Reported by Ken Brown
<kbrown@cornell.edu>
|
|
Until now, mu_header_set_value called with replace=0 prepended the header
to the header list, if a header with such name was already present. This
has been changed. Now, if the header with the requested name is already
present, its action is as follows:
1. If repl is 0, return MU_ERR_EXISTS
2. Otherwise, replace the header with the new value.
If the header is not present, it is appended to the end of the header
list, instead of putting it at the beginning.
This change is incompatible and breaks the tests, that relied on a particular
field ordering. These are fixed as well.
The use of mu_header_set_value throughout the sources has been revised to
ensure that single-instance headers are never added twice.
This change also facilitates the second part of this commit, which
fixes creation of the multipart/alternative message by the mail utility.
* libmailutils/mailbox/header.c (mu_header_set_value): Fix semantics.
If the replace parameter is not set and the header field with the
given name already exists, return MU_ERR_EXISTS without changing
anything. If adding new header, append it to the end of the header
list, instead of pushing it to the top.
* configure.ac: Raise shared library revision number.
* libmu_scm/mu_message.c (mu-message-set-header)
(mu-message-set-header-fields): call mu_header_set_value explicitly if
repl is not set.
* libmu_sieve/extensions/moderator.c: Force replace header mode when
needed.
* libmu_sieve/extensions/vacation.c: Likewise.
* mh/mh_init.c (mh_annotate): Prepend the annotation header.
* mh/mhn.c: Force replace header mode when needed.
* mh/repl.c: Likewise.
* mh/send.c: Likewise.
* libmailutils/tests/modmesg01.at: Change expected header order.
* libmailutils/tests/modmesg03.at: Likewise.
* mh/tests/mhn.at: Likewise.
* mh/tests/send.at: Likewise.
* sieve/tests/moderator.at: Likewise.
* sieve/tests/redirect.at: Likewise.
* sieve/tests/reject.at: Likewise.
* sieve/tests/vacation.at: Likewise.
* examples/mta.c (message_finalize): Append X-Authentication-Warning,
instead of setting it.
Make sure Content-Disposition is not set for parts of a multipart/
alternative MIME message. Some mail readers (notably, yahoo),
misinterpret it.
* libmailutils/mime/attachment.c (at_hdr): Use mu_header_set_value
to set Content-Type and Content-Disposition.
* libmailutils/mime/mime.c (_mime_set_content_type): If the content
type is set to multipart/alternative, remove the Content-Disposition
headers from the message parts.
* mail/send.c (saveatt): Don't set content-disposition for
multipart/alternative, it is now done by the library.
(add_attachments): Warn about ignored headers.
Append only Received and X-* headers, replace others.
(parse_headers): Append headers.
(compose_header_set): Use mu_header_append if COMPOSE_APPEND is requested.
* mail/util.c (util_header_expand): Use mu_header_append.
|
|
Intermediate tarballs have the same version number as initial alpha
version, to which is appended a suffix "-N", where N is the number of
commits between the current git HEAD and the original alpha release.
Additionally, the --version (or -version, for MH) output has been changed
to include the N and the git description (for all releases, but stable).
* .gitignore: Update.
* Makefile.am: Remove git-describe and git-describe.h goals.
(alpha, alphacheck): Rewrite.
* configure.ac (GITINFO): New subst variable.
* include/mailutils/Makefile.am (gitinfo.h): New built source.
* libmailutils/cli/cli.c: Include gitinfo.h
(mu_version_hook): Rewrite.
* mh/mh_getopt.c: Include gitinfo.h
(mh_version_hook): Rewrite.
* mu-aux/gitinfo.pl: New file.
* mu-aux/Makefile.am (EXTRA_DIST): Add gitinfo.pl
* mu/Makefile.am (mu-setup.c): Add dependency
* testsuite/testsuite.inc (MUT_VERSION): Account for changes in
version output.
|
|
|
|
condition in foreach iterator functions
* libmailutils/diag/errors (MU_ERR_USER0-MU_ERR_USER7): New error constants.
Reserved for user's purposes, such as breaking from foreach iterators.
* libmaildutils/list/foreach.c (mu_list_foreach): Treat NULL list as a list
of 0 elements.
* libmailutils/list/foreachdir.c (mu_list_foreach_dir): Likewise.
* imap4d/imap4d.h (imap4d_auth_result): Remap constants to MU_ERR_USER[0-2]
* libmu_sieve/prog.c (mu_i_sv_lint_command): Use mu_list_locate with
the default comparator.
* mh/mh_list.c (_comp_name): Rewrite to match the definition of
mu_list_comparator_t
(mhl_format_run): Set _comp_name as comparator for the
env.printed_fields list.
(header_is_printed): Use mu_list_locate.
* imap4d/authenticate.c: Use MU_ERR_USER0-MU_ERR_USER7 to indicate
normal break condition in foreach iterators.
* imap4d/imap4d.c: Likewise.
* imap4d/namespace.c: Likewise.
* libmailutils/auth/auth.c: Likewise.
* libmailutils/cfg/driver.c: Likewise.
* libmailutils/cfg/parser.y: Likewise.
* libmailutils/server/acl.c: Likewise.
* libmailutils/server/msrv.c: Likewise.
* libmu_sieve/conf.c: Likewise.
* libmu_sieve/load.c: Likewise.
* libmu_sieve/sieve.l: Likewise.
* libmu_sieve/strexp.c: Likewise.
* libproto/imap/mbox.c: Likewise.
* libproto/imap/search.c: Likewise.
* mh/mh_format.c: Likewise.
* mh/send.c: Likewise.
* mh/sortm.c: Likewise.
* mimeview/mimetypes.y: Likewise.
* movemail/movemail.c: Likewise.
|
|
* libmu_sieve/sieve.y (mu_sieve_machine_clone): Fix memory allocation.
* mh/pick.c: Remove unused functions.
|
|
The commit didn't take into account all possible option/argument combinations.
* mh/pick.c (main): Preprocess command line prior to parsing it,
expanding --COMP NAME in -component COMP -pattern NAME.
* mh/mh_getopt.c: Revert fb84d1e3
* mh/mh_getopt.h: Likewise.
|
|
* examples/rename.c: Remove.
* examples/fcopy.c: New file.
* examples/fremove.c: New file.
* examples/frename.c: New file.
* examples/Makefile.am: Update.
* include/mailutils/util.h (mu_rename_file): Add flags.
(mu_remove_file): New function.
(MU_COPY_OVERWRITE): New flag.
* libmailutils/base/renamefile.c: New file.
* libmailutils/base/Makefile.am: Add newe file.
* libmailutils/base/copyfile.c: Fix error handling.
* libmailutils/base/renamefile.c (mu_rename_file): Refuse to proceed if
the destination file exists and MU_COPY_OVERWRITE flag is not set
* libmailutils/diag/errors (MU_ERR_REMOVE_SOURCE)
(MU_ERR_RESTORE_META): New errors
* imap4d/rename.c (imap4d_rename): Use mu_rename_file
* mh/forw.c: Likewise.
* mh/mh_whatnow.c: Likewise.
* mh/mhn.c: Likewise.
* mh/send.c: Likewise.
* include/mailutils/cstr.h (mu_str_count): New proto.
* include/mailutils/util.h (mu_file_name_is_safe): New proto.
* libmailutils/string/safefilename.c: New file.
* libmailutils/string/strcount.c: New file.
* libmailutils/string/Makefile.am: Update.
|
|
* mh/mh_getopt.c (mh_getopt0): New function.
(mh_getopt): Rewrite as alternative entry point to .
* mh/mh_getopt.h (mh_getopt0): New proto.
* mh/pick.c: Use mh_getopt0
* mh/tests/pick.at: Add new testcase.
|
|
|
|
* mh/mh.h (mh_whatnow_env) <nowhatnowproc>: New member.
* mh/compcommon.c (check_draft_disposition): Return DISP_REPLACE
if nowhatnowproc is set.
* mh/mh_whatnow.c (mh_whatnowproc): Return 0 if nowhatnowproc is
set.
* mh/comp.c: Fix -nowhatnowproc
* mh/forw.c: Likewise.
* mh/repl.c: Likewise.
|
|
* sieve/tests/environment.at: New testcase.
* sieve/tests/Makefile.am: Add new file.
* sieve/tests/testsuite.at: Include new file.
* lib/muscript.h (mu_script_init): Change signature.
* lib/muscript_priv.h (mu_script_fun) <script_init>: Likewise.
* lib/guile.c (scheme_init): Update.
* lib/python.c (python_init): Update.
* lib/script.c (mu_script_init): Pass environment to the script_init
method.
* lib/sieve.c (sieve_init): Set sieve environment.
* maidag/script.c (apply_script): Set environment.
* mh/inc.c: Likewise.
|
|
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
|
|
* 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.
|
|
|
|
* 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.
|
|
* libmu_auth/ldap.c: Fix compilation without ldap
* mh/mh_getopt.c: Fix version output to match what MH-E expects
|
|
* 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
|
|
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.
|
|
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.
|
|
* mh/rmf.c (current_folder_path): Treat name as folder while expanding.
* mail/unset.c (mail_unset): Fix the behavior when no arguments were
given.
|
|
* mh/etc/mailutils-mh.eli: Force using gnu-mh
|
|
|
|
The -nowhatnowproc option inhibits the invocation of whatnow, and
consequently, prevents the editing of the draft from occurring.
|
|
|
|
* 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.
|
|
|
|
* mh/prompter.c (main): Use mu_stream_printf instead of printf
|