Commit Graph

43 Commits (e66f1a03ad03f8c9770535f4ba3870b3174df294)

Author SHA1 Message Date
nick black a3e7b3b5d0
utf8_egc_len: count all printing glyphs #1174 4 years ago
nick black 5bce6d62a8 cell_egc_idx: fix up endianness #1130 4 years ago
nick black 23af0a2626
htole() on cell_egc_idx() constants #1130 4 years ago
nick black 4cf4a4ce0b
egcpool: fix cell_egc_idx() math #1179 4 years ago
nick black ea771217fb
cell_load_char() unit tests #1176 4 years ago
nick black 11bbf3c4ff correct endianness for cell_simple_p() 4 years ago
nick black 4d524f92bc apply htole() in ncpixel_*() #1130 4 years ago
nick black dab7247cdd
mbswidth: use utf8_egc_len() for segmentation #1014 4 years ago
nick black 301354a9ba utf8_egc_len: rewrite using uc_is_grapheme_break() #882 4 years ago
nick black c834e2a78d
cell_simple_p(): fix for htole() #979 4 years ago
nick black ee649ba0fa
cell_simple_p(): endianness fix #906 4 years ago
nick black 9c6077a44c
move cell_simple_p() for debug builds 4 years ago
nick black d523b41200 utf8_egc_len: work around treacherous wcwidth #903 4 years ago
nick black 2ceb2f5097 egcpool_extended_gcluster: assert() for great justice 4 years ago
nick black ce84101939 egcpool_extended_gcluster: a warning 4 years ago
nick black b0f7f36995 egc inlining #830 4 years ago
nick black ead60d06cc
unexport cell_egc_idx() 4 years ago
nick black f0962fc6b5 utf8_etc_len: flatten wcwidth negative returns 4 years ago
nick black 3aedec2501 expose cell_load_direct() #797 4 years ago
nick black 86a75531c6
Support newlines in ncplane_putnstr() when scrolling #793 4 years ago
nick black e32e4d9744
egcpool_stash: exit on strdup() failure #624 4 years ago
nick black 7215bf92ad
throw somed attributes on a few functions 4 years ago
nick black 355ea6d3d7
Allow EGCpools up to 1GB #425 5 years ago
nick black 3ddb1d3166
EGCPool: early realloc failure is not a hard fail
We do proactive reallocations of the EGCPool once we get
to 90% capacity, to avoid expensive exhaustive searches. When
we're over half the maximum size, though, this will fail. We
shouldn't treat that as a hard failure, but instead proceed on
to the search. This lets us hit the full 32MB EGCPool size #486.
5 years ago
Nick Black e6637e81cc
Prep for serious rusting #101 (#354)
* CMake: add USE_PANDOC, USE_DOXYGEN options #101
* README: mention rust
* start integrating rust into build #101
* CMake: add USE_NETWORK option for cargo
* Debian: build-dep on doxygen
* rust: colloquy checks in Cargo.lock
* extract NCKEY defines into their own include
* colloquy: use clap to parse CLI args
* CMake: unify option namespace
* Python: update include path
* Rust: fix up --frozen workings for -DUSE_NETWORK=off
* CMake: abstract out colloquy a little
* Sync direct.hh to the New Way
5 years ago
nick black f3af2b8760
Convert mbtowc to mbrtowc everywhere #308 5 years ago
Nick Black da0283ac25
Selector widget #166, subtitles #95 (#301)
Get rid of annoying empty line in notcurses-view (and ncvisuals at offsets in general)
Implement most of the Selector widget. Need to add styling and scrolling still. #166
Reenable ubuntu focal build
Subtitles! We decode them, and display them in notcurses-view. If ncvisual_simple_streamer() is provided an extra ncplane, it will use it to display subtitles. #95
We now build Python by default, as things are working much better.
ncplane_set_base() now takes channel, attrword, and EGC, so you can usually avoid having to set up and release a cell. ncplane_set_base_cell() takes over duty from ncplane_set_base() for ease of conversion.
notcurses-demo and notcurses-view now both accept a 0 for delay multiplier, meaning 'go as fast as you possibly can'. Very small multipliers (e.g. 0.00001) no longer cause floating point exceptions.
fading routines no longer cause floating point exceptions on very small timescales.
5 years ago
nick black 08f6fa0e79 implement ncplane_dup() 5 years ago
Nick Black 9b81de3789
O(1) passive damage detection #189 (#197)
* notcurses: set up lastframe #189
* render: o(1) take no prisoners damage detection #189
5 years ago
Nick Black 38a10d9065
Transparency via alpha channels (#122)
* outro: bevel message window's corners
* egcspool: use full 25 bits available for 32MB pools
* render: remove unused inheritance mask
* interfaces + unit tests for 2-bit alpha
* notcurses_*g_alpha() acccessors
* cell alpha + unit tests
* panelreel: support a background channel
* notcurses: transparency via alpha channel
* remove unused CELL_ALPHA_MASK
5 years ago
nick black d09029f7f4
use -std=c11 not -std=gnu11 5 years ago
nick black 684d9f66fe egcpool: fix corruption #59 5 years ago
Nick Black a7d50b557d
ncplane_at_cursor (#76), CCCflag, nonblocking stdin (#78) (#84)
* put stdin into nonblocking mode, retry on short write to stdout #78
* wrap getc_blocking() around a poll #78
* get CCCflag from terminfo. stop clearing the screen in render/startup
* implement ncplane_at_cursor() #76
* ncplane_at_cursor() unit test for simples #76
* PlaneAtCursorComplex unit test #76
* PlaneAtCursorInsane() unit test #76
* nplane_at_cursor: return number of bytes, not just 0/-1
* uniblock-demo: add a bunch of pages from Unicode 12
* demo: make -d delay multiplier a float
* egcpool: check offset against poolsize in check_validity()
* notcurses_init(): set smkx/rmkx to NULL with pass_through_esc
* PlaneAtCursorAttrs unit test #76
* add ncplane_styles() accessor
5 years ago
nick black 7bc58fe603 consistency check assert in egcpool #59 5 years ago
Nick Black ba648dbd74
What a miserable evening tracking #57 (#60)
* widecolor-demo: don't emit spaces
* notcurses_init: newline before splash
* boxdemo: ncplane_erase() on entry #58
* uniblock-demo: print even wide chars #49
5 years ago
nick black f14ee490f2
CMake: visibility=hidden by default #56 5 years ago
nick black f67a97edfb
correctly handle ASCII + combining chars, add unit tests #36 5 years ago
nick black 5220836798 completely reset egcpool in egcpool_dump() 5 years ago
nick black 9744ca0d4c egcpool: copy in nonspacing characters of an EGC #32 5 years ago
nick black 586142057f egcpool: don't split egc's across ringbuffer bounds 5 years ago
nick black 32394dd892 egcpool: preserve incoming EGC on realloc 5 years ago
nick black 52e83dfcc2
Get UTF8 rendering properly #14 5 years ago
Nick Black b93bcebf0b
Extended grapheme clusters (#15)
Introduce egcpool for attached storage
Hook up style support
Switch entirely to UTF-8 char from wchar_t (#14)
Pull out next EGC in cell_load (#14)
5 years ago