diff --git a/NEWS.md b/NEWS.md index b0b348f4a..3a3a43193 100644 --- a/NEWS.md +++ b/NEWS.md @@ -26,6 +26,10 @@ rearrangements of Notcurses. `channels_set_fg()` and `channels_set_fchannel()` were indistinguishable on sight. Failure to make the necessary conversions will result in compiler errors. See https://github.com/dankamongmen/notcurses/issues/985. + * Functions ending in `_stainable()` now end in `_stained()`. + * `ncplane_putwc_stained()` and `ncplane_putwstr_stained()` have been + added in the interest of orthogonality. + * 1.7.2 (2020-09-09) * Exported `ncvisual_default_blitter()`, so that the effective value of diff --git a/USAGE.md b/USAGE.md index 7c8d50c1a..a6d68c435 100644 --- a/USAGE.md +++ b/USAGE.md @@ -923,7 +923,7 @@ ncplane_putchar(struct ncplane* n, char c){ // Replace the EGC underneath us, but retain the styling. The current styling // of the plane will not be changed. -int ncplane_putchar_stainable(struct ncplane* n, char c); +int ncplane_putchar_stained(struct ncplane* n, char c); // Replace the cell at the specified coordinates with the provided wide char // 'w'. Advance the cursor by the character's width as reported by wcwidth(). @@ -955,7 +955,7 @@ ncplane_putegc(struct ncplane* n, const char* gclust, int* sbytes){ // Replace the EGC underneath us, but retain the styling. The current styling // of the plane will not be changed. -int ncplane_putegc_stainable(struct ncplane* n, const char* gclust, int* sbytes); +int ncplane_putegc_stained(struct ncplane* n, const char* gclust, int* sbytes); #define WCHAR_MAX_UTF8BYTES 6 @@ -990,7 +990,7 @@ ncplane_putwegc_yx(struct ncplane* n, int y, int x, const wchar_t* gclust, // Replace the EGC underneath us, but retain the styling. The current styling // of the plane will not be changed. -int ncplane_putwegc_stainable(struct ncplane* n, const wchar_t* gclust, int* sbytes); +int ncplane_putwegc_stained(struct ncplane* n, const wchar_t* gclust, int* sbytes); // Write a series of EGCs to the current location, using the current style. // They will be interpreted as a series of columns (according to the definition @@ -1009,7 +1009,7 @@ int ncplane_putstr_aligned(struct ncplane* n, int y, ncalign_e align, const char // Replace a string's worth of glyphs at the current cursor location, but // retain the styling. The current styling of the plane will not be changed. -int ncplane_putstr_stainable(struct ncplane* n, const char* s); +int ncplane_putstr_stained(struct ncplane* n, const char* s); // ncplane_putstr(), but following a conversion from wchar_t to UTF-8 multibyte. static inline int diff --git a/doc/man/man3/notcurses_output.3.md b/doc/man/man3/notcurses_output.3.md index a19299704..a3478fda0 100644 --- a/doc/man/man3/notcurses_output.3.md +++ b/doc/man/man3/notcurses_output.3.md @@ -18,23 +18,25 @@ notcurses_output - output to ncplanes **static inline int ncplane_putchar_yx(struct ncplane* n, int y, int x, char c);** -**int ncplane_putchar_stainable(struct ncplane* n, char c);** +**int ncplane_putchar_stained(struct ncplane* n, char c);** **static inline int ncplane_putwc(struct ncplane* n, wchar_t w);** **int ncplane_putwc_yx(struct ncplane* n, int y, int x, wchar_t w);** +**static inline int ncplane_putwc_stained(struct ncplane* n, wchar_t w);** + **static inline int ncplane_putegc(struct ncplane* n, const char* gclust, int* sbytes);** **int ncplane_putegc_yx(struct ncplane* n, int y, int x, const char* gclust, int* sbytes);** -**int ncplane_putegc_stainable(struct ncplane* n, const char* gclust, int* sbytes);** +**int ncplane_putegc_stained(struct ncplane* n, const char* gclust, int* sbytes);** **static inline int ncplane_putwegc(struct ncplane* n, const wchar_t* gclust, int* sbytes);** **static inline int ncplane_putwegc_yx(struct ncplane* n, int y, int x, const wchar_t* gclust, int* sbytes);** -**int ncplane_putwegc_stainable(struct ncplane* n, const wchar_t* gclust, int* sbytes);** +**int ncplane_putwegc_stained(struct ncplane* n, const wchar_t* gclust, int* sbytes);** **int ncplane_putstr_yx(struct ncplane* n, int y, int x, const char* gclustarr);** @@ -42,18 +44,20 @@ notcurses_output - output to ncplanes **int ncplane_putstr_aligned(struct ncplane* n, int y, ncalign_e align, const char* s);** -**int ncplane_putstr_stainable(struct ncplane* n, const char* s);** +**int ncplane_putstr_stained(struct ncplane* n, const char* s);** + +**static inline int ncplane_putwstr(struct ncplane* n, const wchar_t* gclustarr);** **int ncplane_putwstr_yx(struct ncplane* n, int y, int x, const wchar_t* gclustarr);** **static inline int ncplane_putwstr_aligned(struct ncplane* n, int y, ncalign_e align, const wchar_t* gclustarr);** -**static inline int ncplane_putwstr(struct ncplane* n, const wchar_t* gclustarr);** - -**int ncplane_putnstr_yx(struct ncplane* n, int y, int x, size_t s, const char* gclusters);** +**int ncplane_putwstr_stained(struct ncplane* n, const wchar_t* gclustarr);** **static inline int ncplane_putnstr(struct ncplane* n, size_t s, const char* gclustarr);** +**int ncplane_putnstr_yx(struct ncplane* n, int y, int x, size_t s, const char* gclusters);** + **int ncplane_putnstr_aligned(struct ncplane* n, int y, ncalign_e align, size_t s, const char* s);** **int ncplane_vprintf_aligned(struct ncplane* n, int y, ncalign_e align, const char* format, va_list ap);** diff --git a/include/ncpp/Plane.hh b/include/ncpp/Plane.hh index 69ec67967..beafc5b18 100644 --- a/include/ncpp/Plane.hh +++ b/include/ncpp/Plane.hh @@ -389,7 +389,7 @@ namespace ncpp { int ret; if (retain_styling) { - ret = ncplane_putchar_stainable (plane, c); + ret = ncplane_putchar_stained (plane, c); } else { ret = ncplane_putchar (plane, c); } @@ -406,7 +406,7 @@ namespace ncpp { int ret; if (retain_styling) { - ret = ncplane_putegc_stainable (plane, gclust, sbytes); + ret = ncplane_putegc_stained (plane, gclust, sbytes); } else { ret = ncplane_putegc (plane, gclust, sbytes); } @@ -423,7 +423,7 @@ namespace ncpp { int ret; if (retain_styling) { - ret = ncplane_putwegc_stainable (plane, gclust, sbytes); + ret = ncplane_putwegc_stained (plane, gclust, sbytes); } else { ret = ncplane_putwegc (plane, gclust, sbytes); } @@ -481,19 +481,19 @@ namespace ncpp return error_guard (ncplane_putwstr_aligned (plane, y, static_cast(atype), gcluststyles), -1); } - int putstr_stainable (const char* s) const NOEXCEPT_MAYBE + int putstr_stained (const char* s) const NOEXCEPT_MAYBE { - int ret = ncplane_putstr_stainable (plane, s); + int ret = ncplane_putstr_stained (plane, s); return error_guard_cond (ret, ret < 0); } - int printf_stainable (const char* format, ...) const NOEXCEPT_MAYBE + int printf_stained (const char* format, ...) const NOEXCEPT_MAYBE __attribute__ ((format (printf, 2, 3))) { va_list va; va_start (va, format); - int ret = ncplane_vprintf_stainable (plane, format, va); + int ret = ncplane_vprintf_stained (plane, format, va); va_end (va); return error_guard (ret, -1); @@ -535,9 +535,9 @@ namespace ncpp return error_guard (ret, -1); } - int vprintf_stainable (const char* format, va_list ap) const NOEXCEPT_MAYBE + int vprintf_stained (const char* format, va_list ap) const NOEXCEPT_MAYBE { - return error_guard (ncplane_vprintf_stainable (plane, format, ap), -1); + return error_guard (ncplane_vprintf_stained (plane, format, ap), -1); } int vprintf (const char* format, va_list ap) const NOEXCEPT_MAYBE diff --git a/include/notcurses/notcurses.h b/include/notcurses/notcurses.h index f13a1e708..4cfe0532f 100644 --- a/include/notcurses/notcurses.h +++ b/include/notcurses/notcurses.h @@ -1339,7 +1339,7 @@ ncplane_putchar(struct ncplane* n, char c){ // Replace the EGC underneath us, but retain the styling. The current styling // of the plane will not be changed. -API int ncplane_putchar_stainable(struct ncplane* n, char c); +API int ncplane_putchar_stained(struct ncplane* n, char c); // Replace the cell at the specified coordinates with the provided EGC, and // advance the cursor by the width of the cluster (but not past the end of the @@ -1356,7 +1356,7 @@ ncplane_putegc(struct ncplane* n, const char* gclust, int* sbytes){ // Replace the EGC underneath us, but retain the styling. The current styling // of the plane will not be changed. -API int ncplane_putegc_stainable(struct ncplane* n, const char* gclust, int* sbytes); +API int ncplane_putegc_stained(struct ncplane* n, const char* gclust, int* sbytes); // 0x0--0x10ffff can be UTF-8-encoded with only 4 bytes...but we aren't // yet actively guarding against higher values getting into wcstombs FIXME @@ -1393,7 +1393,7 @@ ncplane_putwegc_yx(struct ncplane* n, int y, int x, const wchar_t* gclust, // Replace the EGC underneath us, but retain the styling. The current styling // of the plane will not be changed. -API int ncplane_putwegc_stainable(struct ncplane* n, const wchar_t* gclust, int* sbytes); +API int ncplane_putwegc_stained(struct ncplane* n, const wchar_t* gclust, int* sbytes); // Write a series of EGCs to the current location, using the current style. // They will be interpreted as a series of columns (according to the definition @@ -1413,7 +1413,7 @@ API int ncplane_putstr_aligned(struct ncplane* n, int y, ncalign_e align, // Replace a string's worth of glyphs at the current cursor location, but // retain the styling. The current styling of the plane will not be changed. -API int ncplane_putstr_stainable(struct ncplane* n, const char* s); +API int ncplane_putstr_stained(struct ncplane* n, const char* s); // Write a series of EGCs to the current location, using the current style. // They will be interpreted as a series of columns (according to the definition @@ -1458,7 +1458,7 @@ ncplane_putwstr_aligned(struct ncplane* n, int y, ncalign_e align, return ncplane_putwstr_yx(n, y, xpos, gclustarr); } -API int ncplane_putwstr_stainable(struct ncplane* n, const wchar_t* gclustarr); +API int ncplane_putwstr_stained(struct ncplane* n, const wchar_t* gclustarr); static inline int ncplane_putwstr(struct ncplane* n, const wchar_t* gclustarr){ @@ -1483,9 +1483,9 @@ ncplane_putwc(struct ncplane* n, wchar_t w){ // Write 'w' at the current cursor position, using any preexisting styling // at that cell. static inline int -ncplane_putwc_stainable(struct ncplane* n, wchar_t w){ +ncplane_putwc_stained(struct ncplane* n, wchar_t w){ wchar_t warr[2] = { w, L'\0' }; - return ncplane_putwstr_stainable(n, warr); + return ncplane_putwstr_stained(n, warr); } // The ncplane equivalents of printf(3) and vprintf(3). @@ -1500,7 +1500,7 @@ ncplane_vprintf(struct ncplane* n, const char* format, va_list ap){ return ncplane_vprintf_yx(n, -1, -1, format, ap); } -API int ncplane_vprintf_stainable(struct ncplane* n, const char* format, va_list ap); +API int ncplane_vprintf_stained(struct ncplane* n, const char* format, va_list ap); static inline int ncplane_printf(struct ncplane* n, const char* format, ...) @@ -1543,14 +1543,14 @@ ncplane_printf_aligned(struct ncplane* n, int y, ncalign_e align, const char* fo } static inline int -ncplane_printf_stainable(struct ncplane* n, const char* format, ...) +ncplane_printf_stained(struct ncplane* n, const char* format, ...) __attribute__ ((format (printf, 2, 3))); static inline int -ncplane_printf_stainable(struct ncplane* n, const char* format, ...){ +ncplane_printf_stained(struct ncplane* n, const char* format, ...){ va_list va; va_start(va, format); - int ret = ncplane_vprintf_stainable(n, format, va); + int ret = ncplane_vprintf_stained(n, format, va); va_end(va); return ret; } diff --git a/python/src/notcurses/build_notcurses.py b/python/src/notcurses/build_notcurses.py index 8d45f584c..a28143c1e 100644 --- a/python/src/notcurses/build_notcurses.py +++ b/python/src/notcurses/build_notcurses.py @@ -177,7 +177,8 @@ int ncplane_fadein(struct ncplane* n, const struct timespec* ts, fadecb fader, v int ncplane_pulse(struct ncplane* n, const struct timespec* ts, fadecb fader, void* curry); int ncplane_putegc_yx(struct ncplane* n, int y, int x, const char* gclust, int* sbytes); int ncplane_putstr_aligned(struct ncplane* n, int y, ncalign_e align, const char* s); -int ncplane_putstr_stainable(struct ncplane* n, const char* s); +int ncplane_putstr_stained(struct ncplane* n, const char* s); +int ncplane_putwstr_stained(struct ncplane* n, const wchar_t* gclustarr); struct ncplane* ncplane_dup(const struct ncplane* n, void* opaque); int cell_load(struct ncplane* n, cell* c, const char* gcluster); int cell_duplicate(struct ncplane* n, cell* targ, const cell* c); @@ -335,9 +336,9 @@ int ncplane_polyfill_yx(struct ncplane* n, int y, int x, const cell* c); int ncplane_gradient(struct ncplane* n, const char* egc, uint32_t styles, uint64_t ul, uint64_t ur, uint64_t ll, uint64_t lr, int ystop, int xstop); int ncplane_highgradient(struct ncplane* n, uint32_t ul, uint32_t ur, uint32_t ll, uint32_t lr, int ystop, int xstop); int ncplane_highgradient_sized(struct ncplane* n, uint32_t ul, uint32_t ur, uint32_t ll, uint32_t lr, int ylen, int xlen); -int ncplane_putchar_stainable(struct ncplane* n, char c); -int ncplane_putegc_stainable(struct ncplane* n, const char* gclust, int* sbytes); -int ncplane_putwegc_stainable(struct ncplane* n, const wchar_t* gclust, int* sbytes); +int ncplane_putchar_stained(struct ncplane* n, char c); +int ncplane_putegc_stained(struct ncplane* n, const char* gclust, int* sbytes); +int ncplane_putwegc_stained(struct ncplane* n, const wchar_t* gclust, int* sbytes); int ncplane_format(struct ncplane* n, int ystop, int xstop, uint32_t styles); int ncplane_stain(struct ncplane* n, int ystop, int xstop, uint64_t ul, uint64_t ur, uint64_t ll, uint64_t lr); int ncplane_rotate_cw(struct ncplane* n); diff --git a/rust/src/plane.rs b/rust/src/plane.rs index 9d0b0a533..7579bcd67 100644 --- a/rust/src/plane.rs +++ b/rust/src/plane.rs @@ -40,16 +40,16 @@ // ncplane_polyfill_yx // ncplane_pulse // ncplane_putc_yx -// ncplane_putegc_stainable +// ncplane_putegc_stained // ncplane_putegc_yx // ncplane_putnstr_aligned // ncplane_putnstr_yx -// ncplane_putsimple_stainable +// ncplane_putsimple_stained // ncplane_putstr_aligned -// ncplane_putstr_stainable +// ncplane_putstr_stained // ncplane_putstr_yx // ncplane_puttext -// ncplane_putwegc_stainable +// ncplane_putwegc_stained // ncplane_qrcode // ncplane_reparent // ncplane_resize @@ -83,7 +83,7 @@ // ncplane_userptr // ncplane_vline_interp // ncplane_vprintf_aligned -// ncplane_vprintf_stainable +// ncplane_vprintf_stained // ncplane_vprintf_yx // ncplane_yx // @@ -789,14 +789,14 @@ pub fn ncplane_rounded_box_sized( // } // static inline int -// ncplane_printf_stainable(struct ncplane* n, const char* format, ...) +// ncplane_printf_stained(struct ncplane* n, const char* format, ...) // __attribute__ ((format (printf, 2, 3))); // static inline int -// ncplane_printf_stainable(struct ncplane* n, const char* format, ...){ +// ncplane_printf_stained(struct ncplane* n, const char* format, ...){ // va_list va; // va_start(va, format); -// int ret = ncplane_vprintf_stainable(n, format, va); +// int ret = ncplane_vprintf_stained(n, format, va); // va_end(va); // return ret; // } diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index f161b565d..a2652bd01 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -1421,7 +1421,7 @@ int ncplane_putegc_yx(ncplane* n, int y, int x, const char* gclust, int* sbytes) return ncplane_put(n, y, x, gclust, cols, n->stylemask, n->channels, bytes); } -int ncplane_putchar_stainable(ncplane* n, char c){ +int ncplane_putchar_stained(ncplane* n, char c){ uint64_t channels = n->channels; uint32_t stylemask = n->stylemask; const cell* targ = &n->fb[nfbcellidx(n, n->y, n->x)]; @@ -1433,7 +1433,7 @@ int ncplane_putchar_stainable(ncplane* n, char c){ return ret; } -int ncplane_putwegc_stainable(ncplane* n, const wchar_t* gclust, int* sbytes){ +int ncplane_putwegc_stained(ncplane* n, const wchar_t* gclust, int* sbytes){ uint64_t channels = n->channels; uint32_t stylemask = n->stylemask; const cell* targ = &n->fb[nfbcellidx(n, n->y, n->x)]; @@ -1445,7 +1445,7 @@ int ncplane_putwegc_stainable(ncplane* n, const wchar_t* gclust, int* sbytes){ return ret; } -int ncplane_putegc_stainable(ncplane* n, const char* gclust, int* sbytes){ +int ncplane_putegc_stained(ncplane* n, const char* gclust, int* sbytes){ uint64_t channels = n->channels; uint32_t stylemask = n->stylemask; const cell* targ = &n->fb[nfbcellidx(n, n->y, n->x)]; @@ -1562,12 +1562,12 @@ int ncplane_vprintf_aligned(ncplane* n, int y, ncalign_e align, return ret; } -int ncplane_vprintf_stainable(struct ncplane* n, const char* format, va_list ap){ +int ncplane_vprintf_stained(struct ncplane* n, const char* format, va_list ap){ char* r = ncplane_vprintf_prep(format, ap); if(r == NULL){ return -1; } - int ret = ncplane_putstr_stainable(n, r); + int ret = ncplane_putstr_stained(n, r); free(r); return ret; } @@ -2300,12 +2300,12 @@ int ncplane_putstr_yx(struct ncplane* n, int y, int x, const char* gclusters){ return ret; } -int ncplane_putstr_stainable(struct ncplane* n, const char* gclusters){ +int ncplane_putstr_stained(struct ncplane* n, const char* gclusters){ int ret = 0; // FIXME speed up this blissfully naive solution while(*gclusters){ int wcs; - int cols = ncplane_putegc_stainable(n, gclusters, &wcs); + int cols = ncplane_putegc_stained(n, gclusters, &wcs); if(cols < 0){ return -ret; } @@ -2318,7 +2318,7 @@ int ncplane_putstr_stainable(struct ncplane* n, const char* gclusters){ return ret; } -int ncplane_putwstr_stainable(ncplane* n, const wchar_t* gclustarr){ +int ncplane_putwstr_stained(ncplane* n, const wchar_t* gclustarr){ // maximum of six UTF8-encoded bytes per wchar_t const size_t mbytes = (wcslen(gclustarr) * WCHAR_MAX_UTF8BYTES) + 1; char* mbstr = malloc(mbytes); // need cast for c++ callers @@ -2330,7 +2330,7 @@ int ncplane_putwstr_stainable(ncplane* n, const wchar_t* gclustarr){ free(mbstr); return -1; } - int r = ncplane_putstr_stainable(n, mbstr); + int r = ncplane_putstr_stained(n, mbstr); free(mbstr); return r; } diff --git a/tests/ncplane.cpp b/tests/ncplane.cpp index a046f9311..3f506af82 100644 --- a/tests/ncplane.cpp +++ b/tests/ncplane.cpp @@ -711,7 +711,7 @@ TEST_CASE("NCPlane") { CHECK(0 == notcurses_render(nc_)); } - SUBCASE("EGCStainable") { + SUBCASE("EGCStained") { cell c = CELL_TRIVIAL_INITIALIZER; int sbytes; CHECK(0 == ncplane_set_fg_rgb(n_, 0x444444)); @@ -722,8 +722,8 @@ TEST_CASE("NCPlane") { CHECK(0 == notcurses_render(nc_)); // EGC should change, but not the color CHECK(0 == ncplane_set_fg_rgb(n_, 0x222222)); - CHECK(1 == ncplane_putegc_stainable(n_, "C", &sbytes)); - CHECK(1 == ncplane_putegc_stainable(n_, "D", &sbytes)); + CHECK(1 == ncplane_putegc_stained(n_, "C", &sbytes)); + CHECK(1 == ncplane_putegc_stained(n_, "D", &sbytes)); uint64_t channels = 0; CHECK(1 == ncplane_at_yx_cell(n_, 0, 0, &c)); CHECK(cell_simple_p(&c)); diff --git a/tests/wide.cpp b/tests/wide.cpp index a6dc3559a..17d467784 100644 --- a/tests/wide.cpp +++ b/tests/wide.cpp @@ -955,34 +955,34 @@ TEST_CASE("Wide") { SUBCASE("Putwc") { wchar_t w = L'\u2658'; - CHECK(0 == ncplane_set_fg(n_, 0xff00ff)); + CHECK(0 == ncplane_set_fg_rgb(n_, 0xff00ff)); CHECK(0 < ncplane_putwc(n_, w)); - CHECK(0 == ncplane_set_fg(n_, 0x00ff00)); + CHECK(0 == ncplane_set_fg_rgb(n_, 0x00ff00)); CHECK(0 == notcurses_render(nc_)); uint16_t stylemask; uint64_t channels; char* egc = notcurses_at_yx(nc_, 0, 0, &stylemask, &channels); REQUIRE(egc); CHECK(0 == stylemask); - CHECK(0xff00ff == channels_fg(channels)); + CHECK(0xff00ff == channels_fg_rgb(channels)); CHECK(0 == strcmp("\u2658", egc)); free(egc); } - SUBCASE("PutwcStainable") { + SUBCASE("Putwcstained") { wchar_t w = L'\u2658'; - CHECK(0 == ncplane_set_fg(n_, 0xff00ff)); + CHECK(0 == ncplane_set_fg_rgb(n_, 0xff00ff)); CHECK(0 < ncplane_putwc(n_, w)); - CHECK(0 == ncplane_set_fg(n_, 0x00ff00)); + CHECK(0 == ncplane_set_fg_rgb(n_, 0x00ff00)); ncplane_home(n_); - CHECK(0 < ncplane_putwc_stainable(n_, w)); + CHECK(0 < ncplane_putwc_stained(n_, w)); CHECK(0 == notcurses_render(nc_)); uint16_t stylemask; uint64_t channels; char* egc = notcurses_at_yx(nc_, 0, 0, &stylemask, &channels); REQUIRE(egc); CHECK(0 == stylemask); - CHECK(0xff00ff == channels_fg(channels)); + CHECK(0xff00ff == channels_fg_rgb(channels)); CHECK(0 == strcmp("\u2658", egc)); free(egc); }