** Replace in the path (on the top of the stack) any occurrence ** of LUA_EXEC_DIR with the executable's path. */
| 168 | ** of LUA_EXEC_DIR with the executable's path. |
| 169 | */ |
| 170 | static void setprogdir (lua_State *L) { |
| 171 | char buff[MAX_PATH + 1]; |
| 172 | char *lb; |
| 173 | DWORD nsize = sizeof(buff)/sizeof(char); |
| 174 | DWORD n = GetModuleFileNameA(NULL, buff, nsize); /* get exec. name */ |
| 175 | if (n == 0 || n == nsize || (lb = strrchr(buff, '\\')) == NULL) |
| 176 | luaL_error(L, "unable to get ModuleFileName"); |
| 177 | else { |
| 178 | *lb = '\0'; /* cut name on the last '\\' to get the path */ |
| 179 | luaL_gsub(L, lua_tostring(L, -1), LUA_EXEC_DIR, buff); |
| 180 | lua_remove(L, -2); /* remove original string */ |
| 181 | } |
| 182 | } |
| 183 | |
| 184 | |
| 185 |
no test coverage detected