diff options
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); } |
