# 2021-08-07 12:34:56.133769 UTC (+0609)

sfeed 1.0 and sfeed_curses 1.0 was released.

sfeed is a tool to convert RSS or Atom feeds from XML to a TAB-separated file.

It can be found at:
 * git://git.codemadness.org/sfeed
 * gopher://codemadness.org/1/git/sfeed
 * https://codemadness.org/releases/sfeed/
 * gopher://codemadness.org/1/releases/sfeed/

Phlog:
 * gopher://codemadness.org/1/phlog/sfeed
 * https://codemadness.org/sfeed.html


sfeed_curses is a curses UI front-end for sfeed.

It can be found at:
 * git://git.codemadness.org/sfeed_curses
 * gopher://codemadness.org/1/git/sfeed_curses
 * https://codemadness.org/releases/sfeed_curses/
 * gopher://codemadness.org/1/releases/sfeed_curses/

Phlog:
 * gopher://codemadness.org/1/phlog/sfeed_curses
 * https://codemadness.org/sfeed_curses.html


sfeed has the following changes compared to 0.9.22:

* Performance: enable unlocked I/O by default improving read performance.

* Makefile: switch to use CPPFLAGS -D_DEFAULT_SOURCE preventing warning
 messages on some systems.

* sfeed:
 * Fix regression with parsing RSS guid, by default ispermalink="true".
 * Detect the proper mime-type for XHTML (application/xhtml+xml).
 * Support short digit years for RSS pubDate fields (specified in obsoleted
   RFC822).
 * Improve content-type "type" attribute handling/buffering.
 * Improve "ispermalink", "rel" and "type" attribute handling/buffering.
 * Add support time fields for old/legacy Atom 0.3 feeds.

* sfeed_frames/sfeed_html: show the total counts and improve the title format
 to match the sfeed_curses title.

* sfeed_gopher: unveil: show path when it failed (OpenBSD).

* sfeed_mbox: add environment variable to print content (off by default because
 it can be insecure for some clients).

* sfeed_update: fix message when the configuration file does not exist yet.

* Portability and standards: add BSD-like err() and errx() functions.

* Code-style improvements.

* Documentation improvements: add examples, fix typos, etc.
 * README: update newsboat export script to support the content-type field
   which is added in newer newsboat versions.


sfeed_curses has the following changes compared to 0.9.10:

* Makefile: switch to use CPPFLAGS -D_DEFAULT_SOURCE preventing warning
 messages on some systems.

* sfeed_curses:
 * Fix (false-positive) compiler warnings with gcc 10.2+ and -Wall -O2.
 * Check if capname is NULL for tparm(), noticed on netbsd-curses.
 * Add [ and ] keybind to open the next visible feed in the pane while keeping
   the current pane selection, thanks to adc for the feature suggestion.
 * Exit early on read errors and show a clear error message in these cases.
 * Improve consistency of line counting (on an invalid file).
 * Theme: add a version of the mono theme (mono_highlight) which highlights
   the active panel.
 * minicurses.h: fix parameter type for tparm() (long not int).

* sfeed_content:
 * Content view optimizations.
 * Show any other content-type than "html" as plain-text (because Atom allows
   base64-encoded embedded content).
 * Allow multiple file parameters as arguments.

* sfeed_markread:
 * Make sure to use proper permissions when copying the merged temporary file.
 * For the unread items: create the file if it does not exist.
 * Allow to set the url as a parameter or as an env variable.
 * Use "-" instead of /dev/stdin which is slightly more portable.

* Code-style improvements.

* Documentation improvements: add examples, fix typos, etc.


I want to thank all people who gave useful feedback.