Commit Graph

1763 Commits

Author SHA1 Message Date
Ben Gamari 6b2cc1d28b cfgfiles: Reinitialize timers on net_ping_timeout change
This ensures that changes will take effect without a restart.
2016-06-29 15:42:11 -04:00
Ben Gamari a970c1ae2e cfgfiles: Introduce an after_update callback
This allows individual preferences to take action when their value is
changed.

Signed-off-by: Ben Gamari <ben@smart-cactus.org>
2016-06-29 15:42:11 -04:00
Ben Gamari 6a0e131b88 menu: Ensure that toggling lag-o-meter changes timer state 2016-06-29 15:42:11 -04:00
Ben Gamari 215a164e57 Ensure that timers are freed and activated when necessary 2016-06-29 15:42:11 -04:00
Ben Gamari 9e4c2ddc47 Apply timeout changes made in preferences dialog
Just involves a bit of refactoring.
2016-06-29 15:42:11 -04:00
Ben Gamari bcbe42dd7a Introduce and use fe_timeout_add_seconds
This should allow the operating system to be a bit more lax about
timeouts, allowing more efficient power management.
2016-06-29 15:42:11 -04:00
Ben Gamari 25e197a6c8 dcc: Disable timeout timer when not in use
This should mean that hexchat never *needs* to wake-up unless prompted
by socket activity (assuming that the lag-o-meter is not enabled).
2016-06-29 15:42:11 -04:00
Ben Gamari 7dca220486 Refactor timer handling
This allows us to omit the lagometer timer in the event that it is not
enabled, bringing the baseline wake-up rate down to 1Hz from 2Hz, which
could bring considerable power savings on mobile devices.
2016-06-29 15:24:03 -04:00
Adrien Saladin 111ba3750f Mask nickserv ghost password
Closes #1750
2016-06-29 15:19:28 -04:00
Arnavion 16ba39d9fa Forcibly reset iconv converter after every conversion.
Despite what g_convert_with_iconv's docs say, it does not reset the converter on a failed conversion (iconv returns -1).

Fixes #1758
2016-06-24 12:09:35 -07:00
Arnavion 4ed1acfd52 Use constant instead of literal. 2016-06-24 12:05:37 -07:00
Arnavion a1d2272dc0 notifications-winrt: Fix all uses of "" to L"".
The API uses Platform::String^. String's constructor takes in char16*.

Fixes #1755
2016-06-21 07:39:50 -07:00
Patrick Griffis c12f33aa4c servlistgui: Error if nicks left empty 2016-06-12 15:01:39 -04:00
Erik de Castro Lopo c698e13c0d Couple of minor const correctness fixes 2016-05-28 16:52:26 +10:00
Erik de Castro Lopo 10e429b85d Remove two un-needed type casts 2016-05-28 16:35:45 +10:00
Patrick Griffis 6554a8d63c servlistgui: Show invalid nick/user on open
It is possible to have an invalid config from a previous upgrade

Fixes #1715
2016-05-16 08:51:18 -04:00
TingPing 3c329727c7 servlist: Default to UTF-8 on PTNet
Fixes #1697
2016-05-03 20:16:49 -04:00
Arnavion fe9da9314c Fixed warning from MSVC that not all branches return a value. 2016-04-27 11:39:29 -07:00
Patrick Griffis 5b097f560d More minor scrollback loading improvements 2016-04-26 12:06:28 -04:00
Patrick Griffis 44aa999598 Fix challengeauth lower casing username 2016-04-13 18:47:51 -04:00
Marcel Telka 54c6418d61 Support for older libnotify versions 2016-04-10 21:22:12 -04:00
Patrick Griffis a3e1a287ac Bump glib requirement to 2.34
This is still rather old but does drop Ubuntu 12.04 support.
2016-04-07 18:27:37 -07:00
Patrick Griffis fb7f27fcdd lua: Build on win32 2016-04-03 12:02:04 -07:00
Patrick Griffis 1f48f9dd6f Increase default size of some util windows 2016-03-31 07:21:02 -04:00
Patrick Griffis 9402a31111 Improve help message for /close
Closes #1397
2016-03-30 08:58:25 -04:00
Patrick Griffis 58fb36ee34 Fix warning
Fixes #1533
2016-03-30 08:48:23 -04:00
Patrick Griffis f656569eb9 plugin: Fix padding for chanopts in channel flags
This is an API break but it didn't really work
properly before anyway.

Fixes #1666
2016-03-30 08:28:51 -04:00
LemonBoy 0635e91dd6 Don't flush the chanopt_list when saving it
Closes #1665
Fixes #1134
2016-03-30 08:11:07 -04:00
Jactry Zeng 5f2d6a3c11 servlistgui: Removes leading and trailing whitespace from hostnames
Closes #1651
2016-03-30 08:07:42 -04:00
Scott Scheiner 356241bdfb url: Add support for ts3server:// uris
Closes #1659
2016-03-30 08:05:32 -04:00
Patrick Griffis dce6a7612a plugingui: Use full path when unloading/reloading plugins
Mentioned in mniip/hexchat-lua#5
2016-03-29 12:19:19 -04:00
Patrick Griffis 60b3b43f3e Translate chanopt output 2016-03-28 21:31:35 -04:00
Patrick Griffis 6cbcc73a79 chanopt: Ensure values are 0-2
If chanopt was set to any other value it would overwrite
other values in the plugin API for channel flags.
2016-03-28 21:19:39 -04:00
Patrick Griffis dd080fa6f3 Fix building on old glib 2016-03-28 01:36:02 -04:00
Patrick Griffis bcb4eec754 identd: Fix ipv6 support on Windows 2016-03-28 01:28:56 -04:00
Patrick Griffis 795e97f428 identd: Fix respecting USE_GLOBAL network flag 2016-03-28 00:31:00 -04:00
Patrick Griffis 77ac0863f8 identd: Respond for INVALID-PORT and NO-USER errors 2016-03-27 23:44:05 -04:00
Patrick Griffis 963ba2bf2d identd: Ensure connection is closed 2016-03-27 23:18:24 -04:00
Patrick Griffis c280029436 servlist: Update DALnet default login type 2016-03-25 18:44:16 -04:00
Patrick Griffis 47b357b2e1 Only intercept QuakeNet challengeauth when enabled 2016-03-24 15:42:49 -04:00
Patrick Griffis c1a94e2879 servlist: Add GlobalGamers
Closes #1334
2016-03-20 20:47:52 -04:00
Patrick Griffis 7c078db879 Fix loading encoding from network list on connect
- Fix setting new encoding when switching networks
- Ignore ports when looking for network by hostname
- Only set UTF-8 when nothing explicitly set

Fixes #1628
2016-03-11 02:15:42 -05:00
Patrick Griffis ebb0fd6905 identd: Fix leak 2016-03-09 00:38:56 -05:00
Patrick Griffis 94a7fbae02 Fix possible overflow 2016-02-19 09:41:24 -05:00
Patrick Griffis bae1ebce2f Update network list
- Remove dead ones
- Use SASL and TLS when possible
- Make note of self-signed ones
- Add LibraIRC

Closes #1039
Closes #1512
Closes #1473
2016-02-19 09:39:16 -05:00
Insu Yun 50463ca832 Properly handle missing SSL certificate
According to OpenSSL document
(https://www.openssl.org/docs/manmaster/ssl/SSL_get_verify_result.html),
when using SSL_get_verify_result(), the existence of certificate
needs to be checked. However, in current code, it does not.
Therefore, certificate existence check is required for correctly
handling the exception.

Closes #1549
2016-02-19 07:26:50 -05:00
Patrick Griffis aab881fda2 Fix strict prototype warnings 2016-02-18 08:57:22 -05:00
Patrick Griffis 650bddcfd1 Improve scrollback file handling
- Properly use filesystem encoding
- Validate utf8 when loading (hopefully fixing crashes)
- Use Gio
- Handle Windows line endings
- Remove dead code
- Fix respecting max length of scrollback files
2016-01-31 15:31:15 -05:00
Patrick Griffis 4362085847 Remove DH-AES/DH-BLOWFISH mechanisms and misc cleanup
- AES and Blowfish mechanisms are deemed insecure and servers
  have removed support for them
- Remove attempts to retry since we only support one mech
- Handle SASL 3.2's new syntax for supported mechs
2016-01-29 17:41:08 -05:00
Patrick Griffis 6b62c4738d Add support for twitch.tv/membership 2016-01-29 15:28:34 -05:00
Patrick Griffis 8da205b0a8 Add support for chghost 2016-01-29 15:28:33 -05:00
Patrick Griffis 981d55e84c Add support for CAP 3.2 2016-01-29 15:28:33 -05:00
Patrick Griffis 35d238ad3a Properly handle a few args optionally starting with :
This is a pervasive problem that will likely show up in
other events also.

Closes #1460
2016-01-28 22:49:23 -05:00
Patrick Griffis 2c8729becd Handle PING and AUTHENTICATE with a prefix
Not the ideal solution..

Closes #1566
2016-01-28 22:38:36 -05:00
Patrick Griffis 35f97b65c1 Sanitize server name for log files
It could contain invalid chars or log to an arbitrary directory
2016-01-28 16:22:04 -05:00
Patrick Griffis a2c2abd60a Fix missed comma 2016-01-28 16:17:30 -05:00
Patrick Griffis 7a85c9160d Add support for cap-notify 2016-01-28 16:02:04 -05:00
Patrick Griffis 4e061a43b3 Clean up handling CAP LS 2016-01-28 15:18:15 -05:00
Patrick Griffis 5c534ac344 Fix leaks 2016-01-25 23:36:06 -05:00
Patrick Griffis ea9e8d353b identd: Use GDataInputStream 2016-01-25 22:53:42 -05:00
Patrick Griffis f14ad5e9dd Add identd to preferences 2016-01-25 22:51:11 -05:00
Patrick Griffis 5dafa60433 Rename identd variable name 2016-01-25 20:37:53 -05:00
Pavel Djundik 971e5cf4fe Emit word_click even as long as user is not selecting any text when releasing button
This fixes the need to do pixel-perfect clicks to open links in chat
2016-01-10 12:37:30 -08:00
Anthony Ryan 26d3461f46 Make tab completion prefer other people
If you are talking with someone else with the same prefix as your
own nickname, and attempt to tab complete theirs. It will complete
your own nickname before theirs if you talked more recently. Since
people rarely intend to highlight themselves, this improves the
logic to complete your own name only as a last resort.
2015-11-14 23:22:57 -05:00
Patrick Griffis 295061f461 Fix incorrect const usage 2015-11-09 14:51:48 -05:00
Patrick Griffis 0bd15d435a Fix freeing string from g_get_user_name()
Fixes #1540
2015-11-09 14:41:42 -05:00
Patrick Griffis c8539b93fe xtext: Fix overflow on long lines
xtext keeps a static buffer and uses it for various things
and asserts that every text entry is < 4096. It does
this check on gtk_xtext_append*() except it does the check only on
the right half of text when indent is enabled.

This overflow caused corruption in the xtext struct
changing the url check functions making hovering
with the mouse do 'undefined' things.

In the long term this should be removed for a dynamically
allocated buffer so no arbitrary size limit exists and
text gets cut off.

Fixes #1465
Fixes #1186
Fixes #1206
2015-10-30 01:22:13 -04:00
Rico Tzschichholz 66eebea2c3 build: Don't dist resources.h resources.c 2015-10-17 09:26:23 +02:00
Rico Tzschichholz 9e2d5dae5e build: Determine resources-files once instead of three times 2015-10-17 09:13:29 +02:00
Rico Tzschichholz b8e7dfa4ba build: Let 'make dist' do a better job 2015-10-16 17:25:01 +02:00
Arnavion 7f1ee9dad0 common: Moved some functions over from plugins/sysinfo that are useful for the rest of HC.
OS name, CPU, GPU, HDD info and build arch are now all available within core HC. OS name and build arch are used in the About dialog.
2015-10-12 19:20:53 +02:00
Arnavion f7e3d3f32c Use VS 2015 2015-10-10 16:14:12 -07:00
Arnavion 671a838b52 fe-gtk: Use manual registration for resources. 2015-10-10 16:14:07 -07:00
Patrick Griffis 599f5c7b29 win32: Don't rely on CWD for portable-mode check
Also cache the result...

Fixes #1500
2015-10-05 15:06:57 -04:00
Patrick Griffis 9c5f577002 Don't use SASL on an unknown network
https://bugzilla.redhat.com/show_bug.cgi?id=1262763
2015-09-14 09:33:06 -04:00
moparisthebest dbad9285b8 TLS: Set SNI hostname before connect 2015-09-11 01:48:29 -04:00
Lee Watson 73636a00b5 Removed SeionIRC from the serverlist
I'm removing Seion from the serverlist because it's now mostly a defunct network. One of the servers is completely broken in regards to ipv6 connectivity and SSL, the webchat server hasn't worked for months, and I shut down my server (fox.seion.us) a few days ago.
2015-09-05 13:58:34 +01:00
TingPing e7003ef9c6 Improve /mode behavior
This fixes /mode using the name of invalid contexts
and also adds some documentation to what is happening.

In the end though it still must guess between modes
and nicks if ran in a valid context.

Fixes #1470
2015-09-03 02:35:13 -04:00
RichardHitt 9664b1b7e3 Fix select regression.
Fix selection when part of the selected text is above/below a border.
Also, fix problems uncovered by static analysis.

Fixes #1261.
2015-08-20 00:23:17 +02:00
asarium 422cce6f70 Fix crash in DBus plugin
Closes #1438
2015-08-02 08:06:21 -04:00
TingPing afd2135393 Fix possible overflow
gtk_entry_get_text_length() returns len in utf8
chars not in bytes
2015-06-04 04:02:33 -04:00
TingPing 94ef0fd294 Fix warning 2015-05-28 14:13:34 -04:00
TingPing ebe1f824a7 Fix mnemonic collision
Alt+a is used for mark away in the menus and also
highlight all in the search box, change the latter to
alt+h.

Fixes #1008
https://bugzilla.redhat.com/show_bug.cgi?id=1173082
2015-05-27 13:42:59 -04:00
RichardHitt f7bea16e37 xtext: Fix poor performance with nick indent enabled
This fixes xtext re-rendering multiple times when the
indent width is not sufficient

Fixes #1364
Closes #1367
2015-05-18 06:31:00 -04:00
tomek ff9c0dbd5e Update alternative font list 2015-05-08 00:02:09 +02:00
Arnavion 29321c8660 Fixed pango attributes not being applied in some cases.
gtk_entry_get_text_length returns the number of utf-8 characters in the GtkEntry, not the number of bytes in its text.
2015-04-25 16:51:29 -07:00
Arnavion 0b40146b85 Disable pango attributes on sexy entry while it contains preedit text.
Fixes #1360
2015-04-24 19:20:48 -07:00
TingPing 7363bc03f2 Remove r from mode buttons
No network can agree on what mode r actually
means so we can't have nice things.

Closes #1287
2015-04-21 16:07:12 -04:00
TingPing 78e51a4f3f Fix mode button text being cut off
This no longer restricts their width and uses
monospace fonts so they are still the same
width.

Closes #1356
Fixes #1354
2015-04-21 15:35:15 -04:00
TingPing c86389f99b Fix possible overflow in pluginpref
Closes #1265
2015-04-07 06:38:59 -04:00
TingPing 66f2f3a84a Improve /AWAY help message
Closes #1343
2015-04-05 00:54:52 -04:00
TingPing f8c7ea3672 Fix some text event descriptions 2015-04-04 04:29:39 -04:00
TingPing ae2e5ab092 Fix conflicting type in header
gsize and size_t are not the same thing
2015-03-20 04:58:00 -04:00
TingPing 1cc06f9301 Fixup dc69f24ae
It still has to be in hex...
2015-03-19 16:47:37 -04:00
TingPing dc69f24ae5 Use correct type for colors 2015-03-19 16:30:03 -04:00
TingPing b4906f3d23 Fix warnings 2015-03-19 16:06:49 -04:00
bendem 36a8ba126c Fix incorrect timestamp in scrollback with server-time
Fixes #1148
2015-03-02 19:58:27 +01:00
TingPing 749e5b20da Make use of g_path_is_absolute()
No reason to roll our own.. in multiple places
2015-02-28 07:24:49 -05:00
TingPing d78db5070a Consistently use g_fopen()
It handles the correct encoding on win32
2015-02-28 06:47:40 -05:00
TingPing a5584c6b57 Clean up some ifdefs
Thankfully somebody already made a define for this, they
just never used it...
2015-02-28 06:43:33 -05:00
Arnavion 97bf0de016 Make Preferences option in plugin tray menu available on all platforms. 2015-02-27 17:33:33 -08:00
Arnavion b6c4cfa2a3 Fixed undefined behavior causing hover highlights on the plugin tray menu not working.
Fixes #602
2015-02-27 17:24:57 -08:00
TingPing ec12871e60 Write scrollback as binary on win32
Proper fix for b66edd3
This issue likely applies elsewhere in HexChat
2015-02-27 16:20:09 -05:00
Arnavion 4d44c17939 Removed unused variables left behind from bbb81af 2015-02-21 03:14:32 -08:00
TingPing 96026b82c7 Add support for native win8+ spell checking 2015-02-21 05:54:58 -05:00
Arnavion e42da22716 Revert "xtext: Unselect old selection on button press" - breaks clicking URLs to open them.
This reverts commit 8ca96d7ea3.
2015-02-20 02:54:41 -08:00
TingPing 0a8248578f Remove compiled date from about
Distros like Debian depend on repeated builds
having the same results which this breaks.

Since this provides no real value just
remove it.
2015-02-19 21:00:24 -05:00
TingPing c87f559334 Fix distfiles 2015-02-15 15:20:38 -05:00
RichardHitt 8ca96d7ea3 xtext: Unselect old selection on button press
Fixes #943
Closes #1293
2015-02-15 13:17:55 -05:00
Arnavion bbb81af550 Removed unnecessary Windows-only code for seeding openssl's RNG.
openssl seeds itself with CryptGenRandom on Windows in the same manner as /dev/(u)random on other OSes.
2015-02-14 00:31:41 -08:00
Arnavion a22816fbbd Don't try to disable compression if openssl hasn't been compiled with compression support.
The function is still defined in openssl/ssl.h but not in the actual library, so it cannot be linked to.
2015-02-14 00:30:00 -08:00
TingPing b6877ccf5c win32: Use WinSparkle for handling updates
Fixes #1282
2015-02-12 19:11:46 -05:00
TingPing 7063406d6c Remove input_balloon_time setting
This setting doesn't work on most platforms
including some notification daemons on linux.

Where it does work I think it is bad behavior
to default overriding their defaults anyway.

It's most valuable use was likely win32
tray balloons which no longer exist.
2015-02-11 17:58:44 -05:00
Arnavion 9858784eb6 Better project files.
- Output directly to rel\ instead of to bin\ and then copying files over.
- Deduped Win32 vs x64 configs
- Moved some common properties to hexchat.props
- All build intermediates (except htm's intermediates) are no longer emitted in the source directory
2015-02-11 10:01:29 -08:00
Arnavion 5a87d814cf Call CoInitialize, CoInitializeSecurity and CoUninitialize from the main process, not from a DLL.
They're process-level functions and aren't meant to be called from DLLs. CoInitSecurity in particular fails with RPC_E_TOO_LATE even if no other call to CoCreateInstance has been made yet.

Fixes sysinfo's WMI calls on Windows 8.1 and above.
2015-02-10 22:14:22 -08:00
TingPing ac54a2ed45 Allow reordering some dialogs with dnd
This sadly can't work everywhere since they all
have entirely different ways of saving the data..

Related to #1288
2015-02-08 01:51:22 -05:00
TingPing 75c022c49f Implement OSX notification backend 2015-02-04 21:41:10 -05:00
TingPing f4f27e438b Implement windows 8.1+ notifications
This splits notifications up into multiple backends
currently only libnotify on unix and win8 toasts.

The win8 backend was originally written by @leeter
though heavily modified.
2015-02-04 20:24:53 -05:00
Berke Viktor a216ed1df9 Partial fix for Windows 10 detection 2015-02-04 04:48:44 -08:00
TingPing afee9fd42b Only send utf8 string in Key Press event
Fixes #869
2015-02-02 02:56:08 -05:00
TingPing 60fa7efbc8 Fix logging hostname of queries
- Move query topic setting from frontend (where its too late)
- Respect chanopts for logging hostname
- Open query logfile *after* chanopts loaded
2015-02-01 01:47:50 -05:00
Arnavion 1d83610341 Save iconv converters for input and output in the server.
These are then used with g_convert_with_iconv instead of making it create a new iconv converter every time for the given from-to-encoding pairs.
2015-01-31 00:52:31 -08:00
Arnavion 5dde0d7c6d Also verify encoding read from servlist.conf 2015-01-31 00:52:30 -08:00
TingPing 5fe2dda146 ssl: Remove unused server code 2015-01-30 21:25:41 -05:00
TingPing 85fd6f525e Add default keybinding for shift+tab (Previous tab complete) 2015-01-26 17:53:33 -05:00
TingPing e5b65bbd69 servlist: Clean up specifying ssl for network 2015-01-20 03:03:45 -05:00
TingPing a838cd9c07 servlist: Various changes
- Remove IRCNode
- Replace Techmans with Techtronix
- Remove unecessary ports
- Consistently use round-robin over specific servers
- Don't use mixed-case hostnames

Closes #1244
2015-01-20 02:43:16 -05:00
TingPing 02470dffa5 servlist: Add AthemeNet and remove its old networks
Closes #1272
2015-01-19 11:31:42 -05:00
Arnavion c5bbf75f5e Removed one leftover check for server->encoding against NULL. 2015-01-18 02:55:32 -08:00
Arnavion b783c827c8 Fixed incorrect comment on server->encoding. 2015-01-18 02:27:38 -08:00
Arnavion d1897c1602 Remove "System default" encoding. The default for new servers is UTF-8. 2015-01-18 02:10:05 -08:00
Arnavion 6f8a6e66cc Detect unknown server encodings and set to UTF-8. 2015-01-18 02:10:05 -08:00
Arnavion 5749c53484 Server line text-encoding-related fixes.
- Handle server lines that contain sequences which are invalid in the server encoding. Previously, these would cause the whole line to be interpreted in ISO-8859-1, but now they're simply replaced with an appropriate replacement character.

- Removed prefs.utf8_locale.

- Change default server encoding from system locale to UTF-8.

- Always populate server->encoding with a non-null value - UTF-8.

Fixes #1198
2015-01-18 02:10:04 -08:00
Arnavion 5569205d15 Add CP1252 as an available server encoding for Windows-1252 and ISO-8859-1 networks. 2015-01-18 02:10:04 -08:00
Arnavion 2e76a4e477 Removed CP1255-specific handling of server lines.
GLib's API is good enough now.
2015-01-18 02:10:03 -08:00
Arnavion ee17ec6b4f Removed legacy "IRC" encoding. 2015-01-18 02:10:03 -08:00
Arnavion 5a56f9ea01 Removed unimplemented, unused function. 2015-01-14 23:42:21 -08:00
Arnavion e400ed2855 Fixed bad const-cast. 2015-01-14 21:38:19 -08:00
Arnavion 1d316710ed Don't crash if the log file can't be opened.
Found in #1269
2015-01-14 16:29:03 -08:00
TingPing aab243592f Workaround crash when timestamp format is blank
Somebody else can fix the numerous assumptions elsewhere
2015-01-13 04:14:32 -05:00
TingPing 13db2011e3 Fix leak
From libressl-portable/openbsd@20de8a4923
2015-01-09 17:25:45 -05:00
tomek 7739c99f3f Update alternative font list 2015-01-07 22:46:37 +01:00
Arnavion 99f74e8d94 Also print the command that wasn't recognized. 2015-01-07 13:42:42 -08:00
TingPing 5ca87b3c8d identd: Fix unknown command when service fails to start 2015-01-07 16:21:46 -05:00
TingPing 16d1fccf61 Fix disabling identd server 2015-01-03 18:00:37 -05:00
TingPing 9bd7405502 Remove last remnants of GtkClists
These were removed a while ago
2014-12-31 11:57:27 -05:00
TingPing 2a28289314 Don't return 0 in place of NULL 2014-12-31 11:31:17 -05:00
TingPing 112632bb4e Fix some possible null-deref warnings 2014-12-31 11:12:43 -05:00
TingPing c5016e390f Show correct number of channels/dialogs when closing server tab 2014-12-31 10:50:13 -05:00
TingPing 63bb87fc93 Don't select join #hexchat by default in join dialog
Have to go even one step further removed so users don't
accidentally join
2014-12-31 10:44:36 -05:00