2020-09-25 Richard Russon <rich@flatcap.org>
* Features
- Compose: display user-defined headers
- Address Book / Query: live sorting
- Address Book / Query: patterns for searching
- Config: Add '+=' and '-=' operators for String Lists
- Config: Add '+=' operator for Strings
- Allow postfix query ':setenv NAME?' for env vars
* Bug Fixes
- Fix crash when searching with invalid regexes
- Compose: Prevent infinite loop of `send2-hook`s
- Fix sidebar on new/removed mailboxes
- Restore indentation for named mailboxes
- Prevent half-parsing an alias
- Remove folder creation prompt for POP path
- Show error if `$message_cachedir` doesn't point to a valid directory
- Fix tracking LastDir in case of IMAP paths with Unicode characters
- Make sure all mail gets applied the index limit
- Add warnings to -Q query CLI option
- Fix index tracking functionality
* Changed Config
- Add `$compose_show_user_headers` (yes)
* Translations
- 100% Czech
- 100% Lithuanian
- Split up usage strings
* Build
- Run shellcheck on hcachever.sh
- Add the Address Sanitizer
- Move compose files to lib under compose/
- Move address config into libaddress
- Update to latest acutest - fixes a memory leak in the unit tests
* Code
- Implement ARRAY API
- Deglobalised the Config Sort functions
- Refactor the Sidebar to be Event-Driven
- Refactor the Color Event
- Refactor the Commands list
- Make ctx_update_tables private
- Reduce the scope/deps of some Validator functions
- Use the Email's IMAP UID instead of an increasing number as index
- debug: log window focus
2020-08-21 Richard Russon <rich@flatcap.org>
* Bug Fixes
- fix maildir flag generation
- fix query notmuch if file is missing
- notmuch: don't abort sync on error
- fix type checking for send config variables
* Changed Config
- `$sidebar_format` - Use `%D` rather than `%B` for named mailboxes
* Translations
- 96% Lithuanian
- 90% Polish
2020-08-14 Richard Russon <rich@flatcap.org>
* Security
- Add mitigation against DoS from thousands of parts
* Features
- Allow index-style searching in postpone menu
- Open NeoMutt using a mailbox name
- Add `cd` command to change the current working directory
- Add tab-completion menu for patterns
- Allow renaming existing mailboxes
- Check for missing attachments in alternative parts
- Add one-liner docs to config items
* Bug Fixes
- Fix logic in checking an empty From address
- Fix Imap crash in `cmd_parse_expunge()`
- Fix setting attributes with S-Lang
- Fix: redrawing of `$pager_index_lines`
- Fix progress percentage for syncing large mboxes
- Fix sidebar drawing in presence of indentation + named mailboxes
- Fix retrieval of drafts when "postponed" is not in the mailboxes list
- Do not add comments to address group terminators
- Fix alias sorting for degenerate addresses
- Fix attaching emails
- Create directories for nonexistent file hcache case
- Avoid creating mailboxes for failed subscribes
- Fix crash if rejecting cert
* Changed Config
- Add `$copy_decode_weed`, `$pipe_decode_weed`, `$print_decode_weed`
- Change default of `$crypt_protected_headers_subject` to "..."
- Add default keybindings to history-up/down
* Translations
- 100% Czech
- 100% Spanish
* Build
- Allow building against Lua 5.4
- Fix when sqlite3.h is missing
* Docs
- Add a brief section on stty to the manual
- Update section "Terminal Keybindings" in the manual
- Clarify PGP Pseudo-header `S<id>` duration
* Code
- Clean up String API
- Make the Sidebar more independent
- De-centralise the Config Variables
- Refactor dialogs
- Refactor: Help Bar generation
- Make more APIs Context-free
- Adjust the edata use in Maildir and Notmuch
- Window refactoring
- Convert libsend to use Config functions
- Refactor notifications to reduce noise
- Convert Keymaps to use STAILQ
- Track currently selected email by msgid
- Config: no backing global variable
- Add events for key binding
* Upstream
- Fix imap postponed mailbox use-after-free error
- Speed up thread sort when many long threads exist
- Fix ~v tagging when switching to non-threaded sorting
- Add message/global to the list of known "message" types
- Print progress meter when copying/saving tagged messages
- Remove ansi formatting from autoview generated quoted replies
- Change postpone mode to write Date header too
- Unstuff `format=flowed`
2020-06-19 Richard Russon <rich@flatcap.org>
* Security
- Abort GnuTLS certificate check if a cert in the chain is rejected
- TLS: clear data after a starttls acknowledgement
- Prevent possible IMAP MITM via PREAUTH response
* Features
- add config operations +=/-= for number,long
- Address book has a comment field
- Query menu has a comment field
* Contrib
- sample.neomuttrc-starter: Do not echo promted password
* Bug Fixes
- make "news://" and "nntp://" schemes interchangeable
- Fix CRLF to LF conversion in base64 decoding
- Double comma in query
- compose: fix redraw after history
- Crash inside empty query menu
- mmdf: fix creating new mailbox
- mh: fix creating new mailbox
- mbox: error out when an mbox/mmdf is a pipe
- Fix list-reply by correct parsing of List-Post headers
- Decode references according to RFC2047
- fix tagged message count
- hcache: fix keylen not being considered when building the full key
- sidebar: fix path comparison
- Don't mess with the original pattern when running IMAP searches
- Handle IMAP "NO" resps by issuing a msg instead of failing badly
- imap: use the connection delimiter if provided
- Memory leaks
* Changed Config
- `$alias_format` default changed to include `%c` comment
- `$query_format` default changed to include `%e` extra info
* Translations
- 100% Lithuanian
- 84% French
- Log the translation in use
* Docs
- Add missing commands unbind, unmacro to man pages
* Build
- Check size of long using `LONG_MAX` instead of `__WORDSIZE`
- Allow ./configure to not record cflags
- fix out-of-tree build
- Avoid locating gdbm symbols in qdbm library
* Code
- Refactor unsafe TAILQ returns
- add window notifications
- flip negative ifs
- Update to latest acutest.h
- test: add store tests
- test: add compression tests
- graphviz: email
- make more opcode info available
- refactor: `main_change_folder()`
- refactor: `mutt_mailbox_next()`
- refactor: `generate_body()`
- compress: add `{min,max}_level` to ComprOps
- emphasise empty loops: "// do nothing"
- prex: convert `is_from()` to use regex
- Refactor IMAP's search routines
2020-05-01 Richard Russon <rich@flatcap.org>
* Bug Fixes
- Make sure buffers are initialized on error
- fix(sidebar): use abbreviated path if possible
* Translations
- 100% Lithuanian
* Docs
- make header cache config more explicit
2020-04-24 Richard Russon <rich@flatcap.org>
* Bug Fixes
-Fix history corruption
-Handle pretty much anything in a URL query part
-Correctly parse escaped characters in header phrases
-Fix crash reading received header
-Fix sidebar indentation
-Avoid crashing on failure to parse an IMAP mailbox
-Maildir: handle deleted emails correctly
-Ensure OP_NULL is always first
* Translations
-100% Czech
* Build
-cirrus: enable pcre2, make pkgconf a special case
-Fix finding pcre2 w/o pkgconf
-build: tdb.h needs size_t, bring it in with stddef.h
2020-03-20 Richard Russon <rich@flatcap.org>
* Bug Fixes
- Fix COLUMNS env var
- Fix sync after delete
- Fix crash in notmuch
- Fix sidebar indent
- Fix emptying trash
- Fix command line sending
- Fix reading large address lists
- Resolve symlinks only when necessary
* Translations
- 100% Lithuanian
- 96% Spanish
* Docs
- Include OpenSSL/LibreSSL/GnuTLS version in neomutt -v output
- Fix case of GPGME and SQLite
* Build
- Create libcompress (lz4, zlib, zstd)
- Create libhistory
- Create libbcache
- Move zstrm to libconn
* Code
- Add more test coverage
- Rename magic to type
- Use mutt_file_fopen() on config variables
- Change commands to use intptr_t for data
2020-03-13 Richard Russon <rich@flatcap.org>
* Features
- UI: add number of old messages to sidebar_format
- UI: support ISO 8601 calendar date
- UI: fix commands that don’t need to have a non-empty mailbox to be valid
- PGP: inform about successful decryption of inline PGP messages
- PGP: try to infer the signing key from the From address
- PGP: enable GPGMe by default
- Notmuch: use query as name for vfolder-from-query
- IMAP: add network traffic compression (COMPRESS=DEFLATE, RFC4978)
- Header cache: add support for generic header cache compression
* Bug Fixes
- Fix uncollapse_jump
- Only try to perform entire-thread on maildir/mh mailboxes
- Fix crash in pager
- Avoid logging single new lines at the end of header fields
- Fix listing mailboxes
- Do not recurse a non-threaded message
- Fix initial window order
- Fix leaks on IMAP error paths
- Notmuch: compose(attach-message): support notmuch backend
- Fix IMAP flag comparison code
- Fix $move for IMAP mailboxes
- Maildir: maildir_mbox_check_stats should only update mailbox stats if requested
- Fix unmailboxes for virtual mailboxes
- Maildir: sanitize filename before hashing
- OAuth: if 'login' name isn't available use 'user'
- Add error message on failed encryption
- Fix a bunch of crashes
- Force C locale for email date
- Abort if run without a terminal
* Changed Config
- `$crypt_use_gpgme` - Now defaults to 'yes' (enabled)
- `$abort_backspace` - Hitting backspace against an empty prompt aborts the prompt
- `$abort_key` - String representation of key to abort prompts
- `$arrow_string` - Use an custom string for arrow_cursor
- `$crypt_opportunistic_encrypt_strong_keys` - Enable encryption only when strong a key is available
- `$header_cache_compress_dictionary` - Filepath to dictionary for zstd compression
- `$header_cache_compress_level` - Level of compression for method
- `$header_cache_compress_method` - Enable generic hcache database compression
- `$imap_deflate` - Compress network traffic
- `$smtp_user` - Username for the SMTP server
* Translations
- 100% Lithuanian
- 81% Spanish
- 78% Russian
* Build
- Add libdebug
- Rename public headers to lib.h
- Create libcompress for compressed folders code
- Enable Cirrus CI for FreeBSD
* Code
- Refactor Windows and Dialogs
- Lots of code tidying
- Refactor: mutt_addrlist\_{search,write}
- Lots of improvements to the Config code
- Use Buffers more pervasively
- Unify API function naming
- Rename library shared headers
- Refactor libconn gui dependencies
- Refactor: init.[ch]
- Refactor config to use subsets
- Config: add path type
- Remove backend deps from the connection code
* Upstream
- Allow ~b ~B ~h patterns in send2-hook
- Rename smime oppenc mode parameter to get_keys_by_addr()
- Add $crypt_opportunistic_encrypt_strong_keys config var
- Fix crash when polling a closed ssl connection
- Turn off auto-clear outside of autocrypt initialization
- Add protected-headers="v1" to Content-Type when protecting headers
- Fix segv in IMAP postponed menu caused by reopen_allow
- Adding ISO 8601 calendar date
- Fix $fcc_attach to not prompt in batch mode
- Convert remaining mutt_encode_path() call to use struct Buffer
- Fix rendering of replacement_char when Charset_is_utf8
- Update to latest acutest.h
Leaf package.
2019-11-29 Richard Russon <rich@flatcap.org>
* Features
- Add raw mailsize expando (%cr)
* Bug Fixes
- Avoid double question marks in bounce confirmation msg
- Fix bounce confirmation
- fix new-mail flags and behaviour
- fix: browser <descend-directory>
- fix ssl crash
- fix move to trash
- fix flickering
- Do not check hidden mailboxes for new mail
- Fix new_mail_command notifications
- fix crash in examine_mailboxes()
- fix crash in mutt_sort_threads()
- fix: crash after sending
- Fix crash in tunnel's conn_close
- fix fcc for deep dirs
- imap: fix crash when new mail arrives
- fix colour 'quoted9'
- quieten messages on exit
- fix: crash after failed mbox_check
- browser: default to a file/dir view when attaching a file
* Changed Config
- Change $write_bcc to default off
* Translations
- 100% Portuguese (Brazil)
- 92% Polish
* Docs
- Add a bit more documentation about sending
- Clarify $write_bcc documentation.
- Update documentation for raw size expando
- docbook: set generate.consistent.ids to make generated html reproducible
* Build
- fix build/tests for 32-bit arches
- tests: fix test that would fail soon
- tests: fix context for failing idna tests
2019-11-11 Richard Russon \<rich@flatcap.org\>
* Bug Fixes
- browser: fix directory view
- fix crash in mutt_extract_token()
- force a screen refresh
- fix crash sending message from command line
- notmuch: use nm_default_uri if no mailbox data
- fix forward attachments
- fix: vfprintf undefined behaviour in body_handler
- Fix relative symlink resolution
- fix: trash to non-existent file/dir
- fix re-opening of mbox Mailboxes
- close logging as late as possible
- log unknown mailboxes
- fix crash in command line postpone
- fix memory leaks
- fix icommand parsing
- fix new mail interaction with mail_check_recent
Performing substitutions during post-patch breaks tools such as mkpatches,
making it very difficult to regenerate correct patches after making changes,
and often leading to substituted string replacements being committed.
2018-06-22 Richard Russon <rich@flatcap.org>
* Features
- Expand variables inside backticks
- Honour SASL-IR IMAP capability in SASL PLAIN
* Bug Fixes
- Fix toggle-read
- Do not truncate shell commands on ; or #
- pager: index must be rebuilt on MUTT_REOPENED
- Handle a BAD response in AUTH PLAIN w/o initial response
- fcc_attach: Don't ask every time
- Enlarge path buffers PATH_MAX (4096)
- Move LSUB call from connection establishment to mailbox SELECTion
* Translations
- Update Chinese (Simplified): 100%
- Update Czech: 100%
- Update German: 100%
- Update Lithuanian: 100%
- Update Portuguese (Brazil): 100%
- Update Slovak: 59%
- Reduce duplication of messages
* Code
- Tidy up the mailbox API
- Tidy up the header cache API
- Tidy up the encryption API
- Add doxygen docs for more functions
- Refactor more structs to use STAILQ
2018-05-12 Richard Russon <rich@flatcap.org>
* Features
- echo command
- Add $browser_abbreviate_mailboxes
- Add ~M pattern to match mime Content-Types
- Add support for multipart/multilingual emails
- Jump to a collapsed email
- Add support for idn2 (IDNA2008)
* Bug Fixes
- Let mutt_ch_choose report conversion failure
- minor IMAP string handling fixes
* Translations
- Chinese (Simplified) (100%)
- Czech (100%)
- German (100%)
- Lithuanian (62%)
- Portuguese (Brazil) (100%)
* Coverity defects
- match prototypes to their functions
- make logic clearer
- reduce scope of variables
- fix coverity defects
* Docs
- development: analysis
- development: easy tasks
- development: roadmap
* Code
- start refactoring libconn
- split out progress functions
- split out window functions
- split out terminal setting
- convert MyVars to use TAILQ
- split mutt_file_{lock,unlock}
- Move IDN version string to mutt/idna.c
- refactor: init_locale()
- Eliminate static variable in mutt_file_dirname
* Tidy
- test int functions against 0
- rename lots of constants
- rename lots of functions
- sort lots of fields/definitions
* Upstream
- Increase account.user/login size to 128
- Fix comparison of flags with multiple bits set
- Change mutt_error call in mutt_gpgme_set_sender() to dprint
- Improve the error message when a signature is missing
- pager specific "show incoming mailboxes list" macro
- Improve gss debug printing of status_string
- Remove trailing null count from gss_buffer_desc.length field
- Add a comment in auth_gss about RFCs and null-termination
- Change prompt string for $crypt_verify_sig
2018-02-23 Richard Russon <rich@flatcap.org>
* Features
- browser: `<goto-parent>` function bound to "p"
- editor: `<history-search>` function bound to "Ctrl-r"
- Cygwin support: https://www.neomutt.org/distro/cygwin
- OpenSUSE support: https://www.neomutt.org/distro/suse
- Upstream Homebrew support: Very soon - https://www.neomutt.org/distro/homebrew
* Bug Fixes
- gmail server-size search
- nested-if: correctly handle "<" and ">" with %?
- display of special chars
- lua: enable myvars
- for pgpewrap in default gpg.rc
- reply_regexp which wasn't formatted correctly.
- parsing of urls containing '?'
- out-of-bounds read in mutt_str_lws_len
* Translations
- Review fuzzy lt translations
- Updated French translation
* Website
- Installation guide for Cygwin
- Installation guide for OpenSUSE
- Installation guide for CRUX
* Build
- check that DTDs are installed
- autosetup improvements
- option for which version of bdb to use
- drop test for resizeterm -- it's always present
* Code
- split if's containing assignments
- doxygen: add/improve comments
- rename functions / parameters for consistency
- add missing {}s for clarity
- move functions to library
- reduce scope of variables
- boolify more variables
- iwyu: remove unnecessary headers
- name unicode chars
- tailq: migrate parameter api
- md5: refactor and tidy
- rfc2047: refactor and tidy
- buffer: improvements
- create unit test framework
- fix several coverity defects
* Upstream
- Fix s/mime certificate deletion bug
- Disable message security if the backend is not available
- Fix improper signed int conversion of IMAP uid and msn values
- Change imap literal counts to parse and store unsigned ints
- Fix imap status count range check
- cmd_handle_fatal: make error message a bit more descriptive
- Create pgp and s/mime default and sign_as key vars
- Add missing setup calls when resuming encrypted drafts
- mutt_pretty_size: show real number for small files
- examine_directory: set directory/symlink size to zero
- Add history-search function, bound to ctrl-r
- Avoid a potential integer overflow if a Content-Length value is huge
The previous release was the last one supporting autotools,
so switch to autosetup build. Adapt options.
2017-12-15 Richard Russon <rich@flatcap.org>
* Bug Fixes
- Fix some regressions in the previous release
2017-12-08 Richard Russon <rich@flatcap.org>
* Features
- Enhance ifdef feature to support my_ vars
- Add <edit-or-view-raw-message>
- Remove vim syntax file from the main repo
- Support reading FQDN from mailname files
* Bug Fixes
- Do not turn CRLF into LF when dealing with transfer-encoding=base64
- Cleanup "SSL is unavailable" error in mutt_conn_find
- Don't clear the macro buffer during startup
- Fixup smart modify-labels-then-hide for !tag case
- Add sleep after SMTP error
- Restore folder settings after folder-hook
- Fix segfault when pipe'ing a deleted message
* Docs
- Display_filter escape sequence
- Correct spelling mistakes
- Add a sentence to quasi-delete docs
- Modify gpg.rc to accommodate GPG 2.1 changes
* Build
- Fix build for RHEL6
- Define NCURSES_WIDECHAR to require wide-char support from ncurses
- Autosetup: fix check for missing sendmail
- Respect --with-ssl path
- Check that OpenSSL md5 supports -r before using it
- Autosetup: expand --everything in `neomutt -v`
- Make sure objects are not compiled before git_ver.h is generated
- Build: fix update-po target
- Fix out-of-tree builds
- Fix stdout + stderr redirection in hcachever.sh
- Build: moved the check for idn before the check for notmuch
- Define prefix in Makefile.autosetup
- Install stuff to $(PACKAGE) in $(libexecdir), not $(libdir)
- Update autosetup to latest master
* Code
- Rename files
- Rename functions
- Rename variables
- Rename constants
- Remove unused parameters
- Document functions
- Rearrange functions
- Move functions to libraries
- Add new library functions
- Rearrange switch statements
- Boolification
- Drop #ifdef DEBUG
- Fix Coverity defects
- Insert braces
- Split ifs
- Fallthrough
- Fix shadow variable
- Replace mutt_debug with a macro
- Return early where possible
* Upstream
- Note which ssl config vars are GnuTLS or OpenSSL only
- Add message count to $move quadoption prompt
- Add %R (number of read messages) for $status_format
- Add $change_folder_next option to control mailbox suggestion order
- Fix $smart_wrap to not be disabled by whitespace-prefixed lines
- Remove useless else branch in the $smart_wrap code
- Fix ansi escape sequences with both reset and color parameters
neomutt is now called 'neomutt' instead of 'mutt'. Remove conflict
with mutt.
2017-10-27 Richard Russon <rich@flatcap.org>
* Bug Fixes
- variable type when using fread
- prevent timezone overflow
- tags: Show fake header for all backends
- notmuch: virtual-mailboxes should accept a limit
- Issue 888: Fix imap mailbox flag logging
- fix actions on tagged messages
- call the folder-hook before saving to $record
- Fix smart wrap in pager without breaking header
- Add polling for the IDLE command
* Docs
- imap/notmuch tags: Add some documentation
- English and other cleanups
- compressed and nntp features are now always built
* Website
- Update Arch instructions
* Build
- Fix update-po
- Fix neomutt.pot location, remove from git
- Allow to specify --docdir at configure time
- Generate neomuttrc even if configured with --disable-doc
- Let autosetup define PWD, do not unnecessarily try to create hcache dir
- Use bundled wcscasecmp if an implementation is not found in libc
- Use host compiler to build the documentation
- Update autosetup to latest master branch
- autosetup: delete makedoc on 'make clean'
- Fixes for endianness detection
- Update autosetup to latest master branch
- Do not use CPPFLAGS / CFLAGS together with CC_FOR_BUILD
- --enable-everything includes lua
- autosetup: check for sys_siglist[]
* Code
- move functions to library
- lib: move MIN/MAX macros
- simplify null checks
- kill preproc expansion laziness
- reduce scope of variables
- merge: minor code cleanups
- split up 'if' statements that assign and test
- Refactor: Remove unused return type
- Bool: change functions in mx.h
- bool: convert function parameters in nntp.h
- add extra checks to mutt_pattern_exec()
- Use safe_calloc to initialize memory, simplify size_t overflow check
- Move mutt_rename_file to lib/file.[hc]
- doxygen: fix a few warnings
- minor code fixes
- use mutt_array_size()
- refactor out O_NOFOLLOW
- initialise variables
- lib: move List and Queue into library
- url: make notmuch query string parser generic
- Wrap dirname(3) inside a mutt_dirname() function
2017-10-13 Richard Russon <rich@flatcap.org>
* Bug Fixes
- crash using uncolor
- Sort the folders list when browsing an IMAP server
- Prefer a helpful error message over a BEEP
* Build
- Do not fail if deflate is not in libz
- Support EXTRA_CFLAGS and EXTRA_LDFLAGS, kill unused variable
2017-10-06 Richard Russon <rich@flatcap.org>
* Features
- Add IMAP keywords support
* Bug Fixes
- set mbox_type
- %{fmt} date format
- Fix off-by-one buffer overflow in add_index_color
- crash in mbox_to_udomain
- crash in mutt_substrdup
- crash looking up mime body type
- digest_collapse was broken
- crash using notmuch expando with imap
- imap: Fix mx.mbox leak in imap_get_parent_path
- overflow in mutt_mktime()
- add more range-checking on dates/times
- Remove spurious error message
- Unsubscribe after deleting an imap folder
- Do not pop from MuttrcStack what wasn't pushed
* Docs
- replace mutt refs with neomutt
- drop old vim syntax file
* Code
- convert functions to use 'bool'
- convert structs to use STAILQ
* Build
- Autosetup-based configuration
- drop upstream mutt references
- rename everything 'mutt' to 'neomutt'
- move helper programs to lib dir
- rename regexp to regex
- expand buffers to avoid gcc7 warnings
* Upstream
- Remove \Seen flag setting for imap trash
- Change imap copy/save and trash to sync flags, excluding deleted
- Improve imap fetch handler to accept an initial UID
- Display an error message when delete mailbox fails
- Updated French translation
- Fix imap sync segfault due to inactive headers during an expunge
- Close the imap socket for the selected mailbox on error
- Add missing IMAP_CMD_POLL flag in imap buffy check
- Change maildir and mh check_mailbox to use dynamic sized hash
- Fix uses of context->changed as a counter
- Make cmd_parse_fetch() more precise about setting reopen/check flags
- Enable $reply_self for group-reply, even with $metoo unset
2017-09-12 Richard Russon <rich@flatcap.org>
* Bug Fixes
- broken check on resend message
- crash in vfolder-from-query
* Build
- Be more formal about quoting in m4 macros
- fix warnings raised by gcc7
- notmuch: add support for the v5 API
2017-09-07 Richard Russon <rich@flatcap.org>
* Contrib
- Add guix build support
* Bug Fixes
- Only match real mailboxes when looking for new mail
- Fix the printing of ncurses version in -v output
- Bind editor \<delete\> to delete-char
- Fix overflowing colours
- Fix empty In-Reply-To generation
- Trim trailing slash from completed dirs
- Add guix-neomutt.scm
- Fix setting custom query_type in notmuch query
* Website
- New technical documentation LINK
- Improve Gentoo distro page
* Build
- Better curses identification
- Use the system's wchar_t support
- Use the system's md5 tool (or equivalent)
- Clean up configure.ac
- Teach gen-map-doc about the new opcode header
* Source
- Rename functions (snake_case)
- Rename constants/defines (UPPER_CASE)
- Create library of shared functions
- Much tidying
- Rename globals to match user config
- Drop unnecessary functions/macros
- Use a standard list implementation
- Coverity fixes
- Use explicit NUL for string terminators
- Drop OPS\* in favour of opcodes.h
* Upstream
- Fix menu color calls to occur before positioning the cursor
- When guessing an attachment type, don't allow text/plain if there is a null character
- Add $imap_poll_timeout to allow mailbox polling to time out
- Handle error if REGCOMP in pager fails when resizing
- Change recvattach to allow nested encryption
- Fix attachment check_traditional and extract_keys operations
- Add edit-content-type helper and warning for decrypted attachments
- Add option to run command to query attachment mime type
- Add warning about using inline pgp with format=flowed
2017-07-14 Richard Russon <rich@flatcap.org>
* Translations
- Update German translation
* Docs
- compile-time output: use two lists
- doxygen: add config file
- doxygen: tidy existing comments
* Build
- fix hcachever.sh script
* Upstream
- Fix crash when $postponed is on another server.
2017-07-07 Richard Russon <rich@flatcap.org>
* Features
- Support Gmail's X-GM-RAW server-side search
- Include pattern for broken threads
- Allow sourcing of multiple files
* Contrib
- vombatidae colorscheme
- zenburn colorscheme
- black 256 solarized colorscheme
- neonwolf colorscheme
- Mutt logos
* Bug Fixes
- flags: update the hdr message last
- gpgme S/MIME non-detached signature handling
- menu: the thread tree color
- Uses CurrentFolder to populate LastDir with IMAP
- stabilise sidebar sort order
- colour emails with a '+' in them
- the padding expando '%>'
- Do not set old flag if mark_old is false
- maildir creation
- Decode CRLF line endings to LF when copying headers
- score address pattern do not match personal name
- open attachments in read-only mode
- Add Cc, In-Reply-To, and References to default mailto_allow
- Improve search for mime.types
* Translations
- Update Chinese (Simplified) translation
* Coverity defects
- dodgy buffers
- leaks in lua get/set options
- some resource leaks
* Docs
- update credits
- limitations of new-mail %f expando
- escape <>'s in nested conditions
- add code of conduct
- fix ifdef examples
- update mailmap
- Update modify-labels-then-hide
- fix mailmap
- drop UPDATING files
* Website
- Changes pages (diff)
- Update Arch distro page
- Update NixOS distro page
- Add new Exherbo distro page
- Update translation hi-score table
- Update code of conduct
- Update Newbies page
- Add page about Rebuilding the Documentation
- Add page of hard problems
* Build
- remove unnecessary steps
- drop instdoc script
- move smime_keys into contrib
- fixes for Solaris
- don't delete non-existent files
- remove another reference to devel-notes.txt
- Handle native Solaris GSSAPI.
- drop configure options --enable-exact-address
- drop configure option --with-exec-shell
- drop configure option --enable-nfs-fix
- drop configure option --disable-warnings
- Completely remove dotlock
- More sophisticated check for BDB version + support for DB6 (non default)
* Tidy
- drop VirtIncoming
- split mutt_parse_mailboxes into mutt_parse_unmailboxes
- tidy some buffy code
- tidy the version strings
* Upstream
- Add ~<() and ~>() immediate parent/children patterns
- Add L10N comments to the GNUTLS certificate prompt
- Add more description for the %S and %Z $index_format characters
- Add config vars for forwarded message attribution intro/trailer
- Block SIGWINCH during connect()
- Improve the L10N comment about Sign as
- Auto-pad translation for the GPGME key selection "verify key" headers
- Enable all header fields in the compose menu to be translated
- Force hard redraw after $sendmail instead of calling mutt_endwin
- Make GPGME key selection behavior the same as classic-PGP
- Rename 'sign as' to 'Sign as'; makes compose menu more consistent
- Change the compose menu fields to be dynamically padded
2017-06-09 Richard Russon <rich@flatcap.org>
* Contrib
- unbind mappings before overwriting in vim-keys
* Bug Fixes
- latest coverity issues (#624)
- don't pass colour-codes to filters
- Don't set a colour unless it's been defined.
- crash if no from is set or founds
- ifdef command
* Translations
- fix translations
- fix some remaining translation problems
* Docs
- explain binding warnings
- don't document unsupported arches
* Build
- fix make git_ver.h
- allow xsltproc and w3m calls to fail
- fix make dist
* Upstream
- Add a mutt_endwin() before invoking $sendmail
- Restore setenv function
- Fix tag-prefix to not abort on $timeout
- Change km_dokey() to return -2 on a timeout/sigwinch
- Enable TEXTDOMAINDIR override to make translation testing easier
- Fix "format string is not a string literal" warnings
2017-06-02 Richard Russon <rich@flatcap.org>
* Features
- Warn on bindkey aliasing
- Drop PATCHES, tidy 'mutt -v' output
- Add %z format strings to index_format
- Add debug_level/debug_file options
* Bug Fixes
- Fix nntp group selection
- Fix status color
- Tidy up S/MIME contrib
- Do not try to create Maildir if it is an NNTP URI
- Fix missing NONULL for mutt.set() in Lua
* Translations
- Fix German PGP shortkeys
* Docs
- Remove feature muttrc files
- Merge README.notmuch into manual
- Remove unneded scripts
- Remove README.SECURITY
- Remove BEWARE and devel-notes.txt
- Update Makefiles
- Delete TODO files
- Remove legacy files
- Don't generate vim-neomutt syntax file
- Remove LaTeX/pdf manual generation
- Add missing docs for expandos
- Fix sidebar howto examples
- Remove some upstream references
- Drop refs to patches
- Improve PR template and CONTRIBUTING.md
* Website
- Fix list items in newbie-tutorial's Mailing List Guidelines
- Remove configure options that no longer exist
- fix newbie tutorial
- document signing tags / releases
- config: drop unused paginate command
- script: split tests up into several
- convert credits page to markdown
- simpify 404 page
- improve newbie tutorial
- remove help.html and integrate its content elsewhere
- make: "graphviz" program is needed for generating diagram
- improve getting started guide // include legacy files
- dev: add list of architectures/operating systems
- numerous small fixes
* Build
- Remove typedefs and rename ~130 structs
- Add separate hcache dir
- Move crypto files to ncrypt dir
- Split up mutt.h, protos.h
- Always build: sidebar, imap, pop, smtp, compressed, nntp
- Remove --enable-mailtool configure option
- Make dotlock optional
- Change gpgme requirement back to 1.1.0
- Remove check_sec.sh
- Fix safe_calloc args
- Remove unused macros
- Remove unused option: SmimeSignOpaqueCommand
- Move configure-generated files
- Update distcheck build flags
- Drop obsolete iconv check
- Unused prototypes - unsupported systems
- Drop many configure tests for things defined in POSIX:2001
- Kill useless crypthash.h file
- Run clang-format on the code
- Fail early if ncursesw cannot be found
- Add names prototype arguments
- Abbreviate pointer tests against NULL
- Initialise pointers to NULL
- Reduce the scope of for loop variables
- Coverity: fix defects
* Upstream
- Convert all exec calls to use mutt_envlist(), remove setenv function
- Note that mbox-hooks are dependent on $move
- Refresh header color when updating label
- Remove glibc-specific execvpe() call in sendlib.c
- Add color commands for the compose menu headers and security status
- Fix sidebar count updates when closing mailbox
- Don't modify LastFolder/CurrentFolder upon aborting a change folder operation
- Change message modifying operations to additively set redraw flags
- Improve maildir and mh to report flag changes in mx_check_mailbox()
- Add $header_color_partial to allow partial coloring of headers
- Rename REDRAW_SIGWINCH to REDRAW_FLOW
- Create R_PAGER_FLOW config variable flag
- Turn IMAP_EXPUNGE_EXPECTED back off when syncing
- Add $history_remove_dups option to remove dups from history ring
- Also remove duplicates from the history file
- Don't filter new entries when compacting history save file
- Move the IMAP msn field to IMAP_HEADER_DATA
- Fix imap expunge to match msn and fix index
- Fix cmd_parse_fetch() to match against MSN
- Start fixing imap_read_headers() to account for MSN gaps
- Add msn_index and max_msn to find and check boundaries by MSN
- Properly adjust fetch ranges when handling new mail
- Small imap fetch fixes
- Don't abort header cache evaluation when there is a hole
- Fix mfc overflow check and uninitialized variable
- Fix potential segv if mx_open_mailbox is passed an empty string
- Don't clean up idata when closing an open-append mailbox
- Don't clean up msn idata when closing an open-append mailbox
- Fix memory leak when closing mailbox and using the sidebar
- Change imap body cache cleanup to use the uid_hash
- Convert classic s/mime to space delimit findKeys output
- Add self-encrypt options for PGP and S/MIME
- Change $postpone_encrypt to use self-encrypt variables first
- Automatic post-release commit for mutt-1.8.3
- Add note about message scoring and thread patterns
2017-04-28 Richard Russon <rich@flatcap.org>
* Bug Fixes
- Fix and simplify handling of GPGME in configure.ac (@gahr)
* Docs
- Fix typo in README.neomutt (@l2dy)
* Upstream
- Fix km_error_key() infinite loop and unget buffer pollution
- Fix error message when opening a mailbox with no read permission
2017-04-21 Richard Russon <rich@flatcap.org>
* Features
- add lua scripting
- add command-line batch mode
- index_format: add support of %K
* Bug Fixes
- attachment/pager: Use mailcap for test/* except plain
- Fix uncollapse_new in pager
- fix garbage in chdir prompt due to unescaped string
- Fix inbox-first functionality when using mutt_pretty_mailbox
- add full neomutt version to log startup
- fix bug in uncolor for notmuch tag
- fix broken from_chars behaviour
* Coverity defects
- strfcpy
- add variable - function arg could be NULL/invalid
- add variable - failed function leads to invalid variable
- add variable - Context could become NULL
- add variable - alloc/strdup could return NULL
- add variable - route through code leads to invalid variable
- remove variable test
- test functions
- tidy switches
- unused variables
- refactor only
- check for buffer underruns
- fix leaks
- minor fixes
- bug: add missing break
- bug: don't pass large object by value
- fix: use correct buffer size
- shadow variables
- 0 -> NULL
* Docs
- many minor updates
- sync translations
- delete trailing whitespace
- indent the docbook manual
- use w3m as default for generating UTF8 manual.txt
* Website
- many minor updates
- fix broken links
- add to list of useful programs
- test automatic html checker
- remove trailing whitespace
- add irc description
- update issue labels (dev)
- new page: closed discussions
- new page: making neomutt (dev)
* Build
- drop obsolete m4 scripts
- don't look for lua libs unless asked for
- workaround slang warnings
- lower the gettext requirement 0.18 -> 0.17
- add keymap_alldefs.h to BUILT_SOURCES
- fix make dist distcheck
- Remove -Iimap from CFLAGS and include imap/imap.h explicitly
- mx: fix conditional builds
- Make iconv mandatory (no more --disable-iconv)
- refactor: Split out BUFFER-handling functions
* Tidy
- drop control characters from the source
- drop vim modelines
- delete trailing whitespace
- mark all local functions as static
- delete unused functions
- replace FOREVER with while (true)
- drop #if HAVE_CONFIG_H
- use #ifdef for potentially missing symbols
- remove #if 0 code blocks
- drop commented out source
- IMAP auth functions are stored by pointer cannot be static
- force OPS to be rebuilt after a reconfigure
- be specific about void functions
- expand a few more alloc macros
- add argument names to function prototypes
- drop local copy of regex code
- rearrange code to avoid forward declarations
- limit the scope of some functions
- give the compress functions a unique name
- use snake_case for function names
- add missing newlines to mutt_debug
- remove generated files from repo
- look for translations in all files
- fix arguments to printf-style functions
- license text
- unify include-guards
- tidy makefiles
- initialise pointers
- make strcmp-like functions clearer
- unify sizeof usage
- remove forward declarations
- remove ()s from return
- rename files hyphen to underscore
- remove unused macros
- use SEEK_SET, SEEK_CUR, SEEK_END
- remove constant code
- fix typos and grammar in the comments
- Switch to using an external gettext runtime
- apply clang-format to the source code
- boolify returns of 84 functions
- boolify lots of struct members
- boolify some function parameters
* Upstream
- Add $ssl_verify_partial_chains option for OpenSSL
- Move the OpenSSL partial chain support check inside configure.ac
- Don't allow storing duplicate certs for OpenSSL interactive prompt
- Prevent skipped certs from showing a second time
- OpenSSL: Don't offer (a)ccept always choice for hostname mismatches
- Add SNI support for OpenSSL
- Add SNI support for GnuTLS
- Add shortcuts for IMAP and POP mailboxes in the file browser
- Change OpenSSL to use SHA-256 for cert comparison
- Fix conststrings type mismatches
- Pass envlist to filter children too
- Fix mutt_envlist_set() for the case that envlist is null
- Fix setenv overwriting to not truncate the envlist
- Fix (un)sidebar_whitelist to expand paths
- Fix mutt_refresh() pausing during macro events
- Add a menu stack to track current and past menus
- Change CurrentMenu to be controlled by the menu stack
- Set refresh when popping the menu stack
- Remove redraw parameter from crypt send_menus
- Don't full redraw the index when handling a command from the pager
- Filter other directional markers that corrupt the screen
- Remove the OPTFORCEREDRAW options
- Remove SidebarNeedsRedraw
- Change reflow_windows() to set full redraw
- Create R_MENU redraw option
- Remove refresh parameter from mutt_enter_fname()
- Remove redraw flag setting after mutt_endwin()
- Change km_dokey() to pass SigWinch on for the MENU_EDITOR
- Separate out the compose menu redrawing
- Separate out the index menu redrawing
- Prepare for pager redraw separation
- Separate out the pager menu redrawing
- Don't create query menu until after initial prompt
- Silence imap progress messages for pipe-message
- Ensure mutt stays in endwin during calls to pipe_msg()
- Fix memleak when attaching files
- Add $ssl_verify_partial_chains option for OpenSSL
- Move the OpenSSL partial chain support check inside configureac
- Don't allow storing duplicate certs for OpenSSL interactive prompt
- Prevent skipped certs from showing a second time
- OpenSSL: Don't offer (a)ccept always choice for hostname mismatches
- Add SNI support for OpenSSL
- Add SNI support for GnuTLS
- Add shortcuts for IMAP and POP mailboxes in the file browser
- Updated French translation
- Change OpenSSL to use SHA-256 for cert comparison
- Fix conststrings type mismatches
- Pass envlist to filter children too
- Fix mutt_envlist_set() for the case that envlist is null
- Fix setenv overwriting to not truncate the envlist
- Fix mutt_refresh() pausing during macro events
- Add a menu stack to track current and past menus
- Change CurrentMenu to be controlled by the menu stack
- Set refresh when popping the menu stack
- Remove redraw parameter from crypt send_menus
- Don't full redraw the index when handling a command from the pager
- Fix (un)sidebar_whitelist to expand paths
- Filter other directional markers that corrupt the screen
- Remove the OPTFORCEREDRAW options
- Remove SidebarNeedsRedraw
- Change reflow_windows() to set full redraw
- Create R_MENU redraw option
- Remove refresh parameter from mutt_enter_fname()
- Remove redraw flag setting after mutt_endwin()
- Change km_dokey() to pass SigWinch on for the MENU_EDITOR
- Separate out the compose menu redrawing
- Separate out the index menu redrawing
- Prepare for pager redraw separation
- Separate out the pager menu redrawing
- Don't create query menu until after initial prompt
- Silence imap progress messages for pipe-message
- Ensure mutt stays in endwin during calls to pipe_msg()
- Fix memleak when attaching files
- automatic post-release commit for mutt-181
- Added tag mutt-1-8-1-rel for changeset f44974c10990
- mutt-181 signed
- Add ifdefs around new mutt_resize_screen calls
- Add multiline and sigwinch handling to mutt_multi_choice
- Set pager's REDRAW_SIGWINCH when reflowing windows
- Add multiline and sigwinch handling to mutt_yesorno
- Change the sort prompt to use (s)ort style prompts
- Handle the pager sort prompt inside the pager
- Fix GPG_TTY to be added to envlist
- automatic post-release commit for mutt-182