diff options
| author | jixiuf <jixiuf@qq.com> | 2019-08-11 12:06:40 +0800 |
|---|---|---|
| committer | jixiuf <jixiuf@qq.com> | 2019-08-11 12:06:40 +0800 |
| commit | 2c313fce3db7d8c393a24c511ba591160fe61c99 (patch) | |
| tree | 348faf3319e60f149994e60f7e3d65b549252c32 | |
| parent | 894f306554ef358eee977e111041e7a9f1f2e2e5 (diff) | |
bind function: nth
| -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")); |
