path: root/apps/plugins/lua/rocklib.h
diff options
authorWilliam Wilgus <>2018-10-29 02:54:35 -0400
committerWilliam Wilgus <>2018-10-29 23:22:35 -0400
commiteab73b3deead4054ba8a1d9165b577ad935b9a05 (patch)
treeadf00c7efe610bb268a26109aa7cd9de3b26ca09 /apps/plugins/lua/rocklib.h
parentcc0a4c632aeda82ab4517355b4b4489190da013e (diff)
Lua replace fscanf
Rocklua was using the full fscanf implementation to simply read %ld for the file:read("*n") function wasting 1k on unneeded/unused functionality Instead, I've implemented a filetol function to duplicate it without the extra overhead using strtol which as an added bonus ERANGE errors now resolve to LONG_MIN and LONGMAX instead of integer overflow filetol() reads long int from an open file, skips preceding whitespaces returns -1 if error, 1 on success. *num set to LONG_MAX or LONG_MIN on overflow. If number of digits is > than LUAI_MAXNUMBER2STR filepointer will continue till the next non digit but buffer will stop being filled with characters. Preceding zero is ignored. Change-Id: Ia42d0f73c63a894625bca4581e9b7e1cc7387fd2
Diffstat (limited to 'apps/plugins/lua/rocklib.h')
1 files changed, 1 insertions, 0 deletions
diff --git a/apps/plugins/lua/rocklib.h b/apps/plugins/lua/rocklib.h
index b650207e67..4714dec36d 100644
--- a/apps/plugins/lua/rocklib.h
+++ b/apps/plugins/lua/rocklib.h
@@ -47,6 +47,7 @@ struct lua_str_reg {
LUALIB_API int (luaopen_rock) (lua_State *L);
int get_current_path(lua_State *L, int level);
+int filetol(int fd, long *num);
#endif /* _ROCKLIB_H_ */