X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fprop.c;h=8677de07efa4fa873ffc4945b5cd9ded35e3b774;hb=f17b225daadb483b8736dc0e57a9def68e770ae9;hp=7117a91c95b7b4393921881b3d1aba904d253c94;hpb=12d4c8666c9475f254783fd33d1eb2b47f32e030;p=chaz%2Fopenbox diff --git a/openbox/prop.c b/openbox/prop.c index 7117a91c..8677de07 100644 --- a/openbox/prop.c +++ b/openbox/prop.c @@ -186,7 +186,7 @@ static gboolean get_prealloc(Window win, Atom prop, Atom type, int size, ((guint16*)data)[i] = ((guint16*)xdata)[i]; break; case 32: - ((guint32*)data)[i] = ((guint32*)xdata)[i]; + ((guint32*)data)[i] = ((gulong*)xdata)[i]; break; default: g_assert_not_reached(); /* unhandled size */ @@ -225,7 +225,7 @@ static gboolean get_all(Window win, Atom prop, Atom type, int size, ((guint16*)*data)[i] = ((guint16*)xdata)[i]; break; case 32: - ((guint32*)*data)[i] = ((guint32*)xdata)[i]; + ((guint32*)*data)[i] = ((gulong*)xdata)[i]; break; default: g_assert_not_reached(); /* unhandled size */ @@ -268,9 +268,10 @@ gboolean prop_get_string_locale(Window win, Atom prop, char **ret) int nstr; if (get_stringlist(win, prop, &list, &nstr) && nstr) { - *ret = g_locale_to_utf8(list[0], -1, NULL, NULL, NULL); + *ret = g_convert(list[0], strlen(list[0]), "UTF-8", "ISO-8859-1", + NULL, NULL, NULL); XFreeStringList(list); - if (ret) return TRUE; + if (*ret) return TRUE; } return FALSE; } @@ -286,7 +287,8 @@ gboolean prop_get_strings_locale(Window win, Atom prop, char ***ret) p = raw; for (i = 0; i < num; ++i) { - (*ret)[i] = g_locale_to_utf8(p, -1, NULL, NULL, NULL); + (*ret)[i] = g_convert(p, strlen(p), "UTF-8", "ISO-8859-1", + NULL, NULL, NULL); /* make sure translation did not fail */ if (!(*ret)[i]) { g_strfreev(*ret); /* free what we did so far */