]> git.neil.brown.name Git - edlib.git/commitdiff
Remove pointp arg for render-line-prev
authorNeilBrown <neil@brown.name>
Thu, 26 Nov 2015 04:22:10 +0000 (15:22 +1100)
committerNeilBrown <neil@brown.name>
Thu, 26 Nov 2015 04:22:10 +0000 (15:22 +1100)
We only needed the doc, and we can get that from the pane.

Signed-off-by: NeilBrown <neil@brown.name>
doc-text.c
render-complete.c
render-format.c
render-hex.c
render-lines.c

index 793208d6fc9cf9accef3c79ff4d1b681ad7e7b55..dfbb6dae68c20bcaa3769391f053f4e0c6a61bd8 100644 (file)
@@ -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);
index 75c186d21a3a3d6f23297e0e8e1cdb1968bfb8f9..1fd8a6f418c0df5873e92925edb740fc717d5b8b 100644 (file)
@@ -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 */
index ea708495573d93ed0b13c62a3f8111a5875d3023..fcf6d6f95f06097d296ee3089ec22358b068c3b8 100644 (file)
@@ -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 */
index 4d9b1d3e04078ebaf50a746522e4fbbb69dc578c..265b3172931ed52e05ab7d29a2dd5ded12ac2e3f 100644 (file)
@@ -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;
 
index 0e6cf8498e1e32fc46e663eeccab5c5c2f16670a..92ceaa1b16edbe4fa0dd24cc2e365fd65c78f03b 100644 (file)
@@ -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;