From: NeilBrown Date: Sun, 2 Jul 2023 12:01:04 +0000 (+1000) Subject: Introduce mark_new() X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=dddd1b1c569c055b01bdd6ab2e91c3bdb6e8306d;p=edlib.git Introduce mark_new() mark_new() is vmark_new() for MARK_UNGROUPED. Signed-off-by: NeilBrown --- diff --git a/core-doc.c b/core-doc.c index 2ee2eb91..caadeccf 100644 --- a/core-doc.c +++ b/core-doc.c @@ -949,14 +949,14 @@ DEF_CMD(doc_get_str) buf_init(&g.b); g.end = to; if (!from) { - from = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + from = mark_new(ci->focus); if (from) call("doc:set-ref", ci->focus, 1, from); } if (!from) return Efail; if (!to) { - to = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + to = mark_new(ci->focus); if (to) call("doc:set-ref", ci->focus, 0, to); } diff --git a/core.h b/core.h index ccd3dc69..a033e48e 100644 --- a/core.h +++ b/core.h @@ -291,6 +291,10 @@ struct mark *vmark_last(struct pane *p safe, int view, struct pane *owner safe); struct mark *vmark_at_or_before(struct pane *p safe, struct mark *m safe, int view, struct pane *owner); struct mark *vmark_new(struct pane *p safe, int view, struct pane *owner); +static inline struct mark *mark_new(struct pane *p safe) +{ + return vmark_new(p, MARK_UNGROUPED, NULL); +} void mark_clip(struct mark *m safe, struct mark *start, struct mark *end, bool tostart); void marks_clip(struct pane *p safe, struct mark *start, struct mark *end, diff --git a/doc-dir.c b/doc-dir.c index efddc469..b58c9863 100644 --- a/doc-dir.c +++ b/doc-dir.c @@ -222,7 +222,7 @@ DEF_CMD(dir_load_file) int doclose = 0; prev = NULL; - m = vmark_new(ci->home, MARK_UNGROUPED, NULL); + m = mark_new(ci->home); if (!m) return Efail; if (fd < 0) { @@ -1074,7 +1074,7 @@ static void add_name(struct buf *b safe, char *name safe) static char *collect_names(struct pane *p safe, char *type, struct mark *mark) { - struct mark *m = vmark_new(p, MARK_UNGROUPED, NULL); + struct mark *m = mark_new(p); struct buf b; if (!m) diff --git a/doc-docs.c b/doc-docs.c index 4621ca48..72f16858 100644 --- a/doc-docs.c +++ b/doc-docs.c @@ -417,7 +417,7 @@ DEF_CMD(docs_callback_appeared) DEF_CMD(doc_damage) { struct pane *dp = ci->home->data; - struct mark *m = vmark_new(dp, MARK_UNGROUPED, NULL); + struct mark *m = mark_new(dp); struct pane *child = ci->focus; if (!child || !m) diff --git a/doc-email.c b/doc-email.c index 14ce1106..67c96e75 100644 --- a/doc-email.c +++ b/doc-email.c @@ -581,7 +581,7 @@ static bool handle_text(struct pane *p safe, char *type, char *xfer, char *disp, 0, NULL, NULL, 0, NULL, ""); if (transformed) { - m = vmark_new(transformed, MARK_UNGROUPED, NULL); + m = mark_new(transformed); call("doc:set-ref", transformed, 1, m); call("doc:replace", transformed, 1, m, "01", 0, m, ",markup:func=doc:email:render-image"); @@ -896,7 +896,7 @@ DEF_CMD(open_email) close(fd); if (!p) return Efallthrough; - start = vmark_new(p, MARK_UNGROUPED, NULL); + start = mark_new(p); if (!start) { pane_close(p); return Efallthrough; @@ -1197,7 +1197,7 @@ DEF_CMD(attach_email_view) struct mark *m; int n, i; - m = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + m = mark_new(ci->focus); if (!m) return Efail; call("doc:set-ref", ci->focus, 0, m); diff --git a/doc-multipart.c b/doc-multipart.c index bf8f2b43..39eeb184 100644 --- a/doc-multipart.c +++ b/doc-multipart.c @@ -182,7 +182,7 @@ static void change_part(struct mp_info *mpi safe, struct mark *m safe, m->ref.m = NULL; } if (part < mpi->nparts && (p = &mpi->parts[part]) && p->pane) { - m1 = vmark_new(p->pane, MARK_UNGROUPED, NULL); + m1 = mark_new(p->pane); if (m1) { call("doc:set-ref", p->pane, !end, m1); m->ref.m = m1; @@ -590,7 +590,7 @@ DEF_CMD(mp_attr) p = &mpi->parts[d]; if (d != ci->mark->ref.docnum && p->pane) { - m1 = vmark_new(p->pane, MARK_UNGROUPED, NULL); + m1 = mark_new(p->pane); call("doc:set-ref", p->pane, (d > ci->mark->ref.docnum), m1); } diff --git a/lang-python.c b/lang-python.c index 98f5725f..fe309fb6 100644 --- a/lang-python.c +++ b/lang-python.c @@ -2015,7 +2015,7 @@ static const PyGetSetDef mark_getseters[] = { {NULL} /* Sentinel */ }; -static Mark *mark_new(PyTypeObject *type safe, PyObject *args, PyObject *kwds) +static Mark *Mark_new(PyTypeObject *type safe, PyObject *args, PyObject *kwds) { Mark *self; @@ -2419,7 +2419,7 @@ static PyTypeObject MarkType = { .tp_methods = (PyMethodDef*)mark_methods, .tp_getset = (PyGetSetDef*)mark_getseters, .tp_init = (initproc)Mark_init, - .tp_new = (newfunc)mark_new, + .tp_new = (newfunc)Mark_new, .tp_repr = (reprfunc)mark_repr, .tp_as_number = (PyNumberMethods*)&mark_as_num, }; diff --git a/lib-history.c b/lib-history.c index f503dcb1..b512bd78 100644 --- a/lib-history.c +++ b/lib-history.c @@ -245,7 +245,7 @@ DEF_CMD(history_hlast) if (!doc) return Einval; - m = vmark_new(doc, MARK_UNGROUPED, NULL); + m = mark_new(doc); if (!m) return 1; call("doc:set-ref", doc, 0, m); @@ -287,7 +287,7 @@ DEF_CMD(history_last) doc = call_ret(pane, "docs:byname", ci->focus, 0, NULL, ci->str); if (!doc) return 1; - m = vmark_new(doc, MARK_UNGROUPED, NULL); + m = mark_new(doc); if (!m) return 1; call("doc:set-ref", doc, 0, m); diff --git a/lib-linefilter.c b/lib-linefilter.c index dd68b923..30fbee6a 100644 --- a/lib-linefilter.c +++ b/lib-linefilter.c @@ -355,7 +355,7 @@ DEF_CMD(filter_changed) if (!fd->match) return 1; - start = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + start = mark_new(ci->focus); if (!start) return Efail; if (ci->mark && (!ci->mark2 || ci->mark2->seq > ci->mark->seq)) @@ -374,7 +374,7 @@ DEF_CMD(filter_changed) mark_to_mark(start, m); } - end = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + end = mark_new(ci->focus); if (!end) { mark_free(start); return Efail; diff --git a/mode-emacs.c b/mode-emacs.c index 04d9c587..65575eda 100644 --- a/mode-emacs.c +++ b/mode-emacs.c @@ -1006,7 +1006,7 @@ DEF_CMD(find_prevnext) struct mark *m, *m2; attr_set_str(&ci->home->attrs, "find-doc", name); - m = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + m = mark_new(ci->focus); m2 = m ? mark_dup(m) : NULL; call("doc:file", ci->focus, -1, m); call("doc:file", ci->focus, 1, m2); @@ -2445,7 +2445,7 @@ DEF_CMD(emacs_press) struct mark *pt = call_ret(mark, "doc:point", ci->focus); struct mark *mk = call_ret(mark2, "doc:point", ci->focus); struct mark *m2 = call_ret(mark2, "doc:point", ci->focus, 2); - struct mark *m = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + struct mark *m = mark_new(ci->focus); char *type; if (!m || !pt) { @@ -2495,7 +2495,7 @@ DEF_CMD(emacs_release) struct mark *p = call_ret(mark, "doc:point", ci->focus); struct mark *mk = call_ret(mark2, "doc:point", ci->focus); struct mark *m2 = call_ret(mark2, "doc:point", ci->focus, 2); - struct mark *m = vmark_new(ci->focus, MARK_UNGROUPED, NULL); + struct mark *m = mark_new(ci->focus); char *type; int prev_pos; int moved; diff --git a/render-lines.c b/render-lines.c index b2593433..607f1627 100644 --- a/render-lines.c +++ b/render-lines.c @@ -1222,7 +1222,7 @@ DEF_CMD(render_lines_revise) if (hdr) { if (!rl->header) - rl->header = vmark_new(focus, MARK_UNGROUPED, NULL); + rl->header = mark_new(focus); if (rl->header) { vmark_set(p, rl->header, hdr); measure_line(p, focus, rl->header, -1);