aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xquartz/pbproxy/x-selection.m
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-09-15 10:39:59 +0000
committermarha <marha@users.sourceforge.net>2009-09-15 10:39:59 +0000
commita233ed27754bb0d373d63569d9a28aeb8fee5b82 (patch)
tree2732a9434bbc102653dc22df9887d94e19570836 /xorg-server/hw/xquartz/pbproxy/x-selection.m
parenta915739887477b28d924ecc8417ee107d125bd6c (diff)
downloadvcxsrv-a233ed27754bb0d373d63569d9a28aeb8fee5b82.tar.gz
vcxsrv-a233ed27754bb0d373d63569d9a28aeb8fee5b82.tar.bz2
vcxsrv-a233ed27754bb0d373d63569d9a28aeb8fee5b82.zip
Checked in xorg-server-1.6.99.901
Diffstat (limited to 'xorg-server/hw/xquartz/pbproxy/x-selection.m')
-rw-r--r--xorg-server/hw/xquartz/pbproxy/x-selection.m14
1 files changed, 7 insertions, 7 deletions
diff --git a/xorg-server/hw/xquartz/pbproxy/x-selection.m b/xorg-server/hw/xquartz/pbproxy/x-selection.m
index cd540be98..4f2d848fb 100644
--- a/xorg-server/hw/xquartz/pbproxy/x-selection.m
+++ b/xorg-server/hw/xquartz/pbproxy/x-selection.m
@@ -77,7 +77,7 @@ static struct {
@implementation x_selection
-static struct propdata null_propdata = {NULL, 0};
+static struct propdata null_propdata = {NULL, 0, 0};
#ifdef DEBUG
static void
@@ -212,6 +212,7 @@ get_property(Window win, Atom property, struct propdata *pdata, Bool delete, Ato
pdata->data = buf;
pdata->length = buflen;
+ pdata->format = format;
return /*success*/ False;
}
@@ -223,21 +224,20 @@ get_property(Window win, Atom property, struct propdata *pdata, Bool delete, Ato
- (Atom) find_preferred:(struct propdata *)pdata
{
Atom a = None;
- size_t i;
+ size_t i, step;
Bool png = False, jpeg = False, utf8 = False, string = False;
TRACE ();
- if (pdata->length % sizeof (a))
+ if (pdata->format != 32)
{
- fprintf(stderr, "Atom list is not a multiple of the size of an atom!\n");
+ fprintf(stderr, "Atom list is expected to be formatted as an array of 32bit values.\n");
return None;
}
- for (i = 0; i < pdata->length; i += sizeof (a))
+ for (i = 0, step = pdata->format >> 3; i < pdata->length; i += step)
{
- a = None;
- memcpy (&a, pdata->data + i, sizeof (a));
+ a = (Atom)*(uint32_t *)(pdata->data + i);
if (a == atoms->image_png)
{