From: NeilBrown Date: Thu, 10 Dec 2015 02:42:16 +0000 (+1100) Subject: Use attributes to get name of document instead of direct access. X-Git-Tag: lca2016~78 X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=e5a018495a97550568629268b7ac827fc40f3c32;p=edlib.git Use attributes to get name of document instead of direct access. This removes another doc_from_pane() call. Signed-off-by: NeilBrown --- diff --git a/core-doc.c b/core-doc.c index 95366e28..2d8129dc 100644 --- a/core-doc.c +++ b/core-doc.c @@ -410,6 +410,11 @@ DEF_CMD(doc_handle) return 1; } + if (strcmp(ci->key, "doc:get-attr") == 0 && + strcmp(ci->str, "doc:name") == 0) + return comm_call(ci->comm2, "callback:get_attr", ci->focus, 0, + NULL, dd->doc->name, 0); + if (strcmp(ci->key, "doc:add-view") == 0) { if (!ci->comm2) return -1; diff --git a/lib-view.c b/lib-view.c index 722f5421..4d3b193b 100644 --- a/lib-view.c +++ b/lib-view.c @@ -48,7 +48,7 @@ static int view_refresh(struct cmd_info *ci) char msg[100]; int i; int mid; - struct doc *d = doc_from_pane(ci->home); + char *name; pane_check_size(p); p->cx = 0; p->cy = 0; @@ -84,11 +84,14 @@ static int view_refresh(struct cmd_info *ci) for (i = 0; i < p->h; i++) pane_text(p, '|', "inverse", p->w-1, i); } + if (vd->border & (BORDER_TOP | BORDER_BOT)) { + name = pane_attr_get(p, "doc:name"); + } if (vd->border & BORDER_TOP) { int label; for (i = 0; i < p->w; i++) pane_text(p, '-', "inverse", i, 0); - snprintf(msg, sizeof(msg), "%s", d->name); + snprintf(msg, sizeof(msg), "%s", name); label = (p->w - strlen(msg)) / 2; if (label < 1) label = 1; @@ -102,9 +105,9 @@ static int view_refresh(struct cmd_info *ci) if (!(vd->border & BORDER_TOP)) { if (c >= 0) snprintf(msg, sizeof(msg), "L%d W%d C%d D:%s", - l,w,c, d->name); + l,w,c, name); else - snprintf(msg, sizeof(msg),"%s", d->name); + snprintf(msg, sizeof(msg),"%s", name); for (i = 0; msg[i] && i+4 < p->w; i++) pane_text(p, msg[i], "inverse", i+4, p->h-1); }