summaryrefslogtreecommitdiff
path: root/x11-libs/cairo/files/cairo-1.10.2-interix.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--x11-libs/cairo/files/cairo-1.10.2-interix.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/x11-libs/cairo/files/cairo-1.10.2-interix.patch b/x11-libs/cairo/files/cairo-1.10.2-interix.patch
new file mode 100644
index 0000000..3333e3e
--- /dev/null
+++ b/x11-libs/cairo/files/cairo-1.10.2-interix.patch
@@ -0,0 +1,36 @@
+commit 95f6f7a174ca096a3d3dbe84ff220d166d1e2baa
+Author: Uli Schlachter <psychon@znc.in>
+Date: Fri Oct 22 11:54:57 2010 +0200
+
+ Make both versions of _cairo_lround consistent again
+
+ Commit c0008242b0f made cairo use libm's lround instead of its own _cairo_lround
+ by default. However, since commit ce58f874 from 2006, _cairo_lround does
+ arithmetic rounding instead of away-from-zero rounding (before said commit, it
+ was using baker's rounding).
+
+ So to make the rounding of _cairo_lround be independent from
+ DISABLE_SOME_FLOATING_POINT, we have to use another function. Turns out that
+ _cairo_round already does the same thing that _cairo_lround does. Their only
+ difference is the return type.
+
+ Signed-off-by: Uli Schlachter <psychon@znc.in>
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/cairoint.h b/src/cairoint.h
+index 53c87e5..539d92e 100644
+--- a/src/cairoint.h
++++ b/src/cairoint.h
+@@ -968,7 +968,11 @@ _cairo_round (double r)
+ cairo_private int
+ _cairo_lround (double d) cairo_const;
+ #else
+-#define _cairo_lround lround
++static inline int cairo_const
++_cairo_lround (double r)
++{
++ return _cairo_round (r);
++}
+ #endif
+
+ cairo_private uint16_t