diff options
| author | Lukas Fürmetz <fuermetz@mailbox.org> | 2017-11-21 15:16:36 +0100 |
|---|---|---|
| committer | Lukas Fürmetz <fuermetz@mailbox.org> | 2017-11-21 21:38:32 +0100 |
| commit | 78bb438b95929d7c5ba0b6572fe58b0035f7ae41 (patch) | |
| tree | f62a3498d1ef843188780cc2bb5a89d99f652ad1 | |
| parent | 53415af332e5e30e4910b05ebdb88d478a387eba (diff) | |
Move render_text into vterm-module.c
| -rw-r--r-- | elisp.c | 25 | ||||
| -rw-r--r-- | elisp.h | 2 | ||||
| -rw-r--r-- | vterm-module.c | 25 | ||||
| -rw-r--r-- | vterm-module.h | 2 |
4 files changed, 27 insertions, 27 deletions
@@ -41,31 +41,6 @@ void put_text_property(emacs_env *env, emacs_value string, emacs_value property, (emacs_value[]){start, end, property, value, string}); } -emacs_value render_text(emacs_env *env, char *buffer, int len, - VTermScreenCell *cell) { - emacs_value text = env->make_string(env, buffer, len); - - emacs_value foreground = color_to_rgb_string(env, cell->fg); - emacs_value background = color_to_rgb_string(env, cell->bg); - emacs_value bold = cell->attrs.bold ? Qbold : Qnormal; - emacs_value underline = cell->attrs.underline ? Qt : Qnil; - emacs_value italic = cell->attrs.italic ? Qitalic : Qnormal; - emacs_value reverse = cell->attrs.reverse ? Qt : Qnil; - emacs_value strike = cell->attrs.strike ? Qt : Qnil; - - // TODO: Blink, font, dwl, dhl is missing - emacs_value properties = - list(env, - (emacs_value[]){Qforeground, foreground, Qbackground, background, - Qweight, bold, Qunderline, underline, Qslant, italic, - Qreverse, reverse, Qstrike, strike}, - 14); - - put_text_property(env, text, Qface, properties); - - return text; -} - void byte_to_hex(uint8_t byte, char *hex) { snprintf(hex, 3, "%.2X", byte); } emacs_value color_to_rgb_string(emacs_env *env, VTermColor color) { @@ -37,8 +37,6 @@ emacs_value string_length(emacs_env *env, emacs_value string); emacs_value list(emacs_env *env, emacs_value *elements, ptrdiff_t len); void put_text_property(emacs_env *env, emacs_value string, emacs_value property, emacs_value value); -emacs_value render_text(emacs_env *env, char *string, int len, - VTermScreenCell *cell); void byte_to_hex(uint8_t byte, char *hex); emacs_value color_to_rgb_string(emacs_env *env, VTermColor color); void erase_buffer(emacs_env *env); diff --git a/vterm-module.c b/vterm-module.c index 65bb1cd..4f59cd5 100644 --- a/vterm-module.c +++ b/vterm-module.c @@ -52,6 +52,31 @@ static int set_term_prop_cb(VTermProp prop, VTermValue *val, void *user_data) { return 1; } +static emacs_value render_text(emacs_env *env, char *buffer, int len, + VTermScreenCell *cell) { + emacs_value text = env->make_string(env, buffer, len); + + emacs_value foreground = color_to_rgb_string(env, cell->fg); + emacs_value background = color_to_rgb_string(env, cell->bg); + emacs_value bold = cell->attrs.bold ? Qbold : Qnormal; + emacs_value underline = cell->attrs.underline ? Qt : Qnil; + emacs_value italic = cell->attrs.italic ? Qitalic : Qnormal; + emacs_value reverse = cell->attrs.reverse ? Qt : Qnil; + emacs_value strike = cell->attrs.strike ? Qt : Qnil; + + // TODO: Blink, font, dwl, dhl is missing + emacs_value properties = + list(env, + (emacs_value[]){Qforeground, foreground, Qbackground, background, + Qweight, bold, Qunderline, underline, Qslant, italic, + Qreverse, reverse, Qstrike, strike}, + 14); + + put_text_property(env, text, Qface, properties); + + return text; +} + static void term_redraw(struct Term *term, emacs_env *env) { int i, j; int rows, cols; diff --git a/vterm-module.h b/vterm-module.h index 25ea860..11c9531 100644 --- a/vterm-module.h +++ b/vterm-module.h @@ -17,6 +17,8 @@ struct Term { static bool compare_cells(VTermScreenCell *a, VTermScreenCell *b); static bool is_key(unsigned char *key, size_t len, char *key_description); +static emacs_value render_text(emacs_env *env, char *string, int len, + VTermScreenCell *cell); static int set_term_prop_cb(VTermProp prop, VTermValue *val, void *user_data); |
