diff options
| -rw-r--r-- | elisp.c | 4 | ||||
| -rw-r--r-- | elisp.h | 2 | ||||
| -rw-r--r-- | vterm-module.c | 1 |
3 files changed, 7 insertions, 0 deletions
@@ -35,6 +35,10 @@ emacs_value length(emacs_env *env, emacs_value string) { emacs_value list(emacs_env *env, emacs_value elements[], ptrdiff_t len) { return env->funcall(env, Flist, len, elements); } +emacs_value nth(emacs_env *env, int idx, emacs_value list) { + emacs_value eidx = env->make_integer(env, idx); + return env->funcall(env, Fnth, 2, (emacs_value[]){eidx, list}); +} void put_text_property(emacs_env *env, emacs_value string, emacs_value property, emacs_value value) { @@ -27,6 +27,7 @@ emacs_value Qcursor_type; emacs_value Fsymbol_value; emacs_value Flength; emacs_value Flist; +emacs_value Fnth; emacs_value Ferase_buffer; emacs_value Finsert; emacs_value Fgoto_char; @@ -57,6 +58,7 @@ emacs_value symbol_value(emacs_env *env, emacs_value symbol); int string_bytes(emacs_env *env, emacs_value string); emacs_value length(emacs_env *env, emacs_value string); emacs_value list(emacs_env *env, emacs_value elements[], ptrdiff_t len); +emacs_value nth(emacs_env *env, int idx, emacs_value list); void put_text_property(emacs_env *env, emacs_value string, emacs_value property, emacs_value value); void erase_buffer(emacs_env *env); diff --git a/vterm-module.c b/vterm-module.c index a4f9918..0c3e5b0 100644 --- a/vterm-module.c +++ b/vterm-module.c @@ -823,6 +823,7 @@ int emacs_module_init(struct emacs_runtime *ert) { Fsymbol_value = env->make_global_ref(env, env->intern(env, "symbol-value")); Flength = env->make_global_ref(env, env->intern(env, "length")); Flist = env->make_global_ref(env, env->intern(env, "list")); + Fnth = env->make_global_ref(env, env->intern(env, "nth")); Ferase_buffer = env->make_global_ref(env, env->intern(env, "erase-buffer")); Finsert = env->make_global_ref(env, env->intern(env, "insert")); Fgoto_char = env->make_global_ref(env, env->intern(env, "goto-char")); |
