--- a/libpurple/protocols/ircv3/meson.build Thu Nov 02 23:27:05 2023 -0500
+++ b/libpurple/protocols/ircv3/meson.build Thu Nov 02 23:38:51 2023 -0500
@@ -58,6 +58,7 @@
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, ws2_32],
install_dir : PURPLE_PLUGINDIR)
--- a/libpurple/protocols/ircv3/purpleircv3capabilities.h Thu Nov 02 23:27:05 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3capabilities.h Thu Nov 02 23:38:51 2023 -0500
@@ -31,6 +31,8 @@
+#include "purpleircv3version.h" /* https://ircv3.net/specs/extensions/capability-negotiation */
@@ -75,6 +77,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL PurpleIRCv3Connection *purple_ircv3_capabilities_get_connection(PurpleIRCv3Capabilities *capabilities);
@@ -88,6 +91,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_capabilities_request(PurpleIRCv3Capabilities *capabilities, const char *capability);
@@ -104,6 +108,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL const char *purple_ircv3_capabilities_lookup(PurpleIRCv3Capabilities *capabilities, const char *name, gboolean *found);
@@ -124,6 +129,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL gboolean purple_ircv3_capabilities_lookup_and_request(PurpleIRCv3Capabilities *capabilities, const char *name);
@@ -136,6 +142,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_capabilities_add_wait(PurpleIRCv3Capabilities *capabilities);
@@ -150,6 +157,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_capabilities_remove_wait(PurpleIRCv3Capabilities *capabilities);
--- a/libpurple/protocols/ircv3/purpleircv3connection.h Thu Nov 02 23:27:05 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3connection.h Thu Nov 02 23:38:51 2023 -0500
@@ -31,6 +31,8 @@
+#include "purpleircv3version.h" #define PURPLE_IRCV3_TYPE_CONNECTION (purple_ircv3_connection_get_type())
@@ -103,6 +105,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL gboolean purple_ircv3_connection_get_registered(PurpleIRCv3Connection *connection);
@@ -114,6 +117,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_connection_add_status_message(PurpleIRCv3Connection *connection, PurpleIRCv3Message *message);
--- a/libpurple/protocols/ircv3/purpleircv3message.h Thu Nov 02 23:27:05 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3message.h Thu Nov 02 23:38:51 2023 -0500
@@ -30,9 +30,13 @@
+#include "purpleircv3version.h" #define PURPLE_IRCV3_TYPE_MESSAGE (purple_ircv3_message_get_type())
+PURPLE_IRCV3_AVAILABLE_IN_ALL G_DECLARE_FINAL_TYPE(PurpleIRCv3Message, purple_ircv3_message, PURPLE_IRCV3,
@@ -46,6 +50,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL PurpleIRCv3Message *purple_ircv3_message_new(const char *command);
@@ -58,6 +63,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL const char *purple_ircv3_message_get_command(PurpleIRCv3Message *message);
@@ -69,6 +75,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_message_set_command(PurpleIRCv3Message *message, const char *command);
@@ -81,6 +88,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL GStrv purple_ircv3_message_get_params(PurpleIRCv3Message *message);
@@ -92,6 +100,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_message_set_params(PurpleIRCv3Message *message, GStrv params);
@@ -104,6 +113,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL const char *purple_ircv3_message_get_source(PurpleIRCv3Message *message);
@@ -115,6 +125,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_message_set_source(PurpleIRCv3Message *message, const char *source);
@@ -128,6 +139,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL GHashTable *purple_ircv3_message_get_tags(PurpleIRCv3Message *message);
@@ -139,6 +151,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_message_set_tags(PurpleIRCv3Message *message, GHashTable *tags);
--- a/libpurple/protocols/ircv3/purpleircv3messagehandlers.h Thu Nov 02 23:27:05 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3messagehandlers.h Thu Nov 02 23:38:51 2023 -0500
@@ -28,6 +28,7 @@
#include "purpleircv3message.h"
+#include "purpleircv3version.h" @@ -44,6 +45,7 @@
+PURPLE_IRCV3_AVAILABLE_TYPE_IN_3_0 typedef gboolean (*PurpleIRCv3MessageHandler)(PurpleIRCv3Message *message,
--- a/libpurple/protocols/ircv3/purpleircv3parser.h Thu Nov 02 23:27:05 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3parser.h Thu Nov 02 23:38:51 2023 -0500
@@ -29,10 +29,13 @@
#include "purpleircv3messagehandlers.h"
+#include "purpleircv3version.h" #define PURPLE_IRCV3_TYPE_PARSER (purple_ircv3_parser_get_type())
+PURPLE_IRCV3_AVAILABLE_IN_ALL G_DECLARE_FINAL_TYPE(PurpleIRCv3Parser, purple_ircv3_parser, PURPLE_IRCV3,
@@ -43,6 +46,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL PurpleIRCv3Parser *purple_ircv3_parser_new(void);
@@ -55,6 +59,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_parser_set_fallback_handler(PurpleIRCv3Parser *parser, PurpleIRCv3MessageHandler handler);
@@ -70,6 +75,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL gboolean purple_ircv3_parser_parse(PurpleIRCv3Parser *parser, const gchar *buffer, GError **error, gpointer data);
@@ -82,6 +88,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_parser_add_handler(PurpleIRCv3Parser *parser, const char *command, PurpleIRCv3MessageHandler handler);
@@ -95,6 +102,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_parser_add_handlers(PurpleIRCv3Parser *parser, PurpleIRCv3MessageHandler handler, ...) G_GNUC_NULL_TERMINATED;
@@ -105,6 +113,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_parser_add_default_handlers(PurpleIRCv3Parser *parser);
--- a/libpurple/protocols/ircv3/purpleircv3source.h Thu Nov 02 23:27:05 2023 -0500
+++ b/libpurple/protocols/ircv3/purpleircv3source.h Thu Nov 02 23:38:51 2023 -0500
@@ -26,6 +26,8 @@
+#include "purpleircv3version.h" @@ -43,6 +45,7 @@
+PURPLE_IRCV3_AVAILABLE_IN_ALL void purple_ircv3_source_parse(const char *source, char **nick, char **user, char **host);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/ircv3/purpleircv3version.h Thu Nov 02 23:38:51 2023 -0500
@@ -0,0 +1,128 @@
+ * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <https://www.gnu.org/licenses/>. +#if !defined(PURPLE_IRCV3_GLOBAL_HEADER_INSIDE) && \ + !defined(PURPLE_IRCV3_COMPILATION) +# error "only <libpurple/protocols/ircv3.h> may be included directly" +#ifndef PURPLE_IRCV3_VERSION_H +#define PURPLE_IRCV3_VERSION_H +#if (defined(_WIN32) || defined(__CYGWIN__)) && \ + !defined(PURPLE_IRCV3_STATIC_COMPILATION) +#define _PURPLE_IRCV3_EXPORT __declspec(dllexport) +#define _PURPLE_IRCV3_IMPORT __declspec(dllimport) +#define _PURPLE_IRCV3_EXPORT __attribute__((visibility("default"))) +#define _PURPLE_IRCV3_IMPORT +#define _PURPLE_IRCV3_EXPORT +#define _PURPLE_IRCV3_IMPORT +#ifdef PURPLE_IRCV3_COMPILATION +#define _PURPLE_IRCV3_API _PURPLE_IRCV3_EXPORT +#define _PURPLE_IRCV3_API _PURPLE_IRCV3_IMPORT +#define _PURPLE_IRCV3_EXTERN _PURPLE_IRCV3_API extern +#ifdef PURPLE_IRCV3_DISABLE_DEPRECATION_WARNINGS +#define PURPLE_IRCV3_DEPRECATED _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_DEPRECATED_FOR(f) _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_UNAVAILABLE(maj, min) _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_UNAVAILABLE_STATIC_INLINE(maj, min) +#define PURPLE_IRCV3_UNAVAILABLE_TYPE(maj, min) +#define PURPLE_IRCV3_DEPRECATED G_DEPRECATED _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_UNAVAILABLE(maj, min) G_UNAVAILABLE(maj, min) _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_UNAVAILABLE_STATIC_INLINE(maj, min) G_UNAVAILABLE(maj, min) +#define PURPLE_IRCV3_UNAVAILABLE_TYPE(maj, min) G_UNAVAILABLE(maj, min) + * PURPLE_IRCV3_VERSION_CUR_STABLE: + * A macro that evaluates to the current stable version of the IRCv3 protocol + * plugin, in a format that can be used by the C pre-processor. +#define PURPLE_IRCV3_VERSION_CUR_STABLE \ + (G_ENCODE_VERSION(PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION)) +/* If the package sets PURPLE_IRCV3_VERSION_MIN_REQUIRED to some future + * PURPLE_IRCV3_VERSION_X_Y value that we don't know about, it will compare as 0 in +#ifndef PURPLE_IRCV3_VERSION_MIN_REQUIRED +#define PURPLE_IRCV3_VERSION_MIN_REQUIRED (PURPLE_IRCV3_VERSION_CUR_STABLE) +#elif PURPLE_IRCV3_VERSION_MIN_REQUIRED == 0 +#undef PURPLE_IRCV3_VERSION_MIN_REQUIRED +#define PURPLE_IRCV3_VERSION_MIN_REQUIRED (PURPLE_IRCV3_VERSION_CUR_STABLE + 1) +#endif /* PURPLE_IRCV3_VERSION_MIN_REQUIRED */ +#if !defined(PURPLE_IRCV3_VERSION_MAX_ALLOWED) || (PURPLE_IRCV3_VERSION_MAX_ALLOWED == 0) +#undef PURPLE_IRCV3_VERSION_MAX_ALLOWED +#define PURPLE_IRCV3_VERSION_MAX_ALLOWED (PURPLE_IRCV3_VERSION_CUR_STABLE) +#endif /* PURPLE_IRCV3_VERSION_MAX_ALLOWED */ +#if PURPLE_IRCV3_VERSION_MIN_REQUIRED > PURPLE_IRCV3_VERSION_CUR_STABLE +#error "PURPLE_IRCV3_VERSION_MIN_REQUIRED must be <= PURPLE_IRCV3_VERSION_CUR_STABLE" +#if PURPLE_IRCV3_VERSION_MAX_ALLOWED < PURPLE_IRCV3_VERSION_MIN_REQUIRED +#error "PURPLE_IRCV3_VERSION_MAX_ALLOWED must be >= PURPLE_IRCV3_VERSION_MIN_REQUIRED" +#if PURPLE_IRCV3_VERSION_MIN_REQUIRED < G_ENCODE_VERSION(3, 0) +#error "PURPLE_IRCV3_VERSION_MIN_REQUIRED must be >= PURPLE_IRCV3_VERSION_3_0" +#define PURPLE_IRCV3_VAR _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_AVAILABLE_IN_ALL _PURPLE_IRCV3_EXTERN + * PURPLE_IRCV3_VERSION_3_0: + * A macro that evaluates to the 3.0 version of the IRCv3 protocol plugin, in a + * format that can be used by the C pre-processor. +#define PURPLE_IRCV3_VERSION_3_0 (G_ENCODE_VERSION(3, 0)) +#if PURPLE_IRCV3_VERSION_MAX_ALLOWED < PURPLE_IRCV3_VERSION_3_0 +#define PURPLE_IRCV3_AVAILABLE_IN_3_0 PURPLE_IRCV3_UNAVAILABLE(3, 0) +#define PURPLE_IRCV3_AVAILABLE_STATIC_INLINE_IN_3_0 PURPLE_IRCV3_UNAVAILABLE_STATIC_INLINE(3, 0) +#define PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0 PURPLE_IRCV3_UNAVAILABLE_MACRO(3, 0) +#define PURPLE_IRCV3_AVAILABLE_ENUMERATOR_IN_3_0 PURPLE_IRCV3_UNAVAILABLE_ENUMERATOR(3, 0) +#define PURPLE_IRCV3_AVAILABLE_TYPE_IN_3_0 PURPLE_IRCV3_UNAVAILABLE_TYPE(3, 0) +#define PURPLE_IRCV3_AVAILABLE_IN_3_0 _PURPLE_IRCV3_EXTERN +#define PURPLE_IRCV3_AVAILABLE_STATIC_INLINE_IN_3_0 +#define PURPLE_IRCV3_AVAILABLE_MACRO_IN_3_0 +#define PURPLE_IRCV3_AVAILABLE_ENUMERATOR_IN_3_0 +#define PURPLE_IRCV3_AVAILABLE_TYPE_IN_3_0 +#endif /* PURPLE_IRCV3_VERSION_H */