Skip to content

Commit 922aae5

Browse files
committed
Fixed pathing for langfile on windows and windows build system
1 parent d44e139 commit 922aae5

File tree

2 files changed

+41
-18
lines changed

2 files changed

+41
-18
lines changed

build.mingw.bat

+9-7
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ setlocal
8080
echo Remove %CWD%\lib\*.a
8181
del %CWD%\lib\*.a
8282
rmdir /S /Q %CWD%\bin
83+
pushd %CWD%\luajit-2.0\src
84+
%MAKE% clean LUAJIT_A=libmingw_luajit.dll.a
85+
popd
8386

8487
echo Done.
8588
exit /b 0
@@ -231,8 +234,7 @@ setlocal
231234
REM --------------------------------------------------------------------
232235

233236

234-
echo This shouldn't be reached!
235-
goto failure
237+
goto help
236238

237239

238240
REM --------------------------------------------------------------------
@@ -243,11 +245,10 @@ setlocal
243245
echo Locally building luajit %CWD%\luajit-2.0 ...
244246

245247
pushd %CWD%\luajit-2.0\src
246-
IF EXIST "mingw_libluajit.dll" (
248+
IF EXIST "mingw_libluajit.dll.a" (
247249
echo libluajit.dll already cached.
248250
) ELSE (
249-
%MAKE% -j%NUMBER_OF_PROCESSORS%
250-
move lua51.dll mingw_libluajit.dll
251+
%MAKE% -j%NUMBER_OF_PROCESSORS% TARGET_DLLNAME=libluajit.dll TARGET_DLLDOTANAME=libmingw_luajit.dll.a
251252
)
252253

253254
echo Locally installing luajit %CWD% ...
@@ -256,7 +257,8 @@ setlocal
256257
copy /Y lualib.h %incdir%\lualib.h
257258
copy /Y lauxlib.h %incdir%\lauxlib.h
258259
copy /Y luajit.h %incdir%\luajit.h
259-
copy /Y mingw_libluajit.dll %dlldir%\libluajit.dll
260+
copy /Y libluajit.dll %dlldir%\libluajit.dll
261+
copy /Y libmingw_luajit.dll.a ..\..\lib\libmingw_luajit.dll.a
260262
popd
261263

262264
echo Finished locally building / installing luajit.
@@ -315,7 +317,7 @@ setlocal
315317
setlocal
316318
IF [%1] == [luajit] (
317319
set luaverdef=-DLUA_JIT_51
318-
set luaverout=-lluajit
320+
set luaverout=-lmingw_luajit.dll
319321
) ELSE (
320322
set luaverout=-l%1
321323
)

src/luadriver.c

+32-11
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,29 @@ static inline void check_error(int cond, const char* str) {
7777
}
7878
}
7979

80+
static inline size_t strip_filename(char* buffer, char delim)
81+
{
82+
char* iter = buffer;
83+
char* last_slash = 0;
84+
while (*iter++ != 0)
85+
{
86+
if (*iter == delim)
87+
last_slash = iter;
88+
}
89+
iter = last_slash;
90+
while (*iter != 0)
91+
{
92+
*iter = 0;
93+
iter++;
94+
}
95+
return strlen(buffer);
96+
}
97+
8098

8199
int main(int argc, char** argv) {
82100

83101
const char* language = 0;
102+
char langbuf[260];
84103
#if defined(_WIN32) || defined(_WIN64)
85104
const char english[] = "lang/english.txt";
86105
const char chinese[] = "lang/chinese.txt";
@@ -90,37 +109,40 @@ int main(int argc, char** argv) {
90109

91110
setlocale(LC_ALL, "");
92111

112+
DWORD length = GetModuleFileName(NULL, langbuf, 260);
113+
length = strip_filename(langbuf, '\\');
93114
switch(GetUserDefaultUILanguage() | 0xFF) { // first byte is lang id
94115
case 0x09: // english
95-
language = "lang/english.txt";
116+
language = "/lang/english.txt";
96117
break;
97118
case 0x04: // chinese
98-
language = "lang/chinese.txt";
119+
language = "/lang/chinese.txt";
99120
break;
100121
case 0x11: // japanese
101-
language = "lang/japanese.txt";
122+
language = "/lang/japanese.txt";
102123
break;
103124
case 0x19: // russian
104-
language = "lang/russian.txt";
125+
language = "/lang/russian.txt";
105126
break;
106127
case 0x16: // portuguese
107-
language = "lang/portuguese.txt";
128+
language = "/lang/portuguese.txt";
108129
break;
109130
case 0x0A: // spanish
110-
language = "lang/spanish.txt";
131+
language = "/lang/spanish.txt";
111132
break;
112133
default: // needs translation >:(
113-
language = "lang/english.txt";
134+
language = "/lang/english.txt";
114135
break;
115136
}
137+
strcat(langbuf, language);
116138
#else
117-
language = "lang/english.txt";
139+
language = "/lang/english.txt";
118140
#endif
119141

120-
language = "lang/english.txt";
142+
language = "/lang/english.txt";
121143

122144
// load language file
123-
lang = langfile_load(language);
145+
lang = langfile_load(langbuf);
124146
if(lang == 0) {
125147
puts("Failed to load lang file!");
126148
return EXIT_FAILURE;
@@ -280,7 +302,6 @@ int main(int argc, char** argv) {
280302
}
281303

282304
#if defined(_WIN32) || defined(_WIN64)
283-
printf("Loading %s\n", ARGS.luaver == 0 ? DEFAULT_LUA : luastr);
284305
HMODULE luacxt;
285306
luacxt = LoadLibrary(ARGS.luaver == 0 ? DEFAULT_LUA : luastr);
286307
check_error(luacxt == 0, _("LC_DLL_MIA"));

0 commit comments

Comments
 (0)