From: NeilBrown Date: Thu, 26 Nov 2015 04:22:10 +0000 (+1100) Subject: Remove pointp arg for render-line-prev X-Git-Tag: lca2016~198 X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=8cdf1553a9c8f8b66fb2469515bf79e19fbdef24;p=edlib.git Remove pointp arg for render-line-prev We only needed the doc, and we can get that from the pane. Signed-off-by: NeilBrown --- diff --git a/doc-text.c b/doc-text.c index 793208d6..dfbb6dae 100644 --- a/doc-text.c +++ b/doc-text.c @@ -1544,7 +1544,7 @@ DEF_CMD(render_line_prev) * If we hit start-of-file without finding newline, return -1; */ struct mark *m = ci->mark; - struct doc *d = (*ci->pointp)->doc; + struct doc *d = ci->home->data; struct mark *boundary = NULL; int since_boundary; int rpt = RPT_NUM(ci); diff --git a/render-complete.c b/render-complete.c index 75c186d2..1fd8a6f4 100644 --- a/render-complete.c +++ b/render-complete.c @@ -71,13 +71,13 @@ DEF_CMD(render_complete_prev) */ struct cmd_info ci2 = {0}, ci3 = {0}; struct complete_data *cd = ci->home->data; - struct doc *d = (*ci->pointp)->doc; + struct pane *dp = doc_get_pane(ci->home); + struct doc *d = dp->data; int plen; int ret; ci2.key = ci->key; ci2.mark = ci->mark; - ci2.pointp = ci->pointp; ci2.focus = ci->home->parent; ci2.numeric = 0; @@ -163,7 +163,6 @@ DEF_CMD(complete_eol) ci2.key = "render-line-prev"; ci2.numeric = 1; ci2.mark = ci->mark; - ci2.pointp = ci->pointp; ci2.focus = ci->focus; ci2.home = ci->home; if (render_complete_prev_func(&ci2) < 0) @@ -223,7 +222,6 @@ DEF_CMD(complete_set_prefix) ci2.key = "render-line-prev"; ci2.numeric = 1; ci2.mark = m; - ci2.pointp = ptp; ci2.focus = p; ci2.home = p; ci2.extra = 42; /* request copy of line in str2 */ diff --git a/render-format.c b/render-format.c index ea708495..fcf6d6f9 100644 --- a/render-format.c +++ b/render-format.c @@ -155,7 +155,8 @@ endwhile: DEF_CMD(render_line_prev) { struct mark *m = ci->mark; - struct doc *d = (*ci->pointp)->doc; + struct pane *dp = doc_get_pane(ci->home); + struct doc *d = dp->data; if (RPT_NUM(ci) == 0 && doc_following(d, m) != WEOF) /* always at start-of-line */ diff --git a/render-hex.c b/render-hex.c index 4d9b1d3e..265b3172 100644 --- a/render-hex.c +++ b/render-hex.c @@ -192,8 +192,8 @@ DEF_CMD(render_line_prev) /* If ->numeric is 0, round down to multiple of 16. * if it is 1, subtract a further 16. */ - struct point **ptp = ci->pointp; - struct doc *d = (*ptp)->doc; + struct pane *dp = doc_get_pane(ci->home); + struct doc *d = dp->data; struct cmd_info ci2 = {0}; int to, from; diff --git a/render-lines.c b/render-lines.c index 0e6cf849..92ceaa1b 100644 --- a/render-lines.c +++ b/render-lines.c @@ -257,14 +257,13 @@ static void render_line(struct pane *p, char *line, int *yp, int dodraw, free(buf_final(&attr)); } -static struct mark *call_render_line_prev(struct pane *p, struct point **ptp, +static struct mark *call_render_line_prev(struct pane *p, struct mark *m, int n, int *found) { struct cmd_info ci = {0}; int ret; ci.key = "render-line-prev"; - ci.pointp = ptp; ci.mark = m; ci.focus = p; ci.numeric = n; @@ -391,7 +390,7 @@ static void find_lines(struct point **ptp, struct pane *p) d = (*ptp)->doc; top = container_of(vmark_first(p, rl->typenum), struct rl_mark, m); bot = container_of(vmark_last(p, rl->typenum), struct rl_mark, m); - m = call_render_line_prev(p, ptp, mark_at_point(*ptp, rl->typenum), + m = call_render_line_prev(p, mark_at_point(*ptp, rl->typenum), 0, &rl->top_sol); if (!m) return; @@ -427,8 +426,7 @@ static void find_lines(struct point **ptp, struct pane *p) lines_above -= 1; y += 1; } else { - m = call_render_line_prev(p, ptp, - mark_dup(&start->m, 0), + m = call_render_line_prev(p, mark_dup(&start->m, 0), 1, &rl->top_sol); if (!m) { /* no text before 'start' */ @@ -598,7 +596,7 @@ DEF_CMD(render_lines_refresh) m = vmark_first(p, rl->typenum); if (rl->top_sol && m) - m = call_render_line_prev(p, ci->pointp, mark_dup(m, 0), 0, + m = call_render_line_prev(p, mark_dup(m, 0), 0, &rl->top_sol); if (m) { @@ -686,7 +684,7 @@ DEF_CMD(render_lines_move) continue; } - top = call_render_line_prev(p, ptp, mark_dup(top, 0), + top = call_render_line_prev(p, mark_dup(top, 0), 1, &rl->top_sol); if (!top) break;