aboutsummaryrefslogtreecommitdiff
path: root/vis-core.h
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-07-10 17:27:04 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-07-10 18:26:05 +0200
commitd4bba6e46fa1ab67947508c95a4198dbcf060489 (patch)
tree070f4d37fe37433ce68bf7aa77ba23bc475563c5 /vis-core.h
parent6e0532af78294c76d0e0a187a40d330518bab0a8 (diff)
downloadvis-d4bba6e46fa1ab67947508c95a4198dbcf060489.tar.gz
vis-d4bba6e46fa1ab67947508c95a4198dbcf060489.tar.xz
vis: implement jump list in terms of marks
Diffstat (limited to 'vis-core.h')
-rw-r--r--vis-core.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/vis-core.h b/vis-core.h
index 024261c..9c6a635 100644
--- a/vis-core.h
+++ b/vis-core.h
@@ -8,7 +8,6 @@
#include "text.h"
#include "text-util.h"
#include "map.h"
-#include "ring-buffer.h"
#include "array.h"
#include "buffer.h"
#include "util.h"
@@ -134,6 +133,12 @@ typedef struct {
enum SamError error; /* non-zero in case something went wrong */
} Transcript;
+typedef struct {
+ Array prev;
+ Array next;
+ size_t max;
+} MarkList;
+
struct File { /* shared state among windows displaying the same file */
Text *text; /* data structure holding the file content */
const char *name; /* file name used when loading/saving */
@@ -159,7 +164,7 @@ struct Win {
UiWin *ui; /* ui object handling visual appearance of this window */
File *file; /* file being displayed in this window */
View *view; /* currently displayed part of underlying text */
- RingBuffer *jumplist; /* LRU jump management */
+ MarkList jumplist; /* LRU jump management */
ChangeList changelist; /* state for iterating through least recently changes */
Array saved_selections; /* register used to store selections */
Mode modes[VIS_MODE_INVALID]; /* overlay mods used for per window key bindings */
@@ -276,9 +281,12 @@ void file_name_set(File*, const char *name);
bool register_init(Register*);
void register_release(Register*);
-void marks_init(Array*);
+void mark_init(Array*);
void mark_release(Array*);
+void marklist_init(MarkList*, size_t max);
+void marklist_release(MarkList*);
+
const char *register_get(Vis*, Register*, size_t *len);
const char *register_slot_get(Vis*, Register*, size_t slot, size_t *len);