1. 16 Aug, 2018 1 commit
  2. 15 Aug, 2018 1 commit
  3. 14 Aug, 2018 4 commits
  4. 13 Aug, 2018 1 commit
    • Kevin J. McCarthy's avatar
      Only sync CONDSTORE and QRESYNC on the initial download. · fe455d5f
      Kevin J. McCarthy authored
      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.
      fe455d5f
  5. 12 Aug, 2018 7 commits
    • Vincent Lefevre's avatar
      Updated French translation. · 289e5c8e
      Vincent Lefevre authored
      289e5c8e
    • Kevin J. McCarthy's avatar
    • Kevin J. McCarthy's avatar
      Always check UID vs MSN when handling FETCH. · a056404c
      Kevin J. McCarthy authored
      Ensure the UID vs MSN check is always done before flags are processed,
      not just if the UID happened to appear before the FLAGS.
      
      Improve the debug messages to make it clearer why a fetch response is
      being skipped.
      a056404c
    • Kevin J. McCarthy's avatar
      Add QRESYNC support. · 3865d043
      Kevin J. McCarthy authored
      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.
      3865d043
    • Kevin J. McCarthy's avatar
      Add utility functions for QRESYNC support. · 868aaa48
      Kevin J. McCarthy authored
      * 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.
      868aaa48
    • Kevin J. McCarthy's avatar
      Add basic CONDSTORE support when fetching initial messages. · 9079c2a8
      Kevin J. McCarthy authored
      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.
      9079c2a8
    • Kevin J. McCarthy's avatar
      Create mutt_buffer_increase_size() function. · b13a4ba6
      Kevin J. McCarthy authored
      This will allow preallocating buffers that we know are going to be
      big for qresync support.
      
      This will also be useful for buffer pools later on.
      b13a4ba6
  6. 29 Jul, 2018 1 commit
  7. 28 Jul, 2018 3 commits
    • Kevin J. McCarthy's avatar
      Fix -z and -Z options to work with IMAP. · 911df435
      Kevin J. McCarthy authored
      -Z did not work if $imap_passive was set (the default).  I think using
      the option implies the desire to open a new connection and check
      buffy at startup, so temporarily turn it off during the buffy.
      
      -z was not hooked up for IMAP.  Change it to call imap_status().  This
      also requires $imap_passive be unset, so temporarily turn the option
      off too.
      911df435
    • Kevin J. McCarthy's avatar
      Add a note about doc/manual.tex generation. · 6db2f9d1
      Kevin J. McCarthy authored
      The invocation doesn't work for me, but does work for Ken.  I'm
      reluctant to touch and break it for existing users, so instead
      add a note to the Makefile.am.  Perhaps someone with more knowledge of
      those tools can make it portable.
      6db2f9d1
    • Kevin J. McCarthy's avatar
      Fix AUXSORT usage in compare_spam. · 8a81930d
      Kevin J. McCarthy authored
      AUXSORT already checks if the first parameter is zero.
      
      Additionally, the macro expands into more than one statement, so
      putting inside an unbracketed if is misleading and generates a
      warning on the latest gcc.
      
      Fortunately, both statements checked if the first parameter was zero,
      so no actual bug resulted.
      8a81930d
  8. 26 Jul, 2018 3 commits
    • Ken Moffat's avatar
      Fix manual.pdf toc page numbers. · 2af6caa1
      Ken Moffat authored
      When TeX engines are not run sufficient times there are undefined
      references - for manual.tex the page numbers in the Table of
      Contents and the List of Tables render as '??'.  In this case:
      
      Then shalt thou count to three, no more, no less.
      2af6caa1
    • Kevin J. McCarthy's avatar
      Add message padding to ctx->vsize computation. · 5f5dc70f
      Kevin J. McCarthy authored
      Use the mx_msg_padding_size() from the previous commit to be more
      precise about the correct vsize.
      
      This avoids strange situations where all the message are displayed in
      a limit, but the vsize is not equal to the size.
      5f5dc70f
    • Kevin J. McCarthy's avatar
      Add mx_ops.msg_padding_size to return the padding for a mx type. · 9806d249
      Kevin J. McCarthy authored
      Mbox pads with a 1 byte, while mmdf pads with 10.  Because compress
      depends on the child type, we create a mx_ops, which allows compress.c
      to delegate to the child ops.
      9806d249
  9. 25 Jul, 2018 2 commits
  10. 24 Jul, 2018 1 commit
  11. 22 Jul, 2018 1 commit
  12. 21 Jul, 2018 2 commits
    • Vincent Lefevre's avatar
      Bug fix: reset ctx->vsize in update_index_unthreaded on reopened mailbox. · 9a314f02
      Vincent Lefevre authored
      This fixes a bug observed when doing the following:
      1. Start Mutt on some mailbox.
      2. Limit the view.
      3. Set sort by date (thus unthreaded).
      4. Set $status_format to display the size of the messages shown (%L).
      5. Copy a message matching the limit pattern to this mailbox.
      6. With another Mutt instance, remove this message from this mailbox.
      7. Move the cursor to update the view.
      Result: one was getting a value equal to twice the initial size.
      9a314f02
    • Vincent Lefevre's avatar
      Cleanup: avoid an ugly local preprocessor macro. · b9eddeab
      Vincent Lefevre authored
      Note: This macro was also hiding the use of a variable, making the code
      difficult to read.
      b9eddeab
  13. 20 Jul, 2018 1 commit
    • Kevin J. McCarthy's avatar
      Display matching new messages in a thread-limited index. · 1d41321a
      Kevin J. McCarthy authored
      Previously, the index performed pattern matching first, and then
      resorted new mail.  The problem was that thread-limiting patterns,
      e.g. ~(pattern), require threading data to properly match against the
      new messages.
      
      We already save new messages for the purposes of uncollapsing threads.
      To keep the code cleaner, split off update_index() into
      update_index_threaded()/unthreaded().  Then for threaded mode, save
      the new messages first.  We can then sort (before pattern matching),
      and use the save_new array to pattern match the new messages
      afterwards.
      
      The $uncollapse_new loop was unnecessarily performing a n^2 search.
      Simplify to just iteratate over the save_new instead.
      1d41321a
  14. 17 Jul, 2018 3 commits
  15. 16 Jul, 2018 2 commits
  16. 15 Jul, 2018 1 commit
  17. 13 Jul, 2018 6 commits