Skip to content

Releases: neomutt/neomutt

NeoMutt 2024-04-25

25 Apr 09:28
20240425
2110f50
Compare
Choose a tag to compare

📖 Notes

This is a small Bug-Fix Release.

In particular, it fixes a few small quirks in the new Expando code.

💎 Sponsors

Special thanks to our sponsors:

Jakub Jindra
@jindraj
Scott Kostyshak
@scottkosty
Ander Punnar
@4nd3r
Igor Serebryany
@igor47
Martin Spendiff
@veebch
Mark Korondi
@kmARC
Mateus Etto
@Yutsuten
J Sheng
@lamons
Tillman Jex
@tjex
  • Robert Labudda
  • Patrick Koetter (@patrickbenkoetter)
  • Sebastian Kowalczyk
  • 海老根蓉也
  • Reiko Kaps

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our regular contributors:

🐞 Bug Fixes

  • #4263 fix: cache naming
  • #4261 expando: fix conditional padding
  • #4261 expando: fix container
  • #4261 expando: add lower-case operator
  • #4261 expando: add external filter
  • imap: add mailboxes more directly

🏴 Translations

  • trans: tidy messages

📚 Docs

  • doxy: add missing params

🏗️ Build

  • #4268 Filter out CFLAGS with paths from the output of '-v'
  • #4273 guard truecolor functions in tests
  • #4275 use homebrew in macOS build

⚙️ Code

  • use Buffer rather than strcat()
  • ncrypt: use gpgme types consistently

NeoMutt 2024-04-16

16 Apr 11:01
20240416
08ac858
Compare
Choose a tag to compare

📖 Notes

This is a feature release, sort of :-)
There are lots of bug fixes too.

The biggest change is to how NeoMutt handles format strings.
Thanks János!

Format strings are now parsed when they are set, rather than every time they are used.
This means we can check for errors, e.g.

set index_format = "%Q"
Option index_format: Unknown expando: %Q

Next, 8 config strings have been Localized.
Localization (L10N) allows translators to provide language-specific defaults,
e.g. $attribution_intro

  • English: "On %d, %n wrote:
  • Serbian: "Дана %d, %n написа:"
  • German: "Am %d, schrieb %n:"

These are the defaults: they can still be overridden.

💎 Sponsors

Special thanks to our sponsors:

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our regular contributors:

and our sharp-eyed testers:

🎁 Features

  • #4216 Compose: Hide MixMaster chain if chain is empty
  • Expando upgrade
  • version: bold labels

✨ Contrib

  • mutt_oauth2.py: Detect recipient for oauth automatically
  • mutt_oauth2.py: imap_oauth_refresh_command does not need options

🐞 Bug Fixes

  • #4210 mbox: fix sorting for mbox_resync()
  • #4241 only wrap after first address in header lines
  • status: reset Buffer before reuse
  • history: truncate file before writing over it
  • notmuch: strip leading / from short path
  • Fix smtp client $envelope_from_address possible dangling pointer
  • Fix non-printable keyname printing to use <octal> syntax
  • Filter Arabic Letter Mark due to display corruption
  • Loosen imap_open_mailbox() SELECT response data parsing
  • Change mailto_allow to be exact match only
  • Fix mutt_read_rfc822_line() to use is_email_wsp()
  • Improve pattern compiler whitespace skipping
  • Fix gpgme crash when listing keys in a public key block
  • Add SigInt handler for pattern functions
  • Fix some mailbox prompts to use mailbox history ring
  • Improve GPGME inline processing
  • Reset SIGPIPE signal handler in child process before exec()
  • Filter headers passed via the command line
  • Remove trailing slashes when opening maildir/mh mailboxes
  • Fix mutt_paddstr() to properly filter unprintable chars
  • Minor fixes to match_body_patterns()
  • Fix mutt_ts_capability() fallback list loop
  • Ensure SIGALRM interrupts connect() in batch mode
  • Tighten $query_command parsing to allow empty name field

🔧 Changed Config

  • #4224 config: add L10N support
  • New: set compose_confirm_detach_first = yes
    Prevent the accidental deletion of the composed message
  • Changed: set reply_regex = "^((re)(\\[[0-9]+\\])*:[ \t]*)*"
    Regex to match message reply subjects like 're: '
  • Changed: set pager = ""
    External command for viewing messages, or empty to use NeoMutt's

🏴 Translations

  • 100% 🇨🇿 Czech
  • 100% 🇩🇪 German
  • 100% 🇱🇹 Lithuanian
  • 100% 🇷🇸 Serbian
  • 100% 🇸🇰 Slovak
  • 99% 🇹🇷 Turkish
  • l10n: document functions
  • config: add L10N support

📚 Docs

  • Clarify the manual section on POP3 support
  • Document the <1234> key syntax for bind
  • Document $sendmail invocation behavior
  • Clarify -H usage in batch mode is not a "pass through" option

🏗️ Build

  • test: remove unnecessary setting of TZ var
  • build: make conn/getdomain.c dependent on DOMAIN
  • Improve w3m invocation for manual.txt generation
  • Include <term.h> before invoking tigetstr() and tigetflag()
  • Enable CodeQL for python

⚙️ Code

  • factor out buf_make()
  • drop dupe signal_init() on startup
  • Convert mutt_create_alias() and helpers to use buffer pool
  • Factor out match_body_patterns() to make resolve_types() simpler
  • Rewrite mutt_apply_replace() to use buffers

NeoMutt 2024-03-29

29 Mar 14:30
20240329
11482a5
Compare
Choose a tag to compare

📖 Notes

This is a small Bug-Fix release.

Last week's release was faulty.
This one is much better.

💎 Sponsors

Special thanks to our sponsors:

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our new contributors:

our regular contributors:

🐞 Bug Fixes

  • #4185 c441f59 Fix memory leak in trash_append()
  • #4189 Fix off-by-one error in %b with notmuch
  • #4190 Zero-out mailbox counters on delete
  • #4204 colour: honour the normal colour
  • #4205 match folder-hook also against mailbox name (fixes #4201)
  • wrap colour in
  • history: fix saving file
  • history: improve error message format

📚 Docs

  • #4182 docs: -C: Fix some accidents
  • #4188 Update oauth2 README
  • #4193 Update oauth2 README
  • fix typos, lots of tidying
  • tidy license info

🏗️ Build

  • #4196 use FreeBSD 14.0 in Cirrus CI
  • actions: update cpu count
  • actions: use codeql v3

⚙️ Code

  • #4186 Buffer refactoring: make_entry()
  • address: tidy config handling
  • coverage: buf, slist
  • graphviz: link labels
  • tidy buf_strcpy() calls
  • tidy char buffers
  • test: default timezone to UTC

NeoMutt 2024-03-23

23 Mar 16:07
20240323
92c28be
Compare
Choose a tag to compare

📖 Notes

💀 IMPORTANT - DO NOT USE Release 2024-03-23
(or any build from main since that release)

This release can damage mbox type mailboxes.

I'm really sorry.

I'll create a new release as soon as I can.

Thanks to William Casarin and Szilárd Andai for their help and debugging.

NeoMutt 2024-02-01

01 Feb 14:11
20240201
1a7a2b1
Compare
Choose a tag to compare

📖 Notes

One new feature this month and plenty of bug fixes.

Alejandro's added neomutt -C to enable automatic signing/encryption of emails.
See: https://neomutt.org/feature/cli-crypto

💎 Sponsors

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our new contributors:

our regular contributors:

🎁 Features

  • #4134 Command-line Crypto (neomutt -C)

🐞 Bug Fixes

  • #4065 track new-mail check time per mailbox
  • #4141 fix(change-folder): don't exclude notmuch
  • #4147 envelope: manage subject/real_subj together
  • #4155 fix parsing of $REPLYTO
  • #4158 status: fix refresh after sync-mailbox
  • #4166 Fix two memory leaks in notmuch support
  • progress: fix percentages

🏴 Translations

  • 100% 🇨🇿 Czech
  • 100% 🇩🇪 German
  • 100% 🇱🇹 Lithuanian
  • 100% 🇷🇸 Serbian
  • 100% 🇸🇰 Slovak
  • 100% 🇹🇷 Turkish

📚 Docs

  • #4172 Several fixes for the manual pages

🏗️ Build

  • build: openbsd workarounds

⚙️ Code

  • #4142 add mutt_time_now()
  • #4146 config: factor out R_ flags
  • #4154 file: upgrade mutt_file_fopen/fclose()
  • #4159 upgrade mutt_str_append_item() to use struct Buffer
  • #4161 maildir: encapsulate the header cache
  • #4162 remove mutt_str_dequote_comment()
  • #4165 bufferize mutt_str_inline_replace() as buf_inline_replace()
  • #4167 bufferize mutt_strn_rfind() as buf_rfind()
  • #4168 replace buf_len() checks with buf_is_empty()
  • config: drop unused flags
  • use message_new()/message_free()
  • Reconsider the config type bitmap entirely

NeoMutt 2023-12-21

21 Dec 17:18
20231221
6c3ba95
Compare
Choose a tag to compare

📖 Notes

A smallish release, this month.
Plenty of bug-fixes, but the majority of the changes happened behind the scenes.

💎 Sponsors

Special thanks to our sponsors:

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our new contributors:

our regular contributors:

🎁 Features

  • #4126 - add alias 'tags:'

🐞 Bug Fixes

  • #4115 - create HelpBar after colours
  • #4116 - Fix Batch Sending of Emails
  • #4119 - Fix Header Cache Key Handling
  • #4121 - mutt_oauth2.py: error out if ENCRYPTION_PIPE was not supplied
  • #4124 - config: fix flag overlaps
  • #4125 - compose: restore view-text/pager/mailcap
  • color: fix attr_color_copy()
  • fix :color dump
  • fix leak in completion
  • force mail check on current mailbox after <imap-fetch-mail>
  • Allow sending an empty mail
  • mutt_oauth2.py: Use readline to overcome macOS input() restrictions

🔧 Changed Config

  • add $history_format: '%s'

🏴 Translations

  • 100% 🇨🇿 Czech
  • 100% 🇩🇪 German
  • 100% 🇱🇹 Lithuanian
  • 100% 🇷🇸 Serbian
  • 100% 🇸🇰 Slovak
  • 100% 🇹🇷 Turkish
  • 99% 🇪🇸 Spanish
  • 99% 🇭🇺 Hungarian

🛡️ Coverity defects

  • #4111 Educate Coverity about ARRAYs
  • fix defects

🏗️ Build

  • #4098 - build: use fallthrough attribute
  • #4100 - build: split maildir and mh types
  • #4101 - version: drop default features
  • #4108 - strip non-conditionals
  • #4122 - add github action to check for unused functions (xunused)
  • update fedora action
  • coverage: fix build for lcov v2
  • tests: fix error cases

⚙️ Code

  • #4097 - config: add DT_ON_STARTUP
  • #4104 - Change mutt_default_save() and addr_hook() to take a buffer
  • #4105 - Use buffer pool in tests
  • #4106 - Switch some buffers to use the buffer pool
  • #4109 - Improve the Progress Bar
  • #4117 - remove MxOps::path_parent() and mutt_path_parent()
  • #4120 - remove unused functions
  • #4131 - move editor test code
  • #4133 - move log_disp_null() into test folder
  • #4137 - move config string name functions into tests
  • add: hook_new()/hook_free()
  • fix more printf-style params
  • rename compare to equal
  • hcache: renaming for clarity

NeoMutt 2023-11-03

03 Nov 10:27
20231103
aa0e273
Compare
Choose a tag to compare

📖 Notes

Just a small release, this time.

Behind the scenes, I added a lot of tests for the colour code.
This revealed a handful of bugs that needed fixing.
Whilst testing, I converted some debug code to create the :color command.
Maybe not that useful, but it's quite pretty 😄

Also new, the information screens like :set allow you to save their contents with s (<save-message>).

💎 Sponsors

Special thanks to our sponsors:

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our new contributors:

our regular contributors:

🎁 Features

  • #4080 - info screen: enable <save-message>
  • #4075 - add :color command
  • color: add ANSI RGB support
  • color: Support ANSI 2x clear sequences

🐞 Bug Fixes

  • #4074 - color: fix palette conversion
  • #4081 - fix logging on error
  • #4081 - log: vim-style
  • #4082 - fix file auto-completion
  • #4090 - improve logic for growing mailbox memory

🏴 Translations

  • 100% 🇨🇿 Czech
  • 100% 🇩🇪 German
  • 100% 🇱🇹 Lithuanian
  • 100% 🇷🇸 Serbian
  • 100% 🇸🇰 Slovak
  • 100% 🇹🇷 Turkish

🏗️ Build

  • #4085 - fix CFLAGS/LDFLAGS for ncurses
  • #4085 - configure --with-iconv

⚙️ Code

  • #4067 - remove unused count of new mails from index private data
  • #4086 - smtp: Simplify the API of smtp_code()
  • #4091 - simplify CLAMP by expressing it with MIN/MAX
  • color: introduce ColorElement
  • color: log gui info on startup
  • color: move business logic out of parsers
  • color: tidy OptNoCurses cases
  • log: add log_multiline()
  • test: increase coverage

NeoMutt 2023-10-23

23 Oct 13:46
20231023
fa83255
Compare
Choose a tag to compare

📖 Notes

First, to our anonymous benefactor - "Thank You!"
Two words are wholly inadequate to express my gratitude.
It's certainly a huge motivator to keep improving NeoMutt!

This is a Bug-Fix Release.
It fixes a few little irritations.

💎 Sponsors

Become a sponsor of NeoMutt

❤️ Thanks

Thanks our regular contributor:

🐞 Bug Fixes

  • #4060 fix crash on exit
  • #4061 fix header colour
  • #4064 fix 32-bit date overflow
  • #4078 fix new mail in limited view
  • nntp: fix use-after-free
  • color: fix ansi colours
  • color: add +truecolor to version string

NeoMutt 2023-10-06

06 Oct 14:00
20231006
7f33126
Compare
Choose a tag to compare

📖 Notes

This is a big release.
After nearly five months and over 400 commits, NeoMutt is stable again.

Most of the work won't be visible to the users.
We've been making large-scale changes to improve the code.
In the long-term, this will make NeoMutt stabler and make it easier to add new features.

If you find a problem, please let us know as soon as possible.

Thanks! ❤️

💎 Sponsors

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our new contributors:

our regular contributors:

🎁 Features

  • #3870 - color: allow 'alert', 'bright', 'light' prefix for colorNNN
  • #3871 - color: refactor parsing code
  • #3895 - imap: truncate large UIDVALIDITYs to support non-conforming IMAP servers
  • #3898 - hcache: shrink Email and Body caches
  • #3900 - prompt: treat complete-query as complete where it makes sense
  • #3925 - help: add message flags to help screen
  • #3932 - help: add alternating colors
  • #3982 - mailboxes: add -label, -notify and -poll options
  • #4038 - add help to questions
  • #4046 - color_directcolor: Also set the default/initial value on startup

🪲 Bug Fixes

  • #3897 - maildir: fix sync when a deleted file disappears
  • #3878 - gnutls: fix "certificate saved" message
  • #3895 - imap: truncate large UIDVALIDITYs to support non-conforming servers
  • #3897 - maildir: fix fix error with <sync-mailbox> on mbsync
  • #3901 - address: parse comments after address
  • #3915 - bind: fix truncated binding strings
  • #3956 - fix 'from' address when real name isn't set
  • #3962 - Fix crash on <next-thread> when the <limit>ed view is empty
  • #3985 - browser: fix autocompletion
  • #3988 - pager: fix search crash
  • #3999 - help: fix search highlight
  • #4049 - force mail check on current mailbox after <shell-escape>
  • #4051 - openssl: continue if a signal interrupts an SSL read/write

🔧 Changed Config

  • #3881 - Rename $imap_keepalive to $imap_keep_alive
  • #3889 - Change defaults to use %<...> conditional syntax
    $attach_format, $index_format, $mailbox_folder_format,
    $status_format, $ts_icon_format, $ts_status_format
  • #3949 - Add browser_sort_dirs_first to always list directories first

🏴 Translations

  • 100% 🇹🇷 Turkish
  • 100% 🇷🇸 Serbian
  • 100% 🇱🇹 Lithuanian
  • 100% 🇩🇪 German
  • 99% 🇨🇿 Czech
  • 99% 🇵🇱 Polish
  • 98% 🇸🇰 Slovak

⚙️ Code

  • #3877 - imap: factor out tagged emails
  • #3799 - address: use struct Buffer instead of plain char pointers
  • #3868 - drop notifications relay
  • #3869 - move $delete_untag out of the backend
  • #3873 - respect --[disable-]fmemopen in tests
  • hcache: optimize storage requirements, reduce config
  • logging: catch format string errors
  • colour: refactor colour parsing
  • refactoring, cleanup
  • fixed coverity defects
  • convert many functions to use a Buffer

NeoMutt 2023-05-17

17 May 12:02
20230517
2b0e7f0
Compare
Choose a tag to compare

📖 Notes

This is a fixed version of last week's release.
Sorry about that.

Some bug fixes and one big feature :-)

True Colour support.

To enable this, you need to export TERM=xterm-direct (shell) and set color_directcolor = yes (neomutt).

Then you can use RGB hex colours in your config:

color status #ffffff #ff8080
color index  #80c000 #007890 apple

💎 Sponsors

Become a sponsor of NeoMutt

❤️ Thanks

Many thanks to our new contributors:

our regular contributors:

🎁 Features

  • #3699 - Support 24bit colors, aka truecolor
  • #3738 - Show complete MIME structure in attachments
  • #3842 - Allow percentages to be localized

🪲 Bug Fixes

  • #3813 - Fix crash in op_browser_subscribe
  • #3844 - Select the first email when coming from an empty limit
  • #3848 - Fix counting new mails in maildir
  • #3759 - bind: fix incorrect conflict report
  • #3781 - index: only refresh the menu on non-focus window changes
  • #3856 - tunnel: fix reconnection with ssl_force=true
  • #3860 - maildir: stop parsing headers at the end of the headers section
  • #3864 - Fix handling of bright colours
  • Fix sorting of labels

🏴 Translations

  • 100% 🇷🇸 Serbian
  • 100% 🇹🇷 Turkish
  • 100% 🇱🇹 Lithuanian
  • 100% 🇭🇺 Hungarian
  • 100% 🇩🇪 German
  • 99% 🇳🇴 Norwegian (Bokmål)
  • 99% 🇸🇰 Slovak
  • 99% 🇧🇷 Portuguese (Brazil)
  • 99% 🇨🇿 Czech
  • 95% 🇫🇷 French

🏗️ Build

  • #3798 - Build with libidn2 by default, remove support for libidn1

⚙️ Code

  • config: dynamically create/delete variables
  • config: unify handling of NeoMutt and user (my_) variables
  • config: cache config variables used often
  • speed: various speedups in parsing emails
  • cleanups: lots of code cleanups
  • Huge refactoring towards a separation of Mailbox/MailboxView