diff options
author | Timo Sirainen <cras@irssi.org> | 2000-12-29 19:48:02 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2000-12-29 19:48:02 +0000 |
commit | 86b714881cf5c32895c8dd1b947cd752ea6698a1 (patch) | |
tree | 7fec97ff806fb8aa0b664fc3fb23cb09634625ee /src/perl/common/Window.xs | |
parent | e50535a64e5a09066af9f10a2ac7177726502b1b (diff) | |
download | irssi-86b714881cf5c32895c8dd1b947cd752ea6698a1.zip |
Irssi::print() doesn't call printtext() with args (.., "%s", text)
since it broke %_ etc. formats. But instead of crashing every time
someone prints %s with Irssi::print(), irssi now checks all those
formats and prints them as-is.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1028 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/perl/common/Window.xs')
-rw-r--r-- | src/perl/common/Window.xs | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/perl/common/Window.xs b/src/perl/common/Window.xs index 540378b0..92db5391 100644 --- a/src/perl/common/Window.xs +++ b/src/perl/common/Window.xs @@ -30,15 +30,23 @@ void print(str, level=MSGLEVEL_CLIENTNOTICE) char *str int level; +PREINIT: + char *fixed; CODE: - printtext(NULL, NULL, level, "%s", str); + fixed = perl_fix_formats(str); + printtext(NULL, NULL, level, fixed); + g_free(fixed); void print_window(str, level=MSGLEVEL_CLIENTNOTICE) char *str int level; +PREINIT: + char *fixed; CODE: - printtext_window(active_win, level, "%s", str); + fixed = perl_fix_formats(str); + printtext_window(active_win, level, fixed); + g_free(fixed); void command(cmd, server=active_win->active_server, item=active_win->active) @@ -107,8 +115,12 @@ print(server, channel, str, level) char *channel char *str int level +PREINIT: + char *fixed; CODE: - printtext(server, channel, level, "%s", str); + fixed = perl_fix_formats(str); + printtext(server, channel, level, fixed); + g_free(fixed); Irssi::Windowitem window_item_find(server, name) @@ -276,5 +288,9 @@ print(item, str, level=MSGLEVEL_CLIENTNOTICE) Irssi::Windowitem item int level char *str +PREINIT: + char *fixed; CODE: - printtext(item->server, item->name, level, "%s", str); + fixed = perl_fix_formats(str); + printtext(item->server, item->name, level, fixed); + g_free(fixed); |