From 40a1901bada25279a438a83ab2add0db52247689 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Mon, 12 Oct 2026 13:19:29 +0100 Subject: [PATCH] Change --enable-sixel to --enable-images (the former stays as an alias). --- Makefile.am | 4 ++-- configure.ac | 25 +++++++++++++++++-------- format.c | 2 +- input.c | 8 ++++---- screen-redraw.c | 2 +- screen-write.c | 38 +++++++++++++++++++------------------- screen.c | 18 +++++++++--------- tmux.h | 14 +++++++------- tty.c | 8 ++++---- 9 files changed, 64 insertions(+), 55 deletions(-) diff --git a/Makefile.am b/Makefile.am index 349d6e224..5a561819e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -249,8 +249,8 @@ if HAVE_UTF8PROC nodist_tmux_SOURCES += compat/utf8proc.c endif -# Enable sixel support. -if ENABLE_SIXEL +# Enable image support. +if ENABLE_IMAGES dist_tmux_SOURCES += image.c image-sixel.c endif diff --git a/configure.ac b/configure.ac index 5da5f30af..703327bcf 100644 --- a/configure.ac +++ b/configure.ac @@ -541,15 +541,24 @@ if test "x$enable_cgroups" = xyes; then fi fi -# Enable sixel support. +# Enable image support. +AC_ARG_ENABLE( + images, + AS_HELP_STRING(--enable-images, enable image support) +) AC_ARG_ENABLE( sixel, - AS_HELP_STRING(--enable-sixel, enable sixel images) + AS_HELP_STRING(--enable-sixel, alias for --enable-images), + [ + if test "x$enable_images" = x; then + enable_images=$enable_sixel + fi + ] ) -if test "x$enable_sixel" = xyes; then - AC_DEFINE(ENABLE_SIXEL) +if test "x$enable_images" = xyes; then + AC_DEFINE(ENABLE_IMAGES) fi -AM_CONDITIONAL(ENABLE_SIXEL, [test "x$enable_sixel" = xyes]) +AM_CONDITIONAL(ENABLE_IMAGES, [test "x$enable_images" = xyes]) # Check for b64_ntop. If we have b64_ntop, we assume b64_pton as well. AC_MSG_CHECKING(for b64_ntop) @@ -1148,10 +1157,10 @@ if test "x$enable_asan" = xyes; then else AC_MSG_NOTICE([ASAN: off]) fi -if test "x$enable_sixel" = xyes; then - AC_MSG_NOTICE([SIXEL: on]) +if test "x$enable_images" = xyes; then + AC_MSG_NOTICE([images: on]) else - AC_MSG_NOTICE([SIXEL: off]) + AC_MSG_NOTICE([images: off]) fi if test "x$enable_debug" = xyes; then AC_MSG_NOTICE([debug: on]) diff --git a/format.c b/format.c index 26a64f964..cb9e34061 100644 --- a/format.c +++ b/format.c @@ -3074,7 +3074,7 @@ format_cb_version(__unused struct format_tree *ft) static void * format_cb_sixel_support(__unused struct format_tree *ft) { -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES return (xstrdup("1")); #else return (xstrdup("0")); diff --git a/input.c b/input.c index c38d12560..9bd03cf4e 100644 --- a/input.c +++ b/input.c @@ -1582,7 +1582,7 @@ input_csi_dispatch(struct input_ctx *ictx) case -1: break; case 0: -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES input_reply(ictx, 1, "\033[?1;2;4c"); #else input_reply(ictx, 1, "\033[?1;2c"); @@ -2100,7 +2100,7 @@ input_csi_dispatch_sm_private(struct input_ctx *ictx) static void input_csi_dispatch_sm_graphics(__unused struct input_ctx *ictx) { -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES int n, m, o; if (ictx->param_list_len > 3) @@ -2625,7 +2625,7 @@ input_dcs_dispatch(struct input_ctx *ictx) const char prefix[] = "tmux;"; const u_int prefixlen = (sizeof prefix) - 1; long long allow_passthrough = 0; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES struct window *w; struct sixel_image *si; int p2; @@ -2641,7 +2641,7 @@ input_dcs_dispatch(struct input_ctx *ictx) return (0); } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (wp != NULL && buf[0] == 'q' && ictx->interm_len == 0) { w = wp->window; if (input_split(ictx) != 0) diff --git a/screen-redraw.c b/screen-redraw.c index e4fb93281..9d9704f98 100644 --- a/screen-redraw.c +++ b/screen-redraw.c @@ -1921,7 +1921,7 @@ redraw_draw(struct client *c, struct window_pane *wp, int flags) tty_reset(tty); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (wp != NULL) tty_draw_images(c, wp); else { diff --git a/screen-write.c b/screen-write.c index 754fba547..bc2cedd2c 100644 --- a/screen-write.c +++ b/screen-write.c @@ -1471,7 +1471,7 @@ screen_write_alignmenttest(struct screen_write_ctx *ctx) memcpy(&gc, &grid_default_cell, sizeof gc); utf8_set(&gc.data, 'E'); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_free_all(s) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1518,7 +1518,7 @@ screen_write_insertcharacter(struct screen_write_ctx *ctx, u_int nx, u_int bg) if (s->cx > screen_size_x(s) - 1) return; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1559,7 +1559,7 @@ screen_write_deletecharacter(struct screen_write_ctx *ctx, u_int nx, u_int bg) if (s->cx > screen_size_x(s) - 1) return; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1600,7 +1600,7 @@ screen_write_clearcharacter(struct screen_write_ctx *ctx, u_int nx, u_int bg) if (s->cx > screen_size_x(s) - 1) return; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1635,7 +1635,7 @@ screen_write_insertline(struct screen_write_ctx *ctx, u_int ny, u_int bg) if (ny == 0) ny = 1; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, sy - s->cy) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1703,7 +1703,7 @@ screen_write_deleteline(struct screen_write_ctx *ctx, u_int ny, u_int bg) if (ny == 0) ny = 1; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, sy - s->cy) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1776,7 +1776,7 @@ screen_write_clearline(struct screen_write_ctx *ctx, u_int bg) if (gl->cellsize == 0 && COLOUR_DEFAULT(bg)) return; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1815,7 +1815,7 @@ screen_write_clearendofline(struct screen_write_ctx *ctx, u_int bg) if (s->cx > sx - 1 || (s->cx >= gl->cellsize && COLOUR_DEFAULT(bg))) return; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1842,7 +1842,7 @@ screen_write_clearstartofline(struct screen_write_ctx *ctx, u_int bg) return; } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1896,7 +1896,7 @@ screen_write_reverseindex(struct screen_write_ctx *ctx, u_int bg) return; } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_free_all(s) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -1948,7 +1948,7 @@ screen_write_linefeed(struct screen_write_ctx *ctx, int wrapped, u_int bg) struct screen *s = ctx->s; struct grid *gd = s->grid; struct grid_line *gl; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES int redraw = 0; #endif u_int rupper = s->rupper, rlower = s->rlower; @@ -1971,7 +1971,7 @@ screen_write_linefeed(struct screen_write_ctx *ctx, int wrapped, u_int bg) return; } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (rlower == screen_size_y(s) - 1) redraw = image_scroll_up(s, 1); else @@ -2003,7 +2003,7 @@ screen_write_scrollup(struct screen_write_ctx *ctx, u_int lines, u_int bg) ctx->bg = bg; } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_scroll_up(s, lines) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -2032,7 +2032,7 @@ screen_write_scrolldown(struct screen_write_ctx *ctx, u_int lines, u_int bg) else if (lines > s->rlower - s->rupper + 1) lines = s->rlower - s->rupper + 1; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_free_all(s) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -2073,7 +2073,7 @@ screen_write_clearendofscreen(struct screen_write_ctx *ctx, u_int bg) struct visible_ranges *r; struct visible_range *ri; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, s->cy, sy - s->cy) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -2154,7 +2154,7 @@ screen_write_clearstartofscreen(struct screen_write_ctx *ctx, u_int bg) struct visible_ranges *r; struct visible_range *ri; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_line(s, 0, s->cy - 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -2227,7 +2227,7 @@ screen_write_clearscreen(struct screen_write_ctx *ctx, u_int bg) struct visible_ranges *r; struct visible_range *ri; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_free_all(s) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -2735,7 +2735,7 @@ screen_write_collect_end(struct screen_write_ctx *ctx) } } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES if (image_check_area(s, s->cx, s->cy, ci->used, 1) && ctx->wp != NULL) ctx->wp->flags |= PANE_REDRAW; #endif @@ -3239,7 +3239,7 @@ screen_write_rawstring(struct screen_write_ctx *ctx, u_char *str, u_int len, tty_write(tty_cmd_rawstring, &ttyctx); } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES /* Write a SIXEL image. */ void screen_write_sixelimage(struct screen_write_ctx *ctx, struct sixel_image *si, diff --git a/screen.c b/screen.c index f9ca89af5..7120e1058 100644 --- a/screen.c +++ b/screen.c @@ -93,7 +93,7 @@ screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit) s->tabs = NULL; s->sel = NULL; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES TAILQ_INIT(&s->images); TAILQ_INIT(&s->saved_images); #endif @@ -132,7 +132,7 @@ screen_reinit(struct screen *s, int check) screen_clear_selection(s); screen_free_titles(s); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES image_free_all(s); #endif @@ -154,7 +154,7 @@ screen_reset_hyperlinks(struct screen *s) void screen_free(struct screen *s) { -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES struct image *im; #endif @@ -174,7 +174,7 @@ screen_free(struct screen *s) hyperlinks_free(s->hyperlinks); screen_free_titles(s); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES /* * Images saved when entering the alternate screen stay linked in the * global list; move them back so they are freed and unlinked here, or @@ -377,7 +377,7 @@ screen_resize_cursor(struct screen *s, u_int sx, u_int sy, int reflow, if (sy != screen_size_y(s)) screen_resize_y(s, sy, eat_empty, &cy); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES image_free_all(s); #endif @@ -692,7 +692,7 @@ int screen_alternate_on(struct screen *s, struct grid_cell *gc, int cursor) { u_int sx, sy; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES struct image *im; #endif @@ -709,7 +709,7 @@ screen_alternate_on(struct screen *s, struct grid_cell *gc, int cursor) } memcpy(&s->saved_cell, gc, sizeof s->saved_cell); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES TAILQ_CONCAT(&s->saved_images, &s->images, entry); TAILQ_FOREACH(im, &s->saved_images, entry) im->list = &s->saved_images; @@ -728,7 +728,7 @@ int screen_alternate_off(struct screen *s, struct grid_cell *gc, int cursor) { u_int sx = screen_size_x(s), sy = screen_size_y(s); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES struct image *im; #endif @@ -774,7 +774,7 @@ screen_alternate_off(struct screen *s, struct grid_cell *gc, int cursor) grid_destroy(s->saved_grid); s->saved_grid = NULL; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES image_free_all(s); TAILQ_CONCAT(&s->images, &s->saved_images, entry); TAILQ_FOREACH(im, &s->images, entry) diff --git a/tmux.h b/tmux.h index 5b6ef46cd..e7aa55eef 100644 --- a/tmux.h +++ b/tmux.h @@ -77,7 +77,7 @@ struct screen_write_cline; struct screen_write_ctx; struct session; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES struct sixel_image; #endif @@ -1037,7 +1037,7 @@ struct style { u_int link; }; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES /* Image. */ struct image { struct screen *s; @@ -1113,7 +1113,7 @@ struct screen { bitstr_t *tabs; struct screen_sel *sel; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES struct images images; struct images saved_images; #endif @@ -1904,7 +1904,7 @@ struct tty_ctx { size_t size; } sel; -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES struct image *image; #endif }; @@ -3005,7 +3005,7 @@ void tty_cmd_scrolldown(struct tty *, const struct tty_ctx *); void tty_cmd_reverseindex(struct tty *, const struct tty_ctx *); void tty_cmd_setselection(struct tty *, const struct tty_ctx *); void tty_cmd_rawstring(struct tty *, const struct tty_ctx *); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES void tty_cmd_sixelimage(struct tty *, const struct tty_ctx *); void tty_draw_images(struct client *, struct window_pane *); #endif @@ -3649,7 +3649,7 @@ void screen_write_setselection(struct screen_write_ctx *, const char *, u_char *, u_int); void screen_write_rawstring(struct screen_write_ctx *, u_char *, u_int, int); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES void screen_write_sixelimage(struct screen_write_ctx *, struct sixel_image *, u_int); #endif @@ -4237,7 +4237,7 @@ void spawn_editor_finish(struct window_pane *); /* regsub.c */ char *regsub(const char *, const char *, const char *, int); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES /* image.c */ int image_free_all(struct screen *); struct image *image_store(struct screen *, struct sixel_image *); diff --git a/tty.c b/tty.c index 817d46ff8..494e5634f 100644 --- a/tty.c +++ b/tty.c @@ -68,7 +68,7 @@ static void tty_emulate_repeat(struct tty *, enum tty_code_code, enum tty_code_code, u_int); static void tty_draw_pane(struct tty *, const struct tty_ctx *, u_int); -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES static void tty_write_one(void (*)(struct tty *, const struct tty_ctx *), struct client *, struct tty_ctx *); #endif @@ -1460,7 +1460,7 @@ tty_check_codeset(struct tty *tty, const struct grid_cell *gc) return (&new); } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES /* Update context for client. */ static int tty_set_client_cb(struct tty_ctx *ttyctx, struct client *c) @@ -1588,7 +1588,7 @@ tty_write(void (*cmdfn)(struct tty *, const struct tty_ctx *), } } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES /* Only write to the incoming tty instead of every client. */ static void tty_write_one(void (*cmdfn)(struct tty *, const struct tty_ctx *), @@ -2034,7 +2034,7 @@ tty_cmd_rawstring(struct tty *tty, const struct tty_ctx *ctx) tty_invalidate(tty); } -#ifdef ENABLE_SIXEL +#ifdef ENABLE_IMAGES void tty_cmd_sixelimage(struct tty *tty, const struct tty_ctx *ctx) {