mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Infrastructure and commands to manage the environment for processes started
within tmux. There is a global environment, copied from the external environment when the server is started and each sesssion has an (initially empty) session environment which overrides it. New commands set-environment and show-environment manipulate or display the environments. A new session option, update-environment, is a space-separated list of variables which are updated from the external environment into the session environment every time a new session is created - the default is DISPLAY.
This commit is contained in:
21
server-fn.c
21
server-fn.c
@ -26,25 +26,20 @@
|
||||
|
||||
int server_lock_callback(void *, const char *);
|
||||
|
||||
const char **
|
||||
server_fill_environ(struct session *s)
|
||||
void
|
||||
server_fill_environ(struct session *s, struct environ *env)
|
||||
{
|
||||
static const char *env[] = { NULL /* TMUX= */, NULL /* TERM */, NULL };
|
||||
static char tmuxvar[MAXPATHLEN + 256], termvar[256];
|
||||
u_int idx;
|
||||
char tmuxvar[MAXPATHLEN], *term;
|
||||
u_int idx;
|
||||
|
||||
if (session_index(s, &idx) != 0)
|
||||
fatalx("session not found");
|
||||
|
||||
xsnprintf(tmuxvar, sizeof tmuxvar,
|
||||
"TMUX=%s,%ld,%u", socket_path, (long) getpid(), idx);
|
||||
env[0] = tmuxvar;
|
||||
"%s,%ld,%u", socket_path, (long) getpid(), idx);
|
||||
environ_set(env, "TMUX", tmuxvar);
|
||||
|
||||
xsnprintf(termvar, sizeof termvar,
|
||||
"TERM=%s", options_get_string(&s->options, "default-terminal"));
|
||||
env[1] = termvar;
|
||||
|
||||
return (env);
|
||||
term = options_get_string(&s->options, "default-terminal");
|
||||
environ_set(env, "TERM", term);
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user