diff options
author | Tiago Cunha <tcunha@gmx.com> | 2012-01-31 12:03:56 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2012-01-31 12:03:56 +0000 |
commit | c2176afe9cf236c385c0058da9febdb063577283 (patch) | |
tree | 7d72ee24f14a8ae27a4cbd17e4eee366348a7474 /layout-custom.c | |
parent | 6b3988b7492e5ddc2321011f13ee4ca59e06cea9 (diff) | |
download | rtmux-c2176afe9cf236c385c0058da9febdb063577283.tar.gz rtmux-c2176afe9cf236c385c0058da9febdb063577283.tar.bz2 rtmux-c2176afe9cf236c385c0058da9febdb063577283.zip |
Sync OpenBSD patchset 1020:
Add pane id to each pane in layout description (while still accepting
the old form). Based on diff from George Nachman.
Diffstat (limited to 'layout-custom.c')
-rw-r--r-- | layout-custom.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/layout-custom.c b/layout-custom.c index b4a6d833..5e1d2ce2 100644 --- a/layout-custom.c +++ b/layout-custom.c @@ -79,8 +79,13 @@ layout_append(struct layout_cell *lc, char *buf, size_t len) if (len == 0) return (-1); - tmplen = xsnprintf(tmp, sizeof tmp, - "%ux%u,%u,%u", lc->sx, lc->sy, lc->xoff, lc->yoff); + if (lc->wp != NULL) { + tmplen = xsnprintf(tmp, sizeof tmp, "%ux%u,%u,%u,%u", + lc->sx, lc->sy, lc->xoff, lc->yoff, lc->wp->id); + } else { + tmplen = xsnprintf(tmp, sizeof tmp, "%ux%u,%u,%u", + lc->sx, lc->sy, lc->xoff, lc->yoff); + } if (tmplen > (sizeof tmp) - 1) return (-1); if (strlcat(buf, tmp, len) >= len) @@ -202,7 +207,8 @@ layout_construct(struct layout_cell *lcparent, const char **layout) if (!isdigit((u_char) **layout)) return (NULL); - if (sscanf(*layout, "%ux%u,%u,%u", &sx, &sy, &xoff, &yoff) != 4) + if (sscanf(*layout, "%ux%u,%u,%u,%*u", &sx, &sy, &xoff, &yoff) != 5 && + sscanf(*layout, "%ux%u,%u,%u", &sx, &sy, &xoff, &yoff) != 4) return (NULL); while (isdigit((u_char) **layout)) @@ -222,6 +228,11 @@ layout_construct(struct layout_cell *lcparent, const char **layout) (*layout)++; while (isdigit((u_char) **layout)) (*layout)++; + if (**layout == ',') { + (*layout)++; + while (isdigit((u_char) **layout)) + (*layout)++; + } lc = layout_create_cell(lcparent); lc->sx = sx; |