From a9f04c5fd97edd0caef4913581a9b4ceb5f1bb6c Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Tue, 18 Oct 2005 17:46:54 +0000 Subject: Added "Day changed to [date]" message when day changes --- src/gui/curses/gui-display.c | 14 +++++++++----- src/gui/curses/gui-input.c | 27 ++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 6 deletions(-) (limited to 'src/gui/curses') diff --git a/src/gui/curses/gui-display.c b/src/gui/curses/gui-display.c index 1bb1e745e..59ccc259b 100644 --- a/src/gui/curses/gui-display.c +++ b/src/gui/curses/gui-display.c @@ -2751,14 +2751,16 @@ gui_add_message (t_gui_buffer *buffer, int type, int color, char *message) } /* - * gui_printf_type_color: display a message in a buffer + * gui_printf_internal: display a message in a buffer + * This function should NEVER be called directly. + * You should use macros defined in gui.h */ void -gui_printf_type_color (t_gui_buffer *buffer, int type, int color, char *message, ...) +gui_printf_internal (t_gui_buffer *buffer, int display_time, int type, int color, char *message, ...) { static char buf[8192]; - char text_time[1024 + 1]; + char text_time[1024]; char text_time_char[2]; time_t time_seconds; struct tm *local_time; @@ -2847,11 +2849,13 @@ gui_printf_type_color (t_gui_buffer *buffer, int type, int color, char *message, pos = buf3 - 1; while (pos) { - if ((!buffer->last_line) || (buffer->line_complete)) + if (display_time + && cfg_look_buffer_timestamp && cfg_look_buffer_timestamp[0] + && ((!buffer->last_line) || (buffer->line_complete))) { time_seconds = time (NULL); local_time = localtime (&time_seconds); - strftime (text_time, 1024, cfg_look_buffer_timestamp, local_time); + strftime (text_time, sizeof (text_time), cfg_look_buffer_timestamp, local_time); time_first_digit = -1; time_last_digit = -1; diff --git a/src/gui/curses/gui-input.c b/src/gui/curses/gui-input.c index 46a15ea1e..deefb3caf 100644 --- a/src/gui/curses/gui-input.c +++ b/src/gui/curses/gui-input.c @@ -242,11 +242,18 @@ gui_main_loop () static struct timeval timeout, tv; static struct timezone tz; t_irc_server *ptr_server; - int old_min, old_sec, diff; + t_gui_buffer *ptr_buffer; + int old_day, old_min, old_sec, diff; + char text_time[1024]; time_t new_time; struct tm *local_time; quit_weechat = 0; + + new_time = time (NULL); + local_time = localtime (&new_time); + old_day = local_time->tm_mday; + old_min = -1; old_sec = -1; check_away = 0; @@ -260,6 +267,24 @@ gui_main_loop () { old_min = local_time->tm_min; gui_draw_buffer_infobar (gui_current_window->buffer, 1); + + if (cfg_look_day_change + && (local_time->tm_mday != old_day)) + { + for (ptr_buffer = gui_buffers; ptr_buffer; + ptr_buffer = ptr_buffer->next_buffer) + { + if (!ptr_buffer->dcc) + { + strftime (text_time, sizeof (text_time), + cfg_look_day_change_timestamp, local_time); + gui_printf_nolog_notime (ptr_buffer, + _("Day changed to %s\n"), + text_time); + } + } + } + old_day = local_time->tm_mday; } /* second has changed ? */ -- cgit v1.2.3