sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/

History.txt (19481B) - raw

      1 == 1.3 / 2025-04-21
      2 
      3 * #596: If a message lacks a Date header, or the Date header is not in valid
      4   RFC2822 format, the local delivery timestamp of the message will now be used
      5   instead. Fixes a bug where such messages would constantly jump to the top of
      6   the thread list.
      7 * #502: Fixed incorrect Content-Transfer-Encoding headers when sending GPG
      8   signed or encrypted messages with attachments.
      9 * #522: Sup now uses the configured signing key when sending a message that is
     10   both signed and encrypted. Previously it would ignore the configured key and
     11   use the GPG default signing key.
     12 * #489: Attachments are now encoded if they have lines longer than 998
     13   characters.
     14 * #602: The message/global MIME type is now recognised as an embedded message.
     15 * Sup is now tested on Ruby 3.4.
     16 
     17 == 1.2 / 2024-04-21
     18 
     19 * #619: Sup is now compatible with and tested on Ruby 3.2 and Ruby 3.3.
     20   (Dan Callaghan)
     21 * #603: Fixed deprecated usage of Enumerator.new, which caused a crash on
     22   Ruby 3+. (Gui Goncalves)
     23 * OutOfSyncSourceErrors now show an error message in the thread view in place
     24   of the out-of-sync message body, instead of crashing. (Dan Callaghan)
     25 * #613: When installing Sup as a gem, the dependency on xapian-ruby is now
     26   skipped if the SUP_SKIP_XAPIAN_GEM_INSTALL environment variable is set.
     27   Previously it was skipped unconditionally on OpenBSD only. (Dan Callaghan)
     28 
     29 == 1.1 / 2022-05-23
     30 
     31 * #588, #577: Sup is now compatible with and tested on Ruby 3.0 and Ruby 3.1.
     32   (Dan Callaghan)
     33 * When the Sup gem installs xapian-ruby, it will install to the user gem
     34   directory if the system gem directory is not writable. (Iain Parris)
     35 * #571: To and From addresses of enclosed messages are now displayed normally,
     36   instead of as Redwood::Person objects. (Iain Parris)
     37 * #570: Fixed wording when displaying enclosed messages without Date header.
     38   (Iain Parris)
     39 * #205, #602: UTF-8 header values are now accepted and handled correctly, as
     40   per RFC6532. (Dan Callaghan)
     41 * #585: Text/plain attachments with invalid charset are now displayed as
     42   US-ASCII (with high bytes replaced) instead of crashing. (Dan Callaghan)
     43 * #424: Spaces are now accepted in RFC2047-encoded header words, even though
     44   the RFC forbids them. (Dan Callaghan)
     45 * Invalid RFC2047-encoded header words are now displayed in their raw form,
     46   rather than trying to forcibly transcode them to UTF-8, as per the RFC's
     47   recommendation. (Dan Callaghan)
     48 * Sup now decodes UTF-7 correctly instead of crashing. (Dan Callaghan)
     49 
     50 == 1.0 / 2020-07-12
     51 
     52 No changes. The version number is incremented to 1.0 to reflect the fact that
     53 Sup is mature and no further backwards-incompatible changes are planned.
     54 
     55 == 0.23 / 2020-07-10
     56 
     57 * #505: Shell metacharacters in attachment filenames are no longer escaped when
     58   saving the attachment to disk using 's'. Fixes attachments being saved with
     59   unnecessary \ escapes in their filename. (Felix Van der Jeugt)
     60 * When saving attachments, Sup now creates all parent directories of the
     61   destination path. (Matthieu Rakotojaona)
     62 * The '@' key now reloads all messages in thread view. (Seva Zhidkov)
     63 * #517: The 'g' key now correctly opens each selected URL if multiple URLs are
     64   under the cursor, instead of opening the last URL multiple times.
     65   (Matthieu Rakotojaona)
     66 * The 'g' key now works when the cursor is over a URL inside a signature block.
     67   (Michael Dwyer)
     68 * The 'reply-to' hook is now passed a 'message' variable, the message being
     69   replied to, so that the hook can choose the reply mode based on properties of
     70   the message like the list address. (Simon Tatham)
     71 * The contacts list now shows also email addresses supplied by the
     72   'extra-contract-addresses' hook. (Matthieu Rakotojaona)
     73 * #510: The micalg= parameter is now set correctly when sending
     74   multipart/signed messages. Fixes issues with other mail clients which fail to
     75   handle a missing micalg= parameter on signed messages. (Dan Callaghan)
     76 * Attachments with text/plain MIME type are now correctly decoded according to
     77   their charset= parameter. (Dan Callaghan)
     78 * Strings returned by the 'mime-decode' hook are now kept in their original
     79   encoding and displayed as is, instead of being wrongly transcoded.
     80   (Dan Callaghan)
     81 * Rendering speed of thread list views is improved. (Vickenty Fesunov)
     82 * Fixed display width calculation for emoji. Previously, sender names and
     83   thread subjects using emoji would be incorrectly truncated, if the terminal
     84   emulator displays emoji as double-width. (Dan Callaghan)
     85 * List address is parsed from the non-standard Mailing-List header used by
     86   Groups.io. (Dan Callaghan)
     87 * Fixed misinterpretation of quoted text where the quote uses both an
     88   "---- Original Message ----" marker and > delimiters, for example from
     89   Zimbra users. (Steven Lawrance)
     90 * Added a new option 'indent_spaces' in config.yaml, to control the number of
     91   spaces for indenting each child message when displaying the thread view.
     92   The default remains 2. (Antoni Kaniowski)
     93 * Attachment sizes are now displayed using standard unit abbreviations like
     94   "MiB". (Sharif Olorin)
     95 * Sup now gives a hint if a search query results in an empty search after
     96   tokenization (for example, if the user tries to search for only punctuation).
     97   (Per Andersson)
     98 * The --list-hooks option now takes an additional option --hooks-matching, to
     99   filter the listed hooks. (Matthieu Rakotojaona)
    100 * Fixed ArgumentError in logging methods on Ruby 2.7. (Dan Callaghan)
    101 * Fixed FrozenError in verified_ok? method on Ruby 2.7. (Iain Parris)
    102 * Fixed Fixnum deprecation warnings on Ruby 2.4+. (Dan Callaghan)
    103 * Several dependency version updates. The optimist gem replaces trollop. The
    104   unicode-display_width gem is a new dependency.
    105 
    106 == 0.22.1 / 2015-06-18
    107 
    108 * Fix bug (#429)  in gem build / install.
    109 
    110 == 0.22.0 / 2015-06-16
    111 
    112 * Use mime-types 2
    113 * Fix ruby style (Zeger-Jan van de Weg)
    114 * Johannes Larsen: fix long-standing bug with draft-id mixups causing
    115   drafts to disappear.
    116 * Various bugs and minor improvements.
    117 
    118 == 0.21.0 / 2015-02-12
    119 
    120 * Key binding to fetch GPG key from keyserver (Matthieu Rakotojaona)
    121 * Replace occurences of File.exists? with File.exist? (Zeger-Jan van de
    122   Weg)
    123 * You can now unsubscribe from mailinglists using an url, if you have a
    124   goto-hook setup (Timon Vonk).
    125 * Forward attribution can be customized using the forward-attribution
    126   hook (Ruthard Baudach)
    127 * Do a few more checks for buffer not nil in the hope to fix a few
    128   random crashes
    129 * Add bash completion (Per Andersson)
    130 * Replace dl/import with Fiddle (Timon Vonk)
    131 * Drop support for ruby 1.9.3
    132 * Add tests for contact manager and persons (Zeger-Jan van de Weg)
    133 
    134 == 0.20.0 / 2014-10-06
    135 
    136 * add man-pages (generated from wiki) (Per Andersson)!
    137 * HTML messages or messages that are decoded with the mime-decode hook
    138   are now indexed if the mime-decode hook is set up (Scott Bonds).
    139 * OpenBSD support (Scott Bonds)!
    140 * goto-hook for keybinding to open URLs.
    141 * support special charaters in source URIs (Scott Bonds).
    142 * output message id and locations on all load_from_source failures
    143 * fix long-standing getlocal bug
    144 * make new test GPG keys (old ones expired), valid for one year, script
    145   now available in devel/ for making new ones.
    146 
    147 == 0.19.0 / 2014-07-05
    148 
    149 * new check-attachment hook
    150 * configure times to be seen in 24h format
    151 * new mailinglist: supmua@googlegroups.com
    152 
    153 == 0.18.0 / 2014-05-19
    154 
    155 * new color option, :with_attachment for defining colors for the
    156   attachment character.
    157 * sup-tweak-labels works again (out of service since sync_back).
    158 * gem building is done through bundler
    159 * you can now kill a thread using & from thread_view
    160 
    161 == 0.17.0 / 2014-04-11
    162 
    163 * add continuous scrolling to thread view
    164 * add option for always editing in async mode
    165 * bugfix: fix completion char
    166 * bugfix: thread-view: dont close message when it is the first or last
    167 
    168 == 0.16.0 / 2014-03-21
    169 
    170 * sup-sync-back-mbox removed.
    171 * safer mime-view attachment file name handling
    172 * show thread labels in thread-view-mode
    173 * remove lock file if there is no sup alive
    174 * deprecate migration script on ruby > 2.1
    175 
    176 == 0.15.4 / 2014-02-06
    177 
    178 * Various bugfixes
    179 
    180 == 0.15.3 / 2014-01-27
    181 
    182 * Revert non-functioning hidden_alternates and fix some bugs.
    183 
    184 == 0.15.2 / 2013-12-20
    185 
    186 * Use the form_driver_w routine for inputing multibyte chars when
    187   available.
    188 * Add hidden_alternates configuration option: hidden aliases for the
    189   account.
    190 
    191 == 0.15.1 / 2013-12-04
    192 
    193 * Thread children are sorted last-activity latest (bottom).
    194 
    195 == 0.15.0 / 2013-11-07
    196 
    197 * Maildir Syncback has now been merged into main sup! This is a
    198   long-time waiting feature initially developed by Damien Leone,
    199   then picked up by Edward Z. Yang who continued development. Additionally
    200   several others have been contributing.
    201 
    202   Eventually, recently, Eric Weikl has picked up this branch, modernized
    203   it to current sup, maintained it and gotten it ready for release.
    204 
    205   Main authors:
    206 
    207   Damien Leone
    208   Edward Z. Yang
    209   Eric Weikl
    210 
    211   Not all of the features initially proposed have been included. This is
    212   to maintain compatibility with more operating systems and wait with
    213   the more daring features to make sure sup is stable-ish.
    214 
    215   This is a big change since sup now can modify your mail (!), please
    216   back up your mail and your configuration before using the maildir
    217   syncback feature. For instructions on how to migrate an existing
    218   maildir source or how to set up a new one, refer to the wiki:
    219 
    220   https://github.com/sup-heliotrope/sup/wiki/Using-sup-with-other-clients
    221 
    222   It is possible to both disable maildir syncback globally (default:
    223   disabled) and per-source (default: enabled).
    224 
    225 * Sup on Ruby 2.0.0 now works - but beware, this has not been very throughly
    226   tested. Patches are welcome.
    227 
    228 * We are now using our own rmail-sup gem with fixes for Ruby 2.0.0 and
    229   various warnings fixed.
    230 
    231 * sup-sync-back has been renamed to sup-sync-back-mbox to conform with
    232   the other sync-back scripts.
    233 
    234 * You can now save attachments to directories without specifying the full
    235   filename (default filename is used).
    236 
    237 * Various encoding fixes and minor bug fixes
    238 
    239 == 0.14.1.1 / 2013-10-29
    240 
    241 * SBU1: security release
    242 * Tempfiles for attachments are persistent through the sup process to
    243   ensure that spawned processes have access to them.
    244 
    245 == 0.13.2.1 / 2013-10-29
    246 
    247 * SBU1: security release
    248 
    249 == 0.14.1 / 2013-08-31
    250 
    251 * Various bugfixes.
    252 * Predefined 'All mail' search.
    253 
    254 == 0.14.0 / 2013-08-15
    255 
    256 * CJK compatability
    257 * Psych over Syck
    258 * Ruby 1.8 deprecated
    259 * Thread safety
    260 * No more Iconv, but using built in Ruby encodings. Better UTF-8
    261   handling.
    262 * GPGME 2.0 support
    263 
    264 == 0.13.2 / 2013-06-26
    265 
    266 * FreeBSD 10 comptability
    267 * More threadsafe polling
    268 
    269 == 0.13.1 / 2013-06-21
    270 
    271 * Bugfixes
    272 
    273 == 0.13.0 / 2013-05-15
    274 
    275 * Bugfixes
    276 * Depend on ncursesw-sup
    277 
    278 == 0.12.1 / 2011-01-23
    279 * Depend on ncursesw rather than ncurses (Ruby 1.9 compatibility)
    280 * Add sup-import-dump
    281 
    282 == 0.12 / 2011-01-13
    283 * Remove deprecated IMAP, IMAPS, and mbox+ssh sources
    284 * Inline GPG support
    285 * Robust maildir support
    286 * sup-dump compatibility between Sup versions
    287 * New hook: sendmail
    288 * Better Ruby 1.9/UTF8 support
    289 * As always, many bugfixes and tweaks.
    290 
    291 == 0.11 / 2010-03-07
    292 * Remove deprecated Ferret backend.
    293 * Add deprecation notices to IMAP, IMAPS, and mbox+ssh sources.
    294 * 256 color support.
    295 * Backwards-compatible index format improvements.
    296 * Saved searches.
    297 * Improved support for custom keybindings.
    298 * Idle detection - poll totals accumulate and index flushes on idle.
    299 * Several textfield improvments.
    300 * New hooks: publish, mentions-attachments, keybindings,
    301   index-mode-date-widget, gpg-args, and crypto-settings.
    302 * sup-cmd for easy programmatic access to a Sup index.
    303 * As always, many bugfixes and tweaks.
    304 
    305 == 0.10.2 / 2010-01-26
    306 * Update gem dependencies to pull in xapian-full and ncursesw instead of ferret
    307   and ncurses.
    308 * Fix a minor problem when running with Ruby 1.8.5.
    309 * Fix a warning.
    310 
    311 == 0.10.1 / 2010-01-24
    312 * Fix a missing file in the gem.
    313 
    314 == 0.10 / 2010-01-22
    315 * Make Xapian backend the default, and add deprecation notice to Ferret indexes.
    316 * Now Ruby 1.9 compatible (Xapian backend only).
    317 * Changes are now saved automatically to the index. Pressing "$" now just
    318   forces a flush of Xapian indexes, which can minimize quit time.
    319 * Fix problem with replying to Google Groups messages.
    320 * Allow toggling of line wrap. Useful for long URLs.
    321 * Multiple attachments can be added at once by specifying a wildcard.
    322 * New command to save all attachments at once.
    323 * As always, many bugfixes and tweaks.
    324 
    325 == 0.9.1 / 2009-12-10
    326 * Make textfield behave more like readline, including C-w
    327 * Add ask_for_to config option. You can set all ask_for_* options to false, and
    328   composing a message will go immediately to the editor.
    329 * RFC 2047 decode attachment file names
    330         * default ask_for_to to true
    331 * add undo power to thread-view-mode
    332 * display labels of polled messages
    333 * increase numbers in contact-list-mode
    334 * fix --compose option, and add a --subject option
    335 * include hook filename in error messages
    336 * As always, many bugfixes and tweaks.
    337 
    338 == 0.9 / 2009-10-01
    339 * Experimental Xapian backend to replace Ferret. Not everything works with it,
    340   but it's fast and less likely to barf. See release notes.
    341 * New keybinding: "G" for reply-all.
    342 * New hook: custom-search, for adding your own query expansions.
    343 * Better preemptive thread loading.
    344 * Random UI tweaks: display labels before subjects, change thread-view-mode's
    345   'n' and 'p' commands slightly
    346 * Better killing of other Sup processes.
    347 * Die gracefully upon SIGKILL.
    348 * Finally figure out the curses+ruby magic to make SIGWINCH (i.e. xterm
    349   resizing) work correctly.
    350 * Add a console mode (press ~) for interactively playing with the index.
    351 * Finally figure out the curses magic to stop the weird keyboard behavior after
    352   leaving the editor.
    353 * Improved logging. Logging now supports SUP_LOG_LEVEL environment variable.
    354   Set this to "debug" for verbiage.
    355 * As always, many bugfixes and tweaks.
    356 
    357 == 0.8.1 / 2009-06-15
    358 * make multibyte display "work" for non-utf8 locales
    359 * fix reply-mode always selecting "Customized"
    360 * reduce email quote parsing worst-case behavior
    361 
    362 == 0.8 / 2009-06-05
    363 * Undo support on many operations. Yay!
    364 * Mbox splitting fixes. No more "From "-line problems.
    365 * Mail parsing speedups.
    366 * Many utf8 and widechar fixes. Display of crazy characters should be pretty
    367   close.
    368 * Outgoing email with non-ASCII headers is now properly encoded.
    369 * Email addresses are no longer permanently attached to names. This was
    370   causing problems with automated email systems that used different names
    371   with the same address.
    372 * Curses background now retains the terminal default color. This also makes
    373   Sup work better on transparent terminals.
    374 * Improve dynamic loading of setlocale for Cygwin and BSD systems.
    375 * Labels can now be removed from multiple tagged threads.
    376 * Applying operations to tagged threads is now invoked with '='.
    377 * Buffer list is betterified and is now invoked with ';'.
    378 * Zsh autocompletion support.
    379 * As always, many bugfixes and tweaks.
    380 
    381 == 0.7 / 2009-03-16
    382 * Ferret index corruption issues fixed (hopefully!)
    383 * Text entry now scrolls to the right on overflow, i.e. is actually usable
    384 * Ctrl-C now asks user if Sup should die ungracefully
    385 * Add a limit:<int> search operator to limit the number of results
    386 * Added a --query option to sup-tweak-labels
    387 * Added a new hook: shutdown
    388 * Automatically add self as recipient on crypted sent messages
    389 * Read in X-Foo headers
    390 * Added global keybinding 'U' shows only unread messages
    391 * As always, many bugfixes and tweaks
    392 
    393 == 0.6 / 2008-08-04
    394 * new hooks: mark-as-spam, reply-to, reply-from
    395 * configurable colors. finally!
    396 * many bugfixes
    397 * more vi keys added, and 'q' now asks before quitting
    398 * attachment markers (little @ signs!) in thread-index-mode
    399 * maildir speedups
    400 * attachment name searchability
    401 * archive-and-mark-read command in inbox-mode
    402 
    403 == 0.5 / 2008-04-22
    404 * new hooks: extra-contact-addresses, startup
    405 * '!!' now loads all threads in current search
    406 * general state saving speedup
    407 * threads with unsent draft messages are now shown in red
    408 * --compose spawns a compose-message buffer on startup
    409 * Many bugfixes and UI improvements
    410 
    411 == 0.4 / 2008-01-23
    412 * GPG support for signing and encrypting outgoing mail
    413 * New hooks: mime attachment, attribution line
    414 * Improved local charset detection using gettext library
    415 * Better quoted region detection
    416 * Many bugfixes and UI improvements
    417 
    418 == 0.3 / 2007-10-29
    419 * In-buffer search (finally!)
    420 * Subscribe to/unsubscribe from mailing list commands.
    421 * IMAP speedups.
    422 * More hooks: set status bar, set terminal title bar, modify message headers
    423   and bodies before editing, etc.
    424 * Optionally use chronic gem to allow for natural-language dates in searches.
    425 * Many, many bugfixes and minor improvements.
    426 * Tomorrow is Sup's first birthday!
    427 
    428 == 0.2 / 2007-10-29
    429 * Complete hook system for user-inserted code.
    430 * GPG signature verification and decryption.
    431 * Automatically scold users who top-post.
    432 * Automatically warn when sending a message with words like
    433   "attachment" in the body if there aren't actually any attachments to
    434   the message.
    435 * Millions of bugfixes.
    436 
    437 == 0.1 / 2007-07-17
    438 * MIME attachment creation.
    439 * i18n support: character set conversion and rfc2047 header decoding.
    440 * Better MIME handling.
    441 * Multiple account support.
    442 * Locking and concurrent Sup process detection and killation.
    443 * Thread autoloading when you scroll down.
    444 * Batch deletion of messages marked deleted or spam from message
    445   sources via sup-sync-back tool (mbox only).
    446 * Millions of bugfixes.
    447 
    448 == 0.0.8 / 2007-04-01
    449 
    450 * Maildir support!
    451 * New command: sup-config. Interactively walks you through everything
    452   you need to get up and running.
    453 * Now proactive about notifying users of de-synced sources.
    454 * Renamed sup-import => sup-sync with a brand new, less illogical
    455   interface.
    456 * Added a sup-dump, to enable backing up and rebuilding indices from
    457   scratch (e.g. when Ferret upgrades break index formats).
    458 * More bugfixes. Will they ever end?
    459 
    460 == 0.0.7 / 2007-02-12
    461 
    462 * Split sup-import into two bits: sup-import and sup-add.
    463 * Command-line arguments now handled by trollop.
    464 * Better error handling for IMAP and svn+ssh.
    465 * Messages can now be moved between sources while preserving all
    466   message state.
    467 * New commands in thread-view-mode:
    468   - 'a' to add an email to the addressbook
    469   - 'S' to search for all email to/from an email address
    470   - 'A' to kill buffer and archive thread in one swell foop
    471 * Removed hoe dependency.
    472 
    473 == 0.0.6 / 2007-01-06
    474 
    475 * Very minor fix to support more types of IMAP authentication.
    476 
    477 == 0.0.5 / 2007-01-05
    478 
    479 * More bugfixes, primarily for IMAP.
    480 * doc/UserGuide.txt
    481 
    482 == 0.0.4 / 2007-01-03
    483 
    484 * Bugfixes, primarily for threaded networking.
    485 
    486 == 0.0.3 / 2007-01-02
    487 
    488 * Major speed increase for index views (inbox, search results), which
    489   are now loaded completely from the IR index. The only time the
    490   original sources need to be touched is when viewing a thread. This
    491   is important for slow sources like IMAP and mbox+ssh.
    492 * Remote mbox support with mbox+ssh URIs.
    493 * IMAP now actually works.
    494 * sup-import uses HighLine and is generally much improved.
    495 * Multitudinous minor bug fixes and improvements.
    496 
    497 == 0.0.2 / 2006-12-10
    498 
    499 * IMAP support
    500 * Better handling of broken sources. (Everything won't just die.)
    501 * You will need to rebuild both your index, and sources.yaml.
    502   Sorry!
    503 
    504 == 0.0.1 / 2006-11-28
    505 
    506 * Initial release. Unix-centrism, support for mbox only, no i18n.
    507   Untested on anything other than 1.8.5. Other than that, works great!