From 61014a33ab9745c78d768c4cf352e996ee4aeda5 Mon Sep 17 00:00:00 2001 From: Henrik Wallin <hedda@lysator.liu.se> Date: Tue, 26 Sep 2000 12:04:33 +0200 Subject: [PATCH] array / float and string / float now does better things if the float is non-integer-float. sizeof(rest) is now less than or equal to sizeof(other_element). Rev: src/operators.c:1.107 --- src/operators.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/operators.c b/src/operators.c index e5588ae36c..8d5e7ce075 100644 --- a/src/operators.c +++ b/src/operators.c @@ -6,7 +6,7 @@ /**/ #include "global.h" #include <math.h> -RCSID("$Id: operators.c,v 1.106 2000/09/26 03:17:04 hedda Exp $"); +RCSID("$Id: operators.c,v 1.107 2000/09/26 10:04:33 hedda Exp $"); #include "interpret.h" #include "svalue.h" #include "multiset.h" @@ -1897,7 +1897,7 @@ PMOD_EXPORT void o_divide(void) for(last=sp[-2].u.string->len,e=0;e<size-1;e++) { - pos=sp[-2].u.string->len - (ptrdiff_t)((e+1)*len); + pos=sp[-2].u.string->len - (ptrdiff_t)((e+1)*len+0.5); a->item[size-1-e].u.string=string_slice(sp[-2].u.string, pos, last-pos); @@ -1915,7 +1915,7 @@ PMOD_EXPORT void o_divide(void) for(last=0,e=0;e<size-1;e++) { - pos = DO_NOT_WARN((ptrdiff_t)((e+1)*len)); + pos = DO_NOT_WARN((ptrdiff_t)((e+1)*len+0.5)); a->item[e].u.string=string_slice(sp[-2].u.string, last, pos-last); @@ -1986,7 +1986,7 @@ PMOD_EXPORT void o_divide(void) for(last=sp[-2].u.array->size,e=0;e<size-1;e++) { - pos=sp[-2].u.array->size - (ptrdiff_t)((e+1)*len); + pos=sp[-2].u.array->size - (ptrdiff_t)((e+1)*len+0.5); a->item[size-1-e].u.array=friendly_slice_array(sp[-2].u.array, pos, last); @@ -2003,7 +2003,7 @@ PMOD_EXPORT void o_divide(void) for(last=0,e=0;e<size-1;e++) { - pos = (ptrdiff_t)((e+1)*len); + pos = (ptrdiff_t)((e+1)*len+0.5); a->item[e].u.array=friendly_slice_array(sp[-2].u.array, last, pos); -- GitLab