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