Hello community, here is the log from the commit of package hexchat for openSUSE:Factory checked in at 2019-12-23 22:45:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hexchat (Old) and /work/SRC/openSUSE:Factory/.hexchat.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hexchat" Mon Dec 23 22:45:19 2019 rev:27 rq:758837 version:2.14.3 Changes: -------- --- /work/SRC/openSUSE:Factory/hexchat/hexchat.changes 2018-09-03 10:36:00.760810440 +0200 +++ /work/SRC/openSUSE:Factory/.hexchat.new.6675/hexchat.changes 2019-12-23 22:48:26.906089898 +0100 @@ -1,0 +2,12 @@ +Sun Dec 22 07:44:08 UTC 2019 - Andrey Karepin <[email protected]> + +- update to 2.14.3 + * fix various incorrect parsing of IRC messages relating to trailing + parameters + * fix SASL negotiation combined with multi-line cap + * fix input box theming with Yaru theme + * python: Work around Python 3.7 regression causing crash on unload + * sysinfo: Add support for /etc/os-release + * sysinfo: Ignore irrelevant mounts when calculating storage size + +------------------------------------------------------------------- Old: ---- hexchat-2.14.2.tar.xz hexchat-2.14.2.tar.xz.asc New: ---- hexchat-2.14.3.tar.xz hexchat-2.14.3.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hexchat.spec ++++++ --- /var/tmp/diff_new_pack.qjPzHg/_old 2019-12-23 22:48:28.218090383 +0100 +++ /var/tmp/diff_new_pack.qjPzHg/_new 2019-12-23 22:48:28.230090387 +0100 @@ -1,8 +1,7 @@ # # spec file for package hexchat # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. -# Copyright (c) 2013 Andrey Karepin <[email protected]> +# Copyright (c) 2019 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -13,17 +12,17 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: hexchat -Version: 2.14.2 +Version: 2.14.3 Release: 0 Summary: A graphical IRC (chat) client License: GPL-2.0-or-later Group: Productivity/Networking/IRC -Url: https://hexchat.github.io/ +URL: https://hexchat.github.io/ Source0: https://dl.%{name}.net/%{name}/%{name}-%{version}.tar.xz Source1: hexchat-migrate-sh Source2: https://dl.%{name}.net/%{name}/%{name}-%{version}.tar.xz.asc ++++++ hexchat-2.14.2.tar.xz -> hexchat-2.14.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/data/misc/io.github.Hexchat.appdata.xml.in new/hexchat-2.14.3/data/misc/io.github.Hexchat.appdata.xml.in --- old/hexchat-2.14.2/data/misc/io.github.Hexchat.appdata.xml.in 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/data/misc/io.github.Hexchat.appdata.xml.in 2019-12-21 07:43:47.642401500 +0100 @@ -26,6 +26,19 @@ <id>hexchat.desktop</id> </provides> <releases> + <release date="2019-12-20" version="2.14.3"> + <description> + <p>This is a bug-fix release:</p> + <ul> + <li>Fix various incorrect parsing of IRC messages relating to trailing parameters</li> + <li>Fix SASL negotiation combined with multi-line cap</li> + <li>Fix input box theming with Yaru theme</li> + <li>python: Work around Python 3.7 regression causing crash on unload</li> + <li>sysinfo: Add support for /etc/os-release</li> + <li>sysinfo: Ignore irrelevant mounts when calculating storage size</li> + </ul> + </description> + </release> <release date="2018-08-29" version="2.14.2"> <description> <p>This is a minor release:</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/data/pkgconfig/meson.build new/hexchat-2.14.3/data/pkgconfig/meson.build --- old/hexchat-2.14.2/data/pkgconfig/meson.build 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/data/pkgconfig/meson.build 2019-12-21 07:43:47.642401500 +0100 @@ -2,8 +2,8 @@ prefix = get_option('prefix') pkg_conf.set('prefix', prefix) pkg_conf.set('VERSION', meson.project_version()) -pkg_conf.set('hexchatlibdir', join_paths(prefix, plugindir)) -pkg_conf.set('includedir', join_paths(prefix, get_option('includedir'))) +pkg_conf.set('hexchatlibdir', join_paths('${prefix}', plugindir)) +pkg_conf.set('includedir', join_paths('${prefix}', get_option('includedir'))) configure_file( input: 'hexchat-plugin.pc.in', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/meson.build new/hexchat-2.14.3/meson.build --- old/hexchat-2.14.2/meson.build 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/meson.build 2019-12-21 07:43:47.642401500 +0100 @@ -1,6 +1,6 @@ project('hexchat', 'c', - version: '2.14.2', - meson_version: '>= 0.38.0', + version: '2.14.3', + meson_version: '>= 0.40.0', default_options: [ 'c_std=gnu89', 'buildtype=debugoptimized', @@ -87,8 +87,6 @@ global_cflags = [] test_cflags = [ - '-pipe', - '-fPIE', '-funsigned-char', '-Wno-conversion', '-Wno-pointer-sign', @@ -136,7 +134,13 @@ '-Wl,--nxcompat', ] foreach ldflag : test_ldflags - if cc.has_argument(ldflag) and cc.links('int main (void) { return 0; }', args: ldflag) + if meson.version().version_compare('>= 0.46.0') + has_arg = cc.has_link_argument(ldflag) + else + has_arg = cc.has_argument(ldflag) + endif + + if has_arg and cc.links('int main (void) { return 0; }', args: ldflag) global_ldflags += ldflag endif endforeach diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/plugins/python/python.c new/hexchat-2.14.3/plugins/python/python.c --- old/hexchat-2.14.2/plugins/python/python.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/plugins/python/python.c 2019-12-21 07:43:47.652401700 +0100 @@ -2806,6 +2806,9 @@ xchatout_buffer = NULL; if (interp_plugin) { + PyThreadState *tstate = ((PluginObject*)interp_plugin)->tstate; + PyThreadState_Swap(tstate); + Py_EndInterpreter(tstate); Py_DECREF(interp_plugin); interp_plugin = NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/plugins/sysinfo/meson.build new/hexchat-2.14.3/plugins/sysinfo/meson.build --- old/hexchat-2.14.2/plugins/sysinfo/meson.build 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/plugins/sysinfo/meson.build 2019-12-21 07:43:47.652401700 +0100 @@ -13,13 +13,13 @@ sysinfo_cargs = [] system = host_machine.system() -if system == 'linux' or system == 'darwin' +if system == 'linux' or system == 'gnu' or system.startswith('gnu/') or system == 'darwin' sysinfo_includes += 'shared' sysinfo_sources += [ 'shared/df.c' ] - if system == 'linux' + if system == 'linux' or system == 'gnu' or system.startswith('gnu/') libpci = dependency('libpci', required: false, method: 'pkg-config') if libpci.found() sysinfo_deps += libpci diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/plugins/sysinfo/shared/df.c new/hexchat-2.14.3/plugins/sysinfo/shared/df.c --- old/hexchat-2.14.2/plugins/sysinfo/shared/df.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/plugins/sysinfo/shared/df.c 2019-12-21 07:43:47.652401700 +0100 @@ -26,7 +26,7 @@ FILE *pipe; char buffer[bsize]; - pipe = popen("df -k -l -P", "r"); + pipe = popen("df -k -l -P --exclude-type=squashfs --exclude-type=devtmpfs --exclude-type=tmpfs", "r"); if(pipe==NULL) return 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/plugins/sysinfo/unix/parse.c new/hexchat-2.14.3/plugins/sysinfo/unix/parse.c --- old/hexchat-2.14.2/plugins/sysinfo/unix/parse.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/plugins/sysinfo/unix/parse.c 2019-12-21 07:43:47.652401700 +0100 @@ -269,6 +269,16 @@ return 0; } +static void strip_quotes(char *string) +{ + size_t len = strlen(string); + if (string[len - 1] == '"') + string[--len] = '\0'; + + if (string[0] == '"') + memmove(string, string + 1, len); +} + int xs_parse_distro(char *name) { FILE *fp = NULL; @@ -320,6 +330,20 @@ else g_snprintf(buffer, bsize, "Gentoo Linux %s", keywords); } + else if((fp = fopen("/etc/os-release", "r")) != NULL) + { + char name[bsize], version[bsize]; + strcpy(name, "?"); + strcpy(version, "?"); + while(fgets(buffer, bsize, fp) != NULL) + { + find_match_char(buffer, "NAME=", name); + find_match_char(buffer, "VERSION=", version); + } + strip_quotes(name); + strip_quotes(version); + g_snprintf(buffer, bsize, "%s %s", name, version); + } else g_snprintf(buffer, bsize, "Unknown Distro"); if(fp != NULL) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/plugins/sysinfo/unix/pci.c new/hexchat-2.14.3/plugins/sysinfo/unix/pci.c --- old/hexchat-2.14.2/plugins/sysinfo/unix/pci.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/plugins/sysinfo/unix/pci.c 2019-12-21 07:43:47.652401700 +0100 @@ -142,7 +142,7 @@ { position = strstr(buffer, vendor); position += 6; - strncpy(vendorname, position, bsize/2); + g_strlcpy(vendorname, position, sizeof (vendorname)); position = strstr(vendorname, "\n"); *(position) = '\0'; break; @@ -154,7 +154,7 @@ { position = strstr(buffer, device); position += 6; - strncpy(devicename, position, bsize/2); + g_strlcpy(devicename, position, sizeof (devicename)); position = strstr(devicename, " ("); if (position == NULL) position = strstr(devicename, "\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/dcc.c new/hexchat-2.14.3/src/common/dcc.c --- old/hexchat-2.14.2/src/common/dcc.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/dcc.c 2019-12-21 07:43:47.695736200 +0100 @@ -1006,7 +1006,7 @@ sc.type = 1; sc.port = htons (dcc->port); sc.address = htonl (dcc->addr); - strncpy (sc.username, prefs.hex_irc_user_name, 9); + g_strlcpy (sc.username, prefs.hex_irc_user_name, sizeof (sc.username)); memcpy (proxy->buffer, &sc, sizeof (sc)); proxy->buffersize = 8 + strlen (sc.username) + 1; proxy->bufferused = 0; @@ -1618,13 +1618,13 @@ } guint32 -dcc_get_my_address (void) /* the address we'll tell the other person */ +dcc_get_my_address (session *sess) /* the address we'll tell the other person */ { struct hostent *dns_query; guint32 addr = 0; - if (prefs.hex_dcc_ip_from_server && prefs.dcc_ip) - addr = prefs.dcc_ip; + if (prefs.hex_dcc_ip_from_server && sess->server->dcc_ip) + addr = sess->server->dcc_ip; else if (prefs.hex_dcc_ip[0]) { dns_query = gethostbyname ((const char *) prefs.hex_dcc_ip); @@ -1710,7 +1710,7 @@ /*if we have a dcc_ip, we use that, so the remote client can connect*/ /*else we try to take an address from hex_dcc_ip*/ /*if something goes wrong we tell the client to connect to our LAN ip*/ - dcc->addr = dcc_get_my_address (); + dcc->addr = dcc_get_my_address (sess); /*if nothing else worked we use the address we bound to*/ if (dcc->addr == 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/dcc.h new/hexchat-2.14.3/src/common/dcc.h --- old/hexchat-2.14.2/src/common/dcc.h 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/dcc.h 2019-12-21 07:43:47.695736200 +0100 @@ -124,7 +124,7 @@ void handle_dcc (session *sess, char *nick, char *word[], char *word_eol[], const message_tags_data *tags_data); void dcc_show_list (session *sess); -guint32 dcc_get_my_address (void); +guint32 dcc_get_my_address (session *sess); void dcc_get_with_destfile (struct DCC *dcc, char *utf8file); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/hexchat.h new/hexchat-2.14.3/src/common/hexchat.h --- old/hexchat-2.14.2/src/common/hexchat.h 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/hexchat.h 2019-12-21 07:43:47.699069700 +0100 @@ -313,7 +313,6 @@ /* these are the private variables */ guint32 local_ip; - guint32 dcc_ip; unsigned int wait_on_exit; /* wait for logs to be flushed to disk IF we're connected */ @@ -482,6 +481,10 @@ int proxy_sok4; int proxy_sok6; int id; /* unique ID number (for plugin API) */ + + /* dcc_ip moved from haxchatprefs to make it per-server */ + guint32 dcc_ip; + #ifdef USE_OPENSSL SSL_CTX *ctx; SSL *ssl; @@ -575,6 +578,7 @@ unsigned int sasl_mech; /* mechanism for sasl auth */ unsigned int sent_capend:1; /* have sent CAP END yet */ unsigned int waiting_on_cap:1; /* waiting on another line of CAP LS */ + unsigned int waiting_on_sasl:1; /* waiting on sasl */ #ifdef USE_OPENSSL unsigned int use_ssl:1; /* is server SSL capable? */ unsigned int accept_invalid_cert:1;/* ignore result of server's cert. verify */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/inbound.c new/hexchat-2.14.3/src/common/inbound.c --- old/hexchat-2.14.2/src/common/inbound.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/inbound.c 2019-12-21 07:43:47.699069700 +0100 @@ -1420,7 +1420,7 @@ HostAddr = gethostbyname (ip); if (HostAddr) { - prefs.dcc_ip = ((struct in_addr *) HostAddr->h_addr)->s_addr; + sess->server->dcc_ip = ((struct in_addr *) HostAddr->h_addr)->s_addr; EMIT_SIGNAL_TIMESTAMP (XP_TE_FOUNDIP, sess->server->server_session, inet_ntoa (*((struct in_addr *) HostAddr->h_addr)), NULL, NULL, NULL, 0, tags_data->timestamp); @@ -1768,7 +1768,6 @@ { char buffer[500]; /* buffer for requesting capabilities and emitting the signal */ gboolean want_cap = FALSE; /* format the CAP REQ string based on previous capabilities being requested or not */ - gboolean want_sasl = FALSE; /* CAP END shouldn't be sent when SASL is requested, it needs further responses */ char **extensions; int i; @@ -1816,7 +1815,7 @@ serv->sasl_mech = sasl_mech; } want_cap = TRUE; - want_sasl = TRUE; + serv->waiting_on_sasl = TRUE; g_strlcat (buffer, "sasl ", sizeof(buffer)); continue; } @@ -1842,7 +1841,7 @@ tags_data->timestamp); tcp_sendf (serv, "%s\r\n", g_strchomp (buffer)); } - if (!want_sasl && !serv->waiting_on_cap) + if (!serv->waiting_on_sasl && !serv->waiting_on_cap) { /* if we use SASL, CAP END is dealt via raw numerics */ serv->sent_capend = TRUE; @@ -1851,13 +1850,25 @@ } void -inbound_cap_nak (server *serv, const message_tags_data *tags_data) +inbound_cap_nak (server *serv, char *extensions_str, const message_tags_data *tags_data) { - if (!serv->waiting_on_cap && !serv->sent_capend) + char **extensions; + int i; + + extensions = g_strsplit (extensions_str, " ", 0); + for (i=0; extensions[i]; i++) + { + if (!g_strcmp0 (extensions[i], "sasl")) + serv->waiting_on_sasl = FALSE; + } + + if (!serv->waiting_on_cap && !serv->waiting_on_sasl && !serv->sent_capend) { serv->sent_capend = TRUE; tcp_send_len (serv, "CAP END\r\n", 9); } + + g_strfreev (extensions); } void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/inbound.h new/hexchat-2.14.3/src/common/inbound.h --- old/hexchat-2.14.2/src/common/inbound.h 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/inbound.h 2019-12-21 07:43:47.699069700 +0100 @@ -92,7 +92,7 @@ const message_tags_data *tags_data); void inbound_cap_ls (server *serv, char *nick, char *extensions, const message_tags_data *tags_data); -void inbound_cap_nak (server *serv, const message_tags_data *tags_data); +void inbound_cap_nak (server *serv, char *extensions, const message_tags_data *tags_data); void inbound_cap_list (server *serv, char *nick, char *extensions, const message_tags_data *tags_data); void inbound_cap_del (server *serv, char *nick, char *extensions, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/meson.build new/hexchat-2.14.3/src/common/meson.build --- old/hexchat-2.14.2/src/common/meson.build 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/meson.build 2019-12-21 07:43:47.699069700 +0100 @@ -109,6 +109,7 @@ ) hexchat_common_dep = declare_dependency( + sources: [textevents] + marshal, link_with: hexchat_common, include_directories: common_includes, compile_args: common_cflags, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/modes.c new/hexchat-2.14.3/src/common/modes.c --- old/hexchat-2.14.2/src/common/modes.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/modes.c 2019-12-21 07:43:47.699069700 +0100 @@ -735,6 +735,8 @@ if (!(*word[i + offset])) break; num_args++; + if (word[i + offset][0] == ':') + break; } /* count the number of modes (without the -/+ chars */ @@ -765,7 +767,7 @@ if ((all_modes_have_args || mode_has_arg (serv, sign, *modes)) && arg < (num_args + 1)) { arg++; - argstr = word[arg + offset]; + argstr = STRIP_COLON(word, word_eol, arg+offset); } handle_single_mode (&mr, sign, *modes, nick, chan, argstr, numeric_324 || prefs.hex_irc_raw_modes, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/outbound.c new/hexchat-2.14.3/src/common/outbound.c --- old/hexchat-2.14.2/src/common/outbound.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/outbound.c 2019-12-21 07:43:47.699069700 +0100 @@ -3287,7 +3287,7 @@ if (!word[2][0]) return FALSE; - addr = dcc_get_my_address (); + addr = dcc_get_my_address (sess); if (addr == 0) { /* use the one from our connected server socket */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/proto-irc.c new/hexchat-2.14.3/src/common/proto-irc.c --- old/hexchat-2.14.2/src/common/proto-irc.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/proto-irc.c 2019-12-21 07:43:47.699069700 +0100 @@ -60,8 +60,8 @@ tcp_sendf (serv, "NICK %s\r\n" - "USER %s %s %s :%s\r\n", - serv->nick, user, user, serv->servername, realname); + "USER %s 0 * :%s\r\n", + serv->nick, user, realname); } static void @@ -714,7 +714,7 @@ break; case 333: - inbound_topictime (serv, word[4], word[5], atol (word[6]), tags_data); + inbound_topictime (serv, word[4], word[5], atol (STRIP_COLON(word, word_eol, 6)), tags_data); break; #if 0 @@ -726,7 +726,7 @@ #endif case 341: /* INVITE ACK */ - EMIT_SIGNAL_TIMESTAMP (XP_TE_UINVITE, sess, word[4], word[5], + EMIT_SIGNAL_TIMESTAMP (XP_TE_UINVITE, sess, word[4], STRIP_COLON(word, word_eol, 5), serv->servername, NULL, 0, tags_data->timestamp); break; @@ -957,6 +957,7 @@ EMIT_SIGNAL_TIMESTAMP (XP_TE_SASLRESPONSE, serv->server_session, word[1], word[2], word[3], ++word_eol[4], 0, tags_data->timestamp); + serv->waiting_on_sasl = FALSE; if (!serv->sent_capend) { serv->sent_capend = TRUE; @@ -1142,7 +1143,7 @@ { case WORDL('A','C','C','O'): - inbound_account (serv, nick, word[3], tags_data); + inbound_account (serv, nick, STRIP_COLON(word, word_eol, 3), tags_data); return; case WORDL('A', 'U', 'T', 'H'): @@ -1150,7 +1151,7 @@ return; case WORDL('C', 'H', 'G', 'H'): - inbound_user_info (sess, NULL, word[3], word[4], NULL, nick, NULL, + inbound_user_info (sess, NULL, word[3], STRIP_COLON(word, word_eol, 4), NULL, nick, NULL, NULL, 0xff, tags_data); return; @@ -1330,7 +1331,7 @@ } else if (strncasecmp (word[4], "NAK", 3) == 0) { - inbound_cap_nak (serv, tags_data); + inbound_cap_nak (serv, word[5][0] == ':' ? word_eol[5] + 1 : word_eol[5], tags_data); } else if (strncasecmp (word[4], "LIST", 4) == 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/proto-irc.h new/hexchat-2.14.3/src/common/proto-irc.h --- old/hexchat-2.14.2/src/common/proto-irc.h 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/proto-irc.h 2019-12-21 07:43:47.699069700 +0100 @@ -28,6 +28,8 @@ (time_t)0, /* timestamp */ \ } +#define STRIP_COLON(word, word_eol, idx) (word)[(idx)][0] == ':' ? (word_eol)[(idx)]+1 : (word)[(idx)] + /* Message tag information that might be passed along with a server message * * See http://ircv3.atheme.org/specification/capability-negotiation-3.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/server.c new/hexchat-2.14.3/src/common/server.c --- old/hexchat-2.14.2/src/common/server.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/server.c 2019-12-21 07:43:47.699069700 +0100 @@ -1042,7 +1042,7 @@ sc.type = 1; sc.port = htons (port); sc.address = inet_addr (serverAddr); - strncpy (sc.username, prefs.hex_irc_user_name, 9); + g_strlcpy (sc.username, prefs.hex_irc_user_name, sizeof (sc.username)); send (sok, (char *) &sc, 8 + strlen (sc.username) + 1, 0); buf[1] = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/common/servlist.c new/hexchat-2.14.3/src/common/servlist.c --- old/hexchat-2.14.2/src/common/servlist.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/common/servlist.c 2019-12-21 07:43:47.699069700 +0100 @@ -166,9 +166,6 @@ /* irc. points to chat. but many users and urls still reference it */ {0, "irc.freenode.net"}, - {"Furnet", 0, 0, 0, 0, 0, TRUE}, - {0, "irc.furnet.org"}, - {"GalaxyNet", 0}, {0, "irc.galaxynet.org"}, @@ -196,6 +193,11 @@ #endif {0, "irc.globalgamers.net"}, +#ifdef USE_OPENSSL + {"hackint", 0, 0, 0, LOGIN_SASL, 0, TRUE}, + {0, "irc.hackint.org"}, +#endif + {"Hashmark", 0}, {0, "irc.hashmark.net"}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/fe-gtk/fe-gtk.c new/hexchat-2.14.3/src/fe-gtk/fe-gtk.c --- old/hexchat-2.14.2/src/fe-gtk/fe-gtk.c 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/fe-gtk/fe-gtk.c 2019-12-21 07:43:47.702403000 +0100 @@ -293,10 +293,10 @@ GtkSettings *settings = gtk_settings_get_default (); char *theme_name; - /* gnome-themes-standard 3.20 relies on images to do theming + /* gnome-themes-standard 3.20+ relies on images to do theming * so we have to override that. */ g_object_get (settings, "gtk-theme-name", &theme_name, NULL); - if (g_str_has_prefix (theme_name, "Adwaita")) + if (g_str_has_prefix (theme_name, "Adwaita") || g_str_has_prefix (theme_name, "Yaru")) gtk_rc_parse_string (adwaita_workaround_rc); g_free (theme_name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hexchat-2.14.2/src/fe-gtk/meson.build new/hexchat-2.14.3/src/fe-gtk/meson.build --- old/hexchat-2.14.2/src/fe-gtk/meson.build 2018-08-29 23:13:25.000000000 +0200 +++ new/hexchat-2.14.3/src/fe-gtk/meson.build 2019-12-21 07:43:47.705736400 +0100 @@ -39,13 +39,9 @@ hexchat_gtk_deps += dependency('x11') endif -hexchat_gtk_cflags = [ - '-fPIE' -] - -hexchat_gtk_ldflags = [ - '-pie' -] +hexchat_gtk_cflags = [] + +hexchat_gtk_ldflags = [] if get_option('with-libnotify') hexchat_gtk_sources += 'notifications/notification-libnotify.c' @@ -89,6 +85,7 @@ dependencies: hexchat_gtk_deps, c_args: hexchat_gtk_cflags, link_args: hexchat_gtk_ldflags, + pie: true, install: true, gui_app: true, )
