=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-clock.c,v retrieving revision 1.25 retrieving revision 1.26 diff -c -r1.25 -r1.26 *** src/usr.bin/tmux/window-clock.c 2018/12/18 13:20:44 1.25 --- src/usr.bin/tmux/window-clock.c 2019/03/07 20:24:21 1.26 *************** *** 1,4 **** ! /* $OpenBSD: window-clock.c,v 1.25 2018/12/18 13:20:44 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-clock.c,v 1.26 2019/03/07 20:24:21 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 24,39 **** #include "tmux.h" ! static struct screen *window_clock_init(struct window_pane *, struct cmd_find_state *, struct args *); ! static void window_clock_free(struct window_pane *); ! static void window_clock_resize(struct window_pane *, u_int, u_int); ! static void window_clock_key(struct window_pane *, struct client *, struct session *, struct winlink *, key_code, struct mouse_event *); static void window_clock_timer_callback(int, short, void *); ! static void window_clock_draw_screen(struct window_pane *); const struct window_mode window_clock_mode = { .name = "clock-mode", --- 24,39 ---- #include "tmux.h" ! static struct screen *window_clock_init(struct window_mode_entry *, struct cmd_find_state *, struct args *); ! static void window_clock_free(struct window_mode_entry *); ! static void window_clock_resize(struct window_mode_entry *, u_int, u_int); ! static void window_clock_key(struct window_mode_entry *, struct client *, struct session *, struct winlink *, key_code, struct mouse_event *); static void window_clock_timer_callback(int, short, void *); ! static void window_clock_draw_screen(struct window_mode_entry *); const struct window_mode window_clock_mode = { .name = "clock-mode", *************** *** 126,133 **** static void window_clock_timer_callback(__unused int fd, __unused short events, void *arg) { ! struct window_pane *wp = arg; ! struct window_clock_mode_data *data = wp->modedata; struct tm now, then; time_t t; struct timeval tv = { .tv_sec = 1 }; --- 126,134 ---- static void window_clock_timer_callback(__unused int fd, __unused short events, void *arg) { ! struct window_mode_entry *wme = arg; ! struct window_pane *wp = wme->wp; ! struct window_clock_mode_data *data = wme->data; struct tm now, then; time_t t; struct timeval tv = { .tv_sec = 1 }; *************** *** 142,178 **** return; data->tim = t; ! window_clock_draw_screen(wp); server_redraw_window(wp->window); } static struct screen * ! window_clock_init(struct window_pane *wp, __unused struct cmd_find_state *fs, ! __unused struct args *args) { struct window_clock_mode_data *data; struct screen *s; struct timeval tv = { .tv_sec = 1 }; ! wp->modedata = data = xmalloc(sizeof *data); data->tim = time(NULL); ! evtimer_set(&data->timer, window_clock_timer_callback, wp); evtimer_add(&data->timer, &tv); s = &data->screen; screen_init(s, screen_size_x(&wp->base), screen_size_y(&wp->base), 0); s->mode &= ~MODE_CURSOR; ! window_clock_draw_screen(wp); return (s); } static void ! window_clock_free(struct window_pane *wp) { ! struct window_clock_mode_data *data = wp->modedata; evtimer_del(&data->timer); screen_free(&data->screen); --- 143,180 ---- return; data->tim = t; ! window_clock_draw_screen(wme); server_redraw_window(wp->window); } static struct screen * ! window_clock_init(struct window_mode_entry *wme, ! __unused struct cmd_find_state *fs, __unused struct args *args) { + struct window_pane *wp = wme->wp; struct window_clock_mode_data *data; struct screen *s; struct timeval tv = { .tv_sec = 1 }; ! wme->data = data = xmalloc(sizeof *data); data->tim = time(NULL); ! evtimer_set(&data->timer, window_clock_timer_callback, wme); evtimer_add(&data->timer, &tv); s = &data->screen; screen_init(s, screen_size_x(&wp->base), screen_size_y(&wp->base), 0); s->mode &= ~MODE_CURSOR; ! window_clock_draw_screen(wme); return (s); } static void ! window_clock_free(struct window_mode_entry *wme) { ! struct window_clock_mode_data *data = wme->data; evtimer_del(&data->timer); screen_free(&data->screen); *************** *** 180,206 **** } static void ! window_clock_resize(struct window_pane *wp, u_int sx, u_int sy) { ! struct window_clock_mode_data *data = wp->modedata; struct screen *s = &data->screen; screen_resize(s, sx, sy, 0); ! window_clock_draw_screen(wp); } static void ! window_clock_key(struct window_pane *wp, __unused struct client *c, __unused struct session *s, __unused struct winlink *wl, __unused key_code key, __unused struct mouse_event *m) { ! window_pane_reset_mode(wp); } static void ! window_clock_draw_screen(struct window_pane *wp) { ! struct window_clock_mode_data *data = wp->modedata; struct screen_write_ctx ctx; int colour, style; struct screen *s = &data->screen; --- 182,209 ---- } static void ! window_clock_resize(struct window_mode_entry *wme, u_int sx, u_int sy) { ! struct window_clock_mode_data *data = wme->data; struct screen *s = &data->screen; screen_resize(s, sx, sy, 0); ! window_clock_draw_screen(wme); } static void ! window_clock_key(struct window_mode_entry *wme, __unused struct client *c, __unused struct session *s, __unused struct winlink *wl, __unused key_code key, __unused struct mouse_event *m) { ! window_pane_reset_mode(wme->wp); } static void ! window_clock_draw_screen(struct window_mode_entry *wme) { ! struct window_pane *wp = wme->wp; ! struct window_clock_mode_data *data = wme->data; struct screen_write_ctx ctx; int colour, style; struct screen *s = &data->screen;