Commit Graph

117 Commits

Author SHA1 Message Date
nick black
418ea3ea31
drone: use 2020-08-20a builders 2020-08-20 22:53:40 -04:00
nick black
88c765ba7e
drone: build rust in CI, run unit tests #930 2020-08-20 22:45:06 -04:00
nick black
7d2d7c7896
drone: build python in CI #930 2020-08-20 22:43:46 -04:00
nick black
248c49402e
drone: use new builders 2020-08-15 23:57:48 -04:00
nick black
b5d93077f1
drone: revert to older fedora until new one's fixed 2020-08-15 17:39:40 -04:00
nick black
a8b4c01210 brown v board of education comes for ubuntu 2020-08-15 17:38:20 -04:00
nick black
84631369d4 update to new drones 2020-08-15 17:38:20 -04:00
nick black
cb189869ee debugging ubuntu CI 2020-08-15 17:38:20 -04:00
nick black
dd0605939a
drone: add libunistring 2020-07-22 04:15:42 -04:00
nick black
1792f820e4
drone: shift ubuntu docker back to 2020-07-13a 2020-07-13 06:19:05 -04:00
nick black
1e39589c08
drone: update to 2020-07-13a builders 2020-07-13 01:56:24 -04:00
Nick Black
415d4b813f
Tight work on unit testing, controlling tty vs output fd (#758)
* Some things go to the FILE* we're provided. Some can only go to a controlling terminal. Check to see if the FILE we're given is a TTY. If not, open up /dev/tty #752.
* term_emit(): fflush() can return EAGAIN. Loop on it to eliminate a rare error on shutdown that particularly affected unit tests (where we start and shut down Notcurses many times in a row).
* sgr poc: check return value of setlocale()
* drone: run all unit tests
* CMake: add some tests using PoCs
* ncneofetch: print even small palettes
2020-07-02 18:03:52 -04:00
nick black
b6aa91bf4c
drone: fix up exclude syntax 2020-06-28 08:35:58 -04:00
nick black
3a8b0150d3
move doctest --tce to drone.yaml 2020-06-28 08:28:30 -04:00
nick black
9d6b5b2872
drone: fucking yaml syntax 2020-06-28 07:23:00 -04:00
nick black
dd2b36ce0a
drone: set TERM on debian 2020-06-28 07:21:22 -04:00
nick black
33667df40e
drone: set TERM for fedora 2020-06-28 07:00:20 -04:00
nick black
4a3d436e5b
drone: update builders 2020-06-19 14:10:18 -04:00
Nick Black
28431914a8
First go at ncplane_puttext() (#690)
Very simple take at ncplane_puttext(), a new function for linebroken text. Also some very basic unit tests. I doubt this works very well yet, but it handles the simplest cases #682. Added nclog(), internal function for logging. #520
2020-06-08 03:01:58 -04:00
nick black
e879bf8f93
let outro demo run on no-multimedia builds 2020-05-31 23:15:43 -04:00
nick black
0766007a77
tester: kill off inhibit_alternate_screen #651 2020-05-29 02:30:57 -04:00
Nick Black
ebcba82d4b
Fully general ncvisual layer (#647)
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals:

Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to:

decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc.
normalize the various ways of constructing an ncvisual -- file, memory, plane, etc.
Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine)
I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed.

There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render().

This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding.

The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk.

Closes #638, #562, and #622.
2020-05-28 21:16:58 -04:00
nick black
dbc20bd5c0
add man page for ncmetric(3) #631 2020-05-24 04:48:17 -04:00
nick black
698f664bd8
drone: update to new builders 2020-05-23 18:49:41 -04:00
Nick Black
216495ce8a
Fedora rawhide docker build (#602)
* run a fedora build
* fedora: dnf -y install for now
* dnf install ncurses-devl
2020-05-13 07:30:51 -04:00
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
2020-04-20 23:26:41 -04:00
nick black
1a670ba443
drone: use newest builders 2020-04-18 05:35:53 -04:00
nick black
2c131c4c2d
drone: drop debian stuff 2020-04-18 02:13:24 -04:00
nick black
7a2d2a9659
drone: use ubuntu focal 2020-04-05a 2020-04-05 19:41:47 -04:00
nick black
baa233634b
drone: stop building rust 2020-04-04 12:21:58 -04:00
nick black
74bbe73daf drone: argh 2020-04-03 05:51:02 -04:00
nick black
4430d9c068 drone: use new builders 2020-04-03 05:51:02 -04:00
nick black
716260831e drone: try building rust 2020-04-03 05:51:02 -04:00
Nick Black
f9c54761f5
Basic mandelbrot for normal demo #145 (#424)
normal: working mandelbrot, very basic #145
2020-03-25 07:19:56 -04:00
nick black
7c76f26a16
drone: 2020-02-17a builders 2020-02-17 23:03:35 -05:00
nick black
08bef99244
Debian: remove comments from watch file 2020-02-11 18:35:37 -05:00
nick black
d4fe929f63
drone: new focal builder 2020-02-07 09:30:09 -05:00
nick black
2b6b6f996a
drone: new builders 2020-02-05 00:20:52 -05:00
nick black
89a1e806bf
drone: new focal builder 2020-02-01a 2020-02-01 03:13:03 -05:00
nick black
83c50655ba
drone: turn focal back on 2020-02-01 03:02:48 -05:00
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.
2020-01-30 08:55:01 -05:00
Nick Black
16dfe05a93
Build and install Python wrappers #294 (#298)
* cmake: build python extension
* Python: remove obsolete clear_screen_start
* Debian: python3-cffi, not python-cffi
* Debian: add dep on python3-setuptools
* Python: build extension module from CMake #294
* Python: install python wrappers #294
* drone: disable focal for now
2020-01-27 23:10:47 -05:00
nick black
809caad8c0
drone: buster lacks necessary cmake 2020-01-27 02:54:10 -05:00
nick black
b91029ee31
drone: run a build on stable 2020-01-27 02:50:13 -05:00
nick black
5b4e285798
cherry-pick drone update 2020-01-25 10:01:05 -05:00
Nick Black
3d612aebcb
ruins color cycling demo #253 (#287)
* palette_set: update pal256 damage map #230
* drone: use newest builders
* palette: send oc on exit for color reset #285
* palette_new: copy existing palette in #230
* Python: use checkRGB everywhere
* more palette unit testing
* add ncplane_set_*_palindex()
* render fg palindex #230
* palette index color is out of 1000
* jungle demo works #253
2020-01-18 20:42:29 -05:00
nick black
aa79a86438 drone: new builders 2020-01-07 16:15:27 -05:00
nick black
d6d1f752a2
drone: update to newest builders 2020-01-05 04:01:25 -05:00
nick black
1697afc6b9 drone: use new builder images 2019-12-30 01:10:10 -05:00
nick black
e2745cd12f debian: no more dep on libgtest-dev 2019-12-30 01:10:10 -05:00
nick black
9739f010e0 debian: add build-dep on ruby-ronn 2019-12-30 01:10:10 -05:00
Nick Black
ce2a390b52
Out with googletest, in with doctest #202 (#231)
* introduce doctest over googletest #202
* call dtester in in targets
* doctest conversion #202
* channel.cpp -> doctest #202
* egcpool tests -> doctest #202
* input tests to doctester
* zaxis -> doctest
* drone: always define LANG
* libav to doctest #202
* panelreel tests to doctest #202
* spec that a C++17 compiler is now required for doctest #202
* enmetric tests -> doctest #202
* fade tests -> doctest #202
* notcurses test case -> doctest #202
* last conversion to doctest #202
* finish move to doctest #202
* drone: set up make test
2019-12-27 17:20:20 -05:00
nick black
5dfe861de4 drone drone drone 2019-12-24 04:07:17 -05:00
nick black
f887023aa6 ubuntu-build 2019-12-24 04:06:20 -05:00
nick black
58332f5ce0 drone: drop duplicate entry 2019-12-24 04:01:25 -05:00
nick black
b0bdaaa0b9
build for ubuntu:focal 2019-12-24 03:58:37 -05:00
nick black
873badfc80 relax dep on libgtest...hrm 2019-12-24 03:57:44 -05:00
nick black
c61513901f
try building on ubuntu-bionic 2019-12-24 03:25:04 -05:00
nick black
90735c67ba
make test in autobuilder 2019-12-24 03:04:41 -05:00
nick black
4c80791682
erp 2019-12-24 03:00:21 -05:00
nick black
bdecfef3d2
drone: build on both debian stable and unstable 2019-12-24 02:51:01 -05:00
nick black
f742676aee Mouse support using button event tracking #165
Request and parse up mouse messages. We handle up to 11 mouse
buttons, 3 modifiers (currently thrown away), motion while
holding down a button, and loss/gain of focus. I've added twelve
new NCKEYs: one for each button, and one for release. In addition,
I've introduced the 'ncinput' struct, which encodes the nckey plus
extra data. The only extra data thus far is coordinates for mouse
events. It is not necessary to provide a ncinput to all input
functions; NULL can be provided if the caller doesn't care about
details. All demos are updated. notcurses-input has been updated
to decode full information of returned ncinputs.

The primary resource for this work was Dickey at al's "XTerm Control
Sequences", https://invisible-island.net/xterm/ctlseqs/ctlseqs.html.
2019-12-23 19:08:12 -05:00
nick black
b4b4b3684a yaml 2019-12-23 19:08:12 -05:00
nick black
1bc2bcf31e multiple pipelines 2019-12-23 19:08:12 -05:00
nick black
e16db46b9c
set tty:true in docker config 2019-12-12 09:15:15 -05:00
Nick Black
0867e43182 sign that fucker 2019-11-19 07:09:23 -05:00
nick black
70df86ba17
version string, notcurses_version() 2019-11-17 05:04:41 -05:00