mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Merge branch 'master' of github.com:tmux/tmux
This commit is contained in:
		
							
								
								
									
										14
									
								
								environ.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								environ.c
									
									
									
									
									
								
							@@ -203,3 +203,17 @@ environ_push(struct environ *env)
 | 
			
		||||
			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);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,14 +23,17 @@
 | 
			
		||||
 | 
			
		||||
#include "tmux.h"
 | 
			
		||||
 | 
			
		||||
struct layout_cell     *layout_find_bottomright(struct layout_cell *);
 | 
			
		||||
u_short			layout_checksum(const char *);
 | 
			
		||||
int			layout_append(struct layout_cell *, char *, size_t);
 | 
			
		||||
struct layout_cell     *layout_construct(struct layout_cell *, const char **);
 | 
			
		||||
void			layout_assign(struct window_pane **, struct layout_cell *);
 | 
			
		||||
static struct layout_cell	*layout_find_bottomright(struct layout_cell *);
 | 
			
		||||
static u_short			 layout_checksum(const char *);
 | 
			
		||||
static int			 layout_append(struct layout_cell *, char *,
 | 
			
		||||
				     size_t);
 | 
			
		||||
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. */
 | 
			
		||||
struct layout_cell *
 | 
			
		||||
static struct layout_cell *
 | 
			
		||||
layout_find_bottomright(struct layout_cell *lc)
 | 
			
		||||
{
 | 
			
		||||
	if (lc->type == LAYOUT_WINDOWPANE)
 | 
			
		||||
@@ -40,7 +43,7 @@ layout_find_bottomright(struct layout_cell *lc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Calculate layout checksum. */
 | 
			
		||||
u_short
 | 
			
		||||
static u_short
 | 
			
		||||
layout_checksum(const char *layout)
 | 
			
		||||
{
 | 
			
		||||
	u_short	csum;
 | 
			
		||||
@@ -63,12 +66,12 @@ layout_dump(struct layout_cell *root)
 | 
			
		||||
	if (layout_append(root, layout, sizeof layout) != 0)
 | 
			
		||||
		return (NULL);
 | 
			
		||||
 | 
			
		||||
	xasprintf(&out, "%04x,%s", layout_checksum(layout), layout);
 | 
			
		||||
	xasprintf(&out, "%04hx,%s", layout_checksum(layout), layout);
 | 
			
		||||
	return (out);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Append information for a single cell. */
 | 
			
		||||
int
 | 
			
		||||
static int
 | 
			
		||||
layout_append(struct layout_cell *lc, char *buf, size_t len)
 | 
			
		||||
{
 | 
			
		||||
	struct layout_cell     *lcchild;
 | 
			
		||||
@@ -182,7 +185,7 @@ fail:
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Assign panes into cells. */
 | 
			
		||||
void
 | 
			
		||||
static void
 | 
			
		||||
layout_assign(struct window_pane **wp, struct layout_cell *lc)
 | 
			
		||||
{
 | 
			
		||||
	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. */
 | 
			
		||||
struct layout_cell *
 | 
			
		||||
static struct layout_cell *
 | 
			
		||||
layout_construct(struct layout_cell *lcparent, const char **layout)
 | 
			
		||||
{
 | 
			
		||||
	struct layout_cell     *lc, *lcchild;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								names.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								names.c
									
									
									
									
									
								
							@@ -73,12 +73,15 @@ check_window_name(struct window *w)
 | 
			
		||||
		if (!event_initialized(&w->name_event))
 | 
			
		||||
			evtimer_set(&w->name_event, name_time_callback, w);
 | 
			
		||||
		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);
 | 
			
		||||
			next.tv_usec = left;
 | 
			
		||||
			event_add(&w->name_event, &next);
 | 
			
		||||
		} else
 | 
			
		||||
			log_debug("@%u name timer already queued (%d left)", w->id, left);
 | 
			
		||||
		} else {
 | 
			
		||||
			log_debug("@%u name timer already queued (%d left)",
 | 
			
		||||
			    w->id, left);
 | 
			
		||||
		}
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	memcpy(&w->name_time, &tv, sizeof w->name_time);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1695,6 +1695,7 @@ void	environ_put(struct environ *, const char *);
 | 
			
		||||
void	environ_unset(struct environ *, const char *);
 | 
			
		||||
void	environ_update(const char *, struct environ *, struct environ *);
 | 
			
		||||
void	environ_push(struct environ *);
 | 
			
		||||
void	environ_log(struct environ *, const char *);
 | 
			
		||||
 | 
			
		||||
/* tty.c */
 | 
			
		||||
void	tty_create_log(void);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								window.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								window.c
									
									
									
									
									
								
							@@ -848,6 +848,7 @@ window_pane_spawn(struct window_pane *wp, int argc, char **argv,
 | 
			
		||||
	log_debug("spawn: %s -- %s", wp->shell, cmd);
 | 
			
		||||
	for (i = 0; i < wp->argc; i++)
 | 
			
		||||
		log_debug("spawn: argv[%d] = %s", i, wp->argv[i]);
 | 
			
		||||
	environ_log(env, "spawn: ");
 | 
			
		||||
 | 
			
		||||
	memset(&ws, 0, sizeof ws);
 | 
			
		||||
	ws.ws_col = screen_size_x(&wp->base);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user