256 colour patch is cleaned up and the remaining cases are made work,
this includes especially Theme support, which was not implemented
before. Changes not related to colours were reverted again, making a
review of the two patches against master easier to follow.
As a byproduct of the Hex-colour code parser, the 24bit colours are
also implemented. Actually using them in the terminal is guarded by a
compile time switch (as well as a run time switch), as it breaks the
existing colour protocol and requires additional storage.
To make a seamless usage, down-conversion is provided for 8 and 16
colours.
Diverging from Tom's approach, the colour protocol is reverted back to
the original one. Unfortunately, the changes required in the Theme
engine will break the API.
For more details, please refer to the patch documentation at either
http://irssi-docs.wikispaces.com/Notes-256-Colour or
https://github.com/shabble/irssi-docs/wiki/Notes-256-Colour
In this path we can't look up ignores again because the print text signal
doesn't know the nick, etc. Instead just show it. The user can use -actcolor %n
or make the hilight more specific if desired.
This results in a more flexible system and is less surprising as it means levels
can be used in the way they normally can in an ignore.
As an example the current approach to NO_ACT provides no way to let HILIGHTS
be shown, with this change /set activity_hide_targets can be recreated with:
/ignore #channel NO_ACT
/ignore #channel -except -regexp -pattern . NO_ACT HILIGHTS
(but obviously this can be configured in many more ways if desired).
This patch implements some 256 colour support for Irssi up from the
previous 16 colours. Initial parsing of the %x/%X format codes is
implemented and the parser accounts in advances the char* for
that.
The colour attributes are widened from 4 to 8 bit. The colour protocol
is changed to a new format. Some pointers to remaining work are
written in the comment in textbuffer.h.
Note that Irssi already does support requesting 256 colours from the
terminal in the original source code, so this part did not have to be
touched.
Further to pull #49 this is the result of an audit of the use of perl
stack macros. There were several cases where PUTBACK was being called
where the stack pointer could be out-of-date.
Also some misc. cleanup where the macros were used needlessly.
PUTBACK was being called even for the error path which didn't use the
stack. Emitting the "script error" signal can involve running Perl code
(Irssi:core::destroy) therefore the stack can be reallocated. This
can result in the perl stack being corrupted because the local stack
pointer is out of date (although as it's use of freed memory the crash
is not always instant).
This removes the calls to Perl_get_context() that get automatically
added to XS code for ancient source code compatibility reasons.
The result is about a ~60K size reduction in the binary (based on
comparing two 64-bit stripped irssi binaries compiled
--with-perl-staticlib).
If the first g_module_symbol call failed, module_deinit was set
to value2, which is uninitialized. Move the assignment after
checking variable found to silence the warning.
This patch adds 3 new signals:
* tlsa avalable: emitted if TLSA is available for a given domain.
* tlsa verification success: emitted if the TLSA check was successful.
* tlsa verification failed: emitted if the TLSA check was unsuccessful.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5220 dbcabf3a-b0e7-0310-adc4-f8d773084564
This patch refactors how we are passing connection information for SSL
connections. This will allow us to emit signals with a SERVER_REC as
parameter during SSL handshake.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5219 dbcabf3a-b0e7-0310-adc4-f8d773084564
This patch adds experimental support for the DNSSEC DANE verification
protocol using the libval library from the DNSSEC-Tools package.
Thanks to Thomas Steen Ramussen for creating a test setup and suggesting
the idea of experimenting with DANE support in Irssi :-)
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5218 dbcabf3a-b0e7-0310-adc4-f8d773084564
The crash can happen if the terminal height decreases before the first window
is created. Based on a patch by Jaroslav Škarvada (red hat bug #796457).
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5217 dbcabf3a-b0e7-0310-adc4-f8d773084564
connections to TLSv1.1 servers from working. Patch by pi-rho.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5216 dbcabf3a-b0e7-0310-adc4-f8d773084564
Passing this option will force Irssi to not execute the content of the
autosendcmd chatnet-setting upon connect.
Fixes: #738
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5209 dbcabf3a-b0e7-0310-adc4-f8d773084564
if they are somehow enabled (UHNAMES/userhost-in-names).
bug #805
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5205 dbcabf3a-b0e7-0310-adc4-f8d773084564
prefix exists by conditionally allocating and marking to-be-freed the cumode
string inside of expando_cumode(). (Bug #669)
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5203 dbcabf3a-b0e7-0310-adc4-f8d773084564
when attempting to automatically use chat_protocol perl modules. This
fixes the automatic calling of "use Irssi::Irc" when the Irssi perl modules
have been installed in a location outside of perl's site/vendor hierarchy.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5197 dbcabf3a-b0e7-0310-adc4-f8d773084564
This code is used, for example, when /set expand_escapes on.
I can't reproduce crashes but I can reproduce garbage if I type a\1.
bug #775
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5195 dbcabf3a-b0e7-0310-adc4-f8d773084564
binds as part of /layout save. This addresses the problem of previously
saved channel window items forgetting their windows upon reconnection,
which resulted in them being opened in new windows.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5194 dbcabf3a-b0e7-0310-adc4-f8d773084564
"nicklist new" signal.
Fixes the nicklist sorting on xirssi.
Patch by nenolod.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5184 dbcabf3a-b0e7-0310-adc4-f8d773084564
group id instead of the process id. (This covers the case of /bin/sh
instances which fork/exec commands passed via -c. In such cases,
sending a signal to the stored process id would sent it to the /bin/sh
process itself, not the forked child.)
Add error reporting to sending signals.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5174 dbcabf3a-b0e7-0310-adc4-f8d773084564
subsequent reads are associated to the same paste if they happen before
'paste_detect_time' time since the last read. If no read occurs after
'paste_detect_time' time the paste buffer is flushed; if there is at least one
complete line its content is sent as a paste, otherwise it is processed
normally.
Thanks to Emanuele Giaquinta.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5121 dbcabf3a-b0e7-0310-adc4-f8d773084564
This is about numerics 707 (ratbox and derivatives) and
439 (most other ircds that implement target change
limitations).
If the channel is not yet joined, the message is still
shown in the status window.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5120 dbcabf3a-b0e7-0310-adc4-f8d773084564
This allows useful use of -ssl_verify without
-ssl_cafile/-ssl_capath, using OpenSSL's default trusted CAs.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5107 dbcabf3a-b0e7-0310-adc4-f8d773084564
In particular, this includes the "beep" signal.
Submitted by Matt Sparks
Bug #674
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5100 dbcabf3a-b0e7-0310-adc4-f8d773084564
With active_window_ignore_refnum = ON, the current behavior
for the active_window key (meta-a by default) is preserved:
windows are cycled in the order of most recent activity,
highest activity first.
With active_window_ignore_refnum = OFF, the old behavior is
used: windows are cycled in the order of most recent
activity, where ties of equally high activity are broken by
refnums. Windows with lower refnums and equal activity will
be chosen first.
Submitted by Matt Sparks
Bug #667
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5096 dbcabf3a-b0e7-0310-adc4-f8d773084564
This fixes disconnects when sending large amounts of data
to the server.
Note that it assumes that write retries will retry the same
data; a reasonable assumption, but it is not necessary for
any normal write().
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5095 dbcabf3a-b0e7-0310-adc4-f8d773084564
Ignore the parameters for matching because 354 does
not have a fixed format.
This helps irssi-proxy with clients that use WHOX,
such as xchat (away checking). WHOX works on ircu
and charybdis 3.1 servers.
Bug #671
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5064 dbcabf3a-b0e7-0310-adc4-f8d773084564
Garbled output could happen if time_t was a different size from long.
bug #665
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5060 dbcabf3a-b0e7-0310-adc4-f8d773084564
This makes /set server_reconnect_time = 10min fail
instead of setting the time to 0.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5057 dbcabf3a-b0e7-0310-adc4-f8d773084564
This is about numerics where the target parameter is
a channel, i.e. ":<server> <numeric> <#channel> ..."
Usually, this parameter is the user's nick or an asterisk.
An example is the numeric ircd-ratbox and charybdis send
to channel operators on a successful /knock.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5056 dbcabf3a-b0e7-0310-adc4-f8d773084564
Make sure not to set connection_lost if the server was
already disconnected.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5030 dbcabf3a-b0e7-0310-adc4-f8d773084564
These seem to change once a second at most, typically.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5025 dbcabf3a-b0e7-0310-adc4-f8d773084564
The timeout is now every 5 seconds and serves to
remove entries that do not send messages anymore.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5024 dbcabf3a-b0e7-0310-adc4-f8d773084564
patch by exg
bug #644, thanks for the useful bug report
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5023 dbcabf3a-b0e7-0310-adc4-f8d773084564
A limitation of the settings model is that any value
that fits in an int is accepted, e.g. negative port
numbers.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5017 dbcabf3a-b0e7-0310-adc4-f8d773084564
Allows you to avoid specific targets from being logged via autolog.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5006 dbcabf3a-b0e7-0310-adc4-f8d773084564
Use g_string_printf() instead of g_string_sprintf() (which is considered deprecated.)
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5004 dbcabf3a-b0e7-0310-adc4-f8d773084564
Use g_string_append_printf() instead of g_string_sprintfa() (which is considered deprecated.)
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@5003 dbcabf3a-b0e7-0310-adc4-f8d773084564
This fixes perl crashes on startup on some machines.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4989 dbcabf3a-b0e7-0310-adc4-f8d773084564
printformat_module_dest_args and use it in printformat_perl to remove code
duplication.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4979 dbcabf3a-b0e7-0310-adc4-f8d773084564
(r4922). This also restores them when /upgrading from
a revision between r4922 and this one.
Note that other prefixes are still lost when /upgrading
from pre-r4922 irssi.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4968 dbcabf3a-b0e7-0310-adc4-f8d773084564
position where to draw a new line and if the view is at the bottom of the
textbuffer, but the same information can be computed more easily by other
means.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4964 dbcabf3a-b0e7-0310-adc4-f8d773084564
api to add/remove lines, scripts should be fine using Window::print_after and
TextBufferView::remove_line.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4963 dbcabf3a-b0e7-0310-adc4-f8d773084564
gui_printtext_after but which also expands formats and forces a full
line.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4962 dbcabf3a-b0e7-0310-adc4-f8d773084564
Don't leak local variables to eval'd code.
Set filename/line number to get better error messages from perl.
Use three-arg open and lexical filehandles to avoid surprises.
Include error reason in message for unopenable scripts.
Don't wrap script code in sub handler { } - this avoids spurious warnings and
should at least allow __END__ to work properly.
Patch by Lukas Mai.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4961 dbcabf3a-b0e7-0310-adc4-f8d773084564
and make Irssi::signal_emit/Irssi::signal_continue use it. Also make
perl_call_signal() turn NULLs into undef, so we can recover them in
perl_signal_args_to_c(), which is its inverse operation.
Patch by Lukas Mai.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4953 dbcabf3a-b0e7-0310-adc4-f8d773084564
Display more detailed error messages about SSL and
fix assertion failure warnings on some SSL errors.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4933 dbcabf3a-b0e7-0310-adc4-f8d773084564
Requesting ban lists from an unsynced channel will ask
them from the server, banning a user whose u@h irssi
does not know will ban nick!*@* and only bans irssi
knows about can be removed.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4925 dbcabf3a-b0e7-0310-adc4-f8d773084564
Original patch by JasonX, somewhat changed by exg and me.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4922 dbcabf3a-b0e7-0310-adc4-f8d773084564
files for libperl.a and DynaLoader.a when building perl support as
module.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4919 dbcabf3a-b0e7-0310-adc4-f8d773084564
server, it prevents /away from working when the active item server is
not an irc one. The check is already performed in
irc_server_send_away, so /away -one is unchanged. Patch by Gabor Adam
Toth.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4914 dbcabf3a-b0e7-0310-adc4-f8d773084564
the eighth bit of the color. The formats KBGCRMYW and the mirc colors are now
mapped to colors 8-15. fe-text translates colors 8-15 to bold/blink+0-7 if the
terminal supports only 8 colors.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4909 dbcabf3a-b0e7-0310-adc4-f8d773084564
The only major ircd supporting /wallchops also supports
/notice @#channel.
The /wall command has used /notice @#channel (if it is
supported which is pretty much everywhere) for a while
and so it can be used without problems on large channels.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4902 dbcabf3a-b0e7-0310-adc4-f8d773084564
message own_{private,public} now receive the message in the client encoding.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4890 dbcabf3a-b0e7-0310-adc4-f8d773084564
change seems wrong anyway because notice/action message is already recoded in
fe-events.c:event_notice/ctcp_action.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4888 dbcabf3a-b0e7-0310-adc4-f8d773084564
doing it for every joined channel the user was in with a channel charset
preference.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4885 dbcabf3a-b0e7-0310-adc4-f8d773084564
clients to allow for scripting parts of the irssi-proxy.
git-svn-id: file:///var/www/svn.irssi.org/SVN/irssi/trunk@4882 dbcabf3a-b0e7-0310-adc4-f8d773084564