sfeed (2.3-1) unstable; urgency=medium

  For this release if you use sfeed_mbox: because of some changes the
  Message-ID value will be different. This may be important for example
  if you use this header for filtering duplicate messages.

  Fixes:

    * sfeed_update: when merging a record: change the default to use the
      last record.
    * sfeed_mbox: be more strict about what characters to allow in the To
      and Message-ID header.

  Features:

    * sfeed_gopher: improve output and nicer formatting of the index file.
    * sfeed_mbox: add more mail headers. This allows more convenient
      filtering in many mail clients.

  * Various small code cleanups and documentation improvements:
    * xml.c: validate numeric entities more strictly.
    * Handle unlikely case argc < 1 in programs.
    * Fix some pedantic warnings suggested by cppcheck.

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Mon, 29 Dec 2025 12:34:56 +0100

sfeed (2.2-1) unstable; urgency=medium

  * Improvements:
    * sfeed.c: optimize tag lookup by reverting the binary search to a
      linear lookup. This is because the tags table is very small.

  * Documentation fixes:
    * README, sfeedrc.5: improve If-Modified-Since example:
      * Use the exact server timestamp to compare modified content
        (curl -R option). Using the client timestamp is imprecise.
      * Do not use the modified timestamp of the ETag for If-Modified-Since
        this can differ as well.

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Tue, 11 Mar 2025 12:34:56 +0100

sfeed (2.1-1) unstable; urgency=medium

  * Fixes:
    * xml.c parsing fix: improve parsing whitespace after end tag names.
    * sfeed_update: fix: leave IFS unchanged for sfeedrc code.
    * sfeed.c, small pedantic time parsing improvements.

  * Documentation improvements.
  * Code-style improvements.

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Thu, 26 Dec 2024 12:34:56 +0100

sfeed (2.0-1) unstable; urgency=medium

  * Features:
    * sfeed_update: use xargs -P for improved job handling when updating
      feeds in parallel.
    * sfeed_update: update default maxjobs from 8 to 16.

  * Fixes:
    * sfeed_json: fix name of "url" field for attachments.
    * sfeed_opml_export and sfeed_update: allow only regular files.
    * sfeed_update: improve compatibility with zsh as a non-interactive
      shell, because some variables likes like $path and $status are
      reserved.
    * sfeed_update:
      when the feeds() function is not defined then exit with status
      code 1 (this was incorrectly status code 0).
    * sfeed_update: improvements in the cleanup of temporary files for
      edge-cases.

  * Code improvements:
    * sfeed_curses/sfeed_gopher: mark functions as static.
    * sfeed_gopher: fix a clang-analyzer warning.
    * sfeed_update: in the order() function suppress output to stderr,
      like merge() already does.
    * Some small documentation improvements.

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Fri, 29 Dec 2023 12:34:56 +0100

sfeed (1.9-1) unstable; urgency=medium

  * Fixes:
    * sfeed_atom: for gmtime_r() make the error message consistent.
    * sfeed_markread: fail early if creating a temporary file failed.
    * Code-cleaning and pedantic fixes.
    * Documentation improvements.

  * Features:
    * sfeed_{curses,frames,gopher,html,plain}: add $SFEED_NEW_AGE
    * sfeed_update/sfeedrc: add url as a parameter to the filter() and order()
      function. This makes it easier to set filters or ordering by pattern
      matching on a group of feeds by the feed URL.
    * sfeed_curses: move one line down when marking an item as read or unread.

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Wed, 30 Aug 2023 12:34:56 +0100

sfeed (1.8-1) unstable; urgency=medium

  * Fixes:
    * sfeed_update: fail early if creating a temporary directory or status file
      fails.
    * sfeed_atom, sfeed_json, sfeed_mbox:
      Fix reading past the buffer with an escaped NUL byte (\ NUL).
      Note that this could not happen with output from sfeed itself. Only if
      it was manipulated.
    * sfeed_curses: fix (very hard to trigger) memleak when getline() returns
      EOF for lazyloaded items.
    * sfeed parser:
      * Improve parsing RFC2822 obsolete short year.
      * Use errno ENOMEM instead of EOVERFLOW.
        This matches the behaviour of setting errno for malloc/calloc on the
        following systems too: glibc, musl libc, OpenBSD libc.
      * date to unix timestamp: fix incorrect int type to long.
    * Makefile: remove duplicate CPPFLAGS for sfeed_curses

  * Features:
    * sfeed_json: add JSON output format tool: formats the TSV data to JSON.
      It is a subset of JSON Feed 1.1: https://www.jsonfeed.org/version/1.1/

  * Optimizations:
    * sfeed_atom: save a few bytes in the output by removing the type="text"
      attribute, because for Atom the default for the type is text.
    * Slightly reduce stack size for translating XML entities.
      A numeric entity could use 5 bytes, so use a round number of 8 bytes.

  * Misc:
    * sfeed: simplify time calculation and make it slightly easier to read.
    * Remove the sfeed name in some outputs ("branding").
    * Documentation improvements.

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Sun, 23 Apr 2023 12:34:56 +0100

sfeed (1.7-1) unstable; urgency=medium

  * sfeed_curses:
    * Add SCO keys for next, prior (CSI I and CSI G).
    * Add SUN keys support.

  * sfeed_gopher:
    * Remove unnecessary PATH_MAX restricting the path length.
      This also makes it compile cleanly on GNU/Hurd.

  * Man page and documentation improvements.

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Sat, 25 Feb 2023 15:11:29 +0100

sfeed (1.6-1) unstable; urgency=low

  * Initial release (Closes: #1000594 and #1008853)

 -- Hiltjo Posthuma <hiltjo@codemadness.org>  Thu, 15 Sep 2022 21:40:07 +0200
