From 0b44ad99b51606a8cab662e04cf043a8c4a3ca92 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 20 Apr 2017 09:20:22 +0000 Subject: If a #() command doesn't exit, use its most recent line of output (it must be a full line). Don't let it redraw the status line more than once a second. Requested by someone about 10 years ago... --- tmux.h | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'tmux.h') diff --git a/tmux.h b/tmux.h index e000081d..adad2edc 100644 --- a/tmux.h +++ b/tmux.h @@ -588,6 +588,10 @@ struct hook { }; /* Scheduled job. */ +struct job; +typedef void (*job_update_cb) (struct job *); +typedef void (*job_complete_cb) (struct job *); +typedef void (*job_free_cb) (void *); struct job { enum { JOB_RUNNING, @@ -595,18 +599,19 @@ struct job { JOB_CLOSED } state; - char *cmd; - pid_t pid; - int status; + char *cmd; + pid_t pid; + int status; - int fd; - struct bufferevent *event; + int fd; + struct bufferevent *event; - void (*callbackfn)(struct job *); - void (*freefn)(void *); - void *data; + job_update_cb updatecb; + job_complete_cb completecb; + job_free_cb freecb; + void *data; - LIST_ENTRY(job) lentry; + LIST_ENTRY(job) entry; }; LIST_HEAD(joblist, job); @@ -1601,10 +1606,10 @@ extern const struct options_table_entry options_table[]; /* job.c */ extern struct joblist all_jobs; -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); +struct job *job_run(const char *, struct session *, const char *, + job_update_cb, job_complete_cb, job_free_cb, void *); +void job_free(struct job *); +void job_died(struct job *, int); /* environ.c */ struct environ *environ_create(void); -- cgit