diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2005-10-18 17:46:54 +0000 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2005-10-18 17:46:54 +0000 |
commit | a9f04c5fd97edd0caef4913581a9b4ceb5f1bb6c (patch) | |
tree | 9248c1e0a43d0a5bc42c10cfb70aa6928ef7e0b4 /src/gui | |
parent | 1e382ab9bda63f419c18074f7669349f6251b942 (diff) | |
download | weechat-a9f04c5fd97edd0caef4913581a9b4ceb5f1bb6c.zip |
Added "Day changed to [date]" message when day changes
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/curses/gui-display.c | 14 | ||||
-rw-r--r-- | src/gui/curses/gui-input.c | 27 | ||||
-rw-r--r-- | src/gui/gui.h | 16 |
3 files changed, 46 insertions, 11 deletions
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 ? */ diff --git a/src/gui/gui.h b/src/gui/gui.h index e34254bf4..ad837b5a9 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -93,16 +93,22 @@ #define MSG_TYPE_NOLOG 64 #define gui_printf_color(buffer, color, fmt, argz...) \ - gui_printf_type_color(buffer, MSG_TYPE_INFO, color, fmt, ##argz) + gui_printf_internal(buffer, 1, MSG_TYPE_INFO, color, fmt, ##argz) #define gui_printf_type(buffer, type, fmt, argz...) \ - gui_printf_type_color(buffer, type, -1, fmt, ##argz) + gui_printf_internal(buffer, 1, type, -1, fmt, ##argz) + +#define gui_printf_type_color(buffer, type, color, fmt, argz...) \ + gui_printf_internal(buffer, 1, type, color, fmt, ##argz) #define gui_printf(buffer, fmt, argz...) \ - gui_printf_type_color(buffer, MSG_TYPE_INFO, -1, fmt, ##argz) + gui_printf_internal(buffer, 1, MSG_TYPE_INFO, -1, fmt, ##argz) #define gui_printf_nolog(buffer, fmt, argz...) \ - gui_printf_type_color(buffer, MSG_TYPE_INFO | MSG_TYPE_NOLOG, -1, fmt, ##argz) + gui_printf_internal(buffer, 1, MSG_TYPE_INFO | MSG_TYPE_NOLOG, -1, fmt, ##argz) + +#define gui_printf_nolog_notime(buffer, fmt, argz...) \ + gui_printf_internal(buffer, 0, MSG_TYPE_INFO | MSG_TYPE_NOLOG, -1, fmt, ##argz) #define NOTIFY_LEVEL_MIN 0 #define NOTIFY_LEVEL_MAX 3 @@ -416,7 +422,7 @@ extern void gui_init_colors (); extern void gui_set_window_title (); extern void gui_init (); extern void gui_end (); -extern void gui_printf_type_color (/*@null@*/ t_gui_buffer *, int, int, char *, ...); +extern void gui_printf_internal (t_gui_buffer *, int, int, int, char *, ...); extern void gui_input_default_key_bindings (); extern void gui_main_loop (); |