44 .allocdata = allocdata,
49#define DEFAULT(v, def) ((v) ? (v) : (def))
178 if(ctrl >= 0x80 && !
vt->
mode.ctrl8bit)
180 ESC_S "%c", ctrl - 0x40);
205 if(ctrl >= 0x80 && !
vt->
mode.ctrl8bit)
207 ESC_S "%c", ctrl - 0x40);
258 if(len < vt->outbuffer_cur)
309 int (*eraserect)(
VTermRect rect,
int selective,
void *user),
318 (*eraserect)(rect, 0, user);
337 int leftward = -rightward;
351 int upward = -downward;
359 (*moverect)(dest, src, user);
363 else if(downward < 0)
368 else if(rightward < 0)
371 (*eraserect)(rect, 0, user);
379 int downward = src.start_row - dest.start_row;
380 int rightward = src.start_col - dest.start_col;
382 int init_row, test_row, init_col, test_col;
383 int inc_row, inc_col;
386 init_row = dest.end_row - 1;
387 test_row = dest.start_row - 1;
391 init_row = dest.start_row;
392 test_row = dest.end_row;
397 init_col = dest.end_col - 1;
398 test_col = dest.start_col - 1;
402 init_col = dest.start_col;
403 test_col = dest.end_col;
408 for(pos.
row = init_row; pos.
row != test_row; pos.
row += inc_row)
409 for(pos.
col = init_col; pos.
col != test_col; pos.
col += inc_col) {
411 (*copycell)(pos, srcpos, user);
418 fprintf(stderr,
"libvterm major version mismatch; %d (wants) != %d (library)\n",
424 fprintf(stderr,
"libvterm minor version mismatch; %d (wants) > %d (library)\n",
static int moverect(VTermRect dest, VTermRect src, void *user)
void * memcpy(void *dest, void const *source, size_t size)
void * memset(void *dest, int c, size_t size)
void * memmove(void *dest, const void *source, size_t size)
void * malloc(size_t size)
uint16_t size
Size of the loaded file.
INTERNAL void vterm_screen_free(VTermScreen *screen)
INTERNAL void vterm_state_free(VTermState *state)
__builtin_va_list va_list
void *(* malloc)(size_t size, void *allocdata)
void(* free)(void *ptr, void *allocdata)
void vterm_set_utf8(VTerm *vt, int is_utf8)
static void default_free(void *ptr, void *allocdata)
INTERNAL void vterm_push_output_sprintf_ctrl(VTerm *vt, unsigned char ctrl, const char *fmt,...)
void vterm_copy_cells(VTermRect dest, VTermRect src, void(*copycell)(VTermPos dest, VTermPos src, void *user), void *user)
INTERNAL void vterm_push_output_sprintf_str(VTerm *vt, unsigned char ctrl, bool term, const char *fmt,...)
INTERNAL void * vterm_allocator_malloc(VTerm *vt, size_t size)
VTerm * vterm_new_with_allocator(int rows, int cols, VTermAllocatorFunctions *funcs, void *allocdata)
static void * default_malloc(size_t size, void *allocdata)
INTERNAL void vterm_push_output_sprintf(VTerm *vt, const char *format,...)
VTerm * vterm_build(const struct VTermBuilder *builder)
size_t vterm_output_read(VTerm *vt, char *buffer, size_t len)
void vterm_scroll_rect(VTermRect rect, int downward, int rightward, int(*moverect)(VTermRect src, VTermRect dest, void *user), int(*eraserect)(VTermRect rect, int selective, void *user), void *user)
size_t vterm_output_get_buffer_size(const VTerm *vt)
size_t vterm_output_get_buffer_remaining(const VTerm *vt)
INTERNAL void vterm_push_output_bytes(VTerm *vt, const char *bytes, size_t len)
size_t vterm_output_get_buffer_current(const VTerm *vt)
static VTermAllocatorFunctions default_allocator
void vterm_get_size(const VTerm *vt, int *rowsp, int *colsp)
void vterm_check_version(int major, int minor)
VTermValueType vterm_get_prop_type(VTermProp prop)
void vterm_output_set_callback(VTerm *vt, VTermOutputCallback *func, void *user)
VTermValueType vterm_get_attr_type(VTermAttr attr)
INTERNAL void vterm_push_output_vsprintf(VTerm *vt, const char *format, va_list args)
void vterm_set_size(VTerm *vt, int rows, int cols)
INTERNAL void vterm_allocator_free(VTerm *vt, void *ptr)
int vterm_get_utf8(const VTerm *vt)
void vterm_free(VTerm *vt)
VTerm * vterm_new(int rows, int cols)
#define VTERM_VERSION_MAJOR
const VTermAllocatorFunctions * allocator
#define VTERM_VERSION_MINOR
void VTermOutputCallback(const char *s, size_t len, void *user)
@ VTERM_PROP_CURSORVISIBLE
const VTermAllocatorFunctions * allocator
VTermOutputCallback * outfunc