- 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)
OBS-URL: https://build.opensuse.org/request/show/897712
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=32
- 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
OBS-URL: https://build.opensuse.org/request/show/894103
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=30
- Update to version 2.3.0
* support for portable terminal bitmaps;
* both Sixel and Kitty are supported using a single NCBLIT_PIXEL
interface.
* 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
* Add NCVISUAL_OPTION_CHILDPLANE
- Update to version 2.2.8
* Add sprixel support
OBS-URL: https://build.opensuse.org/request/show/892947
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=28
- 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.
OBS-URL: https://build.opensuse.org/request/show/882719
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=25
- 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
functions.
* Add `SIGILL` to the set of fatal signals we handle.
* Added `NCKEY_SIGNAL`. `NCKEY_RESIZE` is now an alias for
`NCKEY_SIGNAL`.
* `SIGCONT` now synthesizes a `NCKEY_SIGNAL`, just like
`SIGWINCH`.
- Update to version 2.2.2
* Accesses to statistics are now locked.
* ncplayer uses direct mode when invoked with -k, speeding up
function.
* The cursor is now always positioned following output on exit.
* Always flush term reset at start, fixing late reset on e.g.
tmux.
* ncplayer -L on videos no longer delays between loops.
OBS-URL: https://build.opensuse.org/request/show/878226
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=23
- 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
transparency.
* 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.
OBS-URL: https://build.opensuse.org/request/show/872030
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=21
- 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
OBS-URL: https://build.opensuse.org/request/show/869016
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=20
- fix build without pandoc on 32bit x86 and arm
- 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_
equivalents.
* 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
ncplane.
- Update to version 2.1.2
* Add notcurses_linesigs_enable() and notcurses_linesigs_disable().
* Divide ncdirect_render_image() into component
OBS-URL: https://build.opensuse.org/request/show/864405
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/notcurses?expand=0&rev=8
- 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_
equivalents.
* 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
ncplane.
- 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.
OBS-URL: https://build.opensuse.org/request/show/863919
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=17
- 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
`sexblitter`.
* 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).
OBS-URL: https://build.opensuse.org/request/show/847354
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=13
- Update to version 2.0.1
* Add ncmenu_item_set_status() for disabling or enabling menu
items.
+ 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
form).
- 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.
* NOTCURSES_VERSION_{MAJOR, MINOR, PATCH, TWEAK} are 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()).
OBS-URL: https://build.opensuse.org/request/show/842486
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=9
- 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
`notcurses_stats_reset()`.
* Two flags have been defined for `ncdirect_init()`:
`NCDIRECT_OPTION_INHIBIT_SETLOCALE` and
`NCDIRECT_OPTION_INHIBIT_CBREAK`.
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.
- 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
`ncplane_attrs()`.
* Renamed `ncplane_styles_*()` to `ncplane_*_styles()`, to
conform with every other `ncplane_set_*()` function, but
retained the old versions as (deprecated) aliases.
OBS-URL: https://build.opensuse.org/request/show/840750
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/notcurses?expand=0&rev=7