=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/status.c,v retrieving revision 1.217 retrieving revision 1.218 diff -u -r1.217 -r1.218 --- src/usr.bin/tmux/status.c 2020/06/11 10:56:19 1.217 +++ src/usr.bin/tmux/status.c 2020/07/27 08:03:10 1.218 @@ -1,4 +1,4 @@ -/* $OpenBSD: status.c,v 1.217 2020/06/11 10:56:19 nicm Exp $ */ +/* $OpenBSD: status.c,v 1.218 2020/07/27 08:03:10 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -423,11 +423,11 @@ /* Set a status line message. */ void -status_message_set(struct client *c, int ignore_styles, const char *fmt, ...) +status_message_set(struct client *c, int delay, int ignore_styles, + const char *fmt, ...) { struct timeval tv; va_list ap; - int delay; status_message_clear(c); status_push_screen(c); @@ -439,7 +439,12 @@ server_add_message("%s message: %s", c->name, c->message_string); - delay = options_get_number(c->session->options, "display-time"); + /* + * With delay -1, the display-time option is used; zero means wait for + * key press; more than zero is the actual delay time in milliseconds. + */ + if (delay == -1) + delay = options_get_number(c->session->options, "display-time"); if (delay > 0) { tv.tv_sec = delay / 1000; tv.tv_usec = (delay % 1000) * 1000L; @@ -447,6 +452,7 @@ if (event_initialized(&c->message_timer)) evtimer_del(&c->message_timer); evtimer_set(&c->message_timer, status_message_callback, c); + evtimer_add(&c->message_timer, &tv); }