pidgin/pidgin

b1ccd1961499
Parents 71622ee1354e
Children cc7d4ff5a205
Make PurpleAccountUserSplit a boxed type
--- a/libpurple/purpleaccountusersplit.c Fri Sep 27 02:07:00 2019 -0500
+++ b/libpurple/purpleaccountusersplit.c Fri Sep 27 02:44:08 2019 -0500
@@ -18,35 +18,32 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
-#include "internal.h"
#include "purpleaccountusersplit.h"
-#include "util.h"
-#include "glibcompat.h"
-/*
- * A username split.
- *
- * This is used by some protocols to separate the fields of the username
- * into more human-readable components.
- */
-struct _PurpleAccountUserSplit
-{
- char *text; /* The text that will appear to the user. */
- char *default_value; /* The default value. */
- char field_sep; /* The field separator. */
- gboolean reverse; /* TRUE if the separator should be found
- starting a the end of the string, FALSE
- otherwise */
+/******************************************************************************
+ * Structs
+ *****************************************************************************/
+struct _PurpleAccountUserSplit {
+ gchar *text;
+ gchar *default_value;
+ gchar field_sep;
+ gboolean reverse;
gboolean constant;
};
-/**************************************************************************
- * Account User Split API
- **************************************************************************/
+/******************************************************************************
+ * Public API
+ *****************************************************************************/
+G_DEFINE_BOXED_TYPE(
+ PurpleAccountUserSplit,
+ purple_account_user_split,
+ purple_account_user_split_copy,
+ purple_account_user_split_destroy
+);
+
PurpleAccountUserSplit *
-purple_account_user_split_new(const char *text, const char *default_value,
- char sep)
+purple_account_user_split_new(const gchar *text, const gchar *default_value, gchar sep)
{
PurpleAccountUserSplit *split;
@@ -63,6 +60,19 @@
return split;
}
+PurpleAccountUserSplit *
+purple_account_user_split_copy(PurpleAccountUserSplit *split) {
+ PurpleAccountUserSplit *newsplit = NULL;
+
+ newsplit = purple_account_user_split_new(split->text, split->default_value, split->field_sep);
+
+ newsplit->reverse = split->reverse;
+ newsplit->constant = split->constant;
+
+ return newsplit;
+}
+
+
void
purple_account_user_split_destroy(PurpleAccountUserSplit *split)
{
@@ -73,7 +83,7 @@
g_free(split);
}
-const char *
+const gchar *
purple_account_user_split_get_text(const PurpleAccountUserSplit *split)
{
g_return_val_if_fail(split != NULL, NULL);
@@ -81,7 +91,7 @@
return split->text;
}
-const char *
+const gchar *
purple_account_user_split_get_default_value(const PurpleAccountUserSplit *split)
{
g_return_val_if_fail(split != NULL, NULL);
@@ -129,3 +139,4 @@
split->constant = constant;
}
+
--- a/libpurple/purpleaccountusersplit.h Fri Sep 27 02:07:00 2019 -0500
+++ b/libpurple/purpleaccountusersplit.h Fri Sep 27 02:44:08 2019 -0500
@@ -19,20 +19,20 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
-#ifndef PURPLE_ACCOUNT_SPLIT_H
-#define PURPLE_ACCOUNT_SPLIT_H
+#ifndef PURPLE_ACCOUNT_USER_SPLIT_H
+#define PURPLE_ACCOUNT_USER_SPLIT_H
+
/**
- * SECTION:accountopt
- * @section_id: libpurple-accountopt
- * @short_description: <filename>accountopt.h</filename>
- * @title: Account Options API
+ * SECTION:accountusersplit
+ * @section_id: libpurple-account-user-split
+ * @short_description: Username splitting
+ * @title: Account Username Splitting API
*/
-#include "prefs.h"
+#include <glib.h>
+#include <glib-object.h>
-/**************************************************************************/
-/* Data Structures */
-/**************************************************************************/
+#define PURPLE_TYPE_ACCOUNT_USER_SPLIT (purple_account_user_split_get_type())
/**
* PurpleAccountUserSplit:
@@ -46,9 +46,7 @@
G_BEGIN_DECLS
-/**************************************************************************/
-/* Account User Split API */
-/**************************************************************************/
+GType purple_account_user_split_get_type(void);
/**
* purple_account_user_split_new:
@@ -60,9 +58,17 @@
*
* Returns: The new user split.
*/
-PurpleAccountUserSplit *purple_account_user_split_new(const char *text,
- const char *default_value,
- char sep);
+PurpleAccountUserSplit *purple_account_user_split_new(const gchar *text, const gchar *default_value, gchar sep);
+
+/**
+ * purple_account_user_split_copy:
+ * @split: The split to copy.
+ *
+ * Creates a copy of @split.
+ *
+ * Returns: (transfer full): A copy of @split.
+ */
+PurpleAccountUserSplit *purple_account_user_split_copy(PurpleAccountUserSplit *split);
/**
* purple_account_user_split_destroy:
@@ -80,7 +86,7 @@
*
* Returns: The account username split's text.
*/
-const char *purple_account_user_split_get_text(const PurpleAccountUserSplit *split);
+const gchar *purple_account_user_split_get_text(const PurpleAccountUserSplit *split);
/**
* purple_account_user_split_get_default_value:
@@ -90,8 +96,7 @@
*
* Returns: The default string.
*/
-const char *purple_account_user_split_get_default_value(
- const PurpleAccountUserSplit *split);
+const gchar *purple_account_user_split_get_default_value(const PurpleAccountUserSplit *split);
/**
* purple_account_user_split_get_separator:
@@ -101,7 +106,7 @@
*
* Returns: The field separator.
*/
-char purple_account_user_split_get_separator(const PurpleAccountUserSplit *split);
+gchar purple_account_user_split_get_separator(const PurpleAccountUserSplit *split);
/**
* purple_account_user_split_get_reverse:
@@ -133,8 +138,7 @@
*
* Returns: %TRUE, if the split is constant.
*/
-gboolean
-purple_account_user_split_is_constant(const PurpleAccountUserSplit *split);
+gboolean purple_account_user_split_is_constant(const PurpleAccountUserSplit *split);
/**
* purple_account_user_split_set_constant:
@@ -143,10 +147,8 @@
*
* Sets the constant parameter of account split.
*/
-void
-purple_account_user_split_set_constant(PurpleAccountUserSplit *split,
- gboolean constant);
+void purple_account_user_split_set_constant(PurpleAccountUserSplit *split, gboolean constant);
G_END_DECLS
-#endif /* PURPLE_ACCOUNT_SPLIT_H */
+#endif /* PURPLE_ACCOUNT_USER_SPLIT_H */