Man page - unibi_format(3)

Packages contains this manual

Manual

doc::unibi_format

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
SEE ALSO

NAME

unibi_format, unibi_run - interpret a terminfo format string

SYNOPSIS

#include <unibilium.h>
void unibi_format(
unibi_var_t var_dyn[26],
unibi_var_t var_static[26],
const char *fmt,
unibi_var_t param[9],
void (*out)(void *, const char *, size_t),
void *ctx1,
void (*pad)(void *, size_t, int, int),
void *ctx2
);
size_t unibi_run(const char *fmt, unibi_var_t param[9], char *p, size_t n);

DESCRIPTION

"unibi_format" takes a format string fmt and executes it. All output is done by (possibly repeated) calls to out . In the calls to out the first argument is always ctx1 , the second argument is a pointer to a chunk of data, and the third argument is a count specifying the size of the chunk in bytes.

pad is used when the format string contains "$<...>" padding instructions. In the calls to pad the first argument is always ctx2 , the second argument is the delay in tenths of milliseconds, the third argument is a boolean flag indicating whether "*" (proportional delay) was specified in the format string, and the fourth argument is a boolean flag indicating whether "/" (forced padding) was specified in the format string. Thus a format string of "$<5/>" would translate into "pad(ctx2, 50, 0, 1)". You may pass a null pointer for pad ; in that case padding instructions are silently skipped.

The values of param are used for the format codes %p1 .. %p9; the values of var_dyn and var_static are used for the so-called dynamic/static variables %Pa .. %Pz and %PA .. %PZ, respectively.

"unibi_run" is a wrapper around "unibi_format". It passes two arrays (each initialized to 26 zeroes) as var_dyn and var_static . fmt and param are passed on unchanged. It ignores padding and places all normal output in the buffer pointed to by p . n is the size of the buffer; at most n bytes will be written to p .

RETURN VALUE

"unibi_run" returns the number of bytes that would have been written if the buffer was big enough. Thus the number of valid bytes in p after a call to "unibi_run" is the minimum of n and the return value of "unibi_run".

SEE ALSO

unibi_var_from_num (3), unibi_var_from_str (3), unibilium.h (3)