Patrick Griffis [Thu, 26 Jul 2018 13:53:29 +0000 (09:53 -0400)]
build: Add with-appdata option
This is mostly useful to avoid a newer gettext dependency
for translating the appdata file but it is also just useless
data for some distros without any app store.
Rainer Müller [Fri, 30 Mar 2018 22:53:56 +0000 (00:53 +0200)]
Fix plugins on macOS
The switch to the meson build system broke plugins on macOS. GNU libtool
builds shared libraries with ".dylib" and shared modules (plugins) with
the extension ".so", but meson is using ".dylib" for both.
Although overriding the name_suffix for shared_module() in meson is
possible, this would be messy for other platforms as there is no way to
query the default. Therefore it seems like we have to go with ".dylib"
for now on macOS.
However, G_MODULE_SUFFIX is defined to ".so", because glib follows what
GNU libtool does. Therefore define a separate preprocessor macro that
has the correct extension.
Rainer Müller [Mon, 26 Mar 2018 14:53:02 +0000 (16:53 +0200)]
build: perl as a dependency in meson.build
With the switch to meson, the problem previously fixed in #1822 came
back. The build system might pick up the installed hexchat-config.h
instead of using the header in the source directory, as the compiler
arguments would be in the order of "-I${prefix}/include -I..".
It seems that the c_args in meson are always put to the front of the
compiler arguments, in order to be able to override any include paths
from dependencies. However, this was not the intention here, so perl
should also be modeled as a dependency. This ensures that the arguments
with local include directories come first.
Patrick Griffis [Sun, 18 Mar 2018 15:02:54 +0000 (11:02 -0400)]
build: Re-add support for the legacy perl api
This was accidentally left behind, expose it beind an option as
with the old build system but default to false now. Enough time
has passed and only distros that care about it can enable it.
Patrick Griffis [Sat, 17 Mar 2018 00:31:16 +0000 (20:31 -0400)]
Remove shift+click to close tab binding
It is an odd binding that conflicts with typical behavior
where shift click selects multiple items and there is
already the middle click shortcut to close tabs quickly.
Rodri [Sat, 11 Feb 2017 15:44:50 +0000 (16:44 +0100)]
This patch hopefully solves a bug that causes that when a tab (channel or private) is left with the scrollbar at the bottom, and some new text arrives, and then we select again that tab, sometimes the scrollbar is not completely down and there is hidden text and we have to scroll manually to the bottom to show all text.
This was previously submitted as an issue in: https://github.com/hexchat/hexchat/issues/1948
Maybe it isn't the ideal way to solve it, but at least I tested it and it seems to work.
Patrick Griffis [Sun, 24 Dec 2017 17:09:36 +0000 (12:09 -0500)]
Rename app-id to io.github.Hexchat
RDNS syntax is recommended for applications and this matches the
existing flatpak. Note that the dbus service and icons still need
renaming though the former is an API breakage.
Iwan Aucamp [Fri, 6 Oct 2017 23:45:02 +0000 (01:45 +0200)]
Add an option to disable rejoin on auto reconnect
This change adds an option `irc_reconnect_rejoin` (default ON)
which when turned OFF will prevent hexchat from rejoining channels
after an auto reconnect.
Patrick Griffis [Sat, 7 Oct 2017 21:31:53 +0000 (17:31 -0400)]
Improve CTCP notice handling
Cutting off all text after \001 can result in users hiding text
so lets only bother handling it if it is a valid CTCP message
(starting and ending with \001).
Joseph Bisch [Fri, 22 Sep 2017 00:58:55 +0000 (20:58 -0400)]
Fix rfc_ncasecmp handling of n reaching 0
If n becomes 0 at the same time that the end of either s1 or s2 are
reached, the next iteration of the while loop wouldn't happen, so we
wouldn't correctly return 0.
Joseph Bisch [Tue, 19 Sep 2017 18:31:48 +0000 (14:31 -0400)]
Fix rfc_{n,}casecmp functions (#2058)
rfc_casecmp was broken because reaching terminator for str1 was used as
a terminal condition and str2 may be shorter than str1, resulting in an
oob read condition for str2.
rfc_ncasecmp was broken because it checked if n characters were checked
or if BOTH pointers reached their terminator, however the strings may
be different lengths and also less than n characters in length, meaning
that they don't both reach their terminators at the same time,
resulting in an oob read condition.
Joseph Bisch [Tue, 19 Sep 2017 01:40:57 +0000 (21:40 -0400)]
Fix oob read caused by ptr[0] being NULL in inbound_notice
If ptr[0] is NULL, then strchr may return a pointer to the NULL
terminator for serv->nick_prefixes, making the if statement true, which
then leads to the pointer increment leaving ptr oob. Now we check to
ensure ptr[0] != NULL.
From the Linux manpages for strchr:
The terminating null byte is considered part of the string, so that if c is
specified as '\0', these functions return a pointer to the terminator.