@@ -116,16 +116,13 @@ int luaV_tonumber_ (const TValue *obj, lua_Number *n) {
116116
117117
118118/*
119- ** try to convert a float to an integer, rounding according to 'mode':
120- ** mode == 0: accepts only integral values
121- ** mode == 1: takes the floor of the number
122- ** mode == 2: takes the ceil of the number
119+ ** try to convert a float to an integer, rounding according to 'mode'.
123120*/
124- int luaV_flttointeger (lua_Number n , lua_Integer * p , int mode ) {
121+ int luaV_flttointeger (lua_Number n , lua_Integer * p , F2Imod mode ) {
125122 lua_Number f = l_floor (n );
126123 if (n != f ) { /* not an integral value? */
127- if (mode == 0 ) return 0 ; /* fails if mode demands integral value */
128- else if (mode == 2 ) /* needs ceil? */
124+ if (mode == F2Ieq ) return 0 ; /* fails if mode demands integral value */
125+ else if (mode == F2Iceil ) /* needs ceil? */
129126 f += 1 ; /* convert floor to ceil (remember: n != f) */
130127 }
131128 return lua_numbertointeger (f , p );
@@ -137,7 +134,7 @@ int luaV_flttointeger (lua_Number n, lua_Integer *p, int mode) {
137134** without string coercion.
138135** ("Fast track" handled by macro 'tointegerns'.)
139136*/
140- int luaV_tointegerns (const TValue * obj , lua_Integer * p , int mode ) {
137+ int luaV_tointegerns (const TValue * obj , lua_Integer * p , F2Imod mode ) {
141138 if (ttisfloat (obj ))
142139 return luaV_flttointeger (fltvalue (obj ), p , mode );
143140 else if (ttisinteger (obj )) {
@@ -152,7 +149,7 @@ int luaV_tointegerns (const TValue *obj, lua_Integer *p, int mode) {
152149/*
153150** try to convert a value to an integer.
154151*/
155- int luaV_tointeger (const TValue * obj , lua_Integer * p , int mode ) {
152+ int luaV_tointeger (const TValue * obj , lua_Integer * p , F2Imod mode ) {
156153 TValue v ;
157154 if (l_strton (obj , & v )) /* does 'obj' point to a numerical string? */
158155 obj = & v ; /* change it to point to its corresponding number */
@@ -178,7 +175,7 @@ int luaV_tointeger (const TValue *obj, lua_Integer *p, int mode) {
178175*/
179176static int forlimit (lua_State * L , lua_Integer init , const TValue * lim ,
180177 lua_Integer * p , lua_Integer step ) {
181- if (!luaV_tointeger (lim , p , (step < 0 ? 2 : 1 ))) {
178+ if (!luaV_tointeger (lim , p , (step < 0 ? F2Iceil : F2Ifloor ))) {
182179 /* not coercible to in integer */
183180 lua_Number flim ; /* try to convert to float */
184181 if (!tonumber (lim , & flim )) /* cannot convert to float? */
@@ -417,7 +414,7 @@ static int LTintfloat (lua_Integer i, lua_Number f) {
417414 return luai_numlt (cast_num (i ), f ); /* compare them as floats */
418415 else { /* i < f <=> i < ceil(f) */
419416 lua_Integer fi ;
420- if (luaV_flttointeger (f , & fi , 2 )) /* fi = ceil(f) */
417+ if (luaV_flttointeger (f , & fi , F2Iceil )) /* fi = ceil(f) */
421418 return i < fi ; /* compare them as integers */
422419 else /* 'f' is either greater or less than all integers */
423420 return f > 0 ; /* greater? */
@@ -434,7 +431,7 @@ static int LEintfloat (lua_Integer i, lua_Number f) {
434431 return luai_numle (cast_num (i ), f ); /* compare them as floats */
435432 else { /* i <= f <=> i <= floor(f) */
436433 lua_Integer fi ;
437- if (luaV_flttointeger (f , & fi , 1 )) /* fi = floor(f) */
434+ if (luaV_flttointeger (f , & fi , F2Ifloor )) /* fi = floor(f) */
438435 return i <= fi ; /* compare them as integers */
439436 else /* 'f' is either greater or less than all integers */
440437 return f > 0 ; /* greater? */
@@ -451,7 +448,7 @@ static int LTfloatint (lua_Number f, lua_Integer i) {
451448 return luai_numlt (f , cast_num (i )); /* compare them as floats */
452449 else { /* f < i <=> floor(f) < i */
453450 lua_Integer fi ;
454- if (luaV_flttointeger (f , & fi , 1 )) /* fi = floor(f) */
451+ if (luaV_flttointeger (f , & fi , F2Ifloor )) /* fi = floor(f) */
455452 return fi < i ; /* compare them as integers */
456453 else /* 'f' is either greater or less than all integers */
457454 return f < 0 ; /* less? */
@@ -468,7 +465,7 @@ static int LEfloatint (lua_Number f, lua_Integer i) {
468465 return luai_numle (f , cast_num (i )); /* compare them as floats */
469466 else { /* f <= i <=> ceil(f) <= i */
470467 lua_Integer fi ;
471- if (luaV_flttointeger (f , & fi , 2 )) /* fi = ceil(f) */
468+ if (luaV_flttointeger (f , & fi , F2Iceil )) /* fi = ceil(f) */
472469 return fi <= i ; /* compare them as integers */
473470 else /* 'f' is either greater or less than all integers */
474471 return f < 0 ; /* less? */
0 commit comments