diff options
| author | Berke Güzel <wenekar1@gmail.com> | 2026-10-15 11:37:31 +0300 |
|---|---|---|
| committer | Berke Güzel <wenekar1@gmail.com> | 2026-10-15 11:37:31 +0300 |
| commit | af6a37b1c4509c7766933a7cb45d2ee9a3a23f98 (patch) | |
| tree | e7b0294ebf0d9b124b8885a76c119d7f46d5b0fb /src/term.c | |
| parent | acd338ea33de36d223cc6d301712eed4a9501e6c (diff) | |
Return owned text and share cell attribute flags with snapshots
Make text queries return allocated strings released with term_text_free, keeping each capture atomic. Align public attributes with the write core, remove snapshot conversion tables, and migrate tests and the Kitty adapter.
Diffstat (limited to 'src/term.c')
| -rw-r--r-- | src/term.c | 23 |
1 files changed, 13 insertions, 10 deletions
@@ -104,22 +104,25 @@ void term_focus(struct term *t, bool focused) term_write_end(t); } -size_t term_cwd(const struct term *t, char *buf, size_t cap) +char *term_cwd(const struct term *t) { - if (!t) - return term_copy_out(NULL, buf, cap); + if (!t) return NULL; term_write_begin((struct term *)t); - size_t n = term_copy_out(t->cwd, buf, cap); + char *text = t->cwd ? term_strdup(t->cwd) : NULL; term_write_end((struct term *)t); - return n; + return text; } -size_t term_pointer_shape(const struct term *t, char *buf, size_t cap) +char *term_pointer_shape(const struct term *t) { - if (!t) - return term_copy_out(NULL, buf, cap); + if (!t) return NULL; term_write_begin((struct term *)t); - size_t n = term_copy_out(t->pointer_shape, buf, cap); + char *text = t->pointer_shape ? term_strdup(t->pointer_shape) : NULL; term_write_end((struct term *)t); - return n; + return text; +} + +void term_text_free(char *text) +{ + free(text); } |
