Commit Graph

3541 Commits

Author SHA1 Message Date
Patrick Griffis
13b6a40b9c Change preferences sub-dialogs to be modal
This solves the issue where the parent dialog is closed and then
the child dialog is used.

This is however only a partial fix:

- Many other dialogs throughout the codebase do not currently have
  parent windows and need to be refactored.

- Not all window managers respect modal so users can still trigger
  bugs. We can be more defensive against this but it requires more
  refactoring.

Closes #2686
2022-04-16 18:41:34 -05:00
Patrick
dd167b4c83
python: Fix API break in hook_timer()
Closes #2691
2022-04-15 13:43:22 -05:00
Sadie Powell
133f628064 Display common help numerics as SERVTEXT.
This makes it a lot easier for users to actually read.
2022-04-02 12:17:54 -05:00
Patrick
d99a98ff4c
notification: Don't print failure to load backend in UI
This isn't actually helpful information to users generally

Closes #2152
Closes #2684
2022-03-26 11:18:00 -05:00
Masoud Naservand
94efa378f7 Reverse the notify.conf linked list before writing
hexchat populates the single linked list `notify_list` defined in
`src/common/notify.c` from `notify.conf` file. Each new line read from
the file is added to the list by `g_slist_prepend()` which adds it to
the front of the list. But in `notify_save()` the list elements are read
from the start to end of the list and written to the `notify.conf`. This
means everytime hexchat is opened and closed, the contents of
`notify.conf` get reversed. This commit creates a
temporary glist in `notify_save()` and applies `g_slist_reverse()` on it
and writes the contents of this reversed list to `notify.conf`. And
solves issue #2680
2022-02-17 10:24:59 -06:00
William D. Jones
ccf6f431bb Return userdata from pluginprefs __pairs metamethod to avoid immediate GC. 2022-02-16 12:44:09 -06:00
Patrick Griffis
73c0b672a2 Bump to 2.16.1 2022-02-12 12:28:17 -06:00
orcus
7cff05c7ac
Add -q/-- flags to /execwrite to EXECWRITE and cmd_execW (#2675)
added two flags to EXECWRITE and cmd_execw
-q : (quiet) to allow suppressing of additional (debug) output at the text box
--  : (stop parsing for further flags) for the edge cases where -q itself migh be part of used data and the user wants to show that at the text box

Closes #2666
2022-01-24 11:38:21 -06:00
Biswapriyo Nath
1de339dfbc meson: Fix exported functions in plugins
This adds DEF file names in meson. Without the DEF files, every
functions are exproted from plugins.
2022-01-21 15:54:49 -06:00
Biswapriyo Nath
a330c1cf4d sysinfo: Fix architecture detection in AArch64 Windows
AArch64 should be detected as 64 bit OS.
2022-01-21 15:54:30 -06:00
Sadie Powell
7df34cdcb2 Log when the user specifies an invalid port. 2022-01-17 18:36:49 -06:00
Sadie Powell
91adfb5917 Fix handling invalid ports.
Instead of wrapping around, which is not behaviour any reasonable
user would expect, just use the default port if above 65535.

Disallow connecting on port 0. This port has special meaning and
servers can not listen on it. It is more likely the user just
gave an invalid value to the port field as atoi("invalid") == 0.
2022-01-17 18:36:49 -06:00
Biswapriyo Nath
9c7109b578 meson: Fix exported functions for python plugin
This fixes loading python plugin in Windows by exporting functions using
python.def file. Otherwise, hexchat_plugin_init symbol error is shown.
2022-01-11 17:26:31 -06:00
Patrick
d936b653ac
Add missing header
https://github.com/hexchat/hexchat/issues/2652#issuecomment-1007015314
2022-01-06 20:36:14 -06:00
Biswapriyo Nath
d889a8e019 meson: Remove unused wbemcore dependency 2022-01-05 14:28:21 -06:00
Patrick Griffis
66f5968225 Update comment 2021-12-22 12:05:08 -06:00
Patrick Griffis
ba5d79b496 Be smarter about conditionally escaping URIs that are opened
Fixes #2659
2021-12-22 11:50:36 -06:00
Patrick Griffis
7c27dcd524 build: Set G_LOG_DOMAIN 2021-12-22 11:46:55 -06:00
Noah Keck
d07e8a8ab2 Remove wallchan command
This command doesn't have many legitimate, non-spam applications and is
easily confused for the similarly named 'wallops'. Moreover, many
netowrks now automatically punish or drop users who message many
channels at the same time, rendering the command mostly useless.

It also is too easy to tab-complete 'wall' into 'wallchan' when you
expect 'wallops' to come up first, which can lead to two very different
functions. If this is to be reintroduced it should be named something
with less similarity to 'wallops' or 'wallchops'.
2021-12-02 14:41:01 -06:00
John Villalovos
3ebb2c5eec
Make build job names more descriptive (#2657)
Previously every build showed up in the CI as "build".

Update the job names to reflect what they are. For example the Ubuntu
build is now called "ubuntu_build"

Co-authored-by: Patrick <tingping@tingping.se>
2021-12-01 13:07:34 -06:00
Simon Chopin
bbd60a96ec fish: enable the legacy provider if build against OpenSSL3
OpenSSL 3.0 disables a number of "legacy" algorithms by default, and we
need to enable them manually using their provider system. Note that
explicitly loading a provider will disable the implicit default
provider, which is why we need to load it explicitly.

Closes #2629

Signed-off-by: Simon Chopin <simon.chopin@canonical.com>

V2:
  * use a local OSSL_LIB_CTX to avoid leaking the legacy algorithms
    into the main SSL context.
  * Simplify the fish_init() error paths by calling fish_deinit()
2021-11-30 08:35:04 -06:00
Patrick Griffis
8443755772 Fix timer being locale dependent for decimals
`/timer .1 echo hi` now works in all locales.
2021-11-12 12:44:09 -06:00
Patrick Griffis
f93b13a6a3 Add missing string.h includes
Closes #2652
2021-11-11 10:24:39 -06:00
Patrick Griffis
4f3ef3505a fishlim: Minor test improvements
- Don't have tests repeat themselves, meson has a `--repeat` flag
- Fix a minor leak of a GRand
- Speed up a test
- Increase timeout

This still needs a lot of improvements, it runs at lot of loops within
loops generating random strings that could be optimized. This means
it can take a very long time on some computers.

Closes #2629
2021-11-03 09:59:24 -05:00
Foxy
b54593e752
Update servlist.c (#2648)
Added irc.irc-nerds.net to the server list
2021-10-30 10:51:46 -05:00
Patrick Griffis
64da6ce1fc flatpak: Update shared-modules 2021-10-26 15:51:53 -05:00
Patrick
3f099bace2
flatpak: Remove rename-icon from manifest 2021-10-26 11:53:00 -05:00
Patrick Griffis
dac8ace90c Install icons as io.github.Hexchat
This matches our app-id as the desktop-file spec recommends.

This also fixes a bug where our notifications referred to this new
name already.
2021-10-25 15:04:38 -05:00
alicetries
f42f6af1b9 Adjust parsing of RPL_WHOISSPECIAL to handle missing : for single-word whois messages
This is to support parsing the RPL_WHOISSPECIAL from unrealircd correctly if the whois message is a single word.
2021-10-20 20:48:29 -05:00
Nolan Lum
9039a5d75b
Add -NOOVERRIDE flag to GUI COLOR. (#2644) 2021-10-14 09:44:11 -05:00
Patrick
aabe3438fa
ci: Don't install libproxy-dev 2021-10-07 14:05:47 -05:00
Patrick Griffis
6fd8a8f9bf python: Open all scripts with utf-8 encoding 2021-10-02 09:49:17 -05:00
Patrick Griffis
40399b1cb6 Bump version to 2.16.0 2021-10-01 14:52:09 -05:00
Ryan Schmidt
dd6f53f504 Fix user list not tracking mode changes
The `PREFIX` key in `ISUPPORT` (usually) takes the form
`(modes)prefixes` e.g. `(ov)@+`. The current implementation will
therefore set `serv->nick_modes` to a string like `"(ov"` instead
of the desired `"ov"`. This causes the nick list to not properly
update with which users have which prefix modes. Skip over the
initial `'('` so we capture the correct modes and fix that issue.
2021-10-01 14:50:44 -05:00
Patrick Griffis
3f07670b34 win32: Update to OpenSSL 1.1 2021-10-01 13:47:42 -05:00
Patrick Griffis
2985dde7f0 Explicitly set app icon in notifications 2021-10-01 11:56:49 -05:00
Sadie Powell
8239fbd041 Be a bit less insulting about servers with longer line lengths. 2021-08-24 16:40:54 -05:00
Sadie Powell
899b4cd3eb Increase the linebuf length to fit a full message including tags. 2021-08-24 16:40:54 -05:00
Sadie Powell
ef0e670392
Remove some weird guesswork on the 004 numeric. (#2621)
Bahamut and ircu both send 005 MODES and ELIST so this is entirely
unnecessary. The other IRCd checked for here is for a dead network.

While we're editing this code fix HexChat on servers that can only
support one mode at a time (these are mostly gateway servers).
2021-08-23 10:34:13 -05:00
Patrick Griffis
69ce388a87 actions: Add MSYS2 builder 2021-07-15 20:59:27 -05:00
Patrick Griffis
fee86de499 fish: Misc test cleanups 2021-07-15 20:59:19 -05:00
Patrick Griffis
91439f04c0 Fix whitespace issues 2021-07-13 12:30:47 -05:00
Patrick Griffis
c144d0468b Remove libnotify dependency
Instead just talk directly to the service. This fixes *sending*
a notification being blocking IO.
2021-07-13 12:26:34 -05:00
Patrick Griffis
482efae89a actions: Build on Ubuntu 20.04
18.04 requires newer Ninja
2021-07-13 11:33:00 -05:00
Patrick Griffis
cbb0927a7a build: Misc cleanup of options
Cleanup of option names, use features where applicable, and printing
of summary.
2021-07-13 11:26:59 -05:00
Michael Catanzaro
25440a07c3 Avoid direct use of libproxy
Since hexchat already depends on GLib, it's better to use GProxyResolver
instead. This might use libproxy, or not, as appropriate.

P.S. This removes a memory safety issue because proxy_list is allocated
using malloc(), not g_malloc(), and therefore using g_strfreev() is
incorrect. The proper way to free the proxy list returned by libproxy
is to use px_proxy_factory_free_proxies() (but nobody does that because
it was added in libproxy 0.4.16, which is somewhat recent).
2021-07-12 11:29:15 -05:00
Patrick Griffis
869a8d7ab3 Fix allowed characters when escaping URIs
Closes #2608
2021-07-10 11:35:35 -05:00
Patrick
c8536ed50c
servlist: Remove freenode
Closes #2604
2021-07-09 19:29:21 -05:00
Valerie Pond
cfb43bf550
servlist: Add back TURLINet (#2602) 2021-07-02 02:36:29 +00:00
adamus1red
816769af5b Add DigitalIRC to default servlist.c 2021-06-29 13:53:23 -05:00