Merge branch 'master' of github.com:tmux/tmux

This commit is contained in:
Nicholas Marriott 2016-07-19 10:43:10 +01:00
commit af38936473
5 changed files with 36 additions and 14 deletions

View File

@ -203,3 +203,17 @@ environ_push(struct environ *env)
setenv(envent->name, envent->value, 1); setenv(envent->name, envent->value, 1);
} }
} }
/* Log the environment. */
void
environ_log(struct environ *env, const char *prefix)
{
struct environ_entry *envent;
RB_FOREACH(envent, environ, env) {
if (envent->value != NULL && *envent->name != '\0') {
log_debug("%s%s=%s", prefix, envent->name,
envent->value);
}
}
}

View File

@ -23,14 +23,17 @@
#include "tmux.h" #include "tmux.h"
struct layout_cell *layout_find_bottomright(struct layout_cell *); static struct layout_cell *layout_find_bottomright(struct layout_cell *);
u_short layout_checksum(const char *); static u_short layout_checksum(const char *);
int layout_append(struct layout_cell *, char *, size_t); static int layout_append(struct layout_cell *, char *,
struct layout_cell *layout_construct(struct layout_cell *, const char **); size_t);
void layout_assign(struct window_pane **, struct layout_cell *); static struct layout_cell *layout_construct(struct layout_cell *,
const char **);
static void layout_assign(struct window_pane **,
struct layout_cell *);
/* Find the bottom-right cell. */ /* Find the bottom-right cell. */
struct layout_cell * static struct layout_cell *
layout_find_bottomright(struct layout_cell *lc) layout_find_bottomright(struct layout_cell *lc)
{ {
if (lc->type == LAYOUT_WINDOWPANE) if (lc->type == LAYOUT_WINDOWPANE)
@ -40,7 +43,7 @@ layout_find_bottomright(struct layout_cell *lc)
} }
/* Calculate layout checksum. */ /* Calculate layout checksum. */
u_short static u_short
layout_checksum(const char *layout) layout_checksum(const char *layout)
{ {
u_short csum; u_short csum;
@ -63,12 +66,12 @@ layout_dump(struct layout_cell *root)
if (layout_append(root, layout, sizeof layout) != 0) if (layout_append(root, layout, sizeof layout) != 0)
return (NULL); return (NULL);
xasprintf(&out, "%04x,%s", layout_checksum(layout), layout); xasprintf(&out, "%04hx,%s", layout_checksum(layout), layout);
return (out); return (out);
} }
/* Append information for a single cell. */ /* Append information for a single cell. */
int static int
layout_append(struct layout_cell *lc, char *buf, size_t len) layout_append(struct layout_cell *lc, char *buf, size_t len)
{ {
struct layout_cell *lcchild; struct layout_cell *lcchild;
@ -182,7 +185,7 @@ fail:
} }
/* Assign panes into cells. */ /* Assign panes into cells. */
void static void
layout_assign(struct window_pane **wp, struct layout_cell *lc) layout_assign(struct window_pane **wp, struct layout_cell *lc)
{ {
struct layout_cell *lcchild; struct layout_cell *lcchild;
@ -201,7 +204,7 @@ layout_assign(struct window_pane **wp, struct layout_cell *lc)
} }
/* Construct a cell from all or part of a layout tree. */ /* Construct a cell from all or part of a layout tree. */
struct layout_cell * static struct layout_cell *
layout_construct(struct layout_cell *lcparent, const char **layout) layout_construct(struct layout_cell *lcparent, const char **layout)
{ {
struct layout_cell *lc, *lcchild; struct layout_cell *lc, *lcchild;

View File

@ -73,12 +73,15 @@ check_window_name(struct window *w)
if (!event_initialized(&w->name_event)) if (!event_initialized(&w->name_event))
evtimer_set(&w->name_event, name_time_callback, w); evtimer_set(&w->name_event, name_time_callback, w);
if (!evtimer_pending(&w->name_event, NULL)) { if (!evtimer_pending(&w->name_event, NULL)) {
log_debug("@%u name timer queued (%d left)", w->id, left); log_debug("@%u name timer queued (%d left)", w->id,
left);
timerclear(&next); timerclear(&next);
next.tv_usec = left; next.tv_usec = left;
event_add(&w->name_event, &next); event_add(&w->name_event, &next);
} else } else {
log_debug("@%u name timer already queued (%d left)", w->id, left); log_debug("@%u name timer already queued (%d left)",
w->id, left);
}
return; return;
} }
memcpy(&w->name_time, &tv, sizeof w->name_time); memcpy(&w->name_time, &tv, sizeof w->name_time);

1
tmux.h
View File

@ -1695,6 +1695,7 @@ void environ_put(struct environ *, const char *);
void environ_unset(struct environ *, const char *); void environ_unset(struct environ *, const char *);
void environ_update(const char *, struct environ *, struct environ *); void environ_update(const char *, struct environ *, struct environ *);
void environ_push(struct environ *); void environ_push(struct environ *);
void environ_log(struct environ *, const char *);
/* tty.c */ /* tty.c */
void tty_create_log(void); void tty_create_log(void);

View File

@ -848,6 +848,7 @@ window_pane_spawn(struct window_pane *wp, int argc, char **argv,
log_debug("spawn: %s -- %s", wp->shell, cmd); log_debug("spawn: %s -- %s", wp->shell, cmd);
for (i = 0; i < wp->argc; i++) for (i = 0; i < wp->argc; i++)
log_debug("spawn: argv[%d] = %s", i, wp->argv[i]); log_debug("spawn: argv[%d] = %s", i, wp->argv[i]);
environ_log(env, "spawn: ");
memset(&ws, 0, sizeof ws); memset(&ws, 0, sizeof ws);
ws.ws_col = screen_size_x(&wp->base); ws.ws_col = screen_size_x(&wp->base);