diff options
-rw-r--r-- | NEWS | 11 | ||||
-rw-r--r-- | docs/help/in/upgrade.in | 3 | ||||
-rw-r--r-- | scripts/usercount.pl | 24 | ||||
-rw-r--r-- | src/fe-common/core/utf8.h | 1 | ||||
-rw-r--r-- | src/fe-common/irc/fe-ircnet.c | 2 | ||||
-rw-r--r-- | src/fe-text/textbuffer.c | 12 | ||||
-rw-r--r-- | src/irc/core/irc-servers.c | 2 | ||||
-rw-r--r-- | src/perl/textui/TextUI.xs | 4 | ||||
-rw-r--r-- | src/perl/ui/Formats.xs | 6 |
9 files changed, 53 insertions, 12 deletions
@@ -1,3 +1,14 @@ +v0.8.17-head 2014-xx-xx The Irssi team <staff@irssi.org> + + Document that SSL connections aren't properly handled during /UPGRADE. See Github PR #39. + + Synchronize scripts with scripts.irssi.org. + + Performance enhancement of the nicklist as well as the window_item_find function. See Github PR #24. + + Disallow unloading of static modules. + + Allow UTF-8 characters in /bind. See Github PR #18. + - Fixed various compiler warnings. + - Fixed format_get_text Perl API. See Github PR #23. + - Fixed gui_printtext_after and term_refresh_*() visibility. See Github PR #22. + - Fixed issue where UTF-8 characters was corrupted once for every 32k text. See Github PR #12. + v0.8.16 2014-05-28 The Irssi team <staff@irssi.org> + Add -noautosendcmd to /SERVER and /CONNECT. Passing this option will force Irssi to not execute the content of the autosendcmd chatnet-setting diff --git a/docs/help/in/upgrade.in b/docs/help/in/upgrade.in index 37feaf64..b130aff1 100644 --- a/docs/help/in/upgrade.in +++ b/docs/help/in/upgrade.in @@ -5,3 +5,6 @@ Upgrade irssi to new version on-the-fly without disconnecting from server, so other people won't even notice you quit from IRC. This ONLY executes the new binary, it does NOT download/compile/whatever irssi. +Warning: This will not work with SSL connections to IRC, you will be +disconnected. + diff --git a/scripts/usercount.pl b/scripts/usercount.pl index 8bbc9e01..46dc0b46 100644 --- a/scripts/usercount.pl +++ b/scripts/usercount.pl @@ -1,21 +1,23 @@ -use Irssi 20020101.0250 (); -$VERSION = "1.16"; +use Irssi 20040119.2359 (); +$VERSION = "1.19"; %IRSSI = ( authors => 'David Leadbeater, Timo Sirainen, Georg Lukas', contact => 'dgl@dgl.cx, tss@iki.fi, georg@boerde.de', name => 'usercount', description => 'Adds a usercount for a channel as a statusbar item', license => 'GNU GPLv2 or later', - url => 'http://irssi.dgl.yi.org/', + url => 'http://irssi.dgl.cx/', + changes => 'Only show halfops if server supports them', ); # Once you have loaded this script run the following command: # /statusbar window add usercount # You can also add -alignment left|right option -# /set usercount_show_zero on or off to show users when 0 users of that type -# /set usercount_show_ircops (default off) -# /set usercount_show_halfops (default on) +# Settings: +# /toggle usercount_show_zero to show item even when there are no users +# /toggle usercount_show_ircops (default off) +# /toggle usercount_show_halfops (default on) # you can customize the look of this item from theme file: # sb_usercount = "{sb %_$0%_ nicks ($1-)}"; @@ -114,6 +116,7 @@ sub calc_users() { } $total = $ops+$halfops+$voices+$normal; + if (!Irssi::settings_get_bool('usercount_show_zero')) { $ircops = undef if ($ircops == 0); $ops = undef if ($ops == 0); @@ -121,7 +124,14 @@ sub calc_users() { $voices = undef if ($voices == 0); $normal = undef if ($normal == 0); } - $halfops = undef unless Irssi::settings_get_bool('usercount_show_halfops'); + + # Server doesn't support halfops? + if($server->isupport("PREFIX") !~ /\%/) { + $halfops = undef; + } else { + $halfops = undef unless Irssi::settings_get_bool('usercount_show_halfops'); + } + $ircops = undef unless Irssi::settings_get_bool('usercount_show_ircops'); } diff --git a/src/fe-common/core/utf8.h b/src/fe-common/core/utf8.h index 163f1717..3c15dc7d 100644 --- a/src/fe-common/core/utf8.h +++ b/src/fe-common/core/utf8.h @@ -12,5 +12,6 @@ int mk_wcwidth(unichar c); #define unichar_isprint(c) (((c) & ~0x80) >= 32) +#define is_utf8_leading(c) (((c) & 0xc0) != 0x80) #endif diff --git a/src/fe-common/irc/fe-ircnet.c b/src/fe-common/irc/fe-ircnet.c index b35ae898..6618edd7 100644 --- a/src/fe-common/irc/fe-ircnet.c +++ b/src/fe-common/irc/fe-ircnet.c @@ -82,7 +82,7 @@ static void cmd_network_list(void) } /* SYNTAX: NETWORK ADD [-nick <nick>] [-user <user>] [-realname <name>] - [-host <host>] [-autosendcmd <cmd>] + [-host <host>] [-usermode <mode>] [-autosendcmd <cmd>] [-querychans <count>] [-whois <count>] [-msgs <count>] [-kicks <count>] [-modes <count>] [-cmdspeed <ms>] [-cmdmax <count>] <name> */ diff --git a/src/fe-text/textbuffer.c b/src/fe-text/textbuffer.c index 0ba7d16e..69f5969c 100644 --- a/src/fe-text/textbuffer.c +++ b/src/fe-text/textbuffer.c @@ -23,6 +23,7 @@ #include "module.h" #include "misc.h" #include "formats.h" +#include "utf8.h" #include "textbuffer.h" @@ -154,6 +155,17 @@ static void text_chunk_append(TEXT_BUFFER_REC *buffer, chunk = buffer->cur_text; while (chunk->pos + len >= TEXT_CHUNK_USABLE_SIZE) { left = TEXT_CHUNK_USABLE_SIZE - chunk->pos; + + /* don't split utf-8 character. (assume we can split non-utf8 anywhere.) */ + if (left < len && !is_utf8_leading(data[left])) { + int i; + for (i = 1; i < 4 && left >= i; i++) + if (is_utf8_leading(data[left - i])) { + left -= i; + break; + } + } + if (left > 0 && data[left-1] == 0) left--; /* don't split the commands */ diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index 787044b3..e5f86c20 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -167,7 +167,7 @@ static void server_init(IRC_SERVER_REC *server) (GCompareFunc) g_istr_equal); /* set the standards */ - g_hash_table_insert(server->isupport, g_strdup("CHANMODES"), g_strdup("beIqd,k,lfJ,imnpst")); + g_hash_table_insert(server->isupport, g_strdup("CHANMODES"), g_strdup("beI,k,l,imnpst")); g_hash_table_insert(server->isupport, g_strdup("PREFIX"), g_strdup("(ohv)@%+")); server->cmdcount = 0; diff --git a/src/perl/textui/TextUI.xs b/src/perl/textui/TextUI.xs index 67c4c87b..84320ffa 100644 --- a/src/perl/textui/TextUI.xs +++ b/src/perl/textui/TextUI.xs @@ -175,7 +175,7 @@ CODE: OUTPUT: RETVAL -MODULE = Irssi::TextUI PACKAGE = Irssi::UI::Server +MODULE = Irssi::TextUI PACKAGE = Irssi::Server void gui_printtext_after(server, target, prev, level, str) @@ -195,6 +195,8 @@ BOOT: irssi_boot(TextUI__TextBuffer); irssi_boot(TextUI__TextBufferView); +MODULE = Irssi::TextUI PACKAGE = Irssi + void term_refresh_freeze() diff --git a/src/perl/ui/Formats.xs b/src/perl/ui/Formats.xs index 7ff31aac..ba28f247 100644 --- a/src/perl/ui/Formats.xs +++ b/src/perl/ui/Formats.xs @@ -73,17 +73,18 @@ MODULE = Irssi::UI::Formats PACKAGE = Irssi::UI::Window #******************************* void -format_get_text(window, module, server, target, formatnum, ...) +format_get_text(window, module, server, target, format, ...) Irssi::UI::Window window char *module Irssi::Server server char *target - int formatnum + char *format PREINIT: TEXT_DEST_REC dest; THEME_REC *theme; char **charargs; char *ret; + int formatnum; int n; PPCODE: charargs = g_new0(char *, items-5+1); @@ -93,6 +94,7 @@ PPCODE: format_create_dest(&dest, server, target, 0, window); theme = window_get_theme(dest.window); + formatnum = format_find_tag(module, format); ret = format_get_text_theme_charargs(theme, module, &dest, formatnum, charargs); g_free(charargs); |