lua-users home
lua-l archive

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


> > The OP's problem can be solved with something much less ambitious.
> > Replace the first line above by:
> >
> >       case 'd':
> >           lua_Integer n = (lua_Integer)luaL_checknumber(L, arg);
> >           addlenmod(form, LUA_INTEGER_FRMLEN);
> >           nb = sprintf(buff, form, (n);
> >           break;
> >       case 'i':
> >
> > My question was: which of the other five cases should also be
> > treated like case 'd?
> >
> 
> IIUC, this would break it for some numbers between 2^53 and 2^63

Most of them, actually. It also has undefined behavior for numbers
larger than 2^63. (On most machines this "undefined behavior" manifests
as plainly wrong results.)

-- Roberto