+ if (XGetTextProperty(ob_display, win, &tprop, prop) && tprop.nitems) {
+ if (XTextPropertyToStringList(&tprop, list, nstr))
+ ret = TRUE;
+ XFree(tprop.value);
+ }
+ return ret;
+}
+
+gboolean prop_get32(Window win, Atom prop, Atom type, guint32 *ret)
+{
+ return get_prealloc(win, prop, type, 32, (guchar*)ret, 1);
+}
+
+gboolean prop_get_array32(Window win, Atom prop, Atom type, guint32 **ret,
+ guint *nret)
+{
+ return get_all(win, prop, type, 32, (guchar**)ret, nret);
+}
+
+gboolean prop_get_string_locale(Window win, Atom prop, char **ret)
+{
+ char **list;
+ int nstr;
+
+ if (get_stringlist(win, prop, &list, &nstr) && nstr) {
+ *ret = g_convert(list[0], strlen(list[0]), "UTF-8", "ISO-8859-1",
+ NULL, NULL, NULL);
+ XFreeStringList(list);
+ if (*ret) return TRUE;
+ }
+ return FALSE;
+}
+
+gboolean prop_get_strings_locale(Window win, Atom prop, char ***ret)
+{
+ GSList *strs = NULL, *it;
+ char *raw, *p;
+ guint num, i, count = 0;
+
+ if (get_all(win, prop, prop_atoms.string, 8, (guchar**)&raw, &num)) {