aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vterm-module.c10
-rw-r--r--vterm-module.h36
2 files changed, 37 insertions, 9 deletions
diff --git a/vterm-module.c b/vterm-module.c
index e5196ce..4da49e2 100644
--- a/vterm-module.c
+++ b/vterm-module.c
@@ -1,4 +1,4 @@
-#include <emacs-module.h>
+#include "vterm-module.h"
#include <fcntl.h>
#include <pty.h>
#include <stdio.h>
@@ -10,14 +10,6 @@
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
-/* Declare mandatory GPL symbol. */
-int plugin_is_GPL_compatible;
-
-struct Term {
- VTerm *vt;
- int masterfd;
-};
-
/* Bind NAME to FUN. */
static void bind_function(emacs_env *env, const char *name, emacs_value Sfun) {
/* Set the function cell of the symbol named NAME to SFUN using
diff --git a/vterm-module.h b/vterm-module.h
new file mode 100644
index 0000000..745052e
--- /dev/null
+++ b/vterm-module.h
@@ -0,0 +1,36 @@
+#include <emacs-module.h>
+#include <vterm.h>
+
+int plugin_is_GPL_compatible;
+
+struct Term {
+ VTerm *vt;
+ int masterfd;
+};
+
+static void bind_function(emacs_env *env, const char *name, emacs_value Sfun);
+static void provide(emacs_env *env, const char *feature);
+static void message(emacs_env *env, char *message);
+static void message_value(emacs_env *env, emacs_value value);
+static int string_bytes(emacs_env *env, emacs_value string);
+static emacs_value string_length(emacs_env *env, emacs_value string);
+static emacs_value list(emacs_env *env, emacs_value *elements, ptrdiff_t len);
+static void put_text_property(emacs_env *env, emacs_value property,
+ emacs_value value, emacs_value string);
+static void color_text(emacs_env *env, emacs_value string, emacs_value fg,
+ emacs_value bg);
+static void byte_to_hex(uint8_t byte, char *hex);
+static emacs_value color_to_rgb_string(emacs_env *env, VTermColor color);
+static void erase_buffer(emacs_env *env);
+static void insert(emacs_env *env, emacs_value string);
+static void goto_char(emacs_env *env, int pos);
+
+static void vterm_redraw(VTerm *vt, emacs_env *env);
+static void vterm_flush_output(struct Term *term);
+static void term_finalize(void *term);
+static emacs_value Fvterm_new(emacs_env *env, ptrdiff_t nargs,
+ emacs_value args[], void *data);
+static void process_key(struct Term *term, char *key, VTermModifier modifier);
+static emacs_value Fvterm_update(emacs_env *env, ptrdiff_t nargs,
+ emacs_value args[], void *data);
+int emacs_module_init(struct emacs_runtime *ert);