]> granicus.if.org Git - neomutt/log
neomutt
6 years agomxapi: find an Account when necessary
Richard Russon [Mon, 5 Nov 2018 11:33:50 +0000 (11:33 +0000)]
mxapi: find an Account when necessary

6 years agoformat: use description by default
Austin Ray [Fri, 2 Nov 2018 18:02:25 +0000 (14:02 -0400)]
format: use description by default

Changes the default of status_format and folder_format to display
descriptions instead of file path.

With the inclusion of named-mailboxes, we should try to use descriptions
since they fall back to file path. Otherwise, there would not be a
distinction between mailboxes and named-mailboxes with the defaults.

6 years agomerge: unify mailboxes and virtual-mailboxes
Richard Russon [Sun, 4 Nov 2018 01:11:09 +0000 (01:11 +0000)]
merge: unify mailboxes and virtual-mailboxes

 * browser: unify mailboxes and virtual-mailboxes
 * sidebar: unify virtual-mailboxes
 * browser: remove #ifdef USE_NOTMUCH

6 years agobrowser: remove #ifdef USE_NOTMUCH 1384/head
Austin Ray [Fri, 2 Nov 2018 00:35:51 +0000 (20:35 -0400)]
browser: remove #ifdef USE_NOTMUCH

Removed the #ifdef USE_NOTMUCH statements since the notmuch subsystem is
follows the Mailbox API and we can check magic type easily.

6 years agosidebar: unify virtual-mailboxes
Austin Ray [Thu, 1 Nov 2018 22:30:33 +0000 (18:30 -0400)]
sidebar: unify virtual-mailboxes

Removed all notmuch specific code from `sidebar.c` This allows for
virtual-mailboxes to appear alongside every other mailbox, and reduces
coupling in sidebar.

In order to facilitate this, the command sidebar-virtual-toggle was
removed as it is no longer necessary. Some users may have utilized this
method so an alternative should be considered.

6 years agobrowser: unify mailboxes and virtual-mailboxes
Austin Ray [Thu, 1 Nov 2018 21:13:13 +0000 (17:13 -0400)]
browser: unify mailboxes and virtual-mailboxes

Merged change-vfolder into change-folder so all mailboxes will be
displayed on the same screen. This removes the special cases needed to
display virtual-mailboxes.

To prevent breaking user's configurations, change-vfolder executes
change-folder. However, since vfolder_format and folder_format have
different default, user's will need to update the format.

6 years agonotmuch: count flagged messages
Austin Ray [Wed, 31 Oct 2018 00:55:07 +0000 (20:55 -0400)]
notmuch: count flagged messages

`nm_nonctx_get_count(...)` did not count flagged messages. This means
they could not display flagged message counts in the sidebar _unless_ it
was the active mailbox.

This commit introduces NmFlaggedTag, mirrored from NmUnreadTag, and will
query the database for flagged messages.

6 years agodoxygen: fix headers
Richard Russon [Sun, 4 Nov 2018 00:43:46 +0000 (00:43 +0000)]
doxygen: fix headers

6 years agofind a Mailbox if necessary
Richard Russon [Thu, 1 Nov 2018 14:43:36 +0000 (14:43 +0000)]
find a Mailbox if necessary

6 years agonotmuch: fixed vfolder-from-query
Austin Ray [Wed, 31 Oct 2018 22:41:19 +0000 (18:41 -0400)]
notmuch: fixed vfolder-from-query

vfolder-from-query would seg fault after architectural changes. Issue
was a bad pointer that I introduced.

6 years agoimap: unused
Richard Russon [Wed, 31 Oct 2018 16:18:46 +0000 (16:18 +0000)]
imap: unused

6 years agodrop Connections
Richard Russon [Wed, 31 Oct 2018 13:55:46 +0000 (13:55 +0000)]
drop Connections

6 years agonntp: reuse connection
Richard Russon [Tue, 30 Oct 2018 12:00:44 +0000 (12:00 +0000)]
nntp: reuse connection

6 years agomxapi: pass Mailbox
Richard Russon [Mon, 29 Oct 2018 10:00:53 +0000 (10:00 +0000)]
mxapi: pass Mailbox

6 years agopop: refactor
Richard Russon [Sat, 27 Oct 2018 17:15:20 +0000 (18:15 +0100)]
pop: refactor

6 years agonotmuch: rework progress update math
Austin Ray [Tue, 30 Oct 2018 19:36:23 +0000 (15:36 -0400)]
notmuch: rework progress update math

After architectural changes, NeoMutt was not updating the progress when
opening `virtual-mailboxes`. The math was out of date.

This commit corrects the math involved and removes the unnecessary
counting logic. If counting is necessary, use `nm_nonctx_get_count(...)`
in a future commit.

6 years agonotmuch: respect limits when counting messages
Austin Ray [Tue, 30 Oct 2018 16:06:33 +0000 (12:06 -0400)]
notmuch: respect limits when counting messages

When NeoMutt counts the number of returned messages for a notmuch query,
it does not consider user specified limits. This affects both `limit=`
and `nm_db_limit` specifications.

This commit modifies `nm_nonctx_get_count(...)` to return the query's
limit if `get_count(...)` exceeds the limit. The check ensures that the
limit is non-zero so we don't return empty mailboxes.

Fixes #1375

6 years agonotmuch: use existing open database if possible
Austin Ray [Mon, 29 Oct 2018 20:26:30 +0000 (16:26 -0400)]
notmuch: use existing open database if possible

When this portion of the code was migrated to use `NmAccountData`
instead of `NmMboxData` the check for an existing database handle was
removed. NeoMutt would lock-up trying to open another instance of the
database.

This commit re-adds the existing database check.

Fixes #1373

6 years agonotmuch: duplicate `uri` during sync
Austin Ray [Tue, 30 Oct 2018 00:39:20 +0000 (20:39 -0400)]
notmuch: duplicate `uri` during sync

The subsystem reused `ctx->mailbox->path` to store the absolute path for
an email so that it modify the maildir flags. In order to facilitate
this behavior, the subsystem copies the `uri` and uses it to replace the
absolute path after filename modification.

However, the `uri` variable is just a pointer to `ctx->mailbox->path` so
it is overwritten with the physical path.

This commit uses `mutt_str_strdup(...)` to duplicate the `uri` so it can
replace the physical path. Without this duplication, a
`virtual-mailboxes` will lose its notmuch query when modifying tags
corresponding to maildir flags. This results in a `virtual-mailboxes`
disappearing during runtime.

Fixes #1374

6 years agoDelete Attachments upon OP_QUIT 1372/head
ryt [Sat, 27 Oct 2018 00:01:30 +0000 (02:01 +0200)]
Delete Attachments upon OP_QUIT

6 years agouse 'enum MailboxType magic' consistently
Richard Russon [Fri, 26 Oct 2018 23:43:43 +0000 (00:43 +0100)]
use 'enum MailboxType magic' consistently

6 years agopop: tidy
Richard Russon [Fri, 26 Oct 2018 11:53:55 +0000 (12:53 +0100)]
pop: tidy

6 years agoDo not use disconnected socket.
Tobias Stoeckmann [Fri, 26 Oct 2018 17:37:31 +0000 (19:37 +0200)]
Do not use disconnected socket.

If an IMAP connection was never set up, do not try to write a LOGOUT
command through that connection or to close that socket.

Both results in segmentation faults.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
6 years agombox: recognise empty file
Richard Russon [Fri, 26 Oct 2018 15:35:40 +0000 (16:35 +0100)]
mbox: recognise empty file

6 years agopath: fix expansion of bare + and =
Richard Russon [Fri, 26 Oct 2018 15:32:00 +0000 (16:32 +0100)]
path: fix expansion of bare + and =

6 years agoimap: home is now '+'
Pietro Cerutti [Fri, 26 Oct 2018 15:04:38 +0000 (15:04 +0000)]
imap: home is now '+'

6 years agoimap: check for null connection
Pietro Cerutti [Fri, 26 Oct 2018 15:04:21 +0000 (15:04 +0000)]
imap: check for null connection

6 years agoimap: fix subscription list
Richard Russon [Fri, 26 Oct 2018 13:09:27 +0000 (14:09 +0100)]
imap: fix subscription list

6 years agotrans: fix source list
Richard Russon [Thu, 25 Oct 2018 22:13:35 +0000 (23:13 +0100)]
trans: fix source list

6 years agomove notmuch test macro
Richard Russon [Thu, 25 Oct 2018 21:42:56 +0000 (22:42 +0100)]
move notmuch test macro

6 years agomerge: refactor backends to use Account object
Richard Russon [Thu, 25 Oct 2018 20:51:09 +0000 (21:51 +0100)]
merge: refactor backends to use Account object

 * clang-format
 * rename Email private data
 * rename Mailbox private data
 * misc
 * add Account
 * mxapi: unify naming
 * mxapi: add Account
 * mxapi: add Mailbox to mbox_open
 * mxapi: refactoring
 * Notmuch: add Account
 * Notmuch: move private data
 * Notmuch: unify naming
 * Notmuch: move db to Account
 * Notmuch: separate db functions
 * Maildir: add Account
 * Maildir: unify naming
 * Maildir: move private data
 * Pop: add Account
 * Pop: unify naming
 * Pop: move data to Account
 * Compress: unify naming
 * Compress: add Account
 * Nntp: add Account
 * Nntp: unify naming
 * Nntp: add new/free/get functions
 * Mbox: add Account
 * Mbox: unify naming
 * Mbox: move data to Account
 * Imap: tidy
 * Imap: add Account
 * Imap: use Mailbox ptr
 * Imap: unify naming
 * Imap: refactor current message
 * Imap: move Account data

6 years agoImap: move Account data
Richard Russon [Fri, 19 Oct 2018 20:15:03 +0000 (21:15 +0100)]
Imap: move Account data

6 years agoImap: refactor current message
Richard Russon [Wed, 24 Oct 2018 13:08:58 +0000 (14:08 +0100)]
Imap: refactor current message

6 years agoImap: unify naming
Richard Russon [Tue, 23 Oct 2018 22:58:19 +0000 (23:58 +0100)]
Imap: unify naming

6 years agoImap: use Mailbox ptr
Richard Russon [Tue, 23 Oct 2018 22:17:26 +0000 (23:17 +0100)]
Imap: use Mailbox ptr

6 years agoImap: add Account
Richard Russon [Tue, 23 Oct 2018 22:06:27 +0000 (23:06 +0100)]
Imap: add Account

6 years agoImap: tidy
Richard Russon [Tue, 23 Oct 2018 22:25:15 +0000 (23:25 +0100)]
Imap: tidy

6 years agoMbox: move data to Account
Richard Russon [Sat, 20 Oct 2018 14:55:16 +0000 (15:55 +0100)]
Mbox: move data to Account

6 years agoMbox: unify naming
Richard Russon [Sat, 20 Oct 2018 14:49:20 +0000 (15:49 +0100)]
Mbox: unify naming

6 years agoMbox: add Account
Richard Russon [Sat, 20 Oct 2018 14:33:52 +0000 (15:33 +0100)]
Mbox: add Account

6 years agoNntp: add new/free/get functions
Richard Russon [Sun, 21 Oct 2018 19:12:58 +0000 (20:12 +0100)]
Nntp: add new/free/get functions

6 years agoNntp: unify naming
Richard Russon [Sat, 20 Oct 2018 18:12:53 +0000 (19:12 +0100)]
Nntp: unify naming

6 years agoNntp: add Account
Richard Russon [Sat, 20 Oct 2018 18:02:19 +0000 (19:02 +0100)]
Nntp: add Account

6 years agoCompress: add Account
Richard Russon [Thu, 18 Oct 2018 20:46:08 +0000 (21:46 +0100)]
Compress: add Account

6 years agoCompress: unify naming
Richard Russon [Wed, 24 Oct 2018 00:03:19 +0000 (01:03 +0100)]
Compress: unify naming

6 years agoPop: move data to Account
Richard Russon [Sat, 20 Oct 2018 13:39:29 +0000 (14:39 +0100)]
Pop: move data to Account

6 years agoPop: unify naming
Richard Russon [Sat, 20 Oct 2018 13:20:45 +0000 (14:20 +0100)]
Pop: unify naming

6 years agoPop: add Account
Richard Russon [Sat, 20 Oct 2018 13:28:36 +0000 (14:28 +0100)]
Pop: add Account

6 years agoMaildir: move private data
Richard Russon [Sat, 20 Oct 2018 12:46:47 +0000 (13:46 +0100)]
Maildir: move private data

6 years agoMaildir: unify naming
Richard Russon [Sat, 20 Oct 2018 12:38:41 +0000 (13:38 +0100)]
Maildir: unify naming

6 years agoMaildir: add Account
Richard Russon [Fri, 19 Oct 2018 20:59:14 +0000 (21:59 +0100)]
Maildir: add Account

6 years agoNotmuch: separate db functions
Richard Russon [Fri, 19 Oct 2018 18:12:51 +0000 (19:12 +0100)]
Notmuch: separate db functions

6 years agoNotmuch: move db to Account
Richard Russon [Fri, 19 Oct 2018 11:41:27 +0000 (12:41 +0100)]
Notmuch: move db to Account

6 years agoNotmuch: unify naming
Richard Russon [Fri, 19 Oct 2018 12:10:36 +0000 (13:10 +0100)]
Notmuch: unify naming

6 years agoNotmuch: move private data
Richard Russon [Fri, 19 Oct 2018 10:29:34 +0000 (11:29 +0100)]
Notmuch: move private data

6 years agoNotmuch: add Account
Richard Russon [Fri, 19 Oct 2018 10:19:12 +0000 (11:19 +0100)]
Notmuch: add Account

6 years agomxapi: refactoring
Richard Russon [Fri, 28 Sep 2018 15:50:12 +0000 (16:50 +0100)]
mxapi: refactoring

6 years agomxapi: add Mailbox to mbox_open
Richard Russon [Sat, 20 Oct 2018 00:00:44 +0000 (01:00 +0100)]
mxapi: add Mailbox to mbox_open

6 years agomxapi: add Account
Richard Russon [Thu, 18 Oct 2018 20:45:09 +0000 (21:45 +0100)]
mxapi: add Account

6 years agomxapi: unify naming
Richard Russon [Mon, 22 Oct 2018 08:57:47 +0000 (09:57 +0100)]
mxapi: unify naming

6 years agoadd Account
Richard Russon [Thu, 18 Oct 2018 20:20:20 +0000 (21:20 +0100)]
add Account

6 years agomisc
Richard Russon [Thu, 18 Oct 2018 19:54:23 +0000 (20:54 +0100)]
misc

6 years agorename Mailbox private data
Richard Russon [Thu, 18 Oct 2018 20:13:37 +0000 (21:13 +0100)]
rename Mailbox private data

6 years agorename Email private data
Richard Russon [Thu, 18 Oct 2018 20:09:58 +0000 (21:09 +0100)]
rename Email private data

6 years agoclang-format
Richard Russon [Thu, 25 Oct 2018 17:26:15 +0000 (18:26 +0100)]
clang-format

6 years agoRevert "notmuch: count messages in queried threads"
Richard Russon [Sat, 20 Oct 2018 10:38:48 +0000 (11:38 +0100)]
Revert "notmuch: count messages in queried threads"

The change was causing severe performance problems with large mailboxes.

This reverts commit b71ac2bae5d471b2a32452d9103d4164f27f729f.

Issue #1359

6 years agorename nntp structs
Richard Russon [Wed, 17 Oct 2018 12:40:25 +0000 (13:40 +0100)]
rename nntp structs

6 years agoTry adding status indicator R for my address in Reply-To
Ian Zimmerman [Thu, 18 Oct 2018 09:14:21 +0000 (02:14 -0700)]
Try adding status indicator R for my address in Reply-To

It adds a new "R" flag for the 3rd position of the index %Z field, for when user's own address is in the Reply-To header unless none of the other flags for that field is applicable.

Some mailing lists now do the following transformation of the headers: rewrite the From header to the list address, and add a Reply-To header with the poster address.  This feature helps highlight my own posts in folders dedicated to such lists.  Of course if you are _subscribed_ to the list (in the Mutt sense) you'll get the "L" flag instead, but in that case you don't care about hightlighting your posts anyway.

6 years agorename mbox_get_mdata
Richard Russon [Tue, 16 Oct 2018 22:23:07 +0000 (23:23 +0100)]
rename mbox_get_mdata

6 years agoadd pop_get_mdata
Richard Russon [Tue, 16 Oct 2018 14:41:40 +0000 (15:41 +0100)]
add pop_get_mdata

6 years agomanual: document `named-mailboxes` for neomuttrc
Austin Ray [Mon, 15 Oct 2018 20:25:14 +0000 (16:25 -0400)]
manual: document `named-mailboxes` for neomuttrc

6 years agoadd MaildirMboxData
Richard Russon [Mon, 15 Oct 2018 15:04:56 +0000 (16:04 +0100)]
add MaildirMboxData

6 years agofix some mailbox logic
Richard Russon [Mon, 15 Oct 2018 15:21:51 +0000 (16:21 +0100)]
fix some mailbox logic

6 years agomerge: add <named-mailboxes> command
Richard Russon [Sat, 13 Oct 2018 23:06:07 +0000 (00:06 +0100)]
merge: add <named-mailboxes> command

 * mailbox: try to find existing description
 * format: add `%D` - mailbox description
 * Add `named-mailboxes` command
 * browser: `%i` - folder_format description expando

6 years agobrowser: `%i` - folder_format description expando 1358/head
Austin Ray [Fri, 12 Oct 2018 16:15:22 +0000 (12:15 -0400)]
browser: `%i` - folder_format description expando

`%i` will display the description for a folder and fallback to the
folder's name if a description does not exist.

6 years agoAdd `named-mailboxes` command
Austin Ray [Thu, 11 Oct 2018 22:54:36 +0000 (18:54 -0400)]
Add `named-mailboxes` command

No additional work is necessary since this command reuses the same code
as `mailboxes` and `virtual-mailboxes`. This was surprisingly simple.

6 years agoformat: add `%D` - mailbox description
Austin Ray [Thu, 11 Oct 2018 20:16:02 +0000 (16:16 -0400)]
format: add `%D` - mailbox description

Added the `%D` expando, which displays the mailbox's description, to
sidebar_format and status_format. If the mailbox does not have a
description, fallback to the path.

This behavior is same as `%f` and `%B` for `virtual-mailboxes`. This
was done to prevent breaking existing configurations as `notmuch`
queries have unsightly paths.

This lays the ground work for introducing `named-mailboxes`.

6 years agomailbox: try to find existing description
Austin Ray [Thu, 11 Oct 2018 18:18:40 +0000 (14:18 -0400)]
mailbox: try to find existing description

`mx_mbox_open(...)` creates a new `Context`, which requires creating new
`Mailbox` instances. Modified `mailbox_new(...)` to try and find an
existing description that matches the mailbox `path`.

6 years agofix mailbox crashes
Richard Russon [Sat, 13 Oct 2018 11:09:00 +0000 (12:09 +0100)]
fix mailbox crashes

Fixes #1360
Fixes #1361

Thanks to Sergey Alirzaev (@l29ah)

6 years agodoxy: fix docs
Richard Russon [Fri, 12 Oct 2018 23:15:37 +0000 (00:15 +0100)]
doxy: fix docs

[ci skip]

6 years agorename config Account
Richard Russon [Thu, 11 Oct 2018 12:59:48 +0000 (13:59 +0100)]
rename config Account

6 years agotest: drop duplicate account code
Richard Russon [Thu, 11 Oct 2018 12:43:51 +0000 (13:43 +0100)]
test: drop duplicate account code

6 years agouse mutt_buffer_strcpy
Richard Russon [Tue, 2 Oct 2018 02:00:45 +0000 (03:00 +0100)]
use mutt_buffer_strcpy

6 years agonotmuch: count messages in queried threads
Austin Ray [Thu, 11 Oct 2018 15:38:50 +0000 (11:38 -0400)]
notmuch: count messages in queried threads

`count_query` did not handle counting all messages in `type=threads`
queries. It returned the number of messages matching the `query=`
qualifier. Refactored `count_query` into two methods handling
`type=threads` and `type=messages`, respectively.

This makes `sidebar_format`'s `%S` display the same value as
`pager_format`'s `%m`.

6 years agoimap: factor out get_adata
Richard Russon [Wed, 10 Oct 2018 15:00:28 +0000 (16:00 +0100)]
imap: factor out get_adata

6 years agofix imap log - buffer_add_printf
Richard Russon [Tue, 9 Oct 2018 23:52:37 +0000 (00:52 +0100)]
fix imap log - buffer_add_printf

6 years agotidy code
Richard Russon [Wed, 10 Oct 2018 22:06:03 +0000 (23:06 +0100)]
tidy code

6 years agorename things
Richard Russon [Wed, 10 Oct 2018 22:04:24 +0000 (23:04 +0100)]
rename things

6 years agofix comments
Richard Russon [Wed, 10 Oct 2018 21:57:10 +0000 (22:57 +0100)]
fix comments

6 years agomerge: upstream fixes
Richard Russon [Wed, 10 Oct 2018 22:10:59 +0000 (23:10 +0100)]
merge: upstream fixes

 * Fix gnutls (a)lways to properly save for all certerr values.
 * Change gnutls certificate_file processing and interactive prompts.
 * Add a comment about gnutls date bits in certstat.

6 years agoAdd a comment about gnutls date bits in certstat.
Kevin McCarthy [Wed, 10 Oct 2018 19:50:15 +0000 (12:50 -0700)]
Add a comment about gnutls date bits in certstat.

It's easy to miss the call disabling date checking and wonder why the
certstat bits are not set.

6 years agoFix IMAP auth w/o IR to not hang on failed authentication
Pietro Cerutti [Wed, 10 Oct 2018 14:13:23 +0000 (14:13 +0000)]
Fix IMAP auth w/o IR to not hang on failed authentication

6 years agoChange gnutls certificate_file processing and interactive prompts.
Kevin McCarthy [Tue, 9 Oct 2018 21:39:09 +0000 (14:39 -0700)]
Change gnutls certificate_file processing and interactive prompts.

Accept a saved cert at any point in the chain, except for those
revoked or with invalid dates.

The INSECUREALG processing was a bit goofed up.  It was skipping the
prompt for every chain except the host, and was only displaying an
error for entry 1 (the host being 0, root being len-1).  Instead
prompt at any point, and display a warning as with the other errors.

Add a CERTERR_OTHER type to capture other bits.  Recently GnuTLS has
added additional certificate_status_t types.  We may want to improve
the prompts in the future for those, but for now at least make sure
it's recorded in certerr.

6 years agoFix gnutls (a)lways to properly save for all certerr values.
Kevin McCarthy [Tue, 9 Oct 2018 20:28:15 +0000 (13:28 -0700)]
Fix gnutls (a)lways to properly save for all certerr values.

For the case of SIGNERNOTCA, INSECUREALG, or a newer unhandled value,
the "(a)ccept always" prompt was allowed, but the cert saving was
prevented by a check only against NOTTRUSTED.  This ended up giving a
strange error message saying the cert was not saved.

Fix to save the cert for all errors except HOSTNAME (which is handled
separately).

6 years agomerge: upstream refactoring
Richard Russon [Tue, 9 Oct 2018 14:32:46 +0000 (15:32 +0100)]
merge: upstream refactoring

 * Add buffer pool functions.
 * Convert imap_rename and pgp_invoke_list_keys to use buffer pool.
 * Create mutt_buffer_add_printf().
 * Convert mix_send_message to use buffer pool.
 * Convert buffy_maildir_check_dir to use struct Buffer.
 * Convert maildir_parse_dir to use struct Buffer.
 * Convert _maildir_commit_message to use struct Buffer.
 * Convert maildir_sync_message to use BUFFERs.
 * Convert maildir_canon_filename() and callers to use struct Buffer.

6 years agoFix segfault when checking a mailbox after a disconnect (III)
Pietro Cerutti [Tue, 9 Oct 2018 12:33:31 +0000 (12:33 +0000)]
Fix segfault when checking a mailbox after a disconnect (III)

Issue #1349

6 years agotidy
Richard Russon [Tue, 9 Oct 2018 01:26:06 +0000 (02:26 +0100)]
tidy

6 years agoConvert maildir_canon_filename() and callers to use struct Buffer.
Kevin McCarthy [Mon, 8 Oct 2018 02:08:42 +0000 (19:08 -0700)]
Convert maildir_canon_filename() and callers to use struct Buffer.

Callers are maildir_check_mailbox(), _maildir_open_find_message(), and
maildir_open_find_message().

6 years agoConvert maildir_sync_message to use BUFFERs.
Kevin McCarthy [Sun, 7 Oct 2018 23:17:36 +0000 (16:17 -0700)]
Convert maildir_sync_message to use BUFFERs.

6 years agoConvert _maildir_commit_message to use struct Buffer.
Kevin McCarthy [Sun, 7 Oct 2018 22:48:17 +0000 (15:48 -0700)]
Convert _maildir_commit_message to use struct Buffer.