aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-09-01 13:09:49 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-09-01 13:09:49 +0000
commit7d5e4947160d9355353c29a983e373b66c05abef (patch)
treeefc2a0bce29bc661d657895828bb486c632a8cb1 /tmux.h
parentf8aa5821be6bb802785c5ca7c23c91465cfba4a3 (diff)
downloadrtmux-7d5e4947160d9355353c29a983e373b66c05abef.tar.gz
rtmux-7d5e4947160d9355353c29a983e373b66c05abef.tar.bz2
rtmux-7d5e4947160d9355353c29a983e373b66c05abef.zip
When using tmux as a login shell, there is currently no way to specify a shell
to be used as a login shell inside tmux, so add a default-shell session option. This sets the shell invoked as a login shell when the default-command option is empty. The default option value is whichever of $SHELL, getpwuid(getuid())'s pw_shell or /bin/sh is valid first. Based on a diff from martynas@, changed by me to be a session option rather than a window option.
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/tmux.h b/tmux.h
index 36e660df..20f316dd 100644
--- a/tmux.h
+++ b/tmux.h
@@ -675,6 +675,7 @@ struct window_pane {
#define PANE_REDRAW 0x1
char *cmd;
+ char *shell;
char *cwd;
pid_t pid;
@@ -1117,6 +1118,9 @@ void logfile(const char *);
void siginit(void);
void sigreset(void);
void sighandler(int);
+const char *getshell(void);
+int checkshell(const char *);
+int areshell(const char *);
/* cfg.c */
int load_cfg(const char *, struct cmd_ctx *, char **);
@@ -1582,7 +1586,6 @@ int screen_check_selection(struct screen *, u_int, u_int);
/* window.c */
extern struct windows windows;
-const char *window_default_command(void);
int window_cmp(struct window *, struct window *);
int winlink_cmp(struct winlink *, struct winlink *);
RB_PROTOTYPE(windows, window, entry, window_cmp);
@@ -1600,8 +1603,8 @@ void winlink_stack_remove(struct winlink_stack *, struct winlink *);
int window_index(struct window *, u_int *);
struct window *window_create1(u_int, u_int);
struct window *window_create(const char *, const char *, const char *,
- struct environ *, struct termios *, u_int, u_int, u_int,
- char **);
+ const char *, struct environ *, struct termios *,
+ u_int, u_int, u_int, char **);
void window_destroy(struct window *);
void window_set_active_pane(struct window *, struct window_pane *);
struct window_pane *window_add_pane(struct window *, u_int);
@@ -1614,7 +1617,8 @@ void window_destroy_panes(struct window *);
struct window_pane *window_pane_create(struct window *, u_int, u_int, u_int);
void window_pane_destroy(struct window_pane *);
int window_pane_spawn(struct window_pane *, const char *,
- const char *, struct environ *, struct termios *, char **);
+ const char *, const char *, struct environ *,
+ struct termios *, char **);
void window_pane_resize(struct window_pane *, u_int, u_int);
int window_pane_set_mode(
struct window_pane *, const struct window_mode *);