]> git.neil.brown.name Git - edlib.git/commitdiff
Discard doc_get_pane() in favour of doc_from_pane()
authorNeilBrown <neil@brown.name>
Fri, 27 Nov 2015 01:13:30 +0000 (12:13 +1100)
committerNeilBrown <neil@brown.name>
Fri, 27 Nov 2015 01:13:30 +0000 (12:13 +1100)
The pane was (almost) never used other than to extract the document,
so just return the document.

This will allow us to change the ->data stored on a document pane.

Signed-off-by: NeilBrown <neil@brown.name>
12 files changed:
core-doc.c
core.h
doc-dir.c
emacs-search.c
lib-line-count.c
lib-search.c
lib-view.c
mode-emacs.c
render-complete.c
render-format.c
render-hex.c
render-lines.c

index 49545d7a5ace0d288526ce069ec64a6fb0e7c544..7a85cf81641d2e6f12c9f75fae2a1cd22f6fcae6 100644 (file)
@@ -422,6 +422,11 @@ DEF_CMD(doc_handle)
                return 1;
        }
 
+       if (strcmp(ci->key, "doc:find") == 0) {
+               ci->misc = d;
+               return 1;
+       }
+
        if (strcmp(ci->key, "doc:vmark-get") == 0) {
                ci->mark = do_vmark_first(d, ci->numeric);
                ci->mark2 = do_vmark_last(d, ci->numeric);
@@ -727,8 +732,7 @@ DEF_CMD(docs_open)
 
 DEF_CMD(docs_bury)
 {
-       struct pane *p = doc_get_pane(ci->home);
-       struct doc *d = p->data;
+       struct doc *d = doc_from_pane(ci->home);
 
        doc_destroy(d);
        return 1;
diff --git a/core.h b/core.h
index 926c58bc2fd2f0d878d962b66566d1efb1a954a0..224949064f9f6d9a585ec03d5ea3e16669f1b735 100644 (file)
--- a/core.h
+++ b/core.h
@@ -449,14 +449,13 @@ static inline int doc_find_view(struct pane *p, struct command *c)
        return ci.extra;
 }
 
-static inline struct pane *doc_get_pane(struct pane *p)
+static inline struct doc *doc_from_pane(struct pane *p)
 {
        struct cmd_info ci = {0};
        ci.focus = p;
-       ci.key = "doc:find-view";
-       ci.comm2 = NULL;
+       ci.key = "doc:find";
        if (key_handle_focus(&ci) == 0)
                return NULL;
-       return ci.home;
+       return ci.misc;
 }
 
index 9829c3f59fb90805ebe64ab5dfea39faec2ac9f6..99a0a494acd4565ae3cf02c7c7ebe7e441dfebbe 100644 (file)
--- a/doc-dir.c
+++ b/doc-dir.c
@@ -546,8 +546,7 @@ DEF_CMD(dir_reread)
 
 DEF_CMD(dir_close)
 {
-       struct pane *p = doc_get_pane(ci->home);
-       struct doc *d = p->data;
+       struct doc *d = doc_from_pane(ci->home);
 
        doc_destroy(d);
        return 1;
index 238f00bb3f859236b3e180b381f1509ef1f5000a..d48ff8354f1d9978dcb9085b2c614cff5348016c 100644 (file)
@@ -42,8 +42,7 @@ DEF_CMD(search_again);
 DEF_CMD(search_forward)
 {
        struct es_info *esi = ci->home->data;
-       struct pane *dp = doc_get_pane(esi->target);
-       struct doc *d = dp ? dp->data : NULL;
+       struct doc *d = doc_from_pane(esi->target);
        struct stk *s;
        char *str;
        bool first = 1;
@@ -100,8 +99,7 @@ DEF_CMD(search_retreat)
 DEF_CMD(search_add)
 {
        struct es_info *esi = ci->home->data;
-       struct pane *dp = doc_get_pane(esi->target);
-       struct doc *d = dp ? dp->data : NULL;
+       struct doc *d = doc_from_pane(esi->target);
        wint_t wch;
        char b[5];
        struct cmd_info ci2 = {0};
index 6c89d088a9c4d5e5b7da611c8fffbdb771bd2b23..61bed8ba23a608f4b5f1597a43b3a6cd0ecdaf44 100644 (file)
@@ -219,8 +219,7 @@ done:
 
 DEF_CMD(count_lines)
 {
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->home);
 
        /* FIXME optimise this away most of the time */
        count_calculate(d, NULL, NULL);
index 31dc40bb9efe573b1c32d3cbdb1540ee29e5be5f..c5027fb685ddd9a6558ba43d1a0d9d6e7060dad7 100644 (file)
@@ -15,7 +15,6 @@
 DEF_CMD(text_search)
 {
        struct mark *m;
-       struct pane *dp;
        struct doc *d;
        unsigned short *rxl;
        struct match_state *st;
@@ -24,11 +23,9 @@ DEF_CMD(text_search)
        if (!ci->str|| !ci->mark)
                return -1;
 
-       dp = doc_get_pane(ci->focus);
-       if (!dp)
+       d = doc_from_pane(ci->focus);
+       if (!d)
                return -1;
-       d = dp->data;
-
        m = ci->mark;
        rxl = rxl_parse(ci->str, NULL, 0);
        if (!rxl)
index 1736e92ea736adddec05750260aec175d297e257..8735d54eac8aa4249194b9eeeee091f1891adb43 100644 (file)
@@ -49,8 +49,7 @@ static int view_refresh(struct cmd_info *ci)
        int i;
        int mid;
        struct editor *ed = pane2ed(ci->home);
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->home);
 
        pane_check_size(p);
        p->cx = 0; p->cy = 0;
index 765fb49fa84f969bc7c7e4e389f4c46e89ec444c..07051379e2cb22285b263c419c2b4d213af0a87b 100644 (file)
@@ -113,8 +113,7 @@ REDEF_CMD(emacs_delete)
        struct cmd_info ci2 = {0};
        int ret = 0;
        struct mark *m;
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->home);
 
        m = mark_dup(ci->mark, 1);
        ci2.focus = ci->focus;
@@ -537,8 +536,7 @@ DEF_CMD(emacs_num)
 
 DEF_CMD(emacs_kill_doc)
 {
-       struct pane *p = doc_get_pane(ci->home);
-       struct doc *d = p ? p->data : NULL;
+       struct doc *d = doc_from_pane(ci->home);
 
        if (d)
                doc_destroy(d);
index eb4f45e1c79947a25dcc26b998d3da73ff254071..ced32af570215ff535b0c3e6ed2245f16012f000 100644 (file)
@@ -29,8 +29,7 @@ DEF_CMD(render_complete_line)
         */
        struct cmd_info ci2 = {0};
        struct complete_data *cd = ci->home->data;
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp ? dp->data : NULL;
+       struct doc *d = doc_from_pane(ci->home);
        int plen;
 
        if (!d || !ci->mark)
index df63b8904b7fe1410d3fae99495950bfa449fd1f..9ac872d19b0b3f5d5f240c0d216dcef536ffcfb9 100644 (file)
@@ -27,8 +27,7 @@ DEF_CMD(render_line)
        char *body = pane_attr_get(ci->focus, "line-format");
        struct rf_data *rf = ci->home->data;
        struct buf ret;
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp ? dp->data : NULL;
+       struct doc *d = doc_from_pane(ci->home);
        struct mark *m = ci->mark;
        struct mark *pm = ci->mark2;
        char *n;
@@ -97,7 +96,7 @@ DEF_CMD(render_line)
                        buf_append(&ret, ch);
                        continue;
                }
-               val = doc_attr(dp, m, 1, buf);
+               val = doc_attr(d->home, m, 1, buf);
                if (!val)
                        val = "-";
                if (*n != ':') {
@@ -152,8 +151,7 @@ endwhile:
 DEF_CMD(render_line_prev)
 {
        struct mark *m = ci->mark;
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->home);
 
        if (RPT_NUM(ci) == 0 && doc_following(d, m) != WEOF)
                /* always at start-of-line */
@@ -184,8 +182,7 @@ DEF_CMD(format_clone)
 
 DEF_CMD(format_move_line)
 {
-       struct pane *dp = doc_get_pane(ci->focus);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->focus);
        int rpt = RPT_NUM(ci);
        struct rf_data *rf = ci->home->data;
 
@@ -213,8 +210,7 @@ DEF_CMD(format_move_horiz)
        /* Horizonal movement - adjust ->rpos within fields, or
         * move to next line
         */
-       struct pane *dp = doc_get_pane(ci->focus);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->focus);
        struct rf_data *rf = ci->home->data;
        int rpt = RPT_NUM(ci);
 
index 3f43ad6370d89b13276bae04f8869cfc2da222f1..acd0c496ac8a9084436507c57b399f287a0fdd70 100644 (file)
@@ -80,8 +80,7 @@ DEF_CMD(render_hex_notify)
 
 DEF_CMD(render_hex_eol)
 {
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->home);
        struct editor *ed = pane2ed(ci->home);
        wint_t ch = 1;
        int rpt = RPT_NUM(ci);
@@ -123,8 +122,7 @@ DEF_CMD(render_line)
        struct buf ret;
        struct cmd_info ci2 = {0};
        struct mark *m = NULL;
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp ? dp->data : NULL;
+       struct doc *d = doc_from_pane(ci->home);
        struct mark *pm = ci->mark2;
        int pos;
        int i;
@@ -192,8 +190,7 @@ DEF_CMD(render_line_prev)
        /* If ->numeric is 0, round down to multiple of 16.
         * if it is 1, subtract a further 16.
         */
-       struct pane *dp = doc_get_pane(ci->home);
-       struct doc *d = dp->data;
+       struct doc *d = doc_from_pane(ci->home);
        struct cmd_info ci2 = {0};
        int to, from;
 
index cfa0f1eea7f44dde22b92a0784fa4b992737398e..f5dcadab06ce348c300317e7629e45167c656919 100644 (file)
@@ -857,8 +857,7 @@ DEF_CMD(render_lines_notify)
                                vm->mdata = NULL;
                                mark_free(vm);
                        }
-                       while ((vm = vmark_next(rm)) != NULL &&
-                              mark_same_pane(p, rm, vm, &ci2)) {
+                       while ((vm = vmark_next(rm)) != NULL && mark_same_pane(p, rm, vm, &ci2)) {
                                free(vm->mdata);
                                vm->mdata = NULL;
                                mark_free(vm);