diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-07-12 13:16:53 +0300 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-07-12 13:16:53 +0300 |
commit | c521f78a7581284f58422f1d98c9af4190f12dbb (patch) | |
tree | cca3d3abed954266d90f2a9efa6aa874b47eae20 /libmetacity/meta-draw-spec.c | |
parent | 2dca0ea90fe126632d565b6a8fa9e3edd1642441 (diff) | |
download | metacity-c521f78a7581284f58422f1d98c9af4190f12dbb.tar.gz |
libmetacity: use fmod with doubles
Diffstat (limited to 'libmetacity/meta-draw-spec.c')
-rw-r--r-- | libmetacity/meta-draw-spec.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libmetacity/meta-draw-spec.c b/libmetacity/meta-draw-spec.c index 3935f76a..d44ecaa2 100644 --- a/libmetacity/meta-draw-spec.c +++ b/libmetacity/meta-draw-spec.c @@ -19,6 +19,7 @@ #include "config.h" #include <glib/gi18n-lib.h> +#include <math.h> #include <stdlib.h> #include "meta-draw-spec-private.h" @@ -678,10 +679,14 @@ do_operation (PosExpr *a, a->d.double_val = a->d.double_val / b->d.double_val; break; case POS_OP_MOD: - g_set_error (err, META_THEME_ERROR, - META_THEME_ERROR_MOD_ON_FLOAT, - _("Coordinate expression tries to use mod operator on a floating-point number")); - return FALSE; + if (b->d.double_val == 0.0) + { + g_set_error (err, META_THEME_ERROR, + META_THEME_ERROR_DIVIDE_BY_ZERO, + _("Coordinate expression results in division by zero")); + return FALSE; + } + a->d.double_val = fmod (a->d.double_val, b->d.double_val); case POS_OP_ADD: a->d.double_val = a->d.double_val + b->d.double_val; break; |