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.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