summaryrefslogtreecommitdiffabout
AgeCommit message (Collapse)AuthorFiles
13 daysVersion 3.12HEADrelease-3.12masterSergey Poznyakoff2
13 daysSkip imap4d tests if home directory does not existSergey Poznyakoff1
* imap4d/tests/testsuite.at (IMAP4D_RUN): Skip test if home directory does not exist.
2021-02-10inc: when updating the unseen sequence, translate message numbers to uidsSergey Poznyakoff1
* mh/inc.c (main): Ensure translation from ordinal to sequence numbers (uid).
2021-02-09dotmail: synchronize with the recent changes to mboxSergey Poznyakoff4
* libproto/dotmail/dotmail.c: Synchronize with the recent changes to mbox. * libproto/dotmail/tests/rospool.at: New test. * libproto/dotmail/tests/Makefile.am: Add new test. * libproto/dotmail/tests/testsuite.at: Add new test.
2021-02-09mbox: use fstat etc. instead of stat etc.Sergey Poznyakoff2
* libproto/mbox/mboxrd.c (mboxrd_stat,mboxrd_set_priv): New functions. (mboxrd_get_atime): Use mboxrd_stat instead of stat(2). Fix the return value. (mboxrd_flush_unlocked): Use mboxrd_stat to stat the mailbox and mboxrd_set_priv to set mode and ownership. * libproto/mbox/tests/rospool.at: Remove extra newline (typo).
2021-02-09mbox: fix expunging in a read-only directorySergey Poznyakoff4
This fixes debian bug 980042. Re: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=980042#16 * libproto/mbox/mboxrd.c (mboxrd_flush_unlocked): If temporary file cannot be created in the directory of the mailbox because of EACCES, create it elsewhere and copy back to the mailbox when ready. Also, make sure that the mode and ownership of the mailbox are preserved, no matter what temporary file was used. * libproto/mbox/tests/rospool.at: New test. * libproto/mbox/tests/Makefile.am: Add new test. * libproto/mbox/tests/testsuite.at: Add new test.
2021-01-12Fix libmu_scm testsuiteSergey Poznyakoff5
This is a follow-up to a3bd653315. * libmu_scm/tests/testsuite.at (MU_GUILE_OUTPUT_FILTER): New macro. (MU_GUILE_CHECK): If MU_GUILE_OUTPUT_FILTER is not empty, filter the stdout through it. * libmu_scm/tests/mailbox-append-message.at: Filter out line and byte counts. * libmu_scm/tests/mailbox-expunge.at: Fix line and byte counts. * libmu_scm/tests/mailbox-get-message.at: Likewise. * libmu_scm/tests/mailbox-iterate.at: Likewise.
2021-01-12Remove left-over mailutils.rc supportSergey Poznyakoff1
* libmailutils/cli/cli.c (MU_LEGACY_CONFIG_FILE): Remove. (mu_cli_ext): No handling for the pre-3.0 configuration file.
2021-01-11Fix building mda utilities with mailbox quotas offSergey Poznyakoff1
2021-01-11Fix architecture-dependent test failuresSergey Poznyakoff5
* configure.ac (MU_COND_MAILBOX_QUOTA): Fix test condition. * libproto/dotmail/tests/atlocal.in (x_imapbase_normalize): New function. * libproto/mbox/tests/atlocal.in: Likewise. * libproto/dotmail/tests/delete.at: Filter output through x_imapbase_normalize to avoid triggering false negative due to padding differences. * libproto/mbox/tests/delete.at: Likewise.
2021-01-11Force character signedness in strout testSergey Poznyakoff1
2021-01-11SMTP mailer: fix selection of the default portSergey Poznyakoff1
* libproto/mailer/smtp.c (smtp_open): Use MU_SMTPS_PORT only if MAILER_TLS_ALWAYS is required.
2021-01-11strout test: don't wait for the input forever.Sergey Poznyakoff1
* libmailutils/tests/strout.c: Run no longer than 30 seconds. Standardize exit codes.
2021-01-05Minor changesSergey Poznyakoff9
2021-01-05Version 3.11.1release-3.11.1Sergey Poznyakoff2
2021-01-05Fix version outputSergey Poznyakoff3
* include/mailutils/cli.h (mu_copyright_year): New extern. (mu_version_print): New proto. * libmailutils/cli/cli.c (mu_copyright_year): New variable. Should be updated once a year. (mu_version_print): New function. (mu_version_hook): Use mu_version_print. * mail/mail.c (mail_warranty): Use mu_version_print.
2021-01-05Update copyright yearsSergey Poznyakoff1728
2020-12-30Fix coredump on NULL input to mu_url_create_hintSergey Poznyakoff2
In particular, this caused inc to coredump when called without explicit -file option. * libmailutils/url/create.c (mu_url_create_hint): Return EINVAL if str is NULL. * mh/tests/inc.at: Add new test.
2020-12-30Use well-known mboxrd format name everywhereSergey Poznyakoff7
2020-12-23Version 3.11release-3.11Sergey Poznyakoff2
2020-12-21MH: provide a mh_profile setting to control assignment of sequence numbersSergey Poznyakoff10
The "Volatile-uidnext" setting controls how sequence numbers are allocated. By default they increase monotonically. If Volatile-uidnext is set to "true", each new incorporated message is assigned the sequence number equal to that of the last message increased by one. When the last message in the mailbox is deleted, the value of UIDNEXT is recalculated and UIDVALIDITY is increased. This follows the behavior of traditional MH implementations. * doc/texinfo/mu-mh.texi: Document chnges. * include/mailutils/sys/amd.h (MU_AMD_VOLATILE_UIDNEXT): New constant. * libmailutils/base/amd.c (amd_expunge): Reset uidvalidity and uidnext if MU_AMD_VOLATILE_UIDNEXT capability is set and the last message was removed. * libproto/mh/mh.c (_mailbox_mh_init): New mh_profile setting "Volatile-uidnext". If set to true, it instructs mailutils to mimic the traditional MH behavior when assigning sequence number to the new message. * testsuite/mbop.c (main): Use MBOP_PRE_OPEN_HOOK (if defined) as the name of the function to call before opening the mailbox. * libproto/mh/tests/mbop.c (mbop_pre_open_hook): New function. If the MH environment variable is set, take its value as the name of the mh_profile and read settings from it. * libproto/mh/tests/Makefile.am: Add uidvol.at * libproto/mh/tests/atlocal.in: Unset MH. * libproto/mh/tests/testsuite.at: Include uidvol.at * libproto/mh/tests/uidvol.at: New file.
2020-12-04amd: reset the UIDNEXT after resetting the uidvaliditySergey Poznyakoff2
This happens automatically for plaintext mailboxes, but needs to be done explicitly for directory-based ones. * libmailutils/base/amd.c (amd_set_uidvalidity): Reset the UIDNEXT * testsuite/mbop.c: New command: uidvalidity_reset
2020-12-04Explicitly reset uidvalidity after folder -pickSergey Poznyakoff1
(See also 6e0fb32ec8)
2020-11-30Version 3.10.91Sergey Poznyakoff2
2020-11-30New functions for closing all fds and daemonizingSergey Poznyakoff16
* configure.ac: Select a suitable interface for closing all file descriptors greater than or equal to a chosen one. * include/mailutils/daemon.h (mu_daemon): New proto. * include/mailutils/util.h (mu_close_fds): New proto. * lib/daemon.c: Removed. * lib/Makefile.am: Remove daemon.c * libmailutils/base/Makefile.am: Add closefds.c * libmailutils/base/closefds.c: New file. * libmailutils/base/daemon.c: Rename to libmailutils/base/pidfile.c * libmailutils/base/daemon.c: New file. * libmailutils/diag/bt.c: Use mu_close_fds. * libmailutils/server/acl.c: Likewise. * mh/mh_whatnow.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/server/msrv.c: Use mu_daemon. * mh/send.c: Likewise. * mda/lib/util.c (mda_close_fds): Remove.
2020-11-29Optimize the observable interfaceSergey Poznyakoff3
A bitmask of all requested event types is stored in the observable structure. When an event is reported, mu_observable_notify first check if the event type bit is set in that bitmap. If so, it starts iterating over observers. That should allow us to avoid the loop in most cases. * include/mailutils/observer.h (mu_observable_wants): New proto. * include/mailutils/sys/observer.h (_mu_observable): New member: types. * libmailutils/base/observer.c (mu_observable_attach): Compute bitmask of all types requested by attached observers. (mu_observable_detach): Likewise. (mu_observable_notify): Check if the event type is marked in the bitmap, skip iteration if it is not. (mu_observable_wants): New function.
2020-11-29Avoid using VPATH in libproto testsuitesSergey Poznyakoff18
* libproto/dotmail/tests/Makefile.am: Build mbop from local source. * libproto/maildir/tests/Makefile.am: Likewise. * libproto/mbox/tests/Makefile.am: Likewise. * libproto/mh/tests/Makefile.am: Likewise. * libproto/dotmail/tests/mbop.c: New file. * libproto/maildir/tests/mbop.c: New file. * libproto/mbox/tests/mbop.c: New file. * libproto/mh/tests/mbop.c: New file. Rename mbox.c files in libproto libraries to avoid confusion with the eponymous format. * libproto/imap/mbox.c: Rename to mailbox.c. * libproto/imap/Makefile.am: Update. * libproto/maildir/mbox.c: Rename to maildir.c * libproto/maildir/Makefile.am: Update. * libproto/mailer/mbox.c: Rename to mailbox.c * libproto/mailer/Makefile.am: Update. * libproto/mh/mbox.c: Rename to mh.c. * libproto/mh/Makefile.am: Update. * libproto/pop/mbox.c: Rename to mailbox.c * libproto/pop/Makefile.am: Update.
2020-11-27Improve mbox data/time handlingSergey Poznyakoff1
* libproto/mbox/mboxrb.c (scan_message_begin): Use a single scan format for parsing all possible variants of the date/time.
2020-11-27Don't use __FILE__ and __LINE__ in mu_debug.Sergey Poznyakoff3
This is spurious as it can be enabled by the debug.line-info configuration directive.
2020-11-27mu_scan_datetime: Fix error recovery. %Z handles both time-zone forms.Sergey Poznyakoff3
The value stored in the memory location pointed to by the endp argument has changed. On the MU_ERR_PARSE error, it is (as earlier) the position in input where conversion stopped. On the MU_ERR_FORMAT, however, it is the character in fmt where the format error was detected. * libmailutils/datetime/scantime.c (peek_state): Return MU_ERR_FORMAT if mu_list_tail fails (the list is empty). This reflects unbalanced closing parenthesis or bracket. (scan_recovery): fix algorithm. (mu_scan_datetime): %Z handles both abbreviated time-zones and time-zones as hour offset from GMT. Improve error handling. On MU_ERR_PARSE error, point *endp to the character in input where conversion stopped. On MU_ERR_FORMAT error, point it to the character in fmt, where the format error was detected. * libmailutils/tests/scantime.c: Improve error handling. * libmailutils/tests/scantime.at: More testcases.
2020-11-26dotmail: re-implement tracker along the lines of mboxrbSergey Poznyakoff4
* include/mailutils/sys/dotmail.h (mu_dotmail_message): New member: mark. (mu_dotmail_message_reconstruct): Change signature. * libproto/dotmail/dotmail.c (mu_dotmail_flush_tracker): Change type of the ref member. (tracker_next_ref): Rewrite. (dotmail_tracker_sync): Rewrite. (dotmail_mailbox_copy_unchanged): Rewrite. * libproto/dotmail/message.c (dotmail_message_copy_with_uid) (mu_dotmail_message_reconstruct): Rewrite. * libproto/dotmail/tests/delete.at: Rewrite.
2020-11-26mboxrb: Keep timestamps in normalized formSergey Poznyakoff7
* include/mailutils/datetime.h (mu_timezone_offset): New proto. * libmailutils/datetime/scantime.c: New conversion: %Z (timezone abbreviation). * libmailutils/datetime/parsedate.y (mu_timezone_offset): New function. Returns time offset in seconds corresponding to the given timezone abbreviation. * include/mailutils/sys/mboxrb.h (mu_mboxrb_hdr): Remove unneeded enum. (mu_mboxrb_message): Remove env_date_start, New member "date" holds the string representation of the envelope timestamp in normalized form - ctime(3), UTC. * libproto/mbox/mboxrb.c (scan_message_finalize): New function. (scan_message_begin): New function. When initializing the message, timestamps in obsolete forms are converted to normalized representation. (mboxrb_rescan_unlocked): Use scan_message_finalize and scan_message_begin. * libproto/mbox/message.c (mboxrb_envelope_date): Get normalized timestamp from the date member, * libproto/mbox/tests/env.at: Reflect the above changes.
2020-11-25Improve mboxrb scannerSergey Poznyakoff1
* libproto/mbox/mboxrb.c: Request that the From_line be preceded by an empty line.
2020-11-25Replace mbox format driver with mboxrbSergey Poznyakoff81
* NEWS: update * configure.ac: Revert 9763fd4a. * include/mailutils/registrar.h: Likewise. * libproto/Makefile.am: Likewise. * libmailutils/stream/stream.c (mu_stream_size): Fix size calculation in case of line and full buffering scheme. * libmailutils/stream/streamcpy.c (mu_stream_copy_nl): Change semantics. Ensure that the copied data ends with two newline characters. Append them if necessary. * testsuite/mbop.c: New commands: message_lines and message_size. * libproto/mbox/mboxrb.c (mboxrb_mailbox_init_stream): Always add MU_STREAM_READ permission. Use the same flags for mu_mapfile_stream_create and mu_file_stream_create. (mboxrb_rescan_unlocked): Count terminating newline as part of the message. (mailbox_append_message): Make sure each message ends with an empty line. (mboxrb_tracker_sync): Update mailbox mesg_count. (mboxrb_flush_temp): Truncate the temporary stream to the new size. (mboxrb_flush_unlocked): Clear all modifications only in FLUSH_UIDVALIDITY mode. (mboxrb_message_copy_with_uid): Fix message_end computation. Use mu_stream_copy_nl to copy message body. (mu_mboxrb_message_reconstruct): Update ref on return. * po/POTFILES.in: Update. * mail/copy.c (append_to_file): Use mu_stream_stat_buffer to compute statistics. * mail/mail.c: Allow for opening read-only mailboxes. * libproto/mbox/tests/body.at: Fix the expected byte count. * libproto/mbox/tests/qget.at: Likewise. * libproto/mbox/tests/delete.at: Add more tests. * mail/tests/align.at: Fix the expected byte and line count. * mail/tests/hold.at: Likewise. * mail/testsuite/mail/read.exp: Likewise. * mail/testsuite/mail/tag.exp: Likewise. * mail/testsuite/mail/z.exp: Likewise. * mail/tests/copy04.at: Don't use line count and size in comparison. * mail/testsuite/mail/write.exp: Use regexps instead of exact strings for the same reason. * pop3d/testsuite/pop3d/read.exp: Fix the expected byte count. * readmsg/tests/all.at: Expect extra newline in output. * readmsg/tests/hdr.at: Likewise. * readmsg/tests/nohdr.at: Likewise. * readmsg/tests/twomsg.at: Likewise. * readmsg/tests/weed.at: Likewise. * sieve/tests/redirect.at: Fix the expected byte count. * sieve/tests/reject.at: Expect extra newline in output. * mh/inc.c (incmbx): Parse truncate and nomoveto URL parameters prior to opening the mailbox. If notruncate is requested, open the mailbox read-only. * mh/mh_format.c (str_compress_ws): Fix copying between overlapping memory regions. * libtests/Makefile.am: Remove lstuid tests. * libtests/testsuite.at: Likewise. * libtests/lstuid.c: Remove. * libtests/lstuid00.at: Remove. * libtests/lstuid01.at: Remove. * libtests/lstuid02.at: Remove. * libtests/mime.at: Fix the expected byte count. * imap4d/tests/IDEF0956.at: Fix the expected byte count. * map4d/tests/fetch.at: Likewise. * imap4d/tests/append00.at: Remove X-* headers and Status from the mbox prior to comparison. * imap4d/tests/append01.at: Likewise. * libproto/mbox: Remove old code. Replace it with mboxrb. * mail/tests/nohome.at: Update lines/sizes. * mail/testsuite/mail/folder.exp: Likewise. * mail/testsuite/mail/tag.exp: Likewise. * mail/testsuite/mail/z.exp: Likewise. * mda/mda/tests/mda.at: Fix shell quoting. * mda/putmail/tests/putmail.at: Remove extra newline from the expectation. Eliminate X-IMAPbase and X-UID from the resulting mailbox. * mda/tests/mda.sh: Eliminate X-IMAPbase and X-UID from the output. * pop3d/testsuite/pop3d/read.exp: Fix expected lines/sizes * readmsg/tests/hdr.at: Fix extra whitespace. * sieve/tests/action.at: Eliminate X-IMAPbase and X-UID. Fix extra whitespace in the expected From_ line. * sieve/tests/addheader.at: Likewise. * sieve/tests/pipeact.at: Likewise.
2020-11-23Two bugfixesSergey Poznyakoff2
* libproto/mboxrb/mboxrb.c (mboxrb_open): Propagate failure to open the stream to the return code. * libproto/mboxrb/tests/notify.at: Use cat to create test inbox
2020-11-23Add two more mboxrb testsSergey Poznyakoff4
2020-11-23mboxrb: rewrite trackerSergey Poznyakoff5
* include/mailutils/sys/mboxrb.h (mu_mboxrb_message_ref): Remove. (mu_mboxrb_message_reconstruct): Change prototype. * libproto/mboxrb/mboxrb.c (mu_mboxrb_flush_tracker) <ref>: Change type to size_t *. (tracker_next_ref): Return the refereced message. (mboxrb_tracker_sync): Rewrite. (mboxrb_mailbox_copy_unchanged): Update. (mailbox_append_message): Place exactly one empty line between two messages. * libproto/mboxrb/message.c (mboxrb_message_copy_with_uid): Ref argument is struct mu_mboxrb_message *. (mu_mboxrb_message_reconstruct): Likewise. * libproto/mboxrb/tests/delete.at: Check number of messages after deletion. * libproto/mboxrb/tests/append.at: Expect extra newline.
2020-11-23Fix deletes. Add new tests.Sergey Poznyakoff10
* include/mailutils/sys/mboxrb.h (mu_mboxrb_message): New member: mark * libproto/mboxrb/mboxrb.c (mu_mboxrb_message_ref): New members: from_length, env_sender_len, env_date_start. * libproto/mboxrb/message.c (mboxrb_rescan_unlocked): Update dmp->scan. Fix NULL dereference. (mboxrb_rescan): Don't update dmp->scan, see above. (mailbox_append_message): Write out envelope; use FROMRB filter. (mboxrb_tracker_sync): Rewrite using mark/sweep technique. * libproto/mboxrb/tests/Makefile.am: Add new tests. * libproto/mboxrb/tests/testsuite.at: Include new tests. * libproto/mboxrb/tests/append.at: New test. * libproto/mboxrb/tests/delete.at: New test. * libproto/mboxrb/tests/qget.at: New test. * libproto/mboxrb/tests/uidnext.at: New test. * libproto/mboxrb/tests/uidvalidity.at: New test.
2020-11-23Implement mboxrb format (a replacement for the mbox used currently)Sergey Poznyakoff27
* configure.ac: New format: mboxrb * include/mailutils/filter.h (mu_fromrb_filter): New extern. * include/mailutils/registrar.h (mu_mboxrb_record): New extern. (mu_register_all_mbox_formats) (mu_register_local_mbox_formats): Add mu_mboxrb_record. * libmailutils/filter/filter.c (mu_filter_get_list): Add mu_fromrb_filter * libproto/Makefile.am [MU_COND_SUPPORT_MBOXRB]: Add mboxrb * bootstrap.conf: Remove special handling for testsuite/maildir (fixes 1d846d2d92). * testsuite/mbop.c: Implement the -r (--read-only) option. * include/mailutils/sys/Makefile.am: Add mboxrb.h * include/mailutils/sys/mboxrb.h: New file. * libmailutils/filter/Makefile.am (libfilter_la_SOURCES): Add fromrb.c * libmailutils/filter/fromrb.c: New file. * libmailutils/tests/Makefile.am: New file. * libmailutils/tests/fromrb.at: New file. * libmailutils/tests/testsuite.at: New file. * libproto/mboxrb/Makefile.am: New file. * libproto/mboxrb/mboxrb.c: New file. * libproto/mboxrb/message.c: New file. * libproto/mboxrb/tests/.gitignore: New file. * libproto/mboxrb/tests/Makefile.am: New file. * libproto/mboxrb/tests/atlocal.in: New file. * libproto/mboxrb/tests/attr.at: New file. * libproto/mboxrb/tests/autodetect.at: New file. * libproto/mboxrb/tests/body.at: New file. * libproto/mboxrb/tests/count.at: New file. * libproto/mboxrb/tests/env.at: New file. * libproto/mboxrb/tests/header.at: New file. * libproto/mboxrb/tests/testsuite.at: New file.
2020-11-20dotmail: update uids in append mode as well.Sergey Poznyakoff4
* include/mailutils/sys/dotmail.h (mu_dotmail_mailbox): New member stream_flags. * libproto/dotmail/dotmail.c (dotmail_mailbox_init_stream): Translate MU_STREAM_APPEND to MU_STREAM_RDWR. (dotmail_rescan_unlocked,dotmail_rescan): Check actual stream flags, not the mailbox ones. (dotmail_flush_unlocked): Remove check for MU_STREAM_APPEND. * libproto/dotmail/tests/append.at: Test appends in append mode. * testsuite/mbop.c: New option -a (--append).
2020-11-20dotmail: optimize appendsSergey Poznyakoff2
* include/mailutils/sys/dotmail.h (mu_dotmail_mailbox): New members: x_imapbase_off and x_imapbase_len. * libproto/dotmail/dotmail.c: Format X-IMAPbase header with fixed width to avoid rewriting entire mailbox only to make the new header fit to its place in the first message.
2020-11-19Make sure UIDs are monotonically increased in dotmail, mh, and maildir.Sergey Poznyakoff15
* include/mailutils/sys/amd.h (_MU_AMD_PROP_UIDNEXT): New define. (MU_AMD_PROP): Remove. (MU_AMD_F_PROP): New flag. (_amd_data): New member: flags. Remove next_uid (amd_reset_uidvalidity): Change return type. (amd_update_uidnext,amd_alloc_uid): New protos. * include/mailutils/sys/dotmail.h (mu_dotmail_mailbox): New member uidvalidity_changed. * libmailutils/base/amd.c (_amd_prop_create): Set MU_AMD_F_PROP flag if the prop file exists. (amd_initial_scan): New function. (amd_get_uidvalidity, amd_set_uidvalidity) (amd_uidnext): Rewrite using amd_initial_scan. (amd_reset_uidvalidity): Return int. (amd_update_uidnext,amd_alloc_uid): New functions. * libproto/dotmail/dotmail.c (dotmail_close): Flush UID parameters if uidvalidity_changed is set. (dotmail_flush): Take three-state mode as its third argument. (dotmail_flush_unlocked): Likewise. If operating in FLUSH_UIDVALIDITY mode, clear all other modifications to the messages in the mailbox. Clear uidvalidity_changed on success. (dotmail_expunge, dotmail_sync): Update call to dotmail_flush. (dotmail_alloc_next_uid): Set uidvalidity_changed. (dotmail_rescan_unlocked): Check if the assigned UID is greater than the previously assigned one and less than the UIDNEXT value. Raise uidvalidity_changed if UIDs were re-allocated. (mu_dotmail_mailbox_uid_setup): Set uidvalidity_scanned. * libproto/dotmail/tests/Makefile.am: Add new test. * libproto/dotmail/tests/testsuite.at: Likewise. * libproto/dotmail/tests/uidnext.at: New test. * libproto/maildir/mbox.c: Use amd_update_uidnext to synchronize the computed and predicted uidnext value. (maildir_next_uid): Remove. * libproto/maildir/tests/Makefile.am: Add new test. * libproto/maildir/tests/testsuite.at: Likewise. * libproto/maildir/tests/uidnext.at: New test. * libproto/mh/mbox.c (_mh_next_seq): Remove function. (mh_scan0): Use amd_update_uidnext to synchronize the computed and predicted uidnext value. * libproto/mh/tests/Makefile.am: Add new test. * libproto/mh/tests/testsuite.at: Likewise. * libproto/mh/tests/uidnext.at: New test.
2020-11-18imap4d: SEARCH: don't bail out if unexistent UID is given as criterionSergey Poznyakoff1
* imap4d/search.c (node_false): New constant. (parse_simple_key): Report error only if mu_msgset_parse_imap returns MU_ERR_PARSE. Otherwise, add node_false to the tree. (evaluate_node): Handle node_false.
2020-11-18maildir: assign UID to the message file before moving it from new to curSergey Poznyakoff4
* libproto/maildir/mbox.c (maildir_scan_unlocked): Assign next UID to the message before moving it from new to cur. * libproto/maildir/tests/new.at: New test. * libproto/maildir/tests/Makefile.am: Add nre test. * libproto/maildir/tests/testsuite.at: Likewise.
2020-11-17maildir_fixup: don't bail out if unable to open the mailboxSergey Poznyakoff1
2020-11-17Fix mda (lmtpd) testsuite: don't assume mbox as the default formatSergey Poznyakoff2
2020-11-17Minor changesSergey Poznyakoff2
* libproto/mh/mbox.c: Include limits.h * testsuite/mbox2dir.c (next_name_from_file): *scanf %m modifier isn't common enough yet. Rewrite using fgets + realloc.
2020-11-17New mailutils subcommand: maildir_fixupSergey Poznyakoff8
The subcommand converts names in maildirs created by earlier versions of mailutils to the new format. * NEWS: Update. * doc/texinfo/programs/mailutils.texi: Document maildir_fixup * mu/libexec/Makefile.am: Build maildir_fixup subcommand. * mu/libexec/maildir_fixup.c: New file. * mu/libexec/mu.h (common_options): New extern. * include/mailutils/cli.h (MU_CLI_OPTION_CONF_PROGNAME): New constant. * libmailutils/cli/simple.c (MU_CLI_OPTION_PROG_NAME) (MU_CLI_OPTION_PROG_NAME) (MU_CLI_OPTION_PROG_DOC) (MU_CLI_OPTION_BUG_ADDRESS) (MU_CLI_OPTION_PACKAGE_URL) (MU_CLI_OPTION_EXTRA_INFO) (MU_CLI_OPTION_HELP_HOOK) (MU_CLI_OPTION_VERSION_HOOK) (MU_CLI_OPTION_PROG_DOC_HOOK) (MU_CLI_OPTION_NEGATION) (MU_CLI_OPTION_SPECIAL_ARGS): Allow for NULL argument. (MU_CLI_OPTION_CONF_PROGNAME): New code
2020-11-17sortm: reset the uidvalidity of the modified mailboxSergey Poznyakoff9
* include/mailutils/mailbox.h (mu_mailbox_uidvalidity_reset): New proto. * include/mailutils/sys/mailbox.h (_mu_mailbox): Replace the _uidvalidity member with two function pointers: _get_uidvalidity and _set_uidvalidity. * libmailutils/mailbox/mailbox.c (mu_mailbox_uidvalidity_reset): New function. * libmailutils/base/amd.c: Initialize the two methods. * libproto/dotmail/dotmail.c: Likewise. * libproto/mbox/mbox.c: Likewise. * libproto/imap/mbox.c: Initialize the _get_uidvalidity field. * mh/sortm.c: Reset the uidvalidity on success. * mh/tests/sortm.at: Check that the uidvalidity changed after sorting
2020-11-16Remove mh and maildir sample mailboxes from the distributionSergey Poznyakoff224
Testsuites use mbox2dir to create the requested directory-based mailbox from the mbox source.

Return to:

Send suggestions and report system problems to the System administrator.