logger: fix charset of lines displayed in backlog when terminal charset is different from UTF-8 (bug #36379)
This commit is contained in:
parent
3d73805198
commit
dfbe7845ae
@ -1,7 +1,7 @@
|
|||||||
WeeChat ChangeLog
|
WeeChat ChangeLog
|
||||||
=================
|
=================
|
||||||
Sébastien Helleu <flashcode@flashtux.org>
|
Sébastien Helleu <flashcode@flashtux.org>
|
||||||
v0.3.8-dev, 2012-05-02
|
v0.3.8-dev, 2012-05-03
|
||||||
|
|
||||||
|
|
||||||
Version 0.3.8 (under dev!)
|
Version 0.3.8 (under dev!)
|
||||||
@ -55,6 +55,8 @@ Version 0.3.8 (under dev!)
|
|||||||
* irc: add support of "external" SASL mechanism (task #11864)
|
* irc: add support of "external" SASL mechanism (task #11864)
|
||||||
* irc: close server buffer when server is deleted
|
* irc: close server buffer when server is deleted
|
||||||
* irc: add search for lower case nicks in option irc.look.nick_color_force
|
* irc: add search for lower case nicks in option irc.look.nick_color_force
|
||||||
|
* logger: fix charset of lines displayed in backlog when terminal charset is
|
||||||
|
different from UTF-8 (bug #36379)
|
||||||
* logger: add colors for backlog lines and end of backlog, new options:
|
* logger: add colors for backlog lines and end of backlog, new options:
|
||||||
logger.color.backlog_line and logger.color.backlog_end (task #11966)
|
logger.color.backlog_line and logger.color.backlog_end (task #11966)
|
||||||
* perl: fix compilation on OS X (bug #30701)
|
* perl: fix compilation on OS X (bug #30701)
|
||||||
|
@ -914,12 +914,15 @@ logger_buffer_renamed_signal_cb (void *data, const char *signal,
|
|||||||
void
|
void
|
||||||
logger_backlog (struct t_gui_buffer *buffer, const char *filename, int lines)
|
logger_backlog (struct t_gui_buffer *buffer, const char *filename, int lines)
|
||||||
{
|
{
|
||||||
|
const char *charset;
|
||||||
struct t_logger_line *last_lines, *ptr_lines;
|
struct t_logger_line *last_lines, *ptr_lines;
|
||||||
char *pos_message, *pos_tab, *error;
|
char *pos_message, *pos_tab, *error, *message;
|
||||||
time_t datetime, time_now;
|
time_t datetime, time_now;
|
||||||
struct tm tm_line;
|
struct tm tm_line;
|
||||||
int num_lines;
|
int num_lines;
|
||||||
|
|
||||||
|
charset = weechat_info_get ("charset_terminal", "");
|
||||||
|
|
||||||
weechat_buffer_set (buffer, "print_hooks_enabled", "0");
|
weechat_buffer_set (buffer, "print_hooks_enabled", "0");
|
||||||
num_lines = 0;
|
num_lines = 0;
|
||||||
last_lines = logger_tail_file (filename, lines);
|
last_lines = logger_tail_file (filename, lines);
|
||||||
@ -949,19 +952,25 @@ logger_backlog (struct t_gui_buffer *buffer, const char *filename, int lines)
|
|||||||
}
|
}
|
||||||
pos_message = (pos_message && (datetime != 0)) ?
|
pos_message = (pos_message && (datetime != 0)) ?
|
||||||
pos_message + 1 : ptr_lines->data;
|
pos_message + 1 : ptr_lines->data;
|
||||||
pos_tab = strchr (pos_message, '\t');
|
message = (charset) ?
|
||||||
if (pos_tab)
|
weechat_iconv_to_internal (charset, pos_message) : strdup (pos_message);
|
||||||
pos_tab[0] = '\0';
|
if (message)
|
||||||
weechat_printf_date_tags (buffer, datetime,
|
{
|
||||||
"no_highlight,notify_none",
|
pos_tab = strchr (message, '\t');
|
||||||
"%s%s%s%s%s",
|
if (pos_tab)
|
||||||
weechat_color (weechat_config_string (logger_config_color_backlog_line)),
|
pos_tab[0] = '\0';
|
||||||
pos_message,
|
weechat_printf_date_tags (buffer, datetime,
|
||||||
(pos_tab) ? "\t" : "",
|
"no_highlight,notify_none",
|
||||||
(pos_tab) ? weechat_color (weechat_config_string (logger_config_color_backlog_line)) : "",
|
"%s%s%s%s%s",
|
||||||
(pos_tab) ? pos_tab + 1 : "");
|
weechat_color (weechat_config_string (logger_config_color_backlog_line)),
|
||||||
if (pos_tab)
|
message,
|
||||||
pos_tab[0] = '\t';
|
(pos_tab) ? "\t" : "",
|
||||||
|
(pos_tab) ? weechat_color (weechat_config_string (logger_config_color_backlog_line)) : "",
|
||||||
|
(pos_tab) ? pos_tab + 1 : "");
|
||||||
|
if (pos_tab)
|
||||||
|
pos_tab[0] = '\t';
|
||||||
|
free (message);
|
||||||
|
}
|
||||||
num_lines++;
|
num_lines++;
|
||||||
ptr_lines = ptr_lines->next_line;
|
ptr_lines = ptr_lines->next_line;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user