vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

commit d03eac0cb2fac7305b3ee38ba6e3741765c8812c
parent f9fdb727475ed13e8a200702f512fd59a7031fd7
Author: Marc André Tanner <mat@brain-dump.org>
Date:   Wed,  3 May 2017 18:00:52 +0200

text: remove text_history_get function

As currently implemented this does not properly integrate with
multiple cursor support. The functionality should be provided
in a layer higher up.

The jumplist and changelist need to be redesigned, for now they
are broken.

Diffstat:
Mtext.c | 12------------
Mtext.h | 3---
Mvis-motions.c | 4++--
3 files changed, 2 insertions(+), 17 deletions(-)

diff --git a/text.c b/text.c @@ -1675,15 +1675,3 @@ size_t text_mark_get(Text *txt, Mark mark) { return EPOS; } - -size_t text_history_get(Text *txt, size_t index) { - for (Revision *rev = txt->current_revision ? txt->current_revision : txt->history; rev; rev = rev->prev) { - if (index-- == 0) { - Change *c = rev->change; - while (c && c->next) - c = c->next; - return c ? c->pos : EPOS; - } - } - return EPOS; -} diff --git a/text.h b/text.h @@ -357,7 +357,4 @@ ssize_t text_write_range(Text*, Filerange*, int fd); bool text_mmaped(Text*, const char *ptr); /** @} */ -/* get position of change denoted by index, where 0 indicates the most recent */ -size_t text_history_get(Text*, size_t index); - #endif diff --git a/vis-motions.c b/vis-motions.c @@ -187,7 +187,7 @@ static size_t window_changelist_next(Vis *vis, Win *win, size_t pos) { cl->index = 0; else if (cl->index > 0 && pos == cl->pos) cl->index--; - size_t newpos = text_history_get(txt, cl->index); + size_t newpos = pos; if (newpos == EPOS) cl->index++; else @@ -204,7 +204,7 @@ static size_t window_changelist_prev(Vis *vis, Win *win, size_t pos) { cl->index = 0; else if (pos == cl->pos) win->changelist.index++; - size_t newpos = text_history_get(txt, cl->index); + size_t newpos = pos; if (newpos == EPOS) cl->index--; else