diff --git a/osc.c b/osc.c index 20d80c9e..3424d476 100644 --- a/osc.c +++ b/osc.c @@ -3,8 +3,6 @@ #include #include -#include - #define LOG_MODULE "osc" #define LOG_ENABLE_DBG 0 #include "log.h" @@ -205,17 +203,7 @@ osc_flash(struct terminal *term) { /* Our own private - flash */ unsigned duration_ms = vt_param_get(term, 1, 100); - LOG_DBG("FLASH for %ums", duration_ms); - - struct itimerspec alarm = { - .it_value = {.tv_sec = 0, .tv_nsec = duration_ms * 1000000}, - }; - - if (timerfd_settime(term->flash.fd, 0, &alarm, NULL) < 0) - LOG_ERRNO("failed to arm flash timer"); - else { - term->flash.active = true; - } + term_flash(term, duration_ms); } void diff --git a/terminal.c b/terminal.c index d6742259..2bc68746 100644 --- a/terminal.c +++ b/terminal.c @@ -4,6 +4,7 @@ #include #include +#include #include #define LOG_MODULE "terminal" @@ -485,3 +486,19 @@ term_set_window_title(struct terminal *term, const char *title) term->window_title = strdup(title); render_set_title(term, term->window_title); } + +void +term_flash(struct terminal *term, unsigned duration_ms) +{ + LOG_DBG("FLASH for %ums", duration_ms); + + struct itimerspec alarm = { + .it_value = {.tv_sec = 0, .tv_nsec = duration_ms * 1000000}, + }; + + if (timerfd_settime(term->flash.fd, 0, &alarm, NULL) < 0) + LOG_ERRNO("failed to arm flash timer"); + else { + term->flash.active = true; + } +} diff --git a/terminal.h b/terminal.h index 8248dc3a..98ac7a72 100644 --- a/terminal.h +++ b/terminal.h @@ -382,3 +382,4 @@ void term_mouse_motion(struct terminal *term, int button, int row, int col, bool shift, bool alt, bool ctrl); void term_set_window_title(struct terminal *term, const char *title); +void term_flash(struct terminal *term, unsigned duration_ms);