diff options
| -rw-r--r-- | vterm-module.c | 10 | ||||
| -rw-r--r-- | vterm.el | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/vterm-module.c b/vterm-module.c index 05f40f0..2294ef4 100644 --- a/vterm-module.c +++ b/vterm-module.c @@ -1345,12 +1345,14 @@ emacs_value Fvterm_write_input(emacs_env *env, ptrdiff_t nargs, emacs_value args[], void *data) { Term *term = env->get_user_ptr(env, args[0]); ptrdiff_t len = string_bytes(env, args[1]); - char bytes[len]; - env->copy_string_contents(env, args[1], bytes, &len); + if (len > 0) { + char bytes[len]; + env->copy_string_contents(env, args[1], bytes, &len); - vterm_input_write(term->vt, bytes, len); - vterm_screen_flush_damage(term->vts); + vterm_input_write(term->vt, bytes, len); + vterm_screen_flush_damage(term->vts); + } return env->make_integer(env, 0); } @@ -1522,7 +1522,7 @@ Then triggers a redraw from the module." (- count 1 partial))) 'eight-bit)) (cl-incf partial)) - (when (> count partial 0) + (when (> (1+ count) partial 0) (setq vterm--undecoded-bytes (substring decoded-substring (- partial))) (setq decoded-substring |
