aboutsummaryrefslogtreecommitdiff
path: root/elisp.h
diff options
context:
space:
mode:
authorLukas Fürmetz <fuermetz@mailbox.org>2017-11-15 22:13:55 +0100
committerLukas Fürmetz <fuermetz@mailbox.org>2017-11-16 12:05:24 +0100
commit14ef6c59279d6fde95e70db924e376ea9bb57516 (patch)
tree9cde46df7a480a9da0458526d6168e9f5111db9b /elisp.h
parent865528b34398ee4ad9d7dcfa86e54e27106bd4d5 (diff)
Extract elisp related functionality into elisp.c
Diffstat (limited to 'elisp.h')
-rw-r--r--elisp.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/elisp.h b/elisp.h
new file mode 100644
index 0000000..2cde1a0
--- /dev/null
+++ b/elisp.h
@@ -0,0 +1,41 @@
+#include <emacs-module.h>
+#include "vterm.h"
+
+// Emacs symbols
+emacs_value Qt;
+emacs_value Qnil;
+emacs_value Qnormal;
+emacs_value Qbold;
+emacs_value Qitalic;
+emacs_value Qforeground;
+emacs_value Qbackground;
+emacs_value Qweight;
+emacs_value Qunderline;
+emacs_value Qslant;
+emacs_value Qreverse;
+emacs_value Qstrike;
+emacs_value Qface;
+
+// Emacs functions
+emacs_value Flength;
+emacs_value Flist;
+emacs_value Ferase_buffer;
+emacs_value Finsert;
+emacs_value Fgoto_char;
+emacs_value Fput_text_property;
+
+// Utils
+void bind_function(emacs_env *env, const char *name, emacs_value Sfun);
+void provide(emacs_env *env, const char *feature);
+int string_bytes(emacs_env *env, emacs_value string);
+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);
+void insert(emacs_env *env, emacs_value string);
+void goto_char(emacs_env *env, int pos);