The g_strcmp0 fallback in particular was broken since it was used in a
few places as a GCompareFunc, and macros don't work that way.
Yes, that one was my fault, but nobody complained :D
This drops support for rhel/centos 5 (18 months left of its 10 year
support cycle)
Keeps support for debian 5.0 (lenny) and ubuntu 8.04 LTS, both of
which are unsupported, so bumping up to glib 2.24 wouldn't be a problem,
but it's not needed atm.
Turns out event_names_list() in irc-nicklist.c already handles this.
event_who() just ignores it, which is probably a good idea since some of
the irc servers I tested this with have a bug that results in sending
multiple prefixes in the NAMES reply but not in the WHO one (they were
forks of ircd-hybrid before 7.3.0)
And NAMES always happens, anyway. WHO is omitted sometimes for huge
channels.
The return value is a char*, and here it was false which is 0 which is
more or less the same as null.
That could have been a crash somewhere, the functions that call this
don't expect null ever.
Just passing the full target to the "message irc op_public" signal
handler and letting it do the cleanup.
The fe_channel_skip_prefix() call in event_privmsg() is kept because
recode_in() needs a real channel name, but
There was similar code in sig_message_own_wall(), but that one is
correct - the /wall command always sends NOTICE @#chan, so I added a
comment down there to make it clear.
http://bugs.irssi.org/index.php?do=details&task_id=905
Not using the patch from that ticket, the issue turned out to be that
(dest - last_lf_pos) returned number of unichr, not bytes, so that's 4
times less than what the size parameter of memmove() should be.
This normally wouldn't matter at all but I just spent a couple of hours
figuring out a bug that turned out to be Server->isupport() from a
0.8.17 ABI Irc.so reading from the splits hash table instead of the
isupport hash table, and both happen to be 32 bytes away from each
other, which is the same size of the newly added struct items. So it
failed in a very elegant and subtle way (it would probably crash and
burn in 32bit architectures, though)
This commit is just an attempt to get something useful out of that time.
It also moves the cap_complete flag to the bitfield above so it can be
properly packed (taking one bit instead of 4 bytes like it did in the
other position). That's 4 bytes less per network! 60 bytes total for me!
Amazing.
We disable the ICRNL flag to make Enter independent from ^J from the
keybinding point of view since the former will now send ^M, leaving the
user free to remap ^J without trapping itself into the irssi session
because of a broken Enter key.
Also disable the software flow control because we don't expect anyone to
run irssi over a serial console; we gain some more freedom by having ^Q
and ^S freely mappable by the user.