From 5778810acd46aaec38decaa01ab54f2df5b57786 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 26 Nov 2015 09:15:51 +1100 Subject: [PATCH] Change default_render from a struct field to an attribute. Signed-off-by: NeilBrown --- core-doc.c | 3 ++- core-pane.c | 10 ++++------ core.h | 1 - doc-dir.c | 3 ++- doc-text.c | 3 ++- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core-doc.c b/core-doc.c index f1bdac33..62e45c70 100644 --- a/core-doc.c +++ b/core-doc.c @@ -402,6 +402,8 @@ static char *__docs_get_attr(struct doc *doc, struct mark *m, return " Document File"; if (strcmp(attr, "line-format") == 0) return " %+name:20 %filename"; + if (strcmp(attr, "default-renderer") == 0) + return "format"; return NULL; } p = m->ref.p; @@ -482,7 +484,6 @@ void doc_make_docs(struct editor *ed) doc_init(&ds->doc); ds->doc.ed = ed; - ds->doc.default_render = "format"; doc_set_name(&ds->doc, "*Documents*"); ed->docs = &ds->doc; diff --git a/core-pane.c b/core-pane.c index 61c6efb3..719f80c3 100644 --- a/core-pane.c +++ b/core-pane.c @@ -387,21 +387,19 @@ struct pane *render_attach(char *name, struct pane *parent) { char buf[100]; struct cmd_info ci = {0}; - struct point **ptp; int ret; /* always attach a renderer as a leaf */ parent = pane_final_child(parent); - ptp = pane_point(parent); - if (!ptp) - return NULL; if (!name) - name = (*ptp)->doc->default_render; + name = pane_attr_get(parent, "default-renderer"); + if (!name) + return NULL; sprintf(buf, "render-%s-attach", name); ci.key = buf; ci.focus = parent; - ci.pointp = ptp; + ci.pointp = pane_point(parent); ret = key_lookup(pane2ed(parent)->commands, &ci); if (ret) return ci.focus; diff --git a/core.h b/core.h index 000daa53..97f6ffb2 100644 --- a/core.h +++ b/core.h @@ -92,7 +92,6 @@ struct doc { struct pane *home; /* pane in null_display which owns this doc*/ struct map *map; char *name; - char *default_render; short deleting; /* is begin destroyed */ }; diff --git a/doc-dir.c b/doc-dir.c index e4cda10b..a6abbc9e 100644 --- a/doc-dir.c +++ b/doc-dir.c @@ -122,7 +122,6 @@ DEF_CMD(dir_new) doc_init(&dr->doc); dr->doc.map = doc_map; - dr->doc.default_render = "format"; INIT_LIST_HEAD(&dr->ents); dr->fname = NULL; ci->focus = doc_attach(ed->root.focus, &dr->doc); @@ -374,6 +373,8 @@ static char *__dir_get_attr(struct doc *d, struct mark *m, return a; if (strcmp(attr, "heading") == 0) return " Perms Mtime Owner Group File Name"; + if (strcmp(attr, "default-renderer") == 0) + return "format"; if (strcmp(attr, "line-format") == 0) return " %perms %mdate:13 %user:10 %group:10 %+name"; if (strcmp(attr, "filename") == 0) diff --git a/doc-text.c b/doc-text.c index f16f18dd..df8ddf6e 100644 --- a/doc-text.c +++ b/doc-text.c @@ -1040,7 +1040,6 @@ DEF_CMD(text_new) INIT_LIST_HEAD(&t->text); t->undo = t->redo = NULL; doc_init(&t->doc); - t->doc.default_render = "lines"; t->doc.map = text_map; t->fname = NULL; text_new_alloc(t, 0); @@ -1427,6 +1426,8 @@ static char *__text_get_attr(struct doc *d, struct mark *m, char *a = attr_get_str(d->attrs, attr, -1); if (a) return a; + if (strcmp(attr, "default-renderer") == 0) + return "lines"; if (strcmp(attr, "filename") == 0) return t->fname; return NULL; -- 2.39.5