]> git.neil.brown.name Git - edlib.git/commitdiff
Change doc_find to return a pane.
authorNeilBrown <neil@brown.name>
Wed, 25 Nov 2015 03:38:15 +0000 (14:38 +1100)
committerNeilBrown <neil@brown.name>
Wed, 25 Nov 2015 03:38:15 +0000 (14:38 +1100)
That fits the pattern better.

Signed-off-by: NeilBrown <neil@brown.name>
core-doc.c
core.h
mode-emacs.c

index e8b52c74d83e99b082a4eb544f9dfb8dc9813c55..6e795094584a1c633df0ba5e26351f5641007d88 100644 (file)
@@ -256,14 +256,14 @@ void doc_set_name(struct doc *d, char *name)
        d->name = nname;
 }
 
-struct doc *doc_find(struct editor *ed, char *name)
+struct pane *doc_find(struct editor *ed, char *name)
 {
        struct pane *p;
 
        list_for_each_entry(p, &ed->root.focus->children, siblings) {
                struct doc *d = p->data;
                if (strcmp(name, d->name) == 0)
-                       return d;
+                       return p;
        }
        return NULL;
 }
diff --git a/core.h b/core.h
index 2ef618da26667bf14a33ac54c02b6bfd23310687..87e29053982c67acdfab350abf894e99890184fb 100644 (file)
--- a/core.h
+++ b/core.h
@@ -106,7 +106,7 @@ struct pane *doc_open(struct editor *ed, struct pane *parent, int fd,
                      char *name, char *render);
 struct pane *doc_attach(struct pane *parent, struct doc *d);
 void doc_set_name(struct doc *d, char *name);
-struct doc *doc_find(struct editor *ed, char *name);
+struct pane *doc_find(struct editor *ed, char *name);
 void doc_promote(struct doc *d);
 int  doc_destroy(struct doc *d);
 
index a4dce6da8a814016c8bd6fcfd692b1f7b75c2161..5c4f519c7970a638a5285a227e3a2ee4ac8fe526 100644 (file)
@@ -409,7 +409,6 @@ DEF_CMD(emacs_file_complete)
 DEF_CMD(emacs_finddoc)
 {
        struct pane *p, *par;
-       struct doc *d;
        struct cmd_info ci2 = {0};
 
        if (strncmp(ci->key, "Doc Found", 9) != 0) {
@@ -421,7 +420,6 @@ DEF_CMD(emacs_finddoc)
                ptp = pane_point(pane_final_child(p));
                /* Want to work with the document pane */
                p = container_of(ptp, struct pane, point);
-               d = (*ptp)->doc;
                if (strncmp(ci->key, "emCX4-", 6) == 0) {
                        attr_set_str(&p->attrs, "prefix",
                                     "Find Document Other Window: ", -1);
@@ -431,7 +429,7 @@ DEF_CMD(emacs_finddoc)
                        attr_set_str(&p->attrs, "prefix", "Find Document: ", -1);
                        attr_set_str(&p->attrs, "done-key", "Doc Found", -1);
                }
-               doc_set_name(d, "Find Document");
+               doc_set_name((*ptp)->doc, "Find Document");
                ci2.key = "local-set-key";
                ci2.focus = p;
                ci2.str = "emacs:doc-complete";
@@ -455,12 +453,12 @@ DEF_CMD(emacs_finddoc)
                par = p->parent;
        /* par is the tile */
 
-       d = doc_find(pane2ed(par), ci->str);
-       if (!d)
+       p = doc_find(pane2ed(par), ci->str);
+       if (!p)
                return 1;
        if (par->focus)
                pane_close(par->focus);
-       p = pane_attach(par, "view", d->home, NULL);
+       p = pane_attach(par, "view", p, NULL);
        if (!p)
                return 0;
        render_attach(NULL, p);