aboutsummaryrefslogtreecommitdiff
path: root/vis-core.h
diff options
context:
space:
mode:
Diffstat (limited to 'vis-core.h')
-rw-r--r--vis-core.h30
1 files changed, 29 insertions, 1 deletions
diff --git a/vis-core.h b/vis-core.h
index b0caee1..4df0cd4 100644
--- a/vis-core.h
+++ b/vis-core.h
@@ -5,12 +5,13 @@
#include "vis.h"
#include "sam.h"
#include "vis-lua.h"
-#include "register.h"
#include "text.h"
+#include "text-util.h"
#include "map.h"
#include "ring-buffer.h"
#include "array.h"
#include "buffer.h"
+#include "util.h"
/* a mode contains a set of key bindings which are currently valid.
*
@@ -38,6 +39,17 @@ struct Mode {
bool visual; /* whether text selection is possible in this mode */
};
+typedef struct {
+ Array values;
+ bool linewise; /* place register content on a new line when inserting? */
+ bool append;
+ enum {
+ REGISTER_NORMAL,
+ REGISTER_BLACKHOLE,
+ REGISTER_CLIPBOARD,
+ } type;
+} Register;
+
struct OperatorContext {
int count; /* how many times should the command be executed? */
Register *reg; /* always non-NULL, set to a default register */
@@ -258,4 +270,20 @@ Win *window_new_file(Vis*, File*, enum UiOption);
const char *file_name_get(File*);
void file_name_set(File*, const char *name);
+bool register_init(Register*);
+void register_release(Register*);
+
+const char *register_get(Vis*, Register*, size_t *len);
+const char *register_slot_get(Vis*, Register*, size_t slot, size_t *len);
+
+bool register_put0(Vis*, Register*, const char *data);
+bool register_put(Vis*, Register*, const char *data, size_t len);
+bool register_slot_put(Vis*, Register*, size_t slot, const char *data, size_t len);
+
+bool register_put_range(Vis*, Register*, Text*, Filerange*);
+bool register_slot_put_range(Vis*, Register*, size_t slot, Text*, Filerange*);
+
+size_t register_count(Register*);
+bool register_resize(Register*, size_t count);
+
#endif