# HG changeset patch # User Gary Kramlich # Date 1702374495 21600 # Node ID 7a4558293dcaf82bf2b17697a9eaf84a626ba7c4 # Parent a8a644e3e5619dcfa1ff974d3ffee81c249a0034 Add birb as a subproject and make IRCv3 use it Testing Done: Connected an IRCv3 account to twitch without issue. Reviewed at https://reviews.imfreedom.org/r/2877/ diff -r a8a644e3e561 -r 7a4558293dca libpurple/protocols/ircv3/meson.build --- a/libpurple/protocols/ircv3/meson.build Tue Dec 12 01:21:38 2023 -0600 +++ b/libpurple/protocols/ircv3/meson.build Tue Dec 12 03:48:15 2023 -0600 @@ -64,14 +64,14 @@ ircv3_prpl = shared_library('ircv3', IRCV3_SOURCES + IRCV3_HEADERS + [ircv3_h], c_args : ['-DPURPLE_IRCV3_COMPILATION', '-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Purple-IRCv3"'], gnu_symbol_visibility : 'hidden', - dependencies : [libpurple_dep, glib, gio, hasl], + dependencies : [libpurple_dep, birb, glib, gio, hasl], install : true, install_dir : PURPLE_PLUGINDIR) ircv3_dep = declare_dependency( sources : [IRCV3_SOURCES, IRCV3_HEADERS], include_directories : ircv3_includes, - dependencies : [libpurple_dep, glib, gio, hasl]) + dependencies : [libpurple_dep, birb, glib, gio, hasl]) pkgconfig.generate( # we purposely don't put the library here because you should not be diff -r a8a644e3e561 -r 7a4558293dca libpurple/protocols/ircv3/purpleircv3connection.c --- a/libpurple/protocols/ircv3/purpleircv3connection.c Tue Dec 12 01:21:38 2023 -0600 +++ b/libpurple/protocols/ircv3/purpleircv3connection.c Tue Dec 12 03:48:15 2023 -0600 @@ -18,6 +18,8 @@ #include +#include + #include "purpleircv3connection.h" #include "purpleircv3constants.h" @@ -49,7 +51,7 @@ gboolean registered; GDataInputStream *input; - PurpleQueuedOutputStream *output; + GOutputStream *output; PurpleIRCv3Parser *parser; @@ -208,15 +210,15 @@ gpointer data) { PurpleIRCv3Connection *connection = data; - PurpleQueuedOutputStream *stream = PURPLE_QUEUED_OUTPUT_STREAM(source); + BirbQueuedOutputStream *stream = BIRB_QUEUED_OUTPUT_STREAM(source); GError *error = NULL; gboolean success = FALSE; - success = purple_queued_output_stream_push_bytes_finish(stream, result, - &error); + success = birb_queued_output_stream_push_bytes_finish(stream, result, + &error); if(!success) { - purple_queued_output_stream_clear_queue(stream); + birb_queued_output_stream_clear_queue(stream); g_prefix_error(&error, "%s", _("Lost connection with server: ")); @@ -261,7 +263,7 @@ purple_ircv3_parser_add_default_handlers(priv->parser); ostream = g_io_stream_get_output_stream(G_IO_STREAM(conn)); - priv->output = purple_queued_output_stream_new(ostream); + priv->output = birb_queued_output_stream_new(ostream); istream = g_io_stream_get_input_stream(G_IO_STREAM(conn)); priv->input = g_data_input_stream_new(istream); @@ -807,11 +809,12 @@ bytes = g_string_free_to_bytes(msg); cancellable = purple_connection_get_cancellable(PURPLE_CONNECTION(connection)); - purple_queued_output_stream_push_bytes_async(priv->output, bytes, - G_PRIORITY_DEFAULT, - cancellable, - purple_ircv3_connection_write_cb, - connection); + birb_queued_output_stream_push_bytes_async(BIRB_QUEUED_OUTPUT_STREAM(priv->output), + bytes, + G_PRIORITY_DEFAULT, + cancellable, + purple_ircv3_connection_write_cb, + connection); g_bytes_unref(bytes); } diff -r a8a644e3e561 -r 7a4558293dca libpurple/protocols/ircv3/tests/meson.build --- a/libpurple/protocols/ircv3/tests/meson.build Tue Dec 12 01:21:38 2023 -0600 +++ b/libpurple/protocols/ircv3/tests/meson.build Tue Dec 12 03:48:15 2023 -0600 @@ -7,7 +7,7 @@ foreach prog : TESTS e = executable( f'test_ircv3_@prog@', f'test_ircv3_@prog@.c', - dependencies : [libpurple_dep, glib, hasl], + dependencies : [libpurple_dep, birb, glib, hasl], objects : ircv3_prpl.extract_all_objects(), c_args : ['-DPURPLE_IRCV3_COMPILATION']) diff -r a8a644e3e561 -r 7a4558293dca meson.build --- a/meson.build Tue Dec 12 01:21:38 2023 -0600 +++ b/meson.build Tue Dec 12 03:48:15 2023 -0600 @@ -251,6 +251,11 @@ gstreamer_app = dependency('gstreamer-app-1.0') ####################################################################### +# Check for birb glib utility library +####################################################################### +birb = dependency('birb') + +####################################################################### # Check for Native Avahi headers (for Bonjour) ####################################################################### diff -r a8a644e3e561 -r 7a4558293dca subprojects/birb.wrap --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/subprojects/birb.wrap Tue Dec 12 03:48:15 2023 -0600 @@ -0,0 +1,4 @@ +[wrap-hg] +directory = birb +url = https://keep.imfreedom.org/birb/birb/ +revision = d9d91dc0265d