aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elisp.c4
-rw-r--r--elisp.h2
-rw-r--r--vterm-module.c1
3 files changed, 7 insertions, 0 deletions
diff --git a/elisp.c b/elisp.c
index 0fe608a..c6d3ed8 100644
--- a/elisp.c
+++ b/elisp.c
@@ -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) {
diff --git a/elisp.h b/elisp.h
index 73fc4ec..3cfd319 100644
--- a/elisp.h
+++ b/elisp.h
@@ -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"));