str = format_get_text_theme_charargs(theme, module, dest,
formatnum, arglist);
- if (*str != '\0') print_line(dest, str);
+ if (str != NULL && *str != '\0') print_line(dest, str);
g_free(str);
}
static void print_line(TEXT_DEST_REC *dest, const char *text)
{
+ THEME_REC *theme;
char *str, *tmp, *stripped;
g_return_if_fail(dest != NULL);
g_return_if_fail(text != NULL);
-
- tmp = format_get_level_tag(window_get_theme(dest->window), dest);
- str = format_add_linestart(text, tmp);
+
+ theme = window_get_theme(dest->window);
+ tmp = format_get_level_tag(theme, dest);
+ str = !theme->info_eol ? format_add_linestart(text, tmp) :
+ format_add_lineend(text, tmp);
g_free_not_null(tmp);
-
+
/* send both the formatted + stripped (for logging etc.) */
stripped = strip_codes(str);
signal_emit_id(signal_print_text, 3, dest, str, stripped);
static void sig_print_text(TEXT_DEST_REC *dest, const char *text)
{
+ THEME_REC *theme;
char *str, *tmp;
g_return_if_fail(dest != NULL);
- g_return_if_fail(dest->window != NULL);
g_return_if_fail(text != NULL);
+ if (dest->window == NULL) {
+ str = strip_codes(text);
+ printf("NO WINDOWS: %s\n", str);
+ g_free(str);
+ return;
+ }
+
msg_beep_check(dest);
if ((dest->level & MSGLEVEL_NEVER) == 0)
/* add timestamp/server tag here - if it's done in print_line()
it would be written to log files too */
- tmp = format_get_line_start(window_get_theme(dest->window),
- dest, time(NULL));
- str = format_add_linestart(text, tmp);
+ theme = window_get_theme(dest->window);
+ tmp = format_get_line_start(theme, dest, time(NULL));
+ str = !theme->info_eol ? format_add_linestart(text, tmp) :
+ format_add_lineend(text, tmp);
+
g_free_not_null(tmp);
format_send_to_gui(dest, str);
static void read_settings(void)
{
- beep_msg_level = level2bits(settings_get_str("beep_msg_level"));
+ beep_msg_level = settings_get_level("beep_msg_level");
beep_when_away = settings_get_bool("beep_when_away");
beep_when_window_active = settings_get_bool("beep_when_window_active");
}