diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2017-04-19 20:05:19 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2017-04-20 22:47:07 +0200 |
| commit | 9f2210c8ee567c75f43d18313b668aee06eda597 (patch) | |
| tree | f806ed08d5cf1cd9d3947c7f4804f46ad18fbccc /vis-core.h | |
| parent | 2c8fcaa8fbb17b99aa5b0f8bfbbe0451dfa509f3 (diff) | |
| download | vis-9f2210c8ee567c75f43d18313b668aee06eda597.tar.gz vis-9f2210c8ee567c75f43d18313b668aee06eda597.tar.xz | |
vis: start cleaning up register related code
Now that register.h is no longer used by view.h we can move the struct
and function declarations to vis-core.h.
Diffstat (limited to 'vis-core.h')
| -rw-r--r-- | vis-core.h | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -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 |
