diff --git a/lcl.c b/lcl.c index 3f90dc7..effcbb0 100644 --- a/lcl.c +++ b/lcl.c @@ -24,15 +24,15 @@ static void fmesg(lua_State *L, FILE* f, int shift) { int paramc, i; - const char *progname; /* argv[0] */ + char *progname; /* argv[0] */ paramc = lua_gettop(L); /* get parameter count */ lua_geti(L, 1 + shift, 0); /* get index 0 of table at index 1 (argv) */ if (lua_type(L, -1) != LUA_TSTRING) { /* if argv[0] is not a string... */ - luaL_error(L, "invalid argument table passed (must have an string in index [0])"); + luaL_argerror(L, 1, "must have a string in index 0)"); } - progname = lua_tostring(L, -1); /* set progname to argv[0] */ + progname = (char *)lua_tostring(L, -1); /* set progname to argv[0] */ /* format using string.format */ lua_getglobal(L, "string"); diff --git a/lfile.c b/lfile.c index 5dfbf74..639d6b3 100644 --- a/lfile.c +++ b/lfile.c @@ -38,10 +38,10 @@ static int file_basename(lua_State *L) { - const char *path; /* parameter 1 (string) */ const char *ret; + char *path; /* parameter 1 (string) */ - path = luaL_checkstring(L, 1); + path = strndup(luaL_checkstring(L, 1), lua_rawlen(L, 1)); ret = basename(path); if (ret == NULL && errno == ENAMETOOLONG) /* check if path is too long */ @@ -70,10 +70,10 @@ file_basename(lua_State *L) static int file_dirname(lua_State *L) { - const char *path; /* parameter 1 (string) */ const char *ret; + char *path; /* parameter 1 (string) */ - path = luaL_checkstring(L, 1); + path = strndup(luaL_checkstring(L, 1), lua_rawlen(L, 1)); ret = dirname(path); if (ret == NULL && errno == ENAMETOOLONG) /* check if path is too long */