summaryrefslogtreecommitdiffstats
path: root/tmux.h
diff options
context:
space:
mode:
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h39
1 files changed, 36 insertions, 3 deletions
diff --git a/tmux.h b/tmux.h
index 6aba8e1d..44b2ceba 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1,4 +1,4 @@
-/* $Id: tmux.h,v 1.463 2009-10-11 23:46:02 tcunha Exp $ */
+/* $Id: tmux.h,v 1.464 2009-10-11 23:55:26 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -561,6 +561,24 @@ struct options {
/* Key list for prefix option. */
ARRAY_DECL(keylist, int);
+/* Scheduled job. */
+struct job {
+ char *cmd;
+ pid_t pid;
+
+ struct client *client;
+
+ int fd;
+ struct buffer *out;
+
+ void (*callbackfn)(struct job *);
+ void (*freefn)(void *);
+ void *data;
+
+ RB_ENTRY(job) entry;
+};
+RB_HEAD(jobs, job);
+
/* Screen selection. */
struct screen_sel {
int flag;
@@ -940,9 +958,10 @@ struct client {
char *cwd;
struct tty tty;
- struct timeval status_timer;
struct timeval repeat_timer;
+ struct timeval status_timer;
+ struct jobs status_jobs;
struct screen status;
#define CLIENT_TERMINAL 0x1
@@ -1177,6 +1196,20 @@ struct options_entry *options_set_data(
struct options *, const char *, void *, void (*)(void *));
void *options_get_data(struct options *, const char *);
+/* job.c */
+extern struct jobs jobs_tree;
+int job_cmp(struct job *, struct job *);
+RB_PROTOTYPE(jobs, job, entry, job_cmp);
+void job_tree_init(struct jobs *);
+void job_tree_free(struct jobs *);
+u_int job_tree_size(struct jobs *);
+struct job *job_get(struct jobs *, const char *);
+struct job *job_add(struct jobs *, struct client *,
+ const char *, void (*)(struct job *), void (*)(void *), void *);
+void job_free(struct job *);
+int job_run(struct job *);
+void job_kill(struct job *);
+
/* environ.c */
int environ_cmp(struct environ_entry *, struct environ_entry *);
RB_PROTOTYPE(environ, environ_entry, entry, environ_cmp);
@@ -1483,7 +1516,7 @@ void server_clear_identify(struct client *);
/* status.c */
int status_redraw(struct client *);
-char *status_replace(struct session *, const char *, time_t);
+char *status_replace(struct client *, const char *, time_t);
void printflike2 status_message_set(struct client *, const char *, ...);
void status_message_clear(struct client *);
int status_message_redraw(struct client *);