]> granicus.if.org Git - neomutt/log
neomutt
6 years agobug: check for aborted dir read
Richard Russon [Mon, 10 Sep 2018 20:08:49 +0000 (21:08 +0100)]
bug: check for aborted dir read

6 years agodoxy: fix links
Richard Russon [Mon, 10 Sep 2018 19:59:14 +0000 (20:59 +0100)]
doxy: fix links

6 years agotrivial fixes
Richard Russon [Sun, 9 Sep 2018 17:33:56 +0000 (18:33 +0100)]
trivial fixes

6 years agoFix build
Pietro Cerutti [Mon, 10 Sep 2018 09:38:06 +0000 (09:38 +0000)]
Fix build

6 years agoFix check on empty strings
Pietro Cerutti [Mon, 10 Sep 2018 07:44:52 +0000 (07:44 +0000)]
Fix check on empty strings

6 years agomerge: redistribute Context and Mailbox
Richard Russon [Sun, 9 Sep 2018 15:20:11 +0000 (16:20 +0100)]
merge: redistribute Context and Mailbox

 * fix mxapi comments
 * move Context.mx_ops
 * move Context.ctx->data
 * move Context.{hdrs,hdrmax}
 * move Context.{size,changed,readonly,quiet,closing}
 * free_data
 * notmuch: move mailbox data
 * notmuch: let mxapi do cleanup
 * notmuch: use mailbox, not context
 * mbox: use Mailbox, not Context
 * maildir: use Mailbox, not Context
 * nntp: use Mailbox, not Context
 * pop: use Mailbox, not Context
 * compress: use Mailbox, not Context
 * imap: use Mailbox, not Context
 * add mbox private Mailbox data
 * move Context.rights
 * eliminate Context from backends
 * Mailbox doesn't begin with 'b'
 * move Context.compress
 * tidy compress
 * move Context.{id,subj,label}_hash
 * move Context.{v2r,vcount}
 * move Context.mtime
 * tidy context usage
 * imap: rename mailbox out of the way

6 years agoimap: rename mailbox out of the way
Richard Russon [Sun, 9 Sep 2018 01:40:21 +0000 (02:40 +0100)]
imap: rename mailbox out of the way

6 years agotidy context usage
Richard Russon [Sat, 8 Sep 2018 14:59:25 +0000 (15:59 +0100)]
tidy context usage

6 years agomove Context.mtime
Richard Russon [Sat, 8 Sep 2018 15:05:42 +0000 (16:05 +0100)]
move Context.mtime

6 years agomove Context.{v2r,vcount}
Richard Russon [Sat, 8 Sep 2018 12:37:27 +0000 (13:37 +0100)]
move Context.{v2r,vcount}

6 years agomove Context.{id,subj,label}_hash
Richard Russon [Sat, 8 Sep 2018 12:28:40 +0000 (13:28 +0100)]
move Context.{id,subj,label}_hash

6 years agotidy compress
Richard Russon [Sat, 8 Sep 2018 12:02:56 +0000 (13:02 +0100)]
tidy compress

6 years agomove Context.compress
Richard Russon [Fri, 7 Sep 2018 19:46:12 +0000 (20:46 +0100)]
move Context.compress

6 years agoMailbox doesn't begin with 'b'
Richard Russon [Fri, 7 Sep 2018 18:22:49 +0000 (19:22 +0100)]
Mailbox doesn't begin with 'b'

6 years agoeliminate Context from backends
Richard Russon [Thu, 6 Sep 2018 22:51:41 +0000 (23:51 +0100)]
eliminate Context from backends

6 years agomove Context.rights
Richard Russon [Thu, 6 Sep 2018 16:40:59 +0000 (17:40 +0100)]
move Context.rights

6 years agoadd mbox private Mailbox data
Richard Russon [Thu, 6 Sep 2018 15:09:34 +0000 (16:09 +0100)]
add mbox private Mailbox data

6 years agoimap: use Mailbox, not Context
Richard Russon [Thu, 6 Sep 2018 12:01:11 +0000 (13:01 +0100)]
imap: use Mailbox, not Context

6 years agocompress: use Mailbox, not Context
Richard Russon [Thu, 6 Sep 2018 11:45:17 +0000 (12:45 +0100)]
compress: use Mailbox, not Context

6 years agopop: use Mailbox, not Context
Richard Russon [Thu, 6 Sep 2018 11:33:26 +0000 (12:33 +0100)]
pop: use Mailbox, not Context

6 years agonntp: use Mailbox, not Context
Richard Russon [Thu, 6 Sep 2018 11:20:42 +0000 (12:20 +0100)]
nntp: use Mailbox, not Context

6 years agomaildir: use Mailbox, not Context
Richard Russon [Thu, 6 Sep 2018 10:16:45 +0000 (11:16 +0100)]
maildir: use Mailbox, not Context

6 years agombox: use Mailbox, not Context
Richard Russon [Thu, 6 Sep 2018 10:03:46 +0000 (11:03 +0100)]
mbox: use Mailbox, not Context

6 years agonotmuch: use mailbox, not context
Richard Russon [Thu, 6 Sep 2018 09:56:18 +0000 (10:56 +0100)]
notmuch: use mailbox, not context

6 years agonotmuch: let mxapi do cleanup
Richard Russon [Thu, 6 Sep 2018 09:29:30 +0000 (10:29 +0100)]
notmuch: let mxapi do cleanup

6 years agonotmuch: move mailbox data
Richard Russon [Wed, 5 Sep 2018 22:58:26 +0000 (23:58 +0100)]
notmuch: move mailbox data

6 years agofree_data
Richard Russon [Tue, 4 Sep 2018 17:21:59 +0000 (18:21 +0100)]
free_data

6 years agomove Context.{size,changed,readonly,quiet,closing}
Richard Russon [Wed, 5 Sep 2018 16:24:23 +0000 (17:24 +0100)]
move Context.{size,changed,readonly,quiet,closing}

6 years agomove Context.{hdrs,hdrmax}
Richard Russon [Wed, 5 Sep 2018 15:55:32 +0000 (16:55 +0100)]
move Context.{hdrs,hdrmax}

6 years agomove Context.ctx->data
Richard Russon [Tue, 4 Sep 2018 15:23:39 +0000 (16:23 +0100)]
move Context.ctx->data

6 years agomove Context.mx_ops
Richard Russon [Tue, 4 Sep 2018 15:08:04 +0000 (16:08 +0100)]
move Context.mx_ops

6 years agofix mxapi comments
Richard Russon [Thu, 6 Sep 2018 16:54:13 +0000 (17:54 +0100)]
fix mxapi comments

6 years agoclang-format
Richard Russon [Thu, 6 Sep 2018 16:58:59 +0000 (17:58 +0100)]
clang-format

6 years agofix nntp probing
Richard Russon [Sun, 9 Sep 2018 15:02:19 +0000 (16:02 +0100)]
fix nntp probing

6 years agodocument imap ACLs
Richard Russon [Wed, 5 Sep 2018 18:48:55 +0000 (19:48 +0100)]
document imap ACLs

[ci skip]

6 years agomerge: minor tidying
Richard Russon [Tue, 4 Sep 2018 22:05:08 +0000 (23:05 +0100)]
merge: minor tidying

 * drop unnec casts
 * reduce scope
 * tidy logic
 * boolify
 * tweak #include guards
 * add missing mxapi functions

6 years agoadd missing mxapi functions
Richard Russon [Tue, 4 Sep 2018 21:42:31 +0000 (22:42 +0100)]
add missing mxapi functions

6 years agotweak #include guards
Richard Russon [Tue, 4 Sep 2018 20:55:53 +0000 (21:55 +0100)]
tweak #include guards

Closes #1328

6 years agoboolify
Richard Russon [Tue, 4 Sep 2018 18:11:47 +0000 (19:11 +0100)]
boolify

6 years agotidy logic
Richard Russon [Tue, 4 Sep 2018 18:04:26 +0000 (19:04 +0100)]
tidy logic

6 years agoreduce scope
Richard Russon [Tue, 4 Sep 2018 18:00:25 +0000 (19:00 +0100)]
reduce scope

6 years agodrop unnec casts
Richard Russon [Tue, 4 Sep 2018 17:20:48 +0000 (18:20 +0100)]
drop unnec casts

6 years agoDo not let libintl.h override setlocale
Dapeng Gao [Thu, 9 Aug 2018 02:28:24 +0000 (10:28 +0800)]
Do not let libintl.h override setlocale

6 years agomerge: update translations
Richard Russon [Tue, 4 Sep 2018 01:22:08 +0000 (02:22 +0100)]
merge: update translations

 * Update zh_CN translation
 * trans: add missing ngettext
 * Update lt_LT translation
 * Fix translation error
 * add Finnish translation
 * Added dutch translations
 * More dutch translation fixes
 * sync translations

6 years agosync translations
Richard Russon [Tue, 4 Sep 2018 01:15:40 +0000 (02:15 +0100)]
sync translations

6 years agoMore dutch translation fixes
Winderickx Eli (p087068) [Mon, 3 Sep 2018 19:15:22 +0000 (21:15 +0200)]
More dutch translation fixes

6 years agoAdded dutch translations
Winderickx Eli (p087068) [Mon, 3 Sep 2018 16:47:16 +0000 (18:47 +0200)]
Added dutch translations

6 years agoadd Finnish translation
Flammie Pirinen [Tue, 28 Aug 2018 22:27:56 +0000 (23:27 +0100)]
add Finnish translation

6 years agoFix translation error
Daniel Schmitz [Tue, 21 Aug 2018 05:44:36 +0000 (12:44 +0700)]
Fix translation error

6 years agoUpdate lt_LT translation
Marius Gedminas [Fri, 17 Aug 2018 13:04:43 +0000 (16:04 +0300)]
Update lt_LT translation

Unfuzz a message that became plural.

6 years agotrans: add missing ngettext
Richard Russon [Fri, 17 Aug 2018 00:13:05 +0000 (01:13 +0100)]
trans: add missing ngettext

6 years agoUpdate zh_CN translation
Zero King [Mon, 13 Aug 2018 05:08:44 +0000 (05:08 +0000)]
Update zh_CN translation

6 years agomerge: Use Mailbox members from Context
Richard Russon [Tue, 4 Sep 2018 00:40:59 +0000 (01:40 +0100)]
merge: Use Mailbox members from Context

 * Context ptr to Mailbox
 * move realpath
 * move path
 * move msgcount
 * move unread
 * move flagged
 * move magic

6 years agomove magic
Richard Russon [Thu, 30 Aug 2018 16:19:13 +0000 (17:19 +0100)]
move magic

6 years agomove flagged
Richard Russon [Thu, 30 Aug 2018 16:09:19 +0000 (17:09 +0100)]
move flagged

6 years agomove unread
Richard Russon [Thu, 30 Aug 2018 16:01:23 +0000 (17:01 +0100)]
move unread

6 years agomove msgcount
Richard Russon [Thu, 30 Aug 2018 15:54:58 +0000 (16:54 +0100)]
move msgcount

6 years agomove path
Richard Russon [Wed, 29 Aug 2018 20:37:15 +0000 (21:37 +0100)]
move path

6 years agomove realpath
Richard Russon [Wed, 29 Aug 2018 16:58:41 +0000 (17:58 +0100)]
move realpath

6 years agoContext ptr to Mailbox
Richard Russon [Wed, 29 Aug 2018 10:13:21 +0000 (11:13 +0100)]
Context ptr to Mailbox

6 years agomerge: upstream CONDSTORE and QRESYNC
Richard Russon [Mon, 3 Sep 2018 23:53:24 +0000 (00:53 +0100)]
merge: upstream CONDSTORE and QRESYNC

 * Add basic CONDSTORE support when fetching initial messages.
 * Add utility functions for QRESYNC support.
 * Add QRESYNC support.
 * Add more doc for the $imap_condstore and $imap_qresync options.
 * Only sync CONDSTORE and QRESYNC on the initial download.
 * Allow ctrl-c to interrupt initial IMAP header download.
 * Fix nested macro warning.
 * tidy upstream changes

6 years agotidy upstream changes
Richard Russon [Mon, 3 Sep 2018 15:50:13 +0000 (16:50 +0100)]
tidy upstream changes

6 years agoFix nested macro warning.
Kevin McCarthy [Tue, 21 Aug 2018 22:51:09 +0000 (15:51 -0700)]
Fix nested macro warning.

Pull the #if/#else outside of the snprintf in imap.c.  On some
platforms, snprintf is a macro itself, which leads to a warning about
undefined behavior.

Thanks to Charles Diza for pointing out the problem.

6 years agoAllow ctrl-c to interrupt initial IMAP header download.
Kevin McCarthy [Wed, 15 Aug 2018 23:13:45 +0000 (16:13 -0700)]
Allow ctrl-c to interrupt initial IMAP header download.

Once the mailbox is open, it is significantly more complicated to
abort and keep Mutt from crashing.  But during the initial
open/download Mutt is prepared to close the mailbox cleanly on
failure.

6 years agoOnly sync CONDSTORE and QRESYNC on the initial download.
Kevin McCarthy [Mon, 13 Aug 2018 16:43:55 +0000 (09:43 -0700)]
Only sync CONDSTORE and QRESYNC on the initial download.

In the midst of the imap_read_headers() refactor, I forgot to put this
guard on the /MODSEQ and /UIDSEQSET storage.

Because we don't deal with flag sync issues while the mailbox is open,
or when it closes, we only want to write those values to the header
cache during the initial download.

It makes no sense to perform all the header cache work if new messages
come into an open empty mailbox, so add a parameter to flag the
initial download, rather than check for msn_begin==1.

6 years agoAdd more doc for the $imap_condstore and $imap_qresync options.
Kevin McCarthy [Sun, 12 Aug 2018 02:14:10 +0000 (19:14 -0700)]
Add more doc for the $imap_condstore and $imap_qresync options.

6 years agoAdd QRESYNC support.
Kevin McCarthy [Sat, 26 May 2018 23:02:04 +0000 (16:02 -0700)]
Add QRESYNC support.

Refactor imap_read_headers() to break into functions for the different
queries.

Move uid_hash population to the same place msn_index is populated.

Change the VANISHED handler to not decrement MSNs for EARLIER.
FastMail, at least, does assume there are no gaps, and really it makes
no sense for there to be.  Further testing will be needed.

6 years agoAdd utility functions for QRESYNC support.
Kevin McCarthy [Thu, 24 May 2018 20:26:35 +0000 (13:26 -0700)]
Add utility functions for QRESYNC support.

* Add function to generate uid_seqset for header cache.
  This will be used by QREFRESH to reconstruct the msn_index state.

* Add seqset data structure and iterator functions.

* Add cmd_parse_vanished, for QRESYNC support.

* Add and enable QRESYNC capability.

* Create helper functions to store and retrieve the uid_seqset.

6 years agoAdd basic CONDSTORE support when fetching initial messages.
Kevin McCarthy [Tue, 15 May 2018 01:12:39 +0000 (18:12 -0700)]
Add basic CONDSTORE support when fetching initial messages.

Store MODSEQ in the header cache, and use that to perform a "FETCH
CHANGEDSINCE" for header updates when initially downloading messages.

Further improvements could be made to add support when syncing.
Handling MODSEQ for FLAG updates while the mailbox is open would be
complicated by the fact that Mutt supports locally modified headers,
so we couldn't accept the new (or subsequent) MODSEQ.

However, this initial step may at least provide some benefit when
opening the mailbox, which is generally the most time and data
intensive.

6 years agomerge: upstream OAUTHBEARER
Richard Russon [Mon, 3 Sep 2018 15:35:14 +0000 (16:35 +0100)]
merge: upstream OAUTHBEARER

 * Initial support for OAUTHBEARER for IMAP.
 * Support for using OAUTHBEARER for smtp.
 * Remove uninitialized warning for mutt_get_stat_timespec().
 * Improve OAUTHBEARER support.
 * tidy upstream changes
 * reorganise smtp auth_plain

6 years agoreorganise smtp auth_plain
Richard Russon [Mon, 3 Sep 2018 15:27:21 +0000 (16:27 +0100)]
reorganise smtp auth_plain

6 years agotidy upstream changes
Richard Russon [Mon, 3 Sep 2018 13:58:34 +0000 (14:58 +0100)]
tidy upstream changes

6 years agoinitialise timespecs
Richard Russon [Mon, 3 Sep 2018 13:48:51 +0000 (14:48 +0100)]
initialise timespecs

6 years agomerge: upstream inotify
Richard Russon [Mon, 3 Sep 2018 13:19:46 +0000 (14:19 +0100)]
merge: upstream inotify

 * add feature file monitoring with Linux inotify
 * Change direct mutt_getch() callers to handle new mail event.
 * Add new timeout functions to work with inotify monitors.
 * Quick fix for ncurses buffering issue with inotify polling.
 * Move mutt_getch() timeout value into curs_lib.c
 * Convert context and buffy to use nanosecond timestamps.
 * Work around open mailbox monitor code check issue.
 * Fix MonitorContextDescriptor update on removal.
 * Reset all MonitorContext state on context removal.
 * tidy upstream changes

6 years agotidy upstream changes
Richard Russon [Mon, 3 Sep 2018 01:29:51 +0000 (02:29 +0100)]
tidy upstream changes

6 years agoReset all MonitorContext state on context removal.
Kevin McCarthy [Wed, 27 Jun 2018 16:27:05 +0000 (09:27 -0700)]
Reset all MonitorContext state on context removal.

Reset both the descriptor and changed flag when the current context is
removed.  Don't make this dependent on the context being valid or
being found by monitor_resolve(), in case the context was closed due
to some type of error condition.

6 years agoFix MonitorContextDescriptor update on removal.
Kevin McCarthy [Wed, 27 Jun 2018 02:48:25 +0000 (19:48 -0700)]
Fix MonitorContextDescriptor update on removal.

Reset the context descriptor before checking for the monitor being
shared by another mailbox.  Technically, it would be set properly
during the next add, but it shouldn't be left incorrect.

6 years agoWork around open mailbox monitor code check issue.
Kevin McCarthy [Tue, 26 Jun 2018 00:54:43 +0000 (17:54 -0700)]
Work around open mailbox monitor code check issue.

The monitor code is too fast, and can result in all the changes for a
single directory stat update being missed.

Work around this issue by not recording stat time updates when the
check_mailbox() is triggered by the monitor.  This will cause the next
subsequent check to take another look.

6 years agoConvert context and buffy to use nanosecond timestamps.
Kevin McCarthy [Thu, 14 Jun 2018 08:17:56 +0000 (16:17 +0800)]
Convert context and buffy to use nanosecond timestamps.

The inotify interface has an unfortunate side effect of making Mutt
react too quickly to new mail.  Sometimes, the mail is only
half-delivered when the mailbox is checked.  Because Mutt is using the
stat mtime - seconds resolution - this means it won't realize there
are more messages delivered during the same second.

Nanosecond resolution fields were standardized in POSIX.1-2008, so
check for and use those if they are available.

6 years agoMove mutt_getch() timeout value into curs_lib.c
Kevin McCarthy [Sun, 10 Jun 2018 00:51:30 +0000 (08:51 +0800)]
Move mutt_getch() timeout value into curs_lib.c

Change monitor.c to reference the curs_lib value, instead of
vice-versa.

We need to store the value for both monitor.c's poll and for
mutt_monitor_ch() to perform an initial non-blocking check of ncurses'
getch() buffer.

6 years agoQuick fix for ncurses buffering issue with inotify polling.
Kevin McCarthy [Wed, 6 Jun 2018 00:38:44 +0000 (17:38 -0700)]
Quick fix for ncurses buffering issue with inotify polling.

Ncurses does its own buffering for some character sequences, notable
Esc-prefixed input.  Add a non-blocking check for getch() before
performing the mutt_monitor_poll() call.

This is a quick fix, which I'll clean up more later.

6 years agoAdd new timeout functions to work with inotify monitors.
Kevin McCarthy [Mon, 4 Jun 2018 01:34:21 +0000 (18:34 -0700)]
Add new timeout functions to work with inotify monitors.

The ncurses timeout() function doesn't affect the new poll inside
mutt_monitor_poll().  This meant that $imap_keepalive and $timeout
were not being respected when the monitor was used.

Create mutt_getch_timeout(), which delegates to timeout() and sets a
timeout value mutt_monitor_poll() uses too.

6 years agoChange direct mutt_getch() callers to handle new mail event.
Kevin McCarthy [Sun, 3 Jun 2018 21:05:13 +0000 (14:05 -0700)]
Change direct mutt_getch() callers to handle new mail event.

The inotify handler now returns -2 (timeout) on a new mail event.
Change the direct callers to ignore, so prompts aren't strangely
aborted.

Also, fix mutt_change_flag() to call mutt_refresh() before the
prompt.  Apparently ncurses getch() was doing this for us, but now
that we are polling STDIN instead, the prompt wasn't displaying.

6 years agoadd feature file monitoring with Linux inotify
gt_16_gitlab.com@innocircle.com [Sun, 3 Jun 2018 20:23:57 +0000 (20:23 +0000)]
add feature file monitoring with Linux inotify

6 years agomerge: upstream fixes
Richard Russon [Mon, 3 Sep 2018 01:01:42 +0000 (02:01 +0100)]
merge: upstream fixes

 * Convert certificate prompts to show sha-256 instead of md5.
 * Fix typo
 * Clean up documentation link targets.
 * Change compress examples to type "example" rather than "sect4".

6 years agoChange compress examples to type "example" rather than "sect4".
Kevin McCarthy [Sun, 2 Sep 2018 21:43:04 +0000 (14:43 -0700)]
Change compress examples to type "example" rather than "sect4".

6 years agoClean up documentation link targets.
Kevin McCarthy [Sun, 2 Sep 2018 21:22:09 +0000 (14:22 -0700)]
Clean up documentation link targets.

Move link targets for iconv-hook and sidebar_whitelist to the
beginning of a section, rather than a link embedded inside a command.

6 years agoFix typo
Cody Brownstein [Sat, 1 Sep 2018 16:47:07 +0000 (09:47 -0700)]
Fix typo

6 years agoConvert certificate prompts to show sha-256 instead of md5.
Kevin McCarthy [Fri, 31 Aug 2018 22:50:00 +0000 (15:50 -0700)]
Convert certificate prompts to show sha-256 instead of md5.

Due to the length of the sha-256 fingerprint, split the output into
two lines.

Note that this change now requires OpenSSL 0.9.8+ [2005-07-05], and
GnuTLS 1.7.4+ [2007-02-05].

6 years agotidy upstream changes
Richard Russon [Sun, 2 Sep 2018 22:22:11 +0000 (23:22 +0100)]
tidy upstream changes

6 years agomerge: upstream fixes
Richard Russon [Sat, 1 Sep 2018 17:59:12 +0000 (18:59 +0100)]
merge: upstream fixes

 * crypt-gpgme: prevent crash on bad S/MIME signature
 * Void passphrase on s/mime decryption error
 * smime_handle_entity() cleanup
 * Mention $pgp_decode_command for $pgp_check_gpg_decrypt_status_fd
 * Minor documentation fix
 * Display matching new messages in a thread-limited index
 * Bug fix: reset ctx->vsize in update_index_unthreaded on reopened mailbox
 * Improved limit-to-all detection by skipping leading spaces of the pattern
 * Add ctx->vsize = 0 in a couple of places
 * Handle reopen/new_mail when closing mailbox in <imap-logout-all>
 * Skip sort in mbox_sync_mailbox() when new/reopen occurs
 * Add mx_ops.msg_padding_size to return the padding for a mx type
 * Add message padding to ctx->vsize computation
 * Fix AUXSORT usage in compare_spam
 * Fix -z and -Z options to work with IMAP
 * Create mutt_buffer_increase_size() function
 * Always check UID vs MSN when handling FETCH
 * Refactor out mutt_is_quote_line()
 * Don't match $abort_noattach_regexp on quoted lines
 * Remove legacy trim_incomplete_mbyte() in the pager
 * Remove compare_stat() call in safe_rename()
 * Display an error message if syncing fails
 * Change $query_format to use mutt_format_s
 * Fix alias documentation examples
 * Add additional error handling to safe_rename()
 * Remove extra lstats() in safe_rename() upon link success
 * Add compose-to-sender functionality.

6 years agoAdd compose-to-sender functionality.
Kevin McCarthy [Wed, 22 Aug 2018 22:07:45 +0000 (15:07 -0700)]
Add compose-to-sender functionality.

This patch is loosely based on the NeoMutt feature, but adds in
support for the attach menu, reuses functionality in send.c, and has
proper mode checks.

Thanks to Enno for the opening the ticket requesting the port.

6 years agoclang-format
Richard Russon [Sat, 1 Sep 2018 09:32:04 +0000 (10:32 +0100)]
clang-format

6 years agoRemove extra lstats() in safe_rename() upon link success
Kevin McCarthy [Wed, 29 Aug 2018 20:00:14 +0000 (13:00 -0700)]
Remove extra lstats() in safe_rename() upon link success

I originally kept the lstat()'s in order to make as few changes as
possible to the function.  However, Derek Martin argues correctly that
if we are trusting the link() 0-retval, the lstats are unnecessary and
in fact can cause a performance impact over NFS.

6 years agoAdd additional error handling to safe_rename()
Kevin McCarthy [Mon, 27 Aug 2018 01:43:20 +0000 (18:43 -0700)]
Add additional error handling to safe_rename()

It is apparently possible for link() to return an error but the link
to still be created.  Add a double check for that case.  If the files
match, unlink the src and return success.

6 years agoFix alias documentation examples
Kevin McCarthy [Sun, 26 Aug 2018 23:08:06 +0000 (16:08 -0700)]
Fix alias documentation examples

Thanks to Cody Brownstein for pointing out the problem.

6 years agoChange $query_format to use mutt_format_s
Kevin McCarthy [Fri, 24 Aug 2018 22:49:49 +0000 (15:49 -0700)]
Change $query_format to use mutt_format_s

Use the character-cell width functions so that multibyte output is
properly formatted.

6 years agoDisplay an error message if syncing fails
Kevin McCarthy [Fri, 24 Aug 2018 19:56:54 +0000 (12:56 -0700)]
Display an error message if syncing fails

Ticket 36 reported an issue where a maildir was removed while the
mailbox was opened.  Later, attempting to sync displayed the message
"Writing xxx...", which remained on the screen.  The reporter actually
thought mutt was frozen, but it was simply that on a sync error Mutt
wasn't clearing or updating the message window.

There is some error message handling for mbox.c check_mailbox, but I
don't think that is the right place to further propogate messages.
Instead, add an error to the same place the initial "Writing..."
message is created.

6 years agoRemove compare_stat() call in safe_rename()
Kevin McCarthy [Tue, 14 Aug 2018 21:31:34 +0000 (14:31 -0700)]
Remove compare_stat() call in safe_rename()

Some filesystems, such as sshfs, implement hard links strangely.  The
hard link is created, but is represented by a different inode number
by the sshfs layer.  The current maildir code goes into an infinite
loop in this case.  Remove the compare_stat() and trust that a link()
return code of 0 means the link really did get created.  Still, keep
the stats just as a minor check.

6 years agoRemove legacy trim_incomplete_mbyte() in the pager
Kevin McCarthy [Tue, 14 Aug 2018 21:04:05 +0000 (14:04 -0700)]
Remove legacy trim_incomplete_mbyte() in the pager

Commit 4b1deb57 added the trim_incomplete_mbyte() call, but at
that time, the function was using fgets() into a fixed-sized
buffer.  The function was passing in "blen - 1" to the size
parameter of fgets, so the check for blen-2 was to see if the
buffer was completely filled by the fgets.

Commit d39d9c0c converted to use a dynamic buffer, but the
trim_incomplete_mbyte() was left in.  It now serves no purpose
because the entire line will be read in.  Presumably the buggy
regexp lib should have been fixed by now too.