summaryrefslogtreecommitdiffstats
path: root/tmux.h
diff options
context:
space:
mode:
authornicm <nicm>2015-10-31 08:13:58 +0000
committernicm <nicm>2015-10-31 08:13:58 +0000
commit01defc9f4965bb174e1d1295754d5a8695683054 (patch)
tree6f8095583d6176dffe130d6ff3b5dbc3f0e3150d /tmux.h
parent45f3cea263d1f99912cd6b353c91ccb872c26a71 (diff)
Because pledge(2) does not allow us to pass directory file descriptors
around, we can't use file descriptors for the working directory because we will be unable to pass it to a privileged process to tell it where to read or write files or spawn children. So move tmux back to using strings for the current working directory. We try to check it exists with access() when it is set but ultimately fall back to ~ if it fails at time of use (or / if that fails too).
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/tmux.h b/tmux.h
index 9a55a1b1..f26f1c8c 100644
--- a/tmux.h
+++ b/tmux.h
@@ -829,7 +829,7 @@ struct window_pane {
int argc;
char **argv;
char *shell;
- int cwd;
+ const char *cwd;
pid_t pid;
char tty[TTY_NAME_MAX];
@@ -976,7 +976,7 @@ struct session {
u_int id;
char *name;
- int cwd;
+ const char *cwd;
struct timeval creation_time;
struct timeval last_attached_time;
@@ -1181,7 +1181,7 @@ struct client {
struct environ *environ;
char *title;
- int cwd;
+ const char *cwd;
char *term;
char *ttyname;
@@ -1536,7 +1536,7 @@ int options_table_find(const char *, const struct options_table_entry **,
/* job.c */
extern struct joblist all_jobs;
-struct job *job_run(const char *, struct session *, int,
+struct job *job_run(const char *, struct session *, const char *,
void (*)(struct job *), void (*)(void *), void *);
void job_free(struct job *);
void job_died(struct job *, int);
@@ -1982,8 +1982,8 @@ struct window *window_find_by_id(u_int);
void window_update_activity(struct window *);
struct window *window_create1(u_int, u_int);
struct window *window_create(const char *, int, char **, const char *,
- const char *, int, struct environ *, struct termios *,
- u_int, u_int, u_int, char **);
+ const char *, const char *, struct environ *,
+ struct termios *, u_int, u_int, u_int, char **);
void window_destroy(struct window *);
struct window_pane *window_get_active_at(struct window *, u_int, u_int);
struct window_pane *window_find_string(struct window *, const char *);
@@ -2010,7 +2010,7 @@ struct window_pane *window_pane_find_by_id(u_int);
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 *, int, char **,
- const char *, const char *, int, struct environ *,
+ const char *, const char *, const char *, struct environ *,
struct termios *, char **);
void window_pane_resize(struct window_pane *, u_int, u_int);
void window_pane_alternate_on(struct window_pane *,
@@ -2144,8 +2144,8 @@ struct session *session_find(const char *);
struct session *session_find_by_id_str(const char *);
struct session *session_find_by_id(u_int);
struct session *session_create(const char *, int, char **, const char *,
- int, struct environ *, struct termios *, int, u_int,
- u_int, char **);
+ const char *, struct environ *, struct termios *, int,
+ u_int, u_int, char **);
void session_destroy(struct session *);
void session_unref(struct session *);
int session_check_name(const char *);
@@ -2153,7 +2153,7 @@ void session_update_activity(struct session *, struct timeval *);
struct session *session_next_session(struct session *);
struct session *session_previous_session(struct session *);
struct winlink *session_new(struct session *, const char *, int, char **,
- const char *, int, int, char **);
+ const char *, const char *, int, char **);
struct winlink *session_attach(struct session *, struct window *, int,
char **);
int session_detach(struct session *, struct winlink *);