summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/curses/gui-display.c14
-rw-r--r--src/gui/curses/gui-input.c27
-rw-r--r--src/gui/gui.h16
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 ();