2020-01-02 02:23:11 +00:00
|
|
|
% notcurses_output(3)
|
|
|
|
% nick black <nickblack@linux.com>
|
2020-04-18 04:35:15 +00:00
|
|
|
% v1.3.1
|
2020-01-02 02:23:11 +00:00
|
|
|
|
|
|
|
# NAME
|
|
|
|
|
2020-01-04 07:37:55 +00:00
|
|
|
notcurses_output - output to ncplanes
|
2020-01-02 02:23:11 +00:00
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
|
|
|
|
|
**#include <notcurses.h>**
|
|
|
|
|
2020-01-04 07:37:55 +00:00
|
|
|
**static inline int
|
2020-01-07 21:08:32 +00:00
|
|
|
ncplane_putc(struct ncplane* n, const cell* c);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
2020-01-07 21:08:32 +00:00
|
|
|
**int ncplane_putc_yx(struct ncplane* n, int y, int x, const cell* c);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
|
|
|
**static inline int
|
2020-01-07 21:08:32 +00:00
|
|
|
ncplane_putsimple(struct ncplane* n, char c);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
2020-04-06 03:40:09 +00:00
|
|
|
**static inline int
|
|
|
|
ncplane_putsimple_yx(struct ncplane* n, int y, int x, char c);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
2020-02-20 09:41:56 +00:00
|
|
|
**int ncplane_putsimple_stainable(struct ncplane* n, char c);**
|
|
|
|
|
2020-01-04 07:37:55 +00:00
|
|
|
**static inline int
|
2020-01-07 21:08:32 +00:00
|
|
|
ncplane_putwc(struct ncplane* n, wchar_t w);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
2020-01-07 21:08:32 +00:00
|
|
|
**int ncplane_putwc_yx(struct ncplane* n, int y, int x, wchar_t w);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
|
|
|
**static inline int
|
2020-01-07 21:08:32 +00:00
|
|
|
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);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
2020-02-20 09:41:56 +00:00
|
|
|
**int ncplane_putegc_stainable(struct ncplane* n, const char* gclust, int* sbytes);**
|
|
|
|
|
2020-01-04 07:37:55 +00:00
|
|
|
**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);**
|
|
|
|
|
2020-02-20 09:41:56 +00:00
|
|
|
**int ncplane_putwegc_stainable(struct ncplane* n, const wchar_t* gclust, int* sbytes);**
|
|
|
|
|
2020-04-06 05:15:20 +00:00
|
|
|
**static inline int
|
|
|
|
ncplane_putstr_yx(struct ncplane* n, int y, int x, const char* gclustarr);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
|
|
|
**static inline int
|
|
|
|
ncplane_putstr(struct ncplane* n, const char* gclustarr);**
|
|
|
|
|
|
|
|
**int ncplane_putstr_aligned(struct ncplane* n, int y, ncalign_e align,
|
|
|
|
const char* s);**
|
|
|
|
|
2020-01-07 21:08:32 +00:00
|
|
|
**int ncplane_putwstr_yx(struct ncplane* n, int y, int x, const wchar_t* gclustarr);**
|
2020-01-04 07:37:55 +00:00
|
|
|
|
|
|
|
**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_vprintf_aligned(struct ncplane* n, int y, ncalign_e align,
|
|
|
|
const char* format, va_list ap);**
|
|
|
|
|
|
|
|
**int ncplane_vprintf_yx(struct ncplane* n, int y, int x,
|
|
|
|
const char* format, va_list ap);**
|
|
|
|
|
|
|
|
**static inline int
|
|
|
|
ncplane_vprintf(struct ncplane* n, const char* format, va_list ap);**
|
|
|
|
|
|
|
|
**static inline int
|
|
|
|
ncplane_printf(struct ncplane* n, const char* format, ...);**
|
|
|
|
|
|
|
|
**static inline int
|
|
|
|
ncplane_printf_yx(struct ncplane* n, int y, int x, const char* format, ...);**
|
|
|
|
|
|
|
|
**static inline int
|
|
|
|
ncplane_printf_aligned(struct ncplane* n, int y, ncalign_e align, const char* format, ...);**
|
|
|
|
|
|
|
|
**int ncplane_cursor_move_yx(struct ncplane* n, int y, int x);**
|
|
|
|
|
2020-01-02 02:23:11 +00:00
|
|
|
# DESCRIPTION
|
|
|
|
|
2020-01-04 07:37:55 +00:00
|
|
|
These functions write EGCs (Extended Grapheme Clusters) to the specified
|
|
|
|
**struct ncplane**s. The following inputs are supported:
|
|
|
|
|
|
|
|
* **ncplane_putc(3)**: writes a single cell (see **notcurses_cell(3)**)
|
|
|
|
* **ncplane_put_simple(3)**: writes a single 7-bit ASCII character
|
|
|
|
* **ncplane_putwc(3)**: writes a single **wchar_t** (following UTF-8 conversion)
|
|
|
|
* **ncplane_putwegc(3)**: writes a single EGC from an array of **wchar_t**
|
|
|
|
* **ncplane_putegc(3)**: writes a single EGC from an array of UTF-8
|
|
|
|
* **ncplane_putstr(3)**: writes a set of EGCs from an array of UTF-8
|
|
|
|
* **ncplane_putwstr(3)**: writes a set of EGCs from an array of **wchar_t**
|
|
|
|
* **ncplane_vprintf(3)**: formatted output using **va_list**
|
|
|
|
* **ncplane_printf(3)**: formatted output using variadic arguments
|
|
|
|
|
|
|
|
All of these use the **ncplane**'s active styling, save **notcurses_putc(3)**,
|
|
|
|
which uses the cell's styling. Functions accepting a single EGC expect a series
|
|
|
|
of **wchar_t** terminated by **L'\0'** or a series of UTF-8 **char** terminated
|
|
|
|
by **'\0'**. The EGC must be well-formed, and must not contain any cluster
|
|
|
|
breaks. For more information, consult [Unicode® Standard Annex #29](https://unicode.org/reports/tr29/).
|
|
|
|
Functions accepting a set of EGCs must consist of a series of well-formed EGCs,
|
|
|
|
broken by cluster breaks, terminated by the appropriate NUL terminator.
|
|
|
|
|
|
|
|
These functions output to the `ncplane`'s current cursor location. They *do not*
|
|
|
|
move to the next line upon reaching the right extreme of the containing plane.
|
|
|
|
If the entirety of the content cannot be output, they will output as much as
|
|
|
|
possible.
|
|
|
|
|
|
|
|
Each of these base functions has two additional forms:
|
|
|
|
|
2020-02-10 06:04:01 +00:00
|
|
|
* **ncplane_putc_aligned()**, etc.: accepts a row and an alignment type
|
2020-01-04 07:37:55 +00:00
|
|
|
* **ncplane_putc_yx()**, etc.: accepts a row and column
|
|
|
|
|
|
|
|
If a positional parameter is -1, no movement will be made along that axis.
|
|
|
|
Passing **-1, -1** to e.g. **ncplane_putc_yx()** is equivalent to calling the
|
|
|
|
base form. These functions are implemented by moving the cursor, and then
|
|
|
|
performing the output. The two steps are *atomic* on success (it is not possible
|
|
|
|
for another caller to move the cursor between when it is positioned, and when
|
|
|
|
output begins), and thus these functions ought generally be preferred to an
|
|
|
|
explicit **ncplane_cursor_move_yx()**.
|
|
|
|
|
|
|
|
Upon successful return, the cursor will follow the last cell output.
|
2020-01-02 02:23:11 +00:00
|
|
|
|
|
|
|
# RETURN VALUES
|
|
|
|
|
2020-01-04 07:37:55 +00:00
|
|
|
**ncplane_cursor_move_yx()** returns -1 on error (invalid coordinate), or 0
|
|
|
|
on success.
|
|
|
|
|
|
|
|
For output functions, a negative return indicates an error with the inputs.
|
|
|
|
Otherwise, the number of *screen columns* output is returned. It is entirely
|
|
|
|
possible to get a short return, if there was insufficient room to output all
|
|
|
|
EGCs.
|
|
|
|
|
2020-01-02 02:23:11 +00:00
|
|
|
# SEE ALSO
|
|
|
|
|
2020-01-04 07:37:55 +00:00
|
|
|
**fprintf(3)**
|
|
|
|
**notcurses(3)**, **notcurses_cell(3)**, **notcurses_ncplane(3)**,
|
|
|
|
**stdarg(3)**,
|
|
|
|
**ascii(7)**,
|
|
|
|
**unicode(7)**,
|
|
|
|
**utf-8(7)**
|