__mark_reset(d, m, 0, 0);
}
-struct mark *doc_next_mark(struct mark *m)
+struct mark *doc_next_mark_view(struct mark *m)
{
struct tlist_head *tl = &m->view;
return NULL;
}
-struct mark *doc_prev_mark(struct mark *m)
+struct mark *doc_prev_mark_view(struct mark *m)
{
struct tlist_head *tl = &m->view;
return NULL;
}
-struct mark *doc_prev_mark_all_safe(struct doc *d, struct mark *m)
+struct mark *doc_prev_mark_all(struct mark *m)
{
if (!HLIST_IS_HEAD(m->all.pprev))
return hlist_prev_entry(m, all);
return NULL;
}
-struct mark *doc_prev_mark_all(struct mark *m)
-{
- /* Must never be called on first mark */
- return hlist_prev_entry(m, all);
-}
-
-
struct mark *doc_new_mark(struct doc *d, int view)
{
struct mark *ret;
*
*/
-static struct mark *next_mark(struct mark *m)
-{
- if (m->all.next == NULL)
- return NULL;
- return hlist_next_entry(m, all);
-}
-static struct mark *prev_mark(struct doc *d, struct mark *m)
-{
- if (HLIST_IS_HEAD(m->all.pprev))
- return NULL;
- return hlist_prev_entry(m, all);
-}
-
static void swap_lists(struct mark *p1, struct mark *p2)
{
struct point_links *tmp;
wint_t ret;
struct mark *m2 = NULL;
- while ((m2 = next_mark(m)) != NULL &&
+ while ((m2 = doc_next_mark_all(m)) != NULL &&
mark_same(d, m, m2))
mark_forward_over(m, m2);
return ret;
/* FIXME do I need to do this - is it precise enough? */
- while ((m2 = next_mark(m)) != NULL &&
+ while ((m2 = doc_next_mark_all(m)) != NULL &&
mark_same(d, m, m2))
mark_forward_over(m, m2);
return ret;
wint_t ret;
struct mark *mp = NULL;
- while ((mp = prev_mark(d, m)) != NULL &&
+ while ((mp = doc_prev_mark_all(m)) != NULL &&
mark_same(d, m, mp))
mark_backward_over(m, mp);
ret = mark_step2(d, m, 0, 1);
if (ret == WEOF)
return ret;
- while ((mp = prev_mark(d, m)) != NULL &&
+ while ((mp = doc_prev_mark_all(m)) != NULL &&
mark_same(d, m, mp))
mark_backward_over(m, mp);
return ret;
struct mark *doc_first_mark_all(struct doc *d);
struct mark *doc_next_mark_all(struct mark *m);
struct mark *doc_prev_mark_all(struct mark *m);
-struct mark *doc_prev_mark_all_safe(struct doc *d, struct mark *m);
-struct mark *doc_next_mark(struct mark *m);
-struct mark *doc_prev_mark(struct mark *m);
+struct mark *doc_next_mark_view(struct mark *m);
+struct mark *doc_prev_mark_view(struct mark *m);
void point_reset(struct mark *p);
void mark_reset(struct doc *d, struct mark *m);
void __mark_reset(struct doc *d, struct mark *m, int new, int end);
i = text_retreat_towards(t, &m->ref, &end);
if (i == 0)
break;
- while ((m2 = doc_prev_mark_all_safe(&t->doc, m)) != NULL &&
+ while ((m2 = doc_prev_mark_all(m)) != NULL &&
m2->ref.c == m->ref.c &&
m2->ref.o >= m->ref.o)
mark_backward_over(m, m2);
&start, &end) == 0)
break;
- early = doc_prev_mark_all_safe(&t->doc, m);
+ early = doc_prev_mark_all(m);
if (early && !text_ref_same(t, &early->ref, &start))
early = NULL;
mark_free(myend);
text_del(t, &pm->ref, l, &first);
- for (m = doc_prev_mark_all_safe(&t->doc, pm);
+ for (m = doc_prev_mark_all(pm);
m && text_update_prior_after_change(t, &m->ref, &pm->ref, &pm->ref);
- m = doc_prev_mark_all_safe(&t->doc, m))
+ m = doc_prev_mark_all(m))
;
for (m = doc_next_mark_all(pm);
m && text_update_following_after_change(t, &m->ref, &pm->ref, &pm->ref);
;
text_check_consistent(t);
}
- early = doc_prev_mark_all_safe(&t->doc, pm);
+ early = doc_prev_mark_all(pm);
if (early && !mark_same(&t->doc, early, pm))
early = NULL;
struct mark *m;
text_add_str(t, &pm->ref, str, &start, &first);
- for (m = doc_prev_mark_all_safe(&t->doc, pm);
+ for (m = doc_prev_mark_all(pm);
m && text_update_prior_after_change(t, &m->ref, &start, &pm->ref);
- m = doc_prev_mark_all_safe(&t->doc, m))
+ m = doc_prev_mark_all(m))
;
for (m = doc_next_mark_all(pm);
m && text_update_following_after_change(t, &m->ref, &start, &pm->ref);
if (!attr_find(*mark_attr(m), "lines"))
ret = 1;
while (1) {
- next = doc_next_mark(m);
+ next = doc_next_mark_view(m);
if (!next)
break;
if (doc_prior(d, next) == '\n' &&
/* Force and update to make sure spacing stays sensible */
if (need_recalc(d, m))
/* need to update this one */
- do_count(d, m, doc_next_mark(m), &l, &w, &c, 1);
+ do_count(d, m, doc_next_mark_view(m), &l, &w, &c, 1);
- m = doc_next_mark(m);
+ m = doc_next_mark_view(m);
}
if (!m) {
/* fell off the end, just count directly */
}
if (need_recalc(d, m))
/* need to update this one */
- do_count(d, m, doc_next_mark(m), &l, &w, &c, 1);
+ do_count(d, m, doc_next_mark_view(m), &l, &w, &c, 1);
/* 'm' is not before 'start', it might be after.
* if 'm' is not before 'end' either, just count from
lines = words = chars = 0;
else
do_count(d, start, m, &lines, &words, &chars, 0);
- while ((m2 = doc_next_mark(m)) != NULL &&
+ while ((m2 = doc_next_mark_view(m)) != NULL &&
(!end || mark_ordered(m2, end))) {
/* Need everything from m to m2 */
lines += attr_find_int(*mark_attr(m), "lines");
chars += attr_find_int(*mark_attr(m), "chars");
m = m2;
if (need_recalc(d, m))
- do_count(d, m, doc_next_mark(m), &l, &w, &c, 1);
+ do_count(d, m, doc_next_mark_view(m), &l, &w, &c, 1);
}
/* m is the last mark before end */
if (!end) {