diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-04-24 10:17:29 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-04-28 09:51:36 +1000 |
commit | 884684db6bf6f9257888cac5d5b3371591581df2 (patch) | |
tree | ec9c8e979f9a1728ce9e6e2b746774d006b43bde | |
parent | 9ce4f0d52f10487a3bf984d247671eef6656c46b (diff) |
synclient: fix 64 bit issues for float properties.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
(cherry picked from commit 4f58454f53432f67d221ace60675499d8cee2411)
-rw-r--r-- | tools/synclient.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/tools/synclient.c b/tools/synclient.c index 39b3bf6..2ebd458 100644 --- a/tools/synclient.c +++ b/tools/synclient.c @@ -53,6 +53,12 @@ #endif #endif +union flong { /* Xlibs 64-bit property handling madness */ + long l; + float f; +}; + + enum ParaType { PT_INT, PT_BOOL, @@ -531,7 +537,7 @@ dp_set_variables(Display *dpy, XDevice* dev, int argc, char *argv[], int first_c unsigned char* data; unsigned long nitems, bytes_after; - float *f; + union flong *f; long *n; char *b; @@ -584,8 +590,8 @@ dp_set_variables(Display *dpy, XDevice* dev, int argc, char *argv[], int first_c par->name, format); break; } - f = (float*)data; - f[par->prop_offset] = val; + f = (union flong*)data; + f[par->prop_offset].f = val; break; } @@ -606,7 +612,7 @@ dp_show_settings(Display *dpy, XDevice *dev) unsigned char* data; int len; - float *f; + union flong *f; long *i; char *b; @@ -660,8 +666,8 @@ dp_show_settings(Display *dpy, XDevice *dev) break; } - f = (float*)data; - printf(" %-23s = %g\n", par->name, f[par->prop_offset]); + f = (union flong*)data; + printf(" %-23s = %g\n", par->name, f[par->prop_offset].f); break; } |