Commit Graph

1032 Commits (ee21f4e9edfd0a548b45964e057e280c98ba10f5)

Author SHA1 Message Date
nick black 3e853f6635
ncsubproc: map new pipe onto stdio #310 5 years ago
nick black 04f90fa1ea
ncsubproc: launch processes, make pipes
link to LWN article in History section of README.md.
5 years ago
nick black ee15d4c1f4
new procroller PoC 5 years ago
Nick Black fe8034b5e0
ncfdplane, fileroller PoC, ncfdplane unit tests, qrcodes #24 #514 (#524)
* first draft of ncsubproc spec
* qrcode first draft #24
* demo: add qrcode demo skeleton, entries #24
* qrcode demo #24
* fedora python build changes from @dcantrell
* ncplane_qrcode() works #24
* add some flash to the qrcode demo #24
* drone: use newest builders
* fix up rgb PoC
* drop jungle demo to 100Hz target
* add fd.c
* ncfd skeletons
* more ncfdplane #514
* ncfdp i/o loop
* ncfp: improve uinit test, write core
* firm up ncfdplane #514
* fileroller PoC #514
* ncplane: allow '\n' in stream when scrolling #523
5 years ago
nick black 6c131f4860
fallin': erase standard plane post-copy for non-FFmpeg builds #505 5 years ago
nick black bcbd857706
demo: remove all uses of PATH_MAX #519 5 years ago
nick black 4823098316
Hurd: uint64_t is ULL, fix up printf format/constants #519 5 years ago
nick black bc239077c2
demo: render immediately following menu creation #506 5 years ago
nick black 10643980fa
demo_getc_nblock() call in demo_render() #509 5 years ago
nick black 67100dc5e9
Process menu/HUD input in demo_nanosleep() #509 5 years ago
nick black 60e3e604a8
Handle fallout from reversion of Notcurses::render() semantic inversion (see #510) 5 years ago
nick black 80a1185529 whiteout: kill worm_thread, eliminate race #504 5 years ago
nick black 9fa52fcdef demo: move input handling into demo thread #504 5 years ago
Nick Black 1c7796a2b0
ncdirect_cursor_yx, ncdirect_cursor_pop, ncdirect_cursor_push #401 (#492)
* ncdirect_cursor_{push, pop, yx} declarations #401
* direct PoC: invoke ncdirect_cursor_yx() #401
* direct PoC: move to top of screen #401
* OTHERS.md: mention blessings
* ncdirect_cursor_yx working #401
* CHANGELOG: mention ncdirect_cursor_*() #401
5 years ago
Nick Black c6a9997554
Normalize ncplane_at_* / ncplane_set_base() (#479)
* ncplane_at_* and ncplane_at_cursor_*

We had notcurses_at_yx() expanding into three distinct parts of
the cell structure, and ncplane_at_yx() / ncplane_at_cursor()
writing directly to a cell. It was annoying to remember which
was which. The latter two now have a signature matching
notcurses_at_yx(), while the old functionality has been moved
to ncplane_at_yx_cell() and ncplane_at_cursor_yx(). #476
5 years ago
nick black 0e47db3979 quadrant/braille step plots #461 5 years ago
nick black 6ec9b2d250 hrm 5 years ago
nick black d9884a5f74 8x1 5 years ago
nick black d274af34b9 ncplot: define 2x2 and 4x2 sets #461 5 years ago
nick black 4297bbb3dc
notcurses-input: hook up ^L #493 5 years ago
nick black 1a4c8bbf85
notcurses-input: flip for ncpp::render inversion 5 years ago
nick black 8f6d5cacf5 notcurses-view: match Notcurses::render inversion #489 5 years ago
nick black 5c22351652 ncreel: update for ncpp render inversion 5 years ago
nick black e27895ef2e Optimized general cursor moves #483 5 years ago
nick black 355ea6d3d7
Allow EGCpools up to 1GB #425 5 years ago
nick black c6aa99afba eliminate infinite loop in mathtext PoC 5 years ago
nick black f356af418b
Scrolling: cell_release() cleared rows #482 5 years ago
nick black a4e1d68786
Add ExhaustPool unit test #482 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 08e769f989
rasterize: don't emit 0-byte write()s #482 5 years ago
nick black ffdee735cb
Tetris: update to reflect ncpp render() return value inversion #484 5 years ago
Marek Habersack 64eeb95f1e [C++] Optionally enable throwing exceptions on errors
Nick prefers error handling based on exceptions in all cases, while I
prefer to save exception handling for truly exceptional situations -
function parameter validation and class constructor. However, there's no
need to not support both approaches, to be chosen at the discretion of
the developer.

NCPP follows RAII and all classes throw exceptions from their
constructors in case they cannot initialize properly. Likewise,
functions taking pointers that are required validate them and throw
exceptions whenever the requirement isn't met.

This commit goes one step further in that it enables optional validation
of notcurses function return values and throwing an
exception (`ncpp::call_error`) should the function signal an error. This
is disabled by default but it can be enabled by defining the
`NCPP_EXCEPTIONS_PLEASE` macro (preferably on the command line or
before *each* inclusion of any NCPP headers).

Out of necessity, this breaks the ABI (plus I found a handful of minor
issues in the code), but I think it's worth having this support in
place.
5 years ago
nick black a5a2b5646a add PoC scroller #443 5 years ago
nick black 327c9cba78 Scrolling! all unit tests work #443 5 years ago
nick black b385feef8f zero out newly-scrolled lines #443 5 years ago
nick black 646bcf3db2 finish out ScrollingOffBottom test #443 5 years ago
nick black 40067c0ccd interpret logical plane line via scrolled_row() #443 5 years ago
nick black a7d9220f21 cell_load(): recycle when possible #473 5 years ago
nick black 45b821645a Only left sides of wide glyphs are 2 columns
At various places in rendering and rasterizing, we advance two
columns upon encountering a wide glyph. When dealing with a
single plane, this is always correct, because we're always
hitting the first column of the multicolumn glyph. Once multiple
planes are brought into play, though, we can very much hit the
second column of said glyph, in which case we mustn't advance
two columns, but only one. Resolves #474 by way of #475. w00t!
5 years ago
nick black c934c7be49
colons in output 5 years ago
nick black bd08712a0e
highcon: hoist out loop for great speedup #468 5 years ago
nick black 14184e8dbb
summary: use colons rather than slashes for emit:elide 5 years ago
nick black b0fc654444 Check that cell is not wide right in render #362 5 years ago
nick black b0aa6b9a7f simplify wide handling in putc_yx #362 5 years ago
Marek Habersack 28976dfef2 [C++] Sync API changes
Been a while, but here goes, sync to the latest API changes.

Added:

  * Direct:   cursor_{up,left,right,down} (`ncdirect_cursor_{up,left,right,down}`)
  * Plane: constructors to use `ncplane_bound`
  * Plane: reparent (`ncplane_reparent`)
  * Plot: definition of `default_options`

Changed:

  * Plane (breaking): the `*gradient*` functions now return `int`
  * Plane (breaking): `polyfill` returns `int`
  * Plane (breaking): `stain` returns `int`
  * Plane (breaking): `blit_bgrx` takes `const void*` for `data`
  * Plane (breaking): `blit_rgba` takes `const void*` for `data`
  * Plot: `plot_optons` -> `ncplot_options`
  * Plot (breaking): `{add,set}_sample` now return `bool`
5 years ago
nick black 33e4341a67 tetris: use background from installed path #466 5 years ago
nick black f9c85442cd
poc sgr: purge unused variable 5 years ago
nick black 1d0e2d6fd6
pocs (selector/multiselec) kill unused label 5 years ago
nick black 1ccfd9b962
menu poc: remove unused variable 5 years ago
nick black 7d80e81a27
geom: remove unused variables 5 years ago