From 38c5788232e0e3abdd08ade55a9d4fbcda637df1 Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 13 Jul 2021 22:09:29 +0000 Subject: Give #() commands a one second grace period where the output is empty before telling the user they aren't doing anything. GitHub issue 2774. --- format.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/format.c b/format.c index 28962701..479b97c4 100644 --- a/format.c +++ b/format.c @@ -371,9 +371,6 @@ format_job_get(struct format_expand_state *es, const char *cmd) fj->client = ft->client; fj->tag = ft->tag; fj->cmd = xstrdup(cmd); - fj->expanded = NULL; - - xasprintf(&fj->out, "<'%s' not ready>", fj->cmd); RB_INSERT(format_job_tree, jobs, fj); } @@ -402,11 +399,14 @@ format_job_get(struct format_expand_state *es, const char *cmd) } fj->last = t; fj->updated = 0; - } + } else if (fj->job != NULL && (t - fj->last) > 1 && fj->out == NULL) + xasprintf(&fj->out, "<'%s' not ready>", fj->cmd); free(expanded); if (ft->flags & FORMAT_STATUS) fj->status = 1; + if (fj->out == NULL) + return (xstrdup("")); return (format_expand1(&next, fj->out)); } -- cgit v1.2.3