File notcurses.changes of Package notcurses

Sat Jun  5 13:21:32 UTC 2021 - Martin Hauke <>

- Update to version 2.3.2
  * ncplane_at_yx() now returns the EGC occupying that cell, even
    if the cell is a secondary column of a wide glyph. Previously,
    it returned an empty string in this case. ncplane_at_yx_cell()
    still replicates the exact nccell, allowing you to fully
    distinguish between the primary column of a wide glyph, the
    secondary column(s) of same, and an empty string. Furthermore,
    ncplane_at_yx() now takes the base cell into account; the
    result is exactly what is fed into rendering logic.
  * Added notcurses_cursor_yx() to get the current location of the
    terminal cursor.
  * Added ncdirect_supported_styles() and ncdirect_styles() to the
    Direct Mode API.
  * Closed memory leaks in ncvisual API (#1712, #1711)
  * Support resizing visuals in the absence of a multimedia engine
    via simple noninterpolative sampling (#1705)
  * Explicitly prevent more than one context (struct notcurses or
    struct ncdirect) at a time in a process
  * ncplane_as_rgba() now supports NCBLIT_2x2 and NCBLIT_3x2, and
    requires the desired (inverse-)blitter to be passed explicitly
    (i.e. no NCBLIT_DEFAULT) (#1697)
  * Restore colors properly following sgr/sgr0 in direct mode, for
    both palette and RGB (#1703)
  * Fix bug in ncvisual_from_bgra() that manifested as broad
    inability to render in Rust, thanks @joseluis (#1703)
  * Unified much of the storage shared across direct and rendered
    mode, killing off duplicated code, and packed all escapes into
    a single, tight, cache-friendly buffer (#1525)
  * Always convert visuals to RGBA if not loaded in RGBA, fixing
    ncpixel API for them (#1680)
  * Rust bindings now use bindgen 0.57
  * Emit rmkx on exit.
  * Always pad image data suitably for ffmpeg's SIMD-heavy backend
  * Rebuild auxiliary vectors on a new frame in both Sixel and
    Kitty (#1605)
  * Python CFFI fixes.
  * ncplayer in direct mode (-k) was printing too many rows.
  * Respect leny/lenx from ncvisual_options when rendering once.
  * Strengthened a lot of unit tests, wrote about a dozen new unit
  * Updated a number of man pages.

Tue May 18 15:20:41 UTC 2021 - Martin Hauke <>

- Update to version 2.3.1
  * Honors maxx and maxy when rendering images in direct mode
  * Robustifies direct mode cursor queries, especially when
    redirected to a file
  * Don't acquire the signal atomic if we're not registering any
   signal handlers
  * Add ncdirectf_{from_file, geom, render, free}(), a rather
    roundabout way of providing efficient access to media
    information in direct mode
  * Fix ncvisual_resize() when enlarging a frame using ffmpeg
  * notcurses-tester: accept any argument starting with -l and
    treat it as -l8
  * Always enable 8bpc RGB for foot, kitty, and alacritty, without
    needing COLORTERM
  * Add artix art to ncneofetch
  * Add spaceships to box demo

Thu May 13 18:16:04 UTC 2021 - Martin Hauke <>

- Update to version 2.3.0
  * support for portable terminal bitmaps;
  * both Sixel and Kitty are supported using a single NCBLIT_PIXEL
  * Extensive work has gone into flicker-free, fast presentation.
- Update to version 2.2.11
  * Adds ncplane_erase_region() to erase a subregion of a plane.
  * Adds ncblit_rgb_packed() and ncblit_rgb_loose() to blit RGBx
    and pure RGB.
  * Fixes some flicker when using sixel.
  * Fixes an error in sixel wiping.
- Update to version 2.2.10

Sun Apr 25 09:28:32 UTC 2021 - Martin Hauke <>

- Update to version 2.2.8
  * Add sprixel support

Sun Apr  4 20:27:10 UTC 2021 - Martin Hauke <>

- Update to version 2.2.5
  * Bugfix release, no user-visible changes.

Fri Apr  2 12:01:03 UTC 2021 - Martin Hauke <>

- Update to version 2.2.4
  * introduces notcurses_debug_caps() and the caps-rendered PoC.
    The new option NCOPTION_NO_CLEAR_BITMAPS for notcurses_init()
    will inhibit the latter's attempts to clear the screen of
    existing bitmaps on start. You probably don't want to use it.
  * ncplane_halign() and ncplane_valign() have been introduced;
    ncplane_align() is now a passthrough to ncplane_halign(), and
    deprecated. It will be removed in ABI3.
  * The NCPLANE_OPTION_VERALIGNED option has been added for
    ncplane_create(). The NCVISUAL_OPTION_HORALIGNED and
    NCVISUAL_OPTION_VERALIGNED flags have been added for
    ncvisual_render() and ncvisual_stream().
  * @MasFlam contributed the nctabbed widget
  * The redundant notcurses_canpixel() function has been removed
    (use notcurses_check_pixel_support()). The
    NCPLANE_OPTION_MARGINALIZED flag has been added for
    ncplane_create(), allowing planes to be created with margins
    relative to their parent plane.
  * The ncplane_resize_aligned() resize callback now takes care
    of vertical alignment if NCPLANE_OPTION_VERALIGNED was used.
  * New resize callback ncplane_resize_marginalized() has been
    added, intended for use with NCPLANE_OPTION_MARGINALIZED; it
    will recompute margins and move/shrink/grow a plane as
    necessary on a parent plane resize.

Wed Mar 10 19:52:26 UTC 2021 - Martin Hauke <>

- Update to version 2.2.3
  * Implemented **EXPERIMENTAL** `NCBLIT_PIXEL` for terminals
    reporting Sixel support. Added
    `notcurses_check_pixel_support()` and its companion
    `ncdirect_check_pixel_support()`, which must be called (and
    must return success) before `NCBLIT_PIXEL` will be available.
    `NCBLIT_PIXEL` degrades to `NCBLIT_3x2` until support is
    verified. This functionality is not yet well integrated into
    general rendering; it will not play nicely with other
    intersecting planes. Do not rely on current behavior.
  * Add the `nctree` widget for line-oriented hierarchical data.
  * Ceased exporting `cell_fchannel()`, `cell_bchannel()`,
    `cell_set_fchannel()`, and `cell_set_bchannel()`. These
    functions were never safe for users. Everything a user might
    want to manipulate can be manipulated with more granular
  * Add `SIGILL` to the set of fatal signals we handle.
  * Added `NCKEY_SIGNAL`. `NCKEY_RESIZE` is now an alias for
  * `SIGCONT` now synthesizes a `NCKEY_SIGNAL`, just like

Sat Mar  6 12:17:50 UTC 2021 - Martin Hauke <>

- Update to version 2.2.2
  * Accesses to statistics are now locked.
  * ncplayer uses direct mode when invoked with -k, speeding up
  * The cursor is now always positioned following output on exit.
  * Always flush term reset at start, fixing late reset on e.g.
  * ncplayer -L on videos no longer delays between loops.
  * QR Codes can now be blitted only using NCBLIT_2x1, since
    that's the only one scanners work with.

Sat Feb 13 22:08:20 UTC 2021 - Martin Hauke <>

- Update to version 2.2.1
  * Blitters properly degrade to NCBLIT_2x2 from NCBLIT_3x2 and
    NCBLIT_BRAILLE on linux console.
  * Fix transparent blitter stacking when the lower plane has no
  * ncplayer now always shows actual blitter being used.
  * First use of notcurses_getc() and other input functions no
    longer resets colors on tmux.
  * When using rendered mode but inhibiting the alternate screen,
    the cursor is now placed on the bottom left on exit.

Wed Feb  3 20:38:03 UTC 2021 - Martin Hauke <>

- Update to version 2.1.8
  * The notcurses-tetris binary has been renamed nctetris.
  * The new function channel_set_palindex() has been added.
  * NCDIRECT_OPTION_NO_READLINE has been removed after a short life
  * ncdirect_readline() has been added. The first time used, it
    initializes Readline. Readline will be destroyed by
    ncdirect_stop() if it was ever initialized.
- Update to version 2.1.7
  * Notcurses has been split into two libraries, "notcurses-core"
    and "notcurses". The latter contains the heavyweight multimedia
    code, so that applications which don't need this functionality
    can link against only the former. "pkg-config" support is
    present for both. If using only "notcurses_core", use the new
    functions "notcurses_core_init()" and/or "ncdirect_core_init()"
    in place of "ncdirect_init()" and "notcurses_init()", or
    your program is unlikely to link.
  * The "notcurses-view" binary has been renamed "ncplayer".
- Introduce subpackages for notcurses-core

Tue Jan 19 20:08:24 UTC 2021 - Dirk Müller <>

- fix build without pandoc on 32bit x86 and arm

Sun Jan 17 22:10:17 UTC 2021 - Martin Hauke <>

- Update to version 2.1.5
  * Notcurses now depends on GNU Readline at build and runtime,
    entirely for the benefit of direct mode, which now prepares
    GNU Readline for safe use (unless the new
    NCDIRECT_OPTIONS_NO_READLINE is used).  ncplane_putstr_yx(),
    ncplane_putstr_stained(), and ncplane_putnstr_yx() now return
    the number of columns output, as long documented (they were
    mistakenly returning the number of bytes).
  * cplane_abs_yx() has been added, returning the absolute
    coordinates of the plane's origin (i.e. coordinates relative
    to its pile).
- Update to version 2.1.4
  * Direct mode now supports NCDIRECT_OPTION_NO_QUIT_SIGHANDLERS,
    and by default installs signal handlers similar to those of
    fullscreen mode. They will attempt to reset the terminal, and
    propagate the signal.
  * Add channels_fg_palindex() and channels_bg_palindex().
- Update to version 2.1.3
  * ncdirect_styles_{set, on, off}() have been deprecated in favor
    of ncdirect_{set, on, off}_styles(), to match ncplane_
  * ncdirect_raster_frame() no longer requires blitter nor scale.
  * ncdirect_{fg, bg}_{default, rgb}() have been deprecated in
    favor of ncdirect_set_{fg, bg}_{default, rgb}(), to match
- Update to version 2.1.2
  * Add notcurses_linesigs_enable() and notcurses_linesigs_disable().
  * Divide ncdirect_render_image() into component
    ncdirect_render_frame() and ncdirect_raster_frame() (the original
    remains), allowing multiple threads to decode images concurrently.
  * Sextants are now considered supported for certain values of TERM.
  * ncvisual_default_blitter() has been deprecated in favor of the
    new function ncvisual_media_defblitter(). This function's opaque
    logic accepts a struct notcurses *, providing some
    future-proofing against blitter changes. This function is
    necessary to get NCBLIT_3x2 from NCBLIT_DEFAULT.
- Update to version 2.1.1
  * Progress bars via ncprogbar, using the standard widget API.
- Update to version 2.1.0
  * cell has been renamed nccell. The old name has been kept as an
    alias, but ought be considered deprecated. It will be removed
    in Notcurses 3.0.
- Update to version 2.0.12
  * ncplane_resize_maximize() has been added, suitable for use as a
    resizecb. It resizes the plane to the visual area's size, and
    is the resizecb used by the standard plane.
- Update to version 2.0.11
  * Added ncplane_descendant_p() predicate.

Sun Dec  6 19:09:58 UTC 2020 - Martin Hauke <>

- Update to version 2.0.10
  * Upstream does not provide a changelog

Mon Nov  9 21:12:05 UTC 2020 - Martin Hauke <>

- Update to version 2.0.3
  * Add `NCBLIT_3x2` aka the SEXBLITTER, making use of Unicode
    13's sextant glyphs. `notcurses_lex_blitter()` now recognizes
  * Blitting functions no longer count transparent cells towards
    the total returned number of cells written, but since these
    are not directly callable by the user, this ought not lead to
    any user-visible changes.
  * Added (k)eller demo to `notcurses-demo`.
  * `ncreader` now supports Alt+'b' to move one word back, Alt+'f'
    to move one word forward, Ctrl+'A' to move to the beginning
    of the line, Ctrl+'E' to move to the end of the line, Ctrl+'U'
    to clear the line before the cursor, and Ctrl+'W' to clear the
    word before the cursor (when `NCREADER_OPTION_NOCMDKEYS` has
    not been specified).

Sun Oct 25 14:50:56 UTC 2020 - Martin Hauke <>

- Update to version 2.0.2
  * Add `ncvisual_decode_loop()`, which returns to the first frame
    upon reaching the end of a file.

Mon Oct 19 07:31:58 UTC 2020 - Martin Hauke <>

- Update to version 2.0.1
  * Add ncmenu_item_set_status() for disabling or enabling menu
    + Disabled menu items cannot be selected.
    + Menu sections consisting only of disabled items are
      themselves disabled, and cannot be unrolled.
  * Add ncinput_equal_p() for comparison of ncinput structure data.
    ncmenu_offer_input() now recognizes the shortcuts for
    registered sections, and will unroll the appropriate section
    when given input.
  * Added notcurses_stddim_yx_const() (notcurses_stddim_yx() const

- Update to version 2.0.0
  * API STABILITY! The API expressed in 2.0.0 will be maintained
    throughout at least 2.x.x. A program compiled against 2.0.0
    will continue to compile and function properly against all
    2.x.x releases. Thanks for putting up with the freewheeling
    API breakage until now.
    available from notcurses/version.h. These represent the
    version your program was compiled against. The version your
    program is linked to can still be acquired with
    notcurses_version_components() (or as a human-readable string
    via notcurses_version()).

Sat Oct 10 08:28:17 UTC 2020 - Martin Hauke <>

- Update to version 1.7.6
  * `ncstats` added the new stats `writeout_ns`, `writeout_min_ns`,
    and `writeout_max_ns`. The `render_*ns` stats now only cover
    the rendering and rasterizing process. The `writeout*ns` stats
    cover the time spent writing data out to the terminal.
    `notcurses_render()` involves both of these processes.
  * `notcurses_render_to_buffer()` has been added, allowing user
    control of the process of writing frames out to the terminal.
  * `notcurses_stats_alloc()` has been added, to allocate an
    `ncstats` object.  `notcurses_reset_stats()` has been renamed
  * Two flags have been defined for `ncdirect_init()`:
    The former is similar to `NCOPTION_INHIBIT_SETLOCALE`. The
    latter keeps `ncdirect_init()` from touching the termios and
    entering cbreak mode.
  * The C++ wrapper `Ncplane::putwc()` has been renamed
    `Ncplane::putwch()`, so as not to clash with standard
    libraries implementing `putwc()` as a macro.

Tue Sep 29 20:05:54 UTC 2020 - Martin Hauke <>

- Update to version 1.7.5
  * `ncreel_destroy()` now returns `void` rather than `int`.
  * `nctablet_ncplane()` has been renamed `nctablet_plane()`.
  * The standard plane now has the name `std`.
  * Removed long-deprecated `ncplane_set_attrs()` and
  * Renamed `ncplane_styles_*()` to `ncplane_*_styles()`, to
    conform with every other `ncplane_set_*()` function, but
    retained the old versions as (deprecated) aliases.
  * Renamed `cell_styles_*()` to `cell_*_styles()`, to conform with
    every other `cell_set_*()` function. Since these were inline
    functions, I've not bothered to retain the old versions.
- Update to version 1.7.4
  * All `_rgb_clipped()` functions have been renamed
   `_rgb8_clipped()`, to match the changes made in 1.7.2.
  * `ncplane_create()` has been introduced, taking a
    `struct ncplane_options` parameter. This replaces
    `ncplane_aligned()`, and will replace `ncplane_new()`. The
    latter ought be considered deprecated, and will be removed in
    the future. To align a place as previously done with
    `ncplane_aligned()`, use the `NCPLANE_OPTION_HORALIGNED` flag.
  * The `ncplane_options` struct includes a function pointer
    member, `resizecb`. If not `NULL`, this function will be
    called after the parent plane is resized.
    See `notcurses_plane.3` for more information.
  * `ncplane_resize_realign()` has been added, suitable for use as
    a `resizecb`. It realigns the plane against its parent.
    to match the other declarations.
- Update to version 1.7.3
  * API changes pursuant to 2.0 API finalization:
  * `mbswidth()` has been renamed `ncstrwidth()`.
  * The long-promised/dreaded Great Widget Review, normalizing
    behavior across all widgets, has been effected. Sorry, there
    was no getting around this one. Pretty much all widgets have
    slightly changed, because pretty much all widgets previously
    behaved slightly differently:
    + `ncselector_create()` and `ncmultiselector_create()` now
      take ownership of the provided `ncplane`. On an error in
      these functions, the `ncplane` will be destroyed. Otherwise,
      the `ncplane` is destroyed by `ncselector_destroy()` or
    + `ncselector_create()`, `ncmultiselector_create()`, and
      `ncreader_create()` no longer accept `int y, int x` placement
      parameters. Just place the `ncplane`.
    + `ncselector_options`, `ncmultiselector_options`, and
      `ncreel_options` have lost their `bgchannels` members. Just
      set the base character for the `ncplane`.
    + `ncreader_options` has lost its `echannels`, `eattrword`,
      `egc`, `physrows`, and `physcols` fields. Just set the base
      character and size for the `ncplane`.
  * Functions which set a 24-bit RGB value have had the suffix `g`
    replaced with `g_rgb`. Functions which set three 8-bit RGB
    components have had the suffix `rgb` replaced with `rgb8`.
    This was done because e.g.
    `channels_set_fg()` and `channels_set_fchannel()` were
    indistinguishable on sight. Failure to make the necessary
    conversions will result in compiler errors.
  * Functions ending in `_stainable()` now end in `_stained()`.
  * `ncplane_putwc_stained()` and `ncplane_putwstr_stained()` have
    been added in the interest of orthogonality.
  * `ncplane_new_named()` has been eliminated. `ncplane_new()` now
    takes a `const char* name` argument. `ncplane_bound()` and
    `ncplane_bound_named()` have both been eliminated.
    `ncplane_new()` now accepts an `ncplane*` instead of a
    `notcurses*`. All functionality exposed by the removed
    functions is thus now present in `ncplane_new()`.
  * `ncplane_aligned_named()` has been removed. `ncplane_aligned()`
    now accepts a `const char* name` argument.
- Update to version 1.7.2
  * Exported `ncvisual_default_blitter()`, so that the effective
    value of `NCBLIT_DEFAULT` can be determined.
  * Added `NCREADER_OPTION_CURSOR`, instructing the `ncreader` to
    make the terminal cursor visible, and manage the cursor's

Thu Sep 10 18:39:19 UTC 2020 - Martin Hauke <>

- Update to version 1.7.2
  * Exported `ncvisual_default_blitter()`, so that the effective
    value of `NCBLIT_DEFAULT` can be determined.
  * Added `NCREADER_OPTION_CURSOR`, instructing the `ncreader` to
    make the terminal cursor visible, and manage the cursor's

Tue Sep  1 05:58:46 UTC 2020 - Martin Hauke <>

- Update to version 1.7.1
    and `cell_load_simple()` to `cell_load_char()`.
  * Renamed `ncplane_putsimple()` to `ncplane_putchar()`,
    `ncplane_putsimple_stainable()` to `ncplane_putchar_stainable()`,
    and `ncplane_putsimple_yx()` to `ncplane_putchar_yx()`.

Mon Aug 31 13:19:40 UTC 2020 - Martin Hauke <>

- Run unittest

Mon Aug 31 06:49:27 UTC 2020 - Martin Hauke <>

- Update to version 1.7.0
  * Added `notcurses_ucs32_to_utf8()` conversion helper.
  * `ncdirect_init()` now takes a third `uint64_t flags` parameter.
    No flags have been defined, and this parameter ought be set
    to 0.

Sun Aug 30 08:21:56 UTC 2020 - Martin Hauke <>

- Update to version 1.6.20
  * Added convenience functions `ncplane_y()` and `ncplane_x()`,
    components of longstanding `ncplane_yx()`.
  * `ncreel` functions now generally call `ncreel_redraw()`
    themselves. This includes `ncreel_add()`, `ncreel_del()`,
    `ncreel_next()`, and `ncreel_prev()`. `ncreel_redraw()` need
    only be called to update tablets.
  * In order to conform with CMake naming conventions, our CMake
    package is now accessed as "Notcurses" rather than "notcurses".

Fri Aug 28 18:40:02 UTC 2020 - Martin Hauke <>

- Update to version 1.6.19
  * among other things, fixes numerous subtle bugs on big-endian
    architectures resulting from EGC inlining.

Thu Aug 27 15:07:24 UTC 2020 - Martin Hauke <>

- Use pkg-config style BR for libavutil

Thu Aug 27 11:56:01 UTC 2020 - Martin Hauke <>

- Update to version

Sun Jun 21 09:50:12 UTC 2020 - Martin Hauke <>

- Initial package, version 1.5.2
openSUSE Build Service is sponsored by