Changelog ========= Attention: Since version 1.0.0 the CHANGELOG file uses UTF-8 encoding! Line length limit is now 72 (user-perceived) characters for better E-Mail compatibility. 1.2.1 2024-04-27 Release ------------------------- Bug fixes: - GUI: Fixed potential crash if an article is selected while article tree/list widget update is still in progress. - GUI: FLTK 1.3 may crash if article contains very long lines (reported by Marcel Logen). With FLTK 1.3 articles containing lines beyond 1000 octets are no longer displayed. It's still possible to store the raw data to a file. With FLTK 1.4 the behaviour is unchanged. - GUI: Inconsistent permissions of created files fixed (reported by Marcel Logen). - ENC: Fixed conversion from codepage "ISO-8859-10". Codepoint 0xA2 to U+0112. - ENC: Fixed conversion from codepage "ISO-8859-13". Codepoint 0xA3 to U+00A3. - ENC: Fixed conversion from codepage "ISO-8859-16". Codepoint 0xB4 to U+017D. - ENC: Fixed conversion from codepages "KOI8-R" and "KOI8-U". Codepoint 0xA2 to U+2552. - ENC: Fixed conversion from codepage "Macintosh". Codepoint 0xC1 to U+00A1. - ENC: Fixed conversion from codepage "Windows-1255". Codepoint 0xD0 to U+05C0. Codepoint 0xD1 to U+05C1. Codepoint 0xD2 to U+05C2. Codepoint 0xD3 to U+05C3. - ENC: Fixed conversion from codepage "Windows-1256". Codepoint 0x95 to U+2022. Codepoint 0xBF to U+061F. - ENC: Fixed conversion from codepage "Windows-1257". Codepoint 0xA3 to U+00A3. Codepoint 0xAB to U+00AB. Codepoint 0xAC to U+00AC. Codepoint 0xAD to U+00AD. Codepoint 0xAE to U+00AE. - ENC: Fixed conversion from codepages "IBM775", "IBM850" and "IBM00858". Codepoint 0x9B to U+00F8. - ENC: Fixed conversion from codepages "IBM850" and "IBM00858". Codepoint 0xE8 to U+00DE. New features and improvements: - Error messages can now contain content, e.g. a user or group name. This is nontrivial because the locale is not required to use Unicode (suggested by Dennis Preiser). - Connector lines in article tree are now solid for better visibility (suggested by Thomas Barghahn). - Unicode database updated to version 15.1.0. 1.2.0 2023-06-08 Release -------------------------- Important notes: - The experimental option USE_CUSTOM_FONTSIZE has been removed. Since FLTK 1.4 there is a resize feature via keyboard (Ctrl-+/-). - Doxygen 1.9.4 is now required to build the documentation. Bug fixes: - GUI: Callback for "Mark all groups read" fixed to not block any further operation if confirmation was "No" (reported by Marcel Logen). - GUI: Callback for "Next unread group" fixed to not always select the first group with unread articles (reported by Dennis Preiser). - CONF: Update of configuration data fixed (formerly truncated if filesystem was full). Return values of flush operations are now checked before rename() is executed. - GUI: Group list is now updated to previous group after group selection error (reported by Michael Uplawski). - GUI: No longer show busy mouse cursor after group selection if article tree/list has no drawing area (reported by Michael Uplawski). - ENC: Memory leak fixed in MIME Content-Disposition decoder. - TLS: Memory leaks fixed. - TLS: OpenSSL 3 version number is now printed correctly on terminal. - GUI: Soft hyphens are now handled consistently with all FLTK backends (formerly X11 rendered all SHY characters visible, as defined by ISO 8859-1, while Pango and Cocoa rendered SHY characters invisible). - FILTER: Documentation of scorefile syntax fixed (type "extended" is no longer supported). - CORE: Doxygen documentation of function core_get_msgid() fixed. New features and improvements: - GUI: French translation added for NLS support (provided by yamo'). NLS documentation updated for hexadecimal-escape-sequence (not allowed in translated strings). - GUI: Option to skip to next group while searching for next unread article added (can be enabled with a nonzero value for the new "unread_in_next_group" entry in configfile) (proposed by Thomas Barghahn). - GUI: No longer uses Fl_Pack widget because behaviour has changed in recent FLTK 1.4.0 snapshots (reported by Dennis Preiser). - CONF: Support for custom colors in displayed article added (based on patch from Martin Schnitkemper). - INET: Support for user defined TCP connection timeout (suggested by yamo'). Option CFG_TCP_CONNECT_TIMEOUT in CONFIG added. - GUI: With FLTK 1.4 (or FLTK 1.3.3 ABI) the horizontal scrollbar of the article tree or list respectively is moved to a sensible position. - CORE: Header field "Newsgroups" can now be extracted from overview, if present. Scoring rules of type "group" are applied to all groups of an Xpost in this case. - NNTP: Support for LIST OVERVIEW.FMT command (RFC 3977) added. - NNTP: Experimental support for MAXARTNUM extension added. Intended to be compliant with the RFC draft provided by Julien Élie in Message-ID. - ENC: Zero-width space (ZWSP) is now used too as line breaking hint for the format "flowed" decoder. - GUI: URI delegation: Separate error message for invalid encoding. - EXT: External URI handler returns a flag to indicate invalid encoding. - EXT: Examples for postprocessor added in subdirectory "postproc" (suggested by yamo'). - EXT: Example for external editor added in subdirectory "editor". - CONF: Documentation of configfile entry "cancelkey" modified (added note that "fqdn" entry must also be set to create Cancel-Lock/Key header fields). - FILTER: Documentation of scorefile modified (added notes that scoring rules can be shared). - Build system: The mkconfig script now checks for POSIX.1c-1995 Thread-Safe Functions (TSF) option too. Usage is forced by default via CFG_FORCE_TSF option in CONFIG. - Build system: The C++ object files are moved to the beginning of the list. This can reduce build time with make utilities that support parallel build. - Build system: BSD install utility now deletes existing target files before copying new ones. This solves problems with macOS on machines with Apple Silicon and signed binaries (patch from Dennis Preiser). - Unicode database updated to version 15.0.0. 1.1.0 2022-05-21 Release -------------------------- Bug fixes: - CORE: Authentication without password is now rejected (reported by Marcel Logen). - MAIN: Potential deadlocks in thread-safe replacement functions fixed. - GUI: State machine modified to avoid race condition when articles are marked read while group is not completely loaded yet. New features and improvements: - GUI: Option to automatically check for new articles added (an interval in minutes can be configured with the new "refresh_interval" entry in configfile). - GUI: Checkbox "Tools->Debug mode" removed. Debug mode must be enabled with command line option "-debug". - NNTP: Protocol logfile is only created if debug mode was enabled (and unlinked otherwise, if present). "Tools->Protocol console" window now requires debug mode. - GUI: Support for estimated article count in subscription window added. - GUI: Support for group descriptions in subscription window added. - NNTP: Support for LIST NEWSGROUPS command (RFC 3977) added. - GUI: Support for subscription proposals from server added (offered to user after server was changed and group list is empty). - CORE: Support for subscription proposals from server added. - NNTP: Support for LIST SUBSCRIPTIONS command (RFC 6048) added. - TLS: Support for LibreSSL 3.5 API added. - GUI: File save operations now suggest a pathname in the file selection window. - GUI: File save operations now ask the user before an existing file is overwritten. - CORE: Function added to suggest a pathname (created from home directory, program name and timestamp). - CORE: Message-IDs are now generated with algorithm A3 (uses a modified Base64 alphabet with "/" replaced by "-"). This allows to generate RFC 5538 conformant "news"-URIs without percent-encoding. 1.0.1 2022-01-03 Release -------------------------- Bug fixes: - ENC: Off-by-one read from uninitialized data in MIME encoded-word decoder fixed. - GUI: Clickable references are now restored after ROT13 was applied twice. - GUI: Click on "Cancel" button in server configuration window no longer creates an error message in the status bar. - GUI: "Group->Mark subthread read" now redraws the widget and closes the processed subthread (reported by Christian Schumacher). - GUI: Server configuration: Automatically modify service name when TLS is enabled/disabled (suggested by Julien Élie). - References to legacy configuration path "~/.flnews" fixed in man page. New features and improvements: - Unicode database updated to version 14.0.0. 1.0.0 2021-05-09 Release -------------------------- Important notes: - The new configuration data format is not compatible with versions 0.x (indicated by the major number bump)! A script is provided to automatically convert existing configuration data to the new format. Read "migration/README" for details. - Because the location of the configuration has changed (see new XDG module below), the configuration for versions 0.x is preserved. - It is still possible to downgrade flnews to 0.x, the preserved old configuration data is used again in this case. - Now the release version contains 3 numbers "x.y.z": Major (x) indicates compatibility with configuration data. Minor (y) is incremented for new features. Patch (z) is incremented for bug fixes. Bug fixes: - CORE: Request for group information is no longer rejected with error if the group list is empty. - GUI: After unsubscribing the last group, the article tree/list was not cleared and the user can click on articles for which the associated data no longer exists. Such operations will crash the program (reported by Martin Schnitkemper). - CORE: Line length limit (998 octets) is now checked before injection. - GUI: On macOS with system menu bar the status updates to menu entry "Group->Sort by article number" work now (patch from Dennis Preiser). The required method update() is not available with old FLTK 1.3 libraries, the option CFG_COCOA_SYS_MENUBAR now requires FLTK 1.4. - ENC: URI percent encoder for scheme fixed: The characters defined as (RFC 3986 Section 2.2) are now encoded (reported by Marcel Logen). - GUI: The URI parser now accepts empty for scheme . - GUI: The current group selection is now restored after a click into the empty space below the group list (reported by Christian Schumacher). - GUI: The article list/tree is now cleared after selecting an empty group (formerly articles of an unrelated group may still be visible). - GUI: Some FLTK versions accept selection of deactivated items. There is now a workaround implemented to make such selections nonfatal. - GUI: Horizontal scrolling to highlighted result of search fixed. - GUI: Use FLTK default forground color for group subscription window too. This should make the content readable with dark background (reported by Christian Schumacher). - NLS: German translation "Artikel herunterladen fehlgeschlagen" fixed (reported by Marcel Logen). - GUI: If there are multiple signature separators ("-- ") present, now the last one is used according to "Usenet Best Practice" draft 01 (reported by Marcel Logen). New features and improvements: - XDG: Moved default configuration directory to location defined by XDG Base Directory Specification 0.7 ("$XDG_CONFIG_HOME/$CFG_NAME"). Other modules now ask the XDG module for the configuration path. - MAIN: The new command line option "-confprefix" can be used to override the configuration directory (proposed by Helmut Waitzmann). - GUI: It is now possible to mark all articles in all groups as read (menu entry "Group->Mark all groups as read"). - MAIN: New command line option "-debug" to enable debug mode early. - CONF: configfile entry "domain" replaced with "fqdn". Some users saw the hostname field in Message-ID algorithm A1 as privacy problem. A can be configured for the new entry "fqdn" (should be a fully qualified domain name, but without root domain). It is used as element when a Message-ID is created with algorithm A2. - Support for SOURCE_DATE_EPOCH Specification 1.1 added to build system. Reproducible build option CFG_REPRODUCIBLE removed from CONFIG. The SOURCE_DATE_EPOCH variable from the environment now overrides the dates in the GUI, the output of the "-v" command line option and the man pages (original patch from Bernhard M. Wiedemann). - Support for target "install-strip" added to build system. The target "install" no longer strips unnecessary symbols from binaries (proposed by Martin Schnitkemper). - EXT: Support for external inews added. Pathname can be specified with the new "inews" entry in configfile. - TLS: Protocol versions 1.0 and 1.1 are now disabled as required by RFC 8996. Both versions are still available in "weak" encryption mode. - GUI: New menu entry "Group->Mark subthread as read". - GUI: If there is only one entity to display for a MIME multipart message (e.g. the selected one with multipart/alternative), the entity header is now displayed too. - GUI: An initial greeting phrase can now be specified with the new "initial_greeting" entry in configfile. It is inserted into articles that start a new thread (proposed by Wolfgang Bauer). - FUTIL: Function added to create (multiple) missing directories of a path. - FILTER: New scorefile syntax to eliminate the workaround with type "extended". All score rules now have a wildmat in the first field. - FILTER: Simplified default regex for test group detection to "\.test$|^test$", removing the ".*" part at the beginning (proposed by Urs Janßen). - POSIX: Support for POSIX.1-2008 and SUSv4 added. No local replacement functions are used anymore on modern operating systems. snprintf() replacement function now uses SUSv4 semantics. - ENC: MIME encoded-words are now generated with "US-ASCII" charset declaration if there is no 8-bit data to encode in the header field (e.g. to represent words like " =?-?= " in a RFC 2049 conformant way). This follows the "lowest common denominator" principle decribed in RFC 2046 Section 4.1.2. - TLS: Deprecated functions from OpenSSL 3 API are no longer used. - GUI: Modified question popup windows to handle pressing ESC key as "No" or "Reject" respectively. - GUI: Some entries moved from menu "Article" to "Group". EOF