Commit Graph

489 Commits

Author SHA1 Message Date
nick black
5901fce433 unite putegc_yx+putc_yx into ncplane_put #961 2020-08-29 20:29:04 -04:00
nick black
161130986e Wide tests: downgrade many REQUIREs to CHECKs 2020-08-29 20:29:04 -04:00
nick black
954030ac83
add new RejectWideAsianPlaced unit test #967 2020-08-29 19:17:45 -04:00
nick black
720f61d51f correct sub to add in ncreel_tighten_down() #901 2020-08-29 18:24:45 -04:00
nick black
1cda7758b5 call ncreel_redraw() from _add/_del/_next/_prev #963 2020-08-29 18:24:45 -04:00
nick black
a48e840542 document ncreel a bit more 2020-08-29 18:24:45 -04:00
nick black
5b6868abee finish out ReelGaps unit test 2020-08-29 18:24:45 -04:00
nick black
0cee9bdb5c ReelsGap unit test #901 2020-08-29 18:24:45 -04:00
nick black
de3737e8e1
ZAxis test: remaining fixup #906 2020-08-27 11:31:31 -04:00
nick black
3fbdab3020
pool_load_direct: zilch out entirety of gcluster #906 2020-08-27 08:14:33 -04:00
nick black
4e0296f222
zaxis unit tests: fix for inlined egcs #906 2020-08-27 08:09:06 -04:00
nick black
c24ca8ab56
introduce ntole() #906 2020-08-27 06:59:11 -04:00
nick black
227738a8e5
SubprocAndFds tests: tighten up locking 2020-08-27 02:25:36 -04:00
nick black
4dd1d6a4c8 Annihilate nc_err_e and all infrastructure #948 2020-08-24 17:20:29 -04:00
nick black
ea681ed4ec
libunistring: beef up unit test #906 2020-08-24 16:06:36 -04:00
nick black
af80914efe
add libunistring unit tests #906 2020-08-24 15:30:17 -04:00
nick black
15b923c8cf adapt ncplane_mergedown() #779 2020-08-23 07:46:12 -04:00
nick black
14d6129007 take-no-prisoners overhaul of ncplane_puttext() #829 2020-08-22 12:51:32 -04:00
nick black
df3dc7f8e7 LayoutNewlinesAtBorders unit test #829 2020-08-22 12:51:32 -04:00
nick black
adab5ba382 LayoutNewlines unit test #829 2020-08-22 12:51:32 -04:00
nick black
97f3676588
layout unit tests: fill out checks #829 2020-08-21 00:02:22 -04:00
Nick Black
359ad1d36d
Generalized mergedown #779 (#932)
* Rename ncplane_mergedown -> ncplane_mergedown_simple()
* New ncplane_mergedown(), fully general projection of src to dst
2020-08-20 23:51:35 -04:00
nick black
ed0d9d8a8e Wide unit tests; test other side 2020-08-20 21:32:31 -04:00
nick black
01249a0546 HigherGlyphAbides unit test 2020-08-20 20:18:49 -04:00
nick black
bc0016b827 BigMult unit test, fix ncmetric bogon #929 2020-08-20 17:34:53 -04:00
nick black
0f2bb4efc6
wide tests: remove netinet/in.h 2020-08-16 08:51:45 -04:00
nick black
666bdb5fda
ncreel unit tests: call ncreel_destroy() 2020-08-16 06:52:45 -04:00
nick black
16ff667325 blissful endianness-opacity
not caring about endianness is the opiate of the masses.
happy, happy masses. remove endianness.h and all its baleful
influence by explicitly breaking up the cell structure. #892
2020-08-16 01:44:36 -04:00
nick black
7811663223 inlined EGCs + styling unit tests #830 2020-08-15 17:38:20 -04:00
nick black
55baa55541 wide tests: kill one last allocation 2020-08-15 17:38:20 -04:00
nick black
7f8631b35c wide tests: death to cowardly copying 2020-08-15 17:38:20 -04:00
nick black
3bc15c2824 inlined egcs: straightline cell_duplicate() 2020-08-15 17:38:20 -04:00
nick black
2656cad07a cell_duplicate_far() fix length issue 2020-08-15 17:38:20 -04:00
nick black
7ac3f68f4e cell_load: fix CELL_WIDEASIAN_MASK bug 2020-08-15 17:38:20 -04:00
nick black
1605416585 more egc-inline test fixes 2020-08-15 17:38:20 -04:00
nick black
a0fc540286 fix up fill tests 2020-08-15 17:38:20 -04:00
Nick Black
c3508d524b
ncplane_puttext() work for longer lines (#880)
* The zoo demo made manifest that we had some serious problems handling sequences of longer lines in ncplane_puttext(). This remedies most of the problems, though it's not yet perfect. #871
* Guard notcurses* for NULL in log*() #878 #879
* Fix memory leak in ncdirect_dump_plane()
2020-08-12 02:43:52 -04:00
nick black
f0f3b9f45f
ThreeCycleDownNoTabletBorders unit test #818 2020-08-09 22:14:56 -04:00
Nick Black
11d6a4eb89
New reel layout algorithm #818 (#870)
New reel layout algorithm based on trimming and sifting. Fixes the original issue of #818, though I'm not marking that bug fixed until I've resolved the little issues remaining with this one.
Back off CMake version dependency, see if we can get by with 3.11.4 for EPEL8 #851
Simplify tablet drawing tremendously by separating tablet border and data planes. Callbacks no longer need worry about the borders; they can simply fill the plane they're handed. #833
Improve notcurses_debug() a bit
Add ncplane_new_named() and friends to expose plane naming to the user.
Add internal ncplane_genocide() to kill a plane and all its bound descendents
New industrial-strength ncreel unit testing
notcurses-ncreel now accepts -ln for log level n
Add ncplane_parent() and ncplane_parent_const()
2020-08-09 17:40:59 -04:00
nick black
4f5be0b100
tests: treat TERM=unknown like unset TERM #865 2020-08-08 07:54:09 -04:00
nick black
4ecee49777
selector unit test fixups for itemcount #831 2020-07-28 22:56:51 -04:00
nick black
bac02bccd0
selector/multiselect: kill itemcount options field #831 2020-07-28 22:42:49 -04:00
nick black
384232efd1
layout tests: enforce utf8 where necessary 2020-07-26 23:25:34 -04:00
nick black
51a2817a8e
notcurses-tester: print LANG on startup 2020-07-26 22:57:36 -04:00
nick black
b9ad7b9bd5 add LayoutTransPlanarWide unit test #815 2020-07-23 21:21:11 -04:00
nick black
357cba3843 ncplane_puttext: all unit tests work #815 2020-07-23 21:21:11 -04:00
nick black
243cbd6a92 fix LayoutFillsPlaneNoSpaces problems #815 2020-07-23 21:21:11 -04:00
nick black
1664e64617 add LayoutCrossBoundaryWide unit test #815 2020-07-23 21:21:11 -04:00
nick black
4adde41b05 Get LayoutFillsPlaneNoSpaces test working #815 2020-07-23 21:21:11 -04:00
nick black
8ee7b3652c Exceptions tests: use flags + loglevel 2020-07-23 21:21:11 -04:00
nick black
bae1cedd6b Ncpp tests: supply NCOPTION_SUPPRESS_BANNERS | NCOPTION_INHIBIT_SETLOCALE 2020-07-23 21:21:11 -04:00
nick black
a70cbb894c get complete widechar ncplane_puttext() working #815 2020-07-23 21:21:11 -04:00
nick black
380ebc7e6e add wide ncplane_puttext unit tests #815 2020-07-23 21:21:11 -04:00
nick black
604747c8f2 notcurses_puttext: use libunistring for wordbreaking #772 2020-07-22 03:31:54 -04:00
nick black
255b404842
ncplane_puttext(): start long words early
If we're fed a word that in and of itself is wider than
the text layout area, and it is not the first word on the
row on which it starts, go ahead and start it there, as
opposed to breaking the line. #720

Also, remove sgr from test suite, as it's not a notcurses
application.
2020-07-22 02:11:09 -04:00
nick black
97571e86af ncplane_putegc_yx() copies directly as opposed to going through putc() #797 2020-07-20 03:20:44 -04:00
nick black
d46ca758a0 highcontrast: stash fgstate for later reapplication #748 2020-07-18 20:27:13 -04:00
nick black
d9bfb52225 highcontrast: unit test for #748 2020-07-18 20:27:13 -04:00
nick black
e0155c7d56 CELL_ALPHA_HIGHCONTRAST unit tests #748 2020-07-18 20:27:13 -04:00
Nick Black
dbc83c41b3
linuxconsole PoC (#791)
* use ioctl(KDGETMODE) to detect Linux console
* diagnostic on KDGETMODE
* add logdebug()
* unit test for notcurses_drop_planes(), add ncplane_putnstr_aligned()
* linuxconsole PoC
* linuxconsole: dump unicode->font table
* linuxconsole: explode glyphs
* linuxconsole: show 7 glyphs per 'line'
* linuxconjammer: shim console font with half blocks
* signals: handler for SIGTERM
* man pages: update notcurses_init() for options
* add NCOPTION_NO_FONT_CHANGES #201
2020-07-13 01:21:41 -04:00
nick black
3a7dabd2c8
notcurses-tester: use -l6 2020-07-12 02:55:58 -04:00
nick black
20178290fc
Fill out some more C++ unit tests, basic ones #538 2020-07-12 01:42:17 -04:00
nick black
750f88b70a split direct into its own header 2020-07-10 18:41:25 -04:00
nick black
5512158fc5
postpaint(): no need to replace nul with space #777 2020-07-10 11:15:23 -04:00
nick black
a97297192d
Exceptions unit test: drop bad stops 2020-07-09 21:17:00 -04:00
nick black
5e207f4158
unit test for merging down fills 2020-07-09 21:16:31 -04:00
nick black
460ba7683d
Exceptions: reenable CHECK_THROWS_AS specifier #538 2020-07-09 04:31:59 -04:00
nick black
3457ffb59f
FdsAndSubprocs test: use ncplane_putnstr(s) #778 2020-07-09 03:27:41 -04:00
Nick Black
162f9910c2
Tons of work on ncreel (#776)
Tons of work on ncreel (#627, #749, #694)
Improve reel demo: get input wired up once more, avoid the FPS demo at bottom, print pointer and line count in each tablet, use new ncreel API. Improve notcurses-ncreel explorer: kill memory leaks (#694), draw tablets better, use new ncreel API. Fix bug in ncreel core where cruft could be left on the screen, via a very gross brute force algorithm. I'll likely come back and make this a bit less ghastly in the future #749. Remove weird one-off input system from ncreel, residue from outcurses. Make some of the normalizing changes speced out in #627

* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* more terminal environment variable notes
* TERMS.md: add Sakura, st
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* reel: tighten up reel following redraw
* reel: fix upper-left corner of topless perimeter
* ncreel: print linecount, return clipped value
* reel: draw focused tablet relative to reel
* reel: brute force decruftification, how embarrassing #749
2020-07-09 02:02:23 -04:00
nick black
8f22a0a486
NegativePowersOfTen unit test: fix for ASCII 2020-07-04 05:46:01 -04:00
nick black
853f286e70
tester: don't pass NCOPTION_NO_QUIT_SIGHANDLERS 2020-07-03 23:54:16 -04:00
nick black
6b1b8d1695 ncplane_puttext: unit tests for scrolling #719 2020-07-03 22:50:34 -04:00
nick black
84746f1f31
OTHERS: add termbox, termion, pancurses 2020-07-03 22:42:34 -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
c0f12f4623
tester: pass INHIBIT_SETLOCALE|NO_ALTERNATE_SCREEN 2020-07-02 00:39:06 -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
d5dca33e00 ncneofetch: don't print (null) for distro_pretty 2020-06-28 06:43:29 -04:00
Nick Black
d52ced823c make Wide unit tests sensitive to local irregularities #741 2020-06-28 06:40:00 -04:00
nick black
f927af00f2
tester: pass NCOPTION_NO_QUIT_SIGHANDLERS 2020-06-28 05:56:07 -04:00
nick black
354152b48b
Redefine CELL_ALPHA_ in their natural forms
CELL_ALPHA_OPAQUE et al were defined as 0..3, meaning
CELL_ALPHA_SHIFT had to be used to compare them to their
channel representations. Instead, define them in said
representation outright, eliminating the need to shift while
retaining arithmetic properties, and zero initialization for
CELL_ALPHA_OPAQUE. Eliminate CELL_ALPHA_SHIFT #738.
2020-06-28 01:53:42 -04:00
nick black
7ca5a7e82c
ncneofetch: create info plane #550 2020-06-17 19:39:37 -04:00
nick black
5b99ebc9fc
ncplane_puttext(): four more unit tests #691 2020-06-16 02:47:21 -04:00
nick black
6ff0bec2fa
ncplane_puttext: more unit tests, check for spcae before width #691 2020-06-16 02:42:08 -04:00
nick black
cfe764bd57
ncplane_puttext() unit test + fix #691 2020-06-16 02:12:11 -04:00
nick black
97517d0473
ncplane_puttext: another test, another bug #691 2020-06-16 01:22:40 -04:00
nick black
d1f8b9237d
ncplane_puttext: new unit test, fix breakage #691 2020-06-16 01:08:48 -04:00
nick black
2be041b1f4
Beef up ncplane_puttext() tests, fix a problem #691 2020-06-16 00:30:02 -04:00
nick black
b49d1ad838
rewrite all unit tests to use testing_notcurses() #718 2020-06-15 23:58:43 -04:00
nick black
a46dcc5fe4
tester: introduce testing_notcurses() #718 2020-06-15 23:52:11 -04:00
nick black
64c4a4be53
unit tests: require utf8 for quadblitter 2020-06-14 17:43:18 -04:00
nick black
8ff0d92ad7
testing-checklist: add LANG=C, needed for debuilder 2020-06-14 17:39:58 -04:00
nick black
59bf168e55
quadblitter: emit ▌, not ▋, you fool #667 2020-06-14 05:11:11 -04:00
nick black
d710bb24b2 unit test for quadblitter #667 2020-06-14 03:54:10 -04:00
nick black
d69d369304 fill out NCBLIT_2x1 Dualblitter unit test #667 2020-06-14 03:54:10 -04:00
nick black
ab4243d9be quadblitter/dualblitter unit test bases 2020-06-14 03:54:10 -04:00
Nick Black
0084dbaa6d
qrcode generalization #699 (#713)
Add convenience function ncplane_home(). Add an ncblitter_e param
to ncplane_qrcode(), and split int maxversion into value-result
int* ymax and int* xmax. Write the actual sizes of the resulting
visual into these parameters. Update the qrcode demo. Add the
qrcode PoC. Update demos to ncplane_home(), where possible.

ncplane_qrcode() now takes an ncblitter_e and two value-result int*s
in the place of a single value int. The final size of the displayed qrcode
is written to *ymax and *xmax. If the code can't fit within the specified
dimensions, an error is returned. Standard rules for pluggable blitters
apply regarding fallback etc. #699
2020-06-13 22:24:50 -04:00
nick black
3936d1b528
adapt callers of ncvisual_geom() 2020-06-12 00:53:34 -04:00
nick black
70183ee283
Rewrite plot tests using C interface #703
The Plot unit tests were reaching directly into the objects,
which meant the implementations couldn't include anything
we didn't want public. This was annoying, so I've changed it.
This required adding ncdplot_sample() and ncuplot_sample(),
which we should have had anyway.
2020-06-12 00:13:01 -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