11#include "../src/utf8.h"
25#define streq(a,b) (!strcmp(a,b))
54 sgr[sgri++] = (idx + (fg ? 30 : 40));
57 sgr[sgri++] = (idx - 8 + (fg ? 90 : 100));
60 sgr[sgri++] = (fg ? 38 : 48);
66 sgr[sgri++] = (fg ? 38 : 48);
68 sgr[sgri++] = col->
rgb.red;
69 sgr[sgri++] = col->
rgb.green;
70 sgr[sgri++] = col->
rgb.blue;
84 int sgr[7 + 2*5];
int sgri = 0;
138 for(
int i = 0; i < sgri; i++)
195 for(
int col = 0; col <
cols; col++) {
197 prevcell = cells[col];
217int main(
int argc,
char *argv[])
223 while((opt = getopt(argc, argv,
"f:l:c:")) != -1) {
226 if(
streq(optarg,
"plain"))
228 else if(
streq(optarg,
"sgr"))
231 fprintf(stderr,
"Unrecognised format '%s'\n", optarg);
250 const char *file = argv[optind++];
251 int fd = open(file, O_RDONLY);
253 fprintf(stderr,
"Cannot open %s - %s\n", file, strerror(errno));
267 while((len =
read(fd, buffer,
sizeof(buffer))) > 0) {
271 for(
int row = 0; row <
rows; row++) {
int read(int file, char *ptr, int len)
int(* sb_pushline)(int cols, const VTermScreenCell *cells, void *user)
static int screen_sb_pushline(int cols, const VTermScreenCell *cells, void *user)
int main(int argc, char *argv[])
static void dump_eol(const VTermScreenCell *prevcell)
static void dump_cell(const VTermScreenCell *cell, const VTermScreenCell *prevcell)
static int dump_cell_color(const VTermColor *col, int sgri, int sgr[], int fg)
static int screen_resize(int new_rows, int new_cols, void *user)
static VTermScreenCallbacks cb_screen
static int fill_utf8(long codepoint, char *str)
void vterm_set_utf8(VTerm *vt, int is_utf8)
#define VTERM_MAX_CHARS_PER_CELL
struct VTermColor::@11 indexed
void vterm_screen_reset(VTermScreen *screen, int hard)
void vterm_state_get_default_colors(const VTermState *state, VTermColor *default_fg, VTermColor *default_bg)
#define VTERM_COLOR_IS_INDEXED(col)
#define CSI_ARG_HAS_MORE(a)
uint32_t chars[VTERM_MAX_CHARS_PER_CELL]
#define VTERM_COLOR_IS_DEFAULT_FG(col)
int vterm_screen_get_cell(const VTermScreen *screen, VTermPos pos, VTermScreenCell *cell)
#define VTERM_COLOR_IS_RGB(col)
void vterm_screen_set_callbacks(VTermScreen *screen, const VTermScreenCallbacks *callbacks, void *user)
VTermScreenCellAttrs attrs
VTermState * vterm_obtain_state(VTerm *vt)
VTermScreen * vterm_obtain_screen(VTerm *vt)
#define VTERM_COLOR_IS_DEFAULT_BG(col)
void vterm_free(VTerm *vt)
int vterm_color_is_equal(const VTermColor *a, const VTermColor *b)
VTerm * vterm_new(int rows, int cols)
size_t vterm_input_write(VTerm *vt, const char *bytes, size_t len)
struct VTermColor::@10 rgb