--- a/finch/gntblist.c Fri Mar 10 01:15:41 2023 -0600
+++ b/finch/gntblist.c Fri Mar 10 01:16:40 2023 -0600
@@ -1000,8 +1000,9 @@
id = purple_request_field_get_id(field);
if (purple_request_field_get_field_type(field) == PURPLE_REQUEST_FIELD_INTEGER)
val = g_strdup_printf("%d", purple_request_field_int_get_value(field));
- val = g_strdup(purple_request_field_string_get_value(field));
+ val = g_strdup(purple_request_field_string_get_value(PURPLE_REQUEST_FIELD_STRING(field))); g_hash_table_remove(purple_chat_get_components(chat), id);
@@ -1040,8 +1041,10 @@
field = purple_request_field_string_new(pce->identifier, pce->label,
g_hash_table_lookup(purple_chat_get_components(chat), pce->identifier), FALSE);
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), --- a/finch/gntrequest.c Fri Mar 10 01:15:41 2023 -0600
+++ b/finch/gntrequest.c Fri Mar 10 01:16:40 2023 -0600
@@ -299,13 +299,15 @@
gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check));
purple_request_field_bool_set_value(field, value);
- else if (type == PURPLE_REQUEST_FIELD_STRING)
+ } else if(PURPLE_IS_REQUEST_FIELD_STRING(field)) { GntWidget *entry = g_object_get_data(G_OBJECT(field),
const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
- purple_request_field_string_set_value(field, (text && *text) ? text : NULL);
+ if(purple_strempty(text)) { + purple_request_field_string_set_value(PURPLE_REQUEST_FIELD_STRING(field), else if (type == PURPLE_REQUEST_FIELD_INTEGER)
@@ -424,11 +426,12 @@
create_string_field(PurpleRequestField *field, GntWidget **username)
+ PurpleRequestFieldString *strfield = PURPLE_REQUEST_FIELD_STRING(field); const char *hint = purple_request_field_get_type_hint(field);
GntWidget *entry = gnt_entry_new(
- purple_request_field_string_get_default_value(field));
+ purple_request_field_string_get_default_value(strfield)); gnt_entry_set_masked(GNT_ENTRY(entry),
- purple_request_field_string_is_masked(field));
+ purple_request_field_string_is_masked(strfield)); if (hint && g_str_has_prefix(hint, "screenname")) {
PurpleBlistNode *node = purple_blist_get_default_root();
gboolean offline = g_str_has_suffix(hint, "all");
@@ -659,7 +662,7 @@
if (type == PURPLE_REQUEST_FIELD_BOOLEAN) {
widget = create_boolean_field(field);
- } else if (type == PURPLE_REQUEST_FIELD_STRING) {
+ } else if(PURPLE_IS_REQUEST_FIELD_STRING(field)) { widget = create_string_field(field, &username);
} else if (type == PURPLE_REQUEST_FIELD_INTEGER) {
widget = create_integer_field(field);
@@ -870,6 +873,10 @@
const char *id = purple_request_field_get_id(field);
+ if(PURPLE_IS_REQUEST_FIELD_STRING(field)) { + PurpleRequestFieldString *sfield = PURPLE_REQUEST_FIELD_STRING(field); + val = (gpointer)purple_request_field_string_get_value(sfield); case PURPLE_REQUEST_FIELD_LIST:
val = purple_request_field_list_get_selected(field)->data;
@@ -881,12 +888,10 @@
case PURPLE_REQUEST_FIELD_INTEGER:
val = GINT_TO_POINTER(purple_request_field_int_get_value(field));
- case PURPLE_REQUEST_FIELD_STRING:
- val = (gpointer)purple_request_field_string_get_value(field);
pt = purple_prefs_get_pref_type(id);
@@ -917,16 +922,15 @@
GntWidget *finch_request_field_get_widget(PurpleRequestField *field)
- if(PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) {
+ if(PURPLE_IS_REQUEST_FIELD_STRING(field)) { + ret = create_string_field(field, NULL); + } else if(PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) { ret = create_account_field(field);
switch (purple_request_field_get_field_type(field)) {
case PURPLE_REQUEST_FIELD_BOOLEAN:
ret = create_boolean_field(field);
- case PURPLE_REQUEST_FIELD_STRING:
- ret = create_string_field(field, NULL);
case PURPLE_REQUEST_FIELD_INTEGER:
ret = create_integer_field(field);
--- a/libpurple/account.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/account.c Fri Mar 10 01:16:40 2023 -0600
@@ -38,6 +38,7 @@
#include "purpleprotocolmanager.h"
#include "purpleprotocolserver.h"
+#include "request/purplerequestfieldstring.h" @@ -1077,7 +1078,8 @@
purple_request_page_add_group(page, group);
field = purple_request_field_string_new("password", _("Enter Password"), NULL, FALSE);
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), purple_request_field_set_required(field, TRUE);
purple_request_group_add_field(group, field);
@@ -1114,7 +1116,8 @@
field = purple_request_field_string_new("password", _("Original password"),
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), if (!protocol || !(purple_protocol_get_options(protocol) & OPT_PROTO_PASSWORD_OPTIONAL))
purple_request_field_set_required(field, TRUE);
purple_request_group_add_field(group, field);
@@ -1122,7 +1125,8 @@
field = purple_request_field_string_new("new_password_1",
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), if (!protocol || !(purple_protocol_get_options(protocol) & OPT_PROTO_PASSWORD_OPTIONAL))
purple_request_field_set_required(field, TRUE);
purple_request_group_add_field(group, field);
@@ -1130,7 +1134,8 @@
field = purple_request_field_string_new("new_password_2",
_("New password (again)"),
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), if (!protocol || !(purple_protocol_get_options(protocol) & OPT_PROTO_PASSWORD_OPTIONAL))
purple_request_field_set_required(field, TRUE);
purple_request_group_add_field(group, field);
--- a/libpurple/meson.build Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/meson.build Fri Mar 10 01:16:40 2023 -0600
@@ -98,6 +98,7 @@
'request/purplerequestfieldaccount.c',
+ 'request/purplerequestfieldstring.c', @@ -222,6 +223,7 @@
purple_request_headers = [
'request/purplerequestfieldaccount.h',
+ 'request/purplerequestfieldstring.h', purple_generated_sources = []
--- a/libpurple/protocols/demo/purpledemoprotocolactions.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/protocols/demo/purpledemoprotocolactions.c Fri Mar 10 01:16:40 2023 -0600
@@ -490,7 +490,8 @@
field = purple_request_field_string_new("masked-string",
_("A masked string"), _("default"),
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), purple_request_group_add_field(group, field);
field = purple_request_field_string_new("alphanumeric",
_("An alphanumeric string"),
--- a/libpurple/protocols/gg/validator.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/protocols/gg/validator.c Fri Mar 10 01:16:40 2023 -0600
@@ -39,11 +39,9 @@
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
- g_return_val_if_fail(purple_request_field_get_field_type(field) ==
- PURPLE_REQUEST_FIELD_STRING, FALSE);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_STRING(field), FALSE); - value = purple_request_field_string_get_value(field);
+ value = purple_request_field_string_get_value(PURPLE_REQUEST_FIELD_STRING(field)); size_t len = strlen(value);
@@ -67,15 +65,11 @@
const char *value1, *value2;
PurpleRequestField *field2 = field2_p;
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field2), FALSE);
- g_return_val_if_fail(purple_request_field_get_field_type(field) ==
- PURPLE_REQUEST_FIELD_STRING, FALSE);
- g_return_val_if_fail(purple_request_field_get_field_type(field2) ==
- PURPLE_REQUEST_FIELD_STRING, FALSE);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_STRING(field), FALSE); + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_STRING(field2), FALSE); - value1 = purple_request_field_string_get_value(field);
- value2 = purple_request_field_string_get_value(field2);
+ value1 = purple_request_field_string_get_value(PURPLE_REQUEST_FIELD_STRING(field)); + value2 = purple_request_field_string_get_value(PURPLE_REQUEST_FIELD_STRING(field2)); if (g_strcmp0(value1, value2) == 0)
--- a/libpurple/protocols/jabber/buddy.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/protocols/jabber/buddy.c Fri Mar 10 01:16:40 2023 -0600
@@ -557,7 +557,6 @@
jabber_format_info(PurpleConnection *gc, PurpleRequestPage *page) {
- PurpleRequestField *field;
PurpleProtocol *protocol = NULL;
@@ -573,11 +572,9 @@
if (*vc_tp->label == '\0')
- field = purple_request_page_get_field(page, vc_tp->tag);
- text = purple_request_field_string_get_value(field);
+ text = purple_request_page_get_string(page, vc_tp->tag);
- if (text != NULL && *text != '\0') {
+ if(!purple_strempty(text)) { purple_debug_info("jabber", "Setting %s to '%s'\n", vc_tp->tag, text);
--- a/libpurple/protocols/jabber/jabber.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/protocols/jabber/jabber.c Fri Mar 10 01:16:40 2023 -0600
@@ -1923,13 +1923,15 @@
field = purple_request_field_string_new("password1", _("Password"),
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), purple_request_field_set_required(field, TRUE);
purple_request_group_add_field(group, field);
field = purple_request_field_string_new("password2", _("Password (again)"),
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), purple_request_field_set_required(field, TRUE);
purple_request_group_add_field(group, field);
--- a/libpurple/protocols/jabber/xdata.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/protocols/jabber/xdata.c Fri Mar 10 01:16:40 2023 -0600
@@ -84,7 +84,8 @@
case JABBER_X_DATA_TEXT_SINGLE:
case JABBER_X_DATA_JID_SINGLE:
- const char *value = purple_request_field_string_get_value(field);
+ PurpleRequestFieldString *sfield = PURPLE_REQUEST_FIELD_STRING(field); + const char *value = purple_request_field_string_get_value(sfield); fieldnode = purple_xmlnode_new_child(result, "field");
@@ -95,8 +96,9 @@
case JABBER_X_DATA_TEXT_MULTI:
+ PurpleRequestFieldString *sfield = PURPLE_REQUEST_FIELD_STRING(field); + const char *value = purple_request_field_string_get_value(sfield); - const char *value = purple_request_field_string_get_value(field);
fieldnode = purple_xmlnode_new_child(result, "field");
@@ -230,7 +232,8 @@
field = purple_request_field_string_new(var, label,
value ? value : "", FALSE);
- purple_request_field_string_set_masked(field, TRUE);
+ purple_request_field_string_set_masked(PURPLE_REQUEST_FIELD_STRING(field), purple_request_group_add_field(group, field);
g_hash_table_replace(data->fields, g_strdup(var), GINT_TO_POINTER(JABBER_X_DATA_TEXT_SINGLE));
--- a/libpurple/purplechatconversation.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/purplechatconversation.c Fri Mar 10 01:16:40 2023 -0600
@@ -29,6 +29,7 @@
#include "purpleprivate.h"
+#include "request/purplerequestfieldstring.h" --- a/libpurple/purplerequestfield.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/purplerequestfield.c Fri Mar 10 01:16:40 2023 -0600
@@ -23,6 +23,7 @@
+#include "request/purplerequestfieldstring.h" #include "purplekeyvaluepair.h"
#include "purpleprivate.h"
@@ -41,13 +42,6 @@
@@ -231,10 +225,7 @@
- if(priv->type == PURPLE_REQUEST_FIELD_STRING) {
- g_free(priv->u.string.default_value);
- g_free(priv->u.string.value);
- } else if(priv->type == PURPLE_REQUEST_FIELD_CHOICE) {
+ if(priv->type == PURPLE_REQUEST_FIELD_CHOICE) { g_list_free_full(priv->u.choice.elements,
(GDestroyNotify)purple_key_value_pair_free);
} else if(priv->type == PURPLE_REQUEST_FIELD_LIST) {
@@ -587,14 +578,12 @@
purple_request_field_is_filled(PurpleRequestField *field) {
g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
- switch (purple_request_field_get_field_type(field))
- case PURPLE_REQUEST_FIELD_STRING:
- return (purple_request_field_string_get_value(field) != NULL &&
- *(purple_request_field_string_get_value(field)) != '\0');
+ if(PURPLE_IS_REQUEST_FIELD_STRING(field)) { + PurpleRequestFieldString *sfield = PURPLE_REQUEST_FIELD_STRING(field); + return !purple_strempty(purple_request_field_string_get_value(sfield)); @@ -684,117 +673,6 @@
-purple_request_field_string_new(const char *id, const char *text,
- const char *default_value, gboolean multiline)
- PurpleRequestField *field;
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_val_if_fail(id != NULL, NULL);
- g_return_val_if_fail(text != NULL, NULL);
- field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_STRING);
- priv = purple_request_field_get_instance_private(field);
- priv->u.string.multiline = multiline;
- purple_request_field_string_set_default_value(field, default_value);
- purple_request_field_string_set_value(field, default_value);
-purple_request_field_string_set_default_value(PurpleRequestField *field,
- const char *default_value)
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
- priv = purple_request_field_get_instance_private(field);
- g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING);
- g_free(priv->u.string.default_value);
- priv->u.string.default_value = g_strdup(default_value);
-purple_request_field_string_set_value(PurpleRequestField *field, const char *value)
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
- priv = purple_request_field_get_instance_private(field);
- g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING);
- g_free(priv->u.string.value);
- priv->u.string.value = g_strdup(value);
-purple_request_field_string_set_masked(PurpleRequestField *field, gboolean masked)
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
- priv = purple_request_field_get_instance_private(field);
- g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING);
- priv->u.string.masked = masked;
-purple_request_field_string_get_default_value(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, NULL);
- return priv->u.string.default_value;
-purple_request_field_string_get_value(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, NULL);
- return priv->u.string.value;
-purple_request_field_string_is_multiline(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
- return priv->u.string.multiline;
-purple_request_field_string_is_masked(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
- return priv->u.string.masked;
purple_request_field_int_new(const char *id, const char *text,
int default_value, int lower_bound, int upper_bound)
@@ -1434,72 +1312,3 @@
return priv->u.datasheet.sheet;
-purple_request_field_email_validator(PurpleRequestField *field, gchar **errmsg,
- G_GNUC_UNUSED gpointer user_data)
- PurpleRequestFieldPrivate *priv = NULL;
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
- value = purple_request_field_string_get_value(field);
- if (value != NULL && purple_email_is_valid(value))
- *errmsg = g_strdup(_("Invalid email address"));
-purple_request_field_alphanumeric_validator(PurpleRequestField *field,
- gchar **errmsg, void *allowed_characters)
- PurpleRequestFieldPrivate *priv = NULL;
- gchar invalid_char = '\0';
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
- value = purple_request_field_string_get_value(field);
- g_return_val_if_fail(value != NULL, FALSE);
- if (allowed_characters)
- gchar *value_r = g_strdup(value);
- g_strcanon(value_r, allowed_characters, '\0');
- invalid_char = value[strlen(value_r)];
- if (!g_ascii_isalnum(*value))
- *errmsg = g_strdup_printf(_("Invalid character '%c'"),
--- a/libpurple/purplerequestfield.h Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/purplerequestfield.h Fri Mar 10 01:16:40 2023 -0600
@@ -64,7 +64,6 @@
* PurpleRequestFieldType:
* @PURPLE_REQUEST_FIELD_NONE: No field.
- * @PURPLE_REQUEST_FIELD_STRING: String field.
* @PURPLE_REQUEST_FIELD_INTEGER: Integer field.
* @PURPLE_REQUEST_FIELD_BOOLEAN: Boolean field.
* @PURPLE_REQUEST_FIELD_CHOICE: Choice field (dropdown?).
@@ -78,7 +77,6 @@
PURPLE_REQUEST_FIELD_NONE,
- PURPLE_REQUEST_FIELD_STRING,
PURPLE_REQUEST_FIELD_INTEGER,
PURPLE_REQUEST_FIELD_BOOLEAN,
PURPLE_REQUEST_FIELD_CHOICE,
@@ -319,97 +317,6 @@
gboolean purple_request_field_is_sensitive(PurpleRequestField *field);
/**************************************************************************/
-/**************************************************************************/
- * purple_request_field_string_new:
- * @text: The text label of the field.
- * @default_value: The optional default value.
- * @multiline: Whether or not this should be a multiline string.
- * Creates a string request field.
- * Returns: (transfer full): The new field.
-PurpleRequestField *purple_request_field_string_new(const char *id,
- const char *default_value,
- * purple_request_field_string_set_default_value:
- * @default_value: The default value.
- * Sets the default value in a string field.
-void purple_request_field_string_set_default_value(PurpleRequestField *field,
- const char *default_value);
- * purple_request_field_string_set_value:
- * Sets the value in a string field.
-void purple_request_field_string_set_value(PurpleRequestField *field,
- * purple_request_field_string_set_masked:
- * @masked: The masked value.
- * Sets whether or not a string field is masked
- * (commonly used for password fields).
-void purple_request_field_string_set_masked(PurpleRequestField *field,
- * purple_request_field_string_get_default_value:
- * Returns the default value in a string field.
- * Returns: The default value.
-const char *purple_request_field_string_get_default_value(PurpleRequestField *field);
- * purple_request_field_string_get_value:
- * Returns the user-entered value in a string field.
-const char *purple_request_field_string_get_value(PurpleRequestField *field);
- * purple_request_field_string_is_multiline:
- * Returns whether or not a string field is multi-line.
- * Returns: %TRUE if the field is mulit-line, or %FALSE otherwise.
-gboolean purple_request_field_string_is_multiline(PurpleRequestField *field);
- * purple_request_field_string_is_masked:
- * Returns whether or not a string field is masked.
- * Returns: %TRUE if the field is masked, or %FALSE otherwise.
-gboolean purple_request_field_string_is_masked(PurpleRequestField *field);
-/**************************************************************************/
/**************************************************************************/
--- a/libpurple/purplerequestpage.c Fri Mar 10 01:15:41 2023 -0600
+++ b/libpurple/purplerequestpage.c Fri Mar 10 01:16:40 2023 -0600
@@ -24,6 +24,7 @@
#include "purplerequestpage.h"
#include "request/purplerequestfieldaccount.h"
+#include "request/purplerequestfieldstring.h" #include "purpleprivate.h"
struct _PurpleRequestPage {
@@ -296,11 +297,12 @@
g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), NULL);
g_return_val_if_fail(id != NULL, NULL);
- if((field = purple_request_page_get_field(page, id)) == NULL) {
+ field = purple_request_page_get_field(page, id); + if(!PURPLE_IS_REQUEST_FIELD_STRING(field)) { - return purple_request_field_string_get_value(field);
+ return purple_request_field_string_get_value(PURPLE_REQUEST_FIELD_STRING(field)); --- a/pidgin/gtkrequest.c Fri Mar 10 01:15:41 2023 -0600
+++ b/pidgin/gtkrequest.c Fri Mar 10 01:16:40 2023 -0600
@@ -195,7 +195,7 @@
field_string_focus_out_cb(GtkEventControllerFocus *controller,
- PurpleRequestField *field)
+ PurpleRequestFieldString *field) GtkWidget *entry = gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(controller));
@@ -1042,21 +1042,27 @@
int value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(entry));
purple_request_field_int_set_value(field, value);
- } else if (purple_request_field_string_is_multiline(field)) {
- GtkTextIter start_iter, end_iter;
- gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(entry), &start_iter);
- gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(entry), &end_iter);
- text = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(entry), &start_iter, &end_iter, FALSE);
- purple_request_field_string_set_value(field, (!text || !*text) ? NULL : text);
- const char *text = NULL;
- text = gtk_editable_get_text(GTK_EDITABLE(entry));
- purple_request_field_string_set_value(field, (*text == '\0') ? NULL : text);
+ PurpleRequestFieldString *strfield = PURPLE_REQUEST_FIELD_STRING(field); + if(purple_request_field_string_is_multiline(strfield)) { + GtkTextIter start_iter, end_iter; + gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(entry), &start_iter); + gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(entry), &end_iter); + text = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(entry), + &start_iter, &end_iter, FALSE); + purple_request_field_string_set_value(strfield, + purple_strempty(text) ? NULL : text); + const char *text = NULL; + text = gtk_editable_get_text(GTK_EDITABLE(entry)); + purple_request_field_string_set_value(strfield, + purple_strempty(text) ? NULL : text); req_field_changed_common(entry, field);
@@ -1109,15 +1115,15 @@
create_string_field(PurpleRequestField *field)
+ PurpleRequestFieldString *strfield = PURPLE_REQUEST_FIELD_STRING(field); - value = purple_request_field_string_get_default_value(field);
+ value = purple_request_field_string_get_default_value(strfield); is_editable = purple_request_field_is_sensitive(field);
- if (purple_request_field_string_is_multiline(field))
+ if(purple_request_field_string_is_multiline(strfield)) { GtkEventController *controller;
@@ -1162,7 +1168,7 @@
GtkEventController *controller = NULL;
- if (purple_request_field_string_is_masked(field)) {
+ if(purple_request_field_string_is_masked(strfield)) { widget = gtk_password_entry_new();
g_object_set(widget, "activates-default", TRUE,
"show-peek-icon", TRUE, NULL);
@@ -2044,8 +2050,8 @@
else if ((type == PURPLE_REQUEST_FIELD_LIST) ||
- (type == PURPLE_REQUEST_FIELD_STRING &&
- purple_request_field_string_is_multiline(field)))
+ (PURPLE_IS_REQUEST_FIELD_STRING(field) && + purple_request_field_string_is_multiline(PURPLE_REQUEST_FIELD_STRING(field)))) } else if (compact && type != PURPLE_REQUEST_FIELD_BOOLEAN)
@@ -2114,8 +2120,8 @@
if (type == PURPLE_REQUEST_FIELD_LABEL ||
type == PURPLE_REQUEST_FIELD_LIST ||
- (type == PURPLE_REQUEST_FIELD_STRING &&
- purple_request_field_string_is_multiline(field)))
+ (PURPLE_IS_REQUEST_FIELD_STRING(field) && + purple_request_field_string_is_multiline(PURPLE_REQUEST_FIELD_STRING(field)))) gtk_grid_attach(GTK_GRID(grid), label,
0, row_num, 2 * cols, 1);
@@ -2135,9 +2141,9 @@
- if (type == PURPLE_REQUEST_FIELD_STRING)
+ if(PURPLE_IS_REQUEST_FIELD_STRING(field)) { widget = create_string_field(field);
- else if (type == PURPLE_REQUEST_FIELD_INTEGER)
+ } else if (type == PURPLE_REQUEST_FIELD_INTEGER) widget = create_int_field(field);
else if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
widget = create_bool_field(field, cpar);
@@ -2166,8 +2172,8 @@
gtk_widget_set_margin_start(widget, 5);
gtk_widget_set_margin_end(widget, 5);
- if (type == PURPLE_REQUEST_FIELD_STRING &&
- purple_request_field_string_is_multiline(field))
+ if(PURPLE_IS_REQUEST_FIELD_STRING(field) && + purple_request_field_string_is_multiline(PURPLE_REQUEST_FIELD_STRING(field))) gtk_grid_attach(GTK_GRID(grid), widget,
0, row_num, 2 * cols, 1);
--- a/pidgin/pidginmooddialog.c Fri Mar 10 01:15:41 2023 -0600
+++ b/pidgin/pidginmooddialog.c Fri Mar 10 01:16:40 2023 -0600
@@ -85,10 +85,7 @@
flags = purple_connection_get_flags(connection);
if (flags & PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES) {
- PurpleRequestField *text_field = NULL;
- text_field = purple_request_page_get_field(page, "text");
- text = purple_request_field_string_get_value(text_field);
+ text = purple_request_page_get_string(page, "text");