From ef81a24f643a5373c751ff827ccf07e479a5e75f Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Thu, 19 Jul 2012 09:14:34 +0200 Subject: [PATCH] Add option to retain colors in scrollback --- src/common/cfgfiles.c | 2 ++ src/common/text.c | 10 ++++++++-- src/common/xchat.h | 1 + src/fe-gtk/setup.c | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index 1ab285ad..56f327f1 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -586,6 +586,7 @@ const struct prefs vars[] = { {"text_max_indent", P_OFFINT (max_auto_indent), TYPE_INT}, {"text_max_lines", P_OFFINT (max_lines), TYPE_INT}, {"text_replay", P_OFFINT (text_replay), TYPE_BOOL}, + {"text_replay_strip_color", P_OFFINT (text_replay_strip_color), TYPE_BOOL}, {"text_search_case_match", P_OFFINT (text_search_case_match), TYPE_BOOL}, {"text_search_backward", P_OFFINT (text_search_backward), TYPE_BOOL}, {"text_search_highlight_all", P_OFFINT (text_search_highlight_all), TYPE_BOOL}, @@ -677,6 +678,7 @@ load_config (void) prefs.recon_delay = 10; prefs.autocopy_text = 1; prefs.text_replay = 1; + prefs.text_replay_strip_color = 1; prefs.tabchannels = 1; prefs.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */ prefs.tab_sort = 1; diff --git a/src/common/text.c b/src/common/text.c index 25dd5cf1..c437634e 100644 --- a/src/common/text.c +++ b/src/common/text.c @@ -338,7 +338,10 @@ scrollback_load (session *sess) text = strchr (buf + 3, ' '); if (text) { - text = strip_color (text + 1, -1, STRIP_COLOR); + if (prefs.text_replay_strip_color) + { + text = strip_color (text + 1, -1, STRIP_COLOR); + } fe_print_text (sess, text, stamp); g_free (text); } @@ -373,7 +376,10 @@ scrollback_load (session *sess) text = strchr (buf + 3, ' '); if (text) { - text = strip_color (text + 1, -1, STRIP_COLOR); + if (prefs.text_replay_strip_color) + { + text = strip_color (text + 1, -1, STRIP_COLOR); + } cleaned_text = text_replace_non_bmp (text, -1, &cleaned_len); if (cleaned_text != NULL) { diff --git a/src/common/xchat.h b/src/common/xchat.h index b4f79f0f..2349e23b 100644 --- a/src/common/xchat.h +++ b/src/common/xchat.h @@ -284,6 +284,7 @@ struct xchatprefs unsigned int windows_as_tabs; unsigned int indent_nicks; unsigned int text_replay; + unsigned int text_replay_strip_color; unsigned int show_marker; unsigned int show_separator; unsigned int thin_separator; diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index c11bb474..6f361141 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -446,6 +446,7 @@ static const setting logging_settings[] = { {ST_HEADER, N_("Logging"),0,0,0}, {ST_TOGGLE, N_("Display scrollback from previous session"), P_OFFINTNL(text_replay), 0, 0, 0}, + {ST_TOGGLE, N_("Strip colors when displaying scrollback"), P_OFFINTNL(text_replay_strip_color), 0, 0, 0}, {ST_TOGGLE, N_("Enable logging of conversations to disk"), P_OFFINTNL(logging), 0, 0, 2}, {ST_ENTRY, N_("Log filename:"), P_OFFSETNL(logmask), 0, 0, sizeof prefs.logmask}, {ST_LABEL, N_("%s=Server %c=Channel %n=Network.")},