mirror of
https://github.com/tmux/tmux.git
synced 2024-12-25 02:48:47 +00:00
Merge branch 'obsd-master'
This commit is contained in:
commit
9d58febc8f
5
cfg.c
5
cfg.c
@ -128,7 +128,10 @@ load_cfg(const char *path, struct cmd_q *cmdq, int quiet)
|
|||||||
static void
|
static void
|
||||||
cfg_default_done(__unused struct cmd_q *cmdq)
|
cfg_default_done(__unused struct cmd_q *cmdq)
|
||||||
{
|
{
|
||||||
if (--cfg_references != 0)
|
log_debug("%s: %u references%s", __func__, cfg_references,
|
||||||
|
cfg_finished ? " (finished)" : "");
|
||||||
|
|
||||||
|
if (cfg_finished || --cfg_references != 0)
|
||||||
return;
|
return;
|
||||||
cfg_finished = 1;
|
cfg_finished = 1;
|
||||||
|
|
||||||
|
11
cmd-queue.c
11
cmd-queue.c
@ -55,6 +55,8 @@ cmdq_new(struct client *c)
|
|||||||
int
|
int
|
||||||
cmdq_free(struct cmd_q *cmdq)
|
cmdq_free(struct cmd_q *cmdq)
|
||||||
{
|
{
|
||||||
|
log_debug("cmdq %p free: %u references", cmdq, cmdq->references);
|
||||||
|
|
||||||
if (--cmdq->references != 0) {
|
if (--cmdq->references != 0) {
|
||||||
if (cmdq->flags & CMD_Q_DEAD)
|
if (cmdq->flags & CMD_Q_DEAD)
|
||||||
return (1);
|
return (1);
|
||||||
@ -186,6 +188,7 @@ cmdq_append(struct cmd_q *cmdq, struct cmd_list *cmdlist, struct mouse_event *m)
|
|||||||
static enum cmd_retval
|
static enum cmd_retval
|
||||||
cmdq_continue_one(struct cmd_q *cmdq)
|
cmdq_continue_one(struct cmd_q *cmdq)
|
||||||
{
|
{
|
||||||
|
struct cmd_list *cmdlist = cmdq->item->cmdlist;
|
||||||
struct cmd *cmd = cmdq->cmd;
|
struct cmd *cmd = cmdq->cmd;
|
||||||
enum cmd_retval retval;
|
enum cmd_retval retval;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
@ -193,6 +196,8 @@ cmdq_continue_one(struct cmd_q *cmdq)
|
|||||||
const char *name;
|
const char *name;
|
||||||
struct cmd_find_state *fsp, fs;
|
struct cmd_find_state *fsp, fs;
|
||||||
|
|
||||||
|
cmdlist->references++;
|
||||||
|
|
||||||
tmp = cmd_print(cmd);
|
tmp = cmd_print(cmd);
|
||||||
log_debug("cmdq %p: %s", cmdq, tmp);
|
log_debug("cmdq %p: %s", cmdq, tmp);
|
||||||
free(tmp);
|
free(tmp);
|
||||||
@ -225,10 +230,12 @@ cmdq_continue_one(struct cmd_q *cmdq)
|
|||||||
|
|
||||||
end:
|
end:
|
||||||
cmdq_guard(cmdq, "end", flags);
|
cmdq_guard(cmdq, "end", flags);
|
||||||
|
cmd_list_free(cmdlist);
|
||||||
return (retval);
|
return (retval);
|
||||||
|
|
||||||
error:
|
error:
|
||||||
cmdq_guard(cmdq, "error", flags);
|
cmdq_guard(cmdq, "error", flags);
|
||||||
|
cmd_list_free(cmdlist);
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,8 +251,7 @@ cmdq_continue(struct cmd_q *cmdq)
|
|||||||
cmdq->references++;
|
cmdq->references++;
|
||||||
notify_disable();
|
notify_disable();
|
||||||
|
|
||||||
log_debug("continuing cmdq %p: flags %#x, client %p", cmdq, cmdq->flags,
|
log_debug("continuing cmdq %p: flags %#x (%p)", cmdq, cmdq->flags, c);
|
||||||
c);
|
|
||||||
|
|
||||||
empty = TAILQ_EMPTY(&cmdq->queue);
|
empty = TAILQ_EMPTY(&cmdq->queue);
|
||||||
if (empty)
|
if (empty)
|
||||||
@ -282,6 +288,7 @@ cmdq_continue(struct cmd_q *cmdq)
|
|||||||
} while (cmdq->item != NULL);
|
} while (cmdq->item != NULL);
|
||||||
|
|
||||||
empty:
|
empty:
|
||||||
|
log_debug("cmdq %p empty", cmdq);
|
||||||
if (cmdq->client_exit > 0)
|
if (cmdq->client_exit > 0)
|
||||||
cmdq->client->flags |= CLIENT_EXIT;
|
cmdq->client->flags |= CLIENT_EXIT;
|
||||||
if (cmdq->emptyfn != NULL)
|
if (cmdq->emptyfn != NULL)
|
||||||
|
@ -68,6 +68,8 @@ cmd_source_file_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
return (CMD_RETURN_NORMAL);
|
return (CMD_RETURN_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log_debug("%s: cmdq %p, parent %p", __func__, cmdq1, cmdq);
|
||||||
|
|
||||||
cmdq->references++;
|
cmdq->references++;
|
||||||
cfg_references++;
|
cfg_references++;
|
||||||
|
|
||||||
@ -80,16 +82,15 @@ cmd_source_file_done(struct cmd_q *cmdq1)
|
|||||||
{
|
{
|
||||||
struct cmd_q *cmdq = cmdq1->data;
|
struct cmd_q *cmdq = cmdq1->data;
|
||||||
|
|
||||||
|
log_debug("%s: cmdq %p, parent %p", __func__, cmdq1, cmdq);
|
||||||
|
|
||||||
if (cmdq1->client_exit >= 0)
|
if (cmdq1->client_exit >= 0)
|
||||||
cmdq->client_exit = cmdq1->client_exit;
|
cmdq->client_exit = cmdq1->client_exit;
|
||||||
|
|
||||||
cmdq_free(cmdq1);
|
cmdq_free(cmdq1);
|
||||||
|
|
||||||
cfg_references--;
|
cfg_references--;
|
||||||
|
|
||||||
if (cmdq_free(cmdq))
|
if (cmdq_free(cmdq))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (cfg_references == 0)
|
if (cfg_references == 0)
|
||||||
cfg_print_causes(cmdq);
|
cfg_print_causes(cmdq);
|
||||||
cmdq_continue(cmdq);
|
cmdq_continue(cmdq);
|
||||||
|
Loading…
Reference in New Issue
Block a user