Commit Graph

109 Commits

Author SHA1 Message Date
Patrick Griffis
453cb7ca79 Increase max number of words a line can be split into
This may have unintended side-effects but 32 is a very low value
and I was seeing real world bugs being caused by this. Specifically
an ISUPPORT line with more features than this could store.
2020-09-17 15:50:28 -07:00
delthas
82a424fc8a win32: Fix undefined symbol for builds with -with-plugin=false
Windows builds without plugins can use notification-windows.c, which
uses module_load in its notification_backend_init function.

module_load was previously guarded with a USE_PLUGIN ifdef, but we do
need this function for Windows builds even if plugins are disabled.

This fixes a critical build issue for all Windows builds without
plugins.
2020-05-02 20:38:17 -07:00
Rainer Müller
5ca767f7f8 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.

See: https://github.com/mesonbuild/meson/issues/1160
2018-03-31 01:29:05 +00:00
Patrick Griffis
ececf2f640 Fix fscanf() usage without size limit
Closes #2137
2018-03-11 19:08:26 -04:00
Patrick Griffis
740352ceab Remove mpcinfo plugin
The code quality of it is terrible, the user experience of using it is terrible, and it should have been removed years ago
2018-03-09 20:26:41 +00:00
Patrick Griffis
e9b9ff9f38 Various fixes for mingw 2018-03-09 18:23:25 +00:00
Patrick Griffis
85bdb06cad Convert doat to an internal command
- Trivial plugin
- Useful for many users
- Was under a dumb license
2016-11-09 17:29:23 +01:00
Patrick Griffis
d1bd441a9a plugin: Add chanmodes to channels list 2016-09-03 15:47:37 -04:00
Patrick Griffis
034624983b plugin: Fix return value of hexchat_pluginpref_get_int()
On failure it should always return -1, atoi() returns 0.

Fixes #1785
2016-08-05 20:56:16 -04:00
Erik de Castro Lopo
c698e13c0d Couple of minor const correctness fixes 2016-05-28 16:52:26 +10:00
Patrick Griffis
fb7f27fcdd lua: Build on win32 2016-04-03 12:02:04 -07: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
Patrick Griffis
aab881fda2 Fix strict prototype warnings 2016-02-18 08:57:22 -05:00
TingPing
c86389f99b Fix possible overflow in pluginpref
Closes #1265
2015-04-07 06:38:59 -04: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
TingPing
afee9fd42b Only send utf8 string in Key Press event
Fixes #869
2015-02-02 02:56:08 -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
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
e400ed2855 Fixed bad const-cast. 2015-01-14 21:38:19 -08:00
TingPing
1fa4a000e7 Fix some unused warnings 2014-12-31 10:24:51 -05:00
TingPing
95febd978c Fix building as c89 2014-12-28 06:47:23 -05:00
TingPing
83032b1aa3 Use glib for all allocations
- Removes need to check for malloc failure
- Removes need for NULL checks on free
- Adds checks for integer overflows
- Removes some extra memset calls
- Removes chance of mixing libc and glib malloc/free
2014-12-28 06:44:44 -05:00
Arnavion
ec7a0d6e13 Fixed some more signed-unsigned-comparison warnings. 2014-12-15 10:25:28 -08:00
TingPing
d6e3f740bc Fix some leaks 2014-12-11 12:13:57 -05:00
Arnavion
5152040c17 Always use 64-bit filesize and file offsets in DCC.
Based on LRN's commit for replacing stat with GFileInfo https://github.com/hexchat/hexchat/commit/32008bb

Fixes #382
2014-12-06 14:02:45 -08:00
TingPing
2aa3eb8cfb Escape values set via pluginpref
Fixes #790
2014-09-01 18:17:26 -04:00
TingPing
c2ecb4c68c Fix various crashes with pluginpref 2014-07-28 14:47:19 -04:00
TingPing
11e3ecc739 Stop hardcoding plugin extensions everywhere 2014-06-04 11:15:35 -04:00
TingPing
8578a9d52d Always use GModule for plugin support
Also cleans up some dead code
2014-06-02 05:38:13 -04:00
TingPing
eb1d3a063a Allow overriding libdir 2014-01-27 18:39:26 -05:00
TingPing
20d26aea94 Rewrite dns command
- Cross platform
- Doesn't depend on external tools
2014-01-08 01:32:28 -05:00
Diogo Sousa
40f26429f8 Print{,_attr} and server{,_attr} hooks were incorrectly handled when both
version existed (regular and attrs).  Specifically, the priority was not
respected, and both versions were run even when EAT_PLUGIN was returned.

Fixes #847.
2013-11-28 02:11:33 +00:00
TingPing
5c223ec5d5 Fix more warnings 2013-11-22 16:53:50 -05:00
TingPing
2e08b3a2da Add remaining chanopts to plugin api
In flags of get_list('channels')
2013-10-15 18:30:37 -04:00
TingPing
a831ecfd01 Strip trailing space from pluginpref_list entries 2013-09-30 01:38:51 -04:00
TingPing
b7e8f64bba Fix crash in hexchat_pluginpref_list()
Set max output size to 4096
2013-09-30 01:23:20 -04:00
TingPing
68153812f7 Add channelkey to channel lists 2013-09-07 20:17:42 -04:00
TingPing
e8456beadc Add reload command for plugins and add to gui 2013-08-04 04:36:10 -04:00
TingPing
13e9713b72 Merge xchat r1525
Fixes possible crash
2013-07-20 18:00:19 -04:00
Diogo Sousa
ec6f5b011a g_free() should be used for g_malloc(). 2013-07-13 05:33:16 +01:00
Diogo Sousa
18eaccb840 Added functions to create/destroy event_attrs to plugin interface.
Function names were chosen to keep consistency with the rest of the
API.
2013-07-12 22:46:04 +01:00
Diogo Sousa
e0fb3d537d Added hexchat_emit_print_attrs() to plugin interface. 2013-07-12 01:33:35 +01:00
Diogo Sousa
5e240eb259 Indentation fixes and code cleanup. 2013-07-10 00:42:34 +01:00
Diogo Sousa
7101b7b864 Now hexchat_hook_server_attrs() and hexchat_hook_print_attrs() is called
when it should. This should close #661.
2013-07-09 23:11:28 +01:00
Diogo Sousa
98aa62f637 Removed two dummy functions in plugin interface. 2013-07-09 22:04:07 +01:00
Diogo Sousa
798db7368a Added hexchat_hook_server_attrs() and hexchat_hook_print_attrs() to the plugin
interface. This hooks are similar to hexchat_hook_{server,print}() except the
callback passes an extra argument with the (new) structure hexchat_event_attrs.

This structure contains attributes related to the event; by now it only contains
the server_time_utc member which is non-zero if server-time is enabled and the
server used this extension to pass a timestamp.

See issue #661.

(Note: this hooks are still not called by hexchat in this commit.)
2013-07-09 20:21:16 +01:00
Arnavion
59b9ee3417 plugins: Implemented get_info("password") and re-added get_info("nickserv") as an alias to that. 2013-06-23 11:39:12 -07:00
TingPing
9b958ed393 Use snprintf 2013-06-13 18:38:59 -03:00
Berke Viktor
7b0b86c9f7 Nuke nickserv password field and some cosmetics 2013-05-11 02:40:08 +02:00
Berke Viktor
fb01d4e9ab Replace g_strdup_printf with g_build_filename where possible 2013-05-04 18:21:48 +02:00