From dcebf9c7f954a55350b68d0ead1935612c4e2e05 Mon Sep 17 00:00:00 2001 From: Berke Güzel Date: Thu, 15 Oct 2026 13:04:01 +0300 Subject: Rename the library to wsap_vtcore ncurses installs and defines struct term. In a file that includes both headers, an ncurses TERMINAL * and this library's terminal are silently the same type. The name wsap_vtcore avoids the clash. The public header is now . Every global symbol uses the wsap_vtcore_ prefix, every macro uses WSAP_VTCORE_, and the shared library is libwsap_vtcore.so.0. The default terminal name is now "wsap_vtcore". The ISA override variable is WSAP_VTCORE_ISA. No other behavior changes. The amalgamation writes wsap_vtcore.c and wsap_vtcore.h. Co-Authored-By: Claude Haiku 5.5 --- tests/extern/kitty/screen_bridge.c | 72 +++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) (limited to 'tests/extern/kitty/screen_bridge.c') diff --git a/tests/extern/kitty/screen_bridge.c b/tests/extern/kitty/screen_bridge.c index 50f86a7..c307c1a 100644 --- a/tests/extern/kitty/screen_bridge.c +++ b/tests/extern/kitty/screen_bridge.c @@ -1,87 +1,87 @@ /* Test-only entry points for the Kitty screen wrapper in screen.py. * Python calls only these functions, so it needs no struct layouts other - * than the public struct term_cell. The kitty_screen_* accessors read - * properties that term.h does not expose. They compile against the current + * than the public struct wsap_vtcore_cell. The kitty_screen_* accessors read + * properties that wsap_vtcore.h does not expose. They compile against the current * terminal layout rather than duplicating byte offsets in Python. */ #include "internal.h" #include "screen.h" typedef void (*kitty_reply_fn)(void *ud, const char *bytes, size_t len); -struct term *kitty_term_new(int cols, int rows, kitty_reply_fn reply, void *ud) +struct wsap_vtcore *kitty_term_new(int cols, int rows, kitty_reply_fn reply, void *ud) { - return term_new(&(struct term_options){ + return wsap_vtcore_new(&(struct wsap_vtcore_options){ .size = { .x = cols, .y = rows }, .callbacks = { .ud = ud, .reply = reply }, }); } /* One snapshot serves every cell read. */ -static struct term_snapshot *snap; +static struct wsap_vtcore_snapshot *snap; -void kitty_term_free(struct term *t) +void kitty_term_free(struct wsap_vtcore *t) { /* A new terminal can get the address of the freed one. The snapshot * would then keep its rows, so it goes away too. */ - term_snapshot_free(snap); + wsap_vtcore_snapshot_free(snap); snap = NULL; - term_free(t); + wsap_vtcore_free(t); } -void kitty_term_write(struct term *t, const char *bytes, size_t len) +void kitty_term_write(struct wsap_vtcore *t, const char *bytes, size_t len) { - term_feed(t, bytes, len, 0); + wsap_vtcore_feed(t, bytes, len, 0); } -bool kitty_term_resize(struct term *t, int cols, int rows) +bool kitty_term_resize(struct wsap_vtcore *t, int cols, int rows) { - return term_resize(t, (struct term_vector2i){ .x = cols, .y = rows }); + return wsap_vtcore_resize(t, (struct wsap_vtcore_vector2i){ .x = cols, .y = rows }); } -int kitty_term_cols(struct term *t) { return term_size(t).x; } -int kitty_term_rows(struct term *t) { return term_size(t).y; } -int kitty_term_cursor_x(struct term *t) { return term_cursor(t).pos.x; } -int kitty_term_cursor_y(struct term *t) { return term_cursor(t).pos.y; } -int kitty_term_cursor_style(struct term *t) { return (int)term_cursor(t).style; } -bool kitty_term_cursor_blink(struct term *t) { return term_cursor(t).blink; } -bool kitty_term_application_cursor(struct term *t) { return term_modes(t).app_cursor; } +int kitty_term_cols(struct wsap_vtcore *t) { return wsap_vtcore_size(t).x; } +int kitty_term_rows(struct wsap_vtcore *t) { return wsap_vtcore_size(t).y; } +int kitty_term_cursor_x(struct wsap_vtcore *t) { return wsap_vtcore_cursor(t).pos.x; } +int kitty_term_cursor_y(struct wsap_vtcore *t) { return wsap_vtcore_cursor(t).pos.y; } +int kitty_term_cursor_style(struct wsap_vtcore *t) { return (int)wsap_vtcore_cursor(t).style; } +bool kitty_term_cursor_blink(struct wsap_vtcore *t) { return wsap_vtcore_cursor(t).blink; } +bool kitty_term_application_cursor(struct wsap_vtcore *t) { return wsap_vtcore_modes(t).app_cursor; } /* Update the snapshot from the live screen, as a renderer reads it. * Returns NULL when the cell is out of range or memory runs out. */ -static struct term_snapshot *cell_snapshot(struct term *t, int col, int row) +static struct wsap_vtcore_snapshot *cell_snapshot(struct wsap_vtcore *t, int col, int row) { - struct term_vector2i size = term_size(t); + struct wsap_vtcore_vector2i size = wsap_vtcore_size(t); if (col < 0 || col >= size.x || row < 0 || row >= size.y) return NULL; if (!snap) - snap = term_snapshot_new(); - term_scroll_to(t, 0); - if (!snap || !term_snapshot_update(snap, t)) + snap = wsap_vtcore_snapshot_new(); + wsap_vtcore_scroll_to(t, 0); + if (!snap || !wsap_vtcore_snapshot_update(snap, t)) return NULL; return snap; } -bool kitty_term_cell(struct term *t, int col, int row, struct term_cell *out) +bool kitty_term_cell(struct wsap_vtcore *t, int col, int row, struct wsap_vtcore_cell *out) { - struct term_snapshot *s = cell_snapshot(t, col, row); + struct wsap_vtcore_snapshot *s = cell_snapshot(t, col, row); if (!s) return false; - *out = term_snapshot_row(s, row)[col]; + *out = wsap_vtcore_snapshot_row(s, row)[col]; return true; } /* The code points of a cell's text: one, or a whole grapheme cluster. * Returns the number of code points and writes at most cap of them. */ -int kitty_term_cell_text(struct term *t, int col, int row, uint32_t *cps, int cap) +int kitty_term_cell_text(struct wsap_vtcore *t, int col, int row, uint32_t *cps, int cap) { - struct term_snapshot *s = cell_snapshot(t, col, row); + struct wsap_vtcore_snapshot *s = cell_snapshot(t, col, row); if (!s) return 0; - return term_snapshot_cluster(s, term_snapshot_row(s, row)[col].text, cps, cap); + return wsap_vtcore_snapshot_cluster(s, wsap_vtcore_snapshot_row(s, row)[col].text, cps, cap); } #define PROPERTY(type, name) \ - type kitty_screen_##name(struct term *t) { return t->name; } + type kitty_screen_##name(struct wsap_vtcore *t) { return t->name; } PROPERTY(int, scroll_top) PROPERTY(int, scroll_bottom) @@ -94,20 +94,20 @@ PROPERTY(bool, strike) PROPERTY(bool, inverse) PROPERTY(uint8_t, underline) -int kitty_screen_row_length(struct term *t, int row) +int kitty_screen_row_length(struct wsap_vtcore *t, int row) { if (!t || row < 0 || row >= t->rows) return 0; - const struct srow *r = term_row(t, row); + const struct srow *r = wsap_vtcore_row(t, row); return r ? (int)r->len : 0; } /* A tab stores a marker cell that a snapshot shows as a blank. Kitty keeps * the tab in its line text, so the wrapper asks for the marker. */ -bool kitty_screen_cell_is_tab(struct term *t, int col, int row) +bool kitty_screen_cell_is_tab(struct wsap_vtcore *t, int col, int row) { if (col < 0 || col >= t->cols || row < 0 || row >= t->rows) return false; - term_scroll_to(t, 0); - const struct cell *cells = term_screen_view_row(t, row); + wsap_vtcore_scroll_to(t, 0); + const struct cell *cells = wsap_vtcore_screen_view_row(t, row); return cells && cells[col].c == '\t'; } -- cgit v1.2.3