summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2018-04-27 22:24:02 +0100
committerDavid Woodhouse <dwmw2@infradead.org>2018-04-27 22:24:02 +0100
commit65954f6e91f374361478d95e7e33409301daa822 (patch)
treecb5abd156277403f1c042557682fa143c0b5517c
parent322868be5ca4eac14501781873b527f7db72f178 (diff)
downloadpidgin-65954f6e91f374361478d95e7e33409301daa822.tar.gz
Fix VV prefs segfault when prefs are missing
Install them at startup, and fix the comparison func to use g_strcmp0 too.
-rw-r--r--pidgin/gtkprefs.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/pidgin/gtkprefs.c b/pidgin/gtkprefs.c
index 75a98147af..340dca40c4 100644
--- a/pidgin/gtkprefs.c
+++ b/pidgin/gtkprefs.c
@@ -3240,7 +3240,7 @@ make_vv_dropdown(GtkWidget *parent, GtkSizeGroup *size_group,
devices = get_vv_device_menuitems(element_type);
if (g_list_find_custom(devices, purple_prefs_get_string(preference_key),
- (GCompareFunc)strcmp) == NULL)
+ (GCompareFunc)g_strcmp0) == NULL)
{
GList *next = g_list_next(devices);
if (next)
@@ -3504,6 +3504,22 @@ pidgin_prefs_init(void)
purple_prefs_connect_callback(&prefs, PIDGIN_PREFS_ROOT "/smileys/theme",
smiley_theme_pref_cb, NULL);
+#ifdef USE_VV
+ /* Voice/Video */
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig");
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio");
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/src");
+ purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", "");
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink");
+ purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", "");
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video");
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/src");
+ purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", "");
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video");
+ purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/sink");
+ purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", "");
+#endif
+
pidgin_prefs_update_old();
}