lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> Most common breakage seem to be (%d+) captures. [...]

That is my experience too. (Not sure about the "most common", but sure
about a "quite common".)


> @@ -222,7 +226,11 @@ int luaV_equalobj (lua_State *L, const TValue *t1, const TValue *t2) {
>      else {  /* two numbers with different variants */
>        lua_Number n1, n2;
>        lua_assert(ttisnumber(t1) && ttisnumber(t2));
> +#if defined LUA_COMPAT_NUMBER_COERCION
>        cast_void(tonumber(t1, &n1)); cast_void(tonumber(t2, &n2));
> +#else
> +      n1 = cast_num(ivalue(t1)); n2 = cast_num(ivalue(t2));
> +#endif
>        return luai_numeq(n1, n2);
>      }
>    }

I guess this is not needed (and not correct). It is not needed
because neither n1 nor n2 can be strings here (see the 'if' controling
this 'else'); it is incorrect because one of 'n1' or 'n2' will not be
an integer here.

-- Roberto