mirror of
https://github.com/diasurgical/devilution.git
synced 2026-06-20 05:46:12 +00:00
Clean up log_create.
This commit is contained in:
committed by
Anders Jenbo
parent
0641165181
commit
3c7afcf29f
+38
-37
@@ -11,7 +11,7 @@ DWORD nNumberOfBytesToWrite; // idb
|
||||
|
||||
/* data */
|
||||
|
||||
int log_not_created = 1; // weak
|
||||
BOOL log_not_created = 1;
|
||||
HANDLE log_file = INVALID_HANDLE_VALUE;
|
||||
|
||||
void __cdecl log_flush(BOOL force_close)
|
||||
@@ -44,53 +44,54 @@ void __cdecl log_flush(BOOL force_close)
|
||||
|
||||
HANDLE log_create()
|
||||
{
|
||||
char *v0; // eax
|
||||
HANDLE v1; // ebx
|
||||
HANDLE v2; // eax
|
||||
char *v3; // edx
|
||||
char Filename[MAX_PATH]; // [esp+Ch] [ebp-15Ch]
|
||||
VS_FIXEDFILEINFO file_info; // [esp+110h] [ebp-58h]
|
||||
char Buffer[32]; // [esp+144h] [ebp-24h]
|
||||
DWORD pcbBuffer; // [esp+164h] [ebp-4h]
|
||||
char *last_slash_pos;
|
||||
HANDLE fh;
|
||||
VS_FIXEDFILEINFO file_info;
|
||||
DWORD i, j;
|
||||
char buf[32];
|
||||
|
||||
if (log_not_created) {
|
||||
if (GetModuleFileName(0, Filename, sizeof(Filename)) && (v0 = strrchr(Filename, '\\')) != 0)
|
||||
v0[1] = 0;
|
||||
else
|
||||
Filename[0] = 0;
|
||||
pcbBuffer = 32;
|
||||
if (!GetUserName(Buffer, &pcbBuffer))
|
||||
Buffer[0] = 0;
|
||||
char filename_tmp[MAX_PATH];
|
||||
if (GetModuleFileName(NULL, filename_tmp, sizeof filename_tmp) == 0)
|
||||
filename_tmp[0] = '\0';
|
||||
else {
|
||||
last_slash_pos = strrchr(filename_tmp, '\\');
|
||||
if (last_slash_pos == NULL)
|
||||
filename_tmp[0] = '\0';
|
||||
else
|
||||
*(last_slash_pos + 1) = '\0';
|
||||
}
|
||||
i = 32;
|
||||
if (!GetUserName(buf, &i))
|
||||
buf[0] = '\0';
|
||||
log_get_version(&file_info);
|
||||
_snprintf(
|
||||
FileName,
|
||||
sizeof(Filename),
|
||||
sizeof(filename_tmp),
|
||||
"%s%s%02u%02u%02u.ERR",
|
||||
Filename,
|
||||
Buffer,
|
||||
_LOWORD(file_info.dwProductVersionMS),
|
||||
filename_tmp,
|
||||
buf,
|
||||
file_info.dwProductVersionMS & 0xFFFF,
|
||||
file_info.dwProductVersionLS >> 16,
|
||||
_LOWORD(file_info.dwProductVersionLS));
|
||||
file_info.dwProductVersionLS & 0xFFFF);
|
||||
}
|
||||
v1 = INVALID_HANDLE_VALUE;
|
||||
for (pcbBuffer = log_not_created == 0; (signed int)pcbBuffer < 2; ++pcbBuffer) {
|
||||
v2 = CreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
v1 = v2;
|
||||
if (v2 != INVALID_HANDLE_VALUE) {
|
||||
if (GetFileSize(v2, 0) > 0x10000)
|
||||
SetEndOfFile(v1);
|
||||
fh = INVALID_HANDLE_VALUE;
|
||||
for (i = log_not_created ? 0 : 1; (int)i < 2; i++) {
|
||||
fh = CreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (fh != INVALID_HANDLE_VALUE) {
|
||||
if (GetFileSize(fh, NULL) > 0x10000)
|
||||
SetEndOfFile(fh);
|
||||
break;
|
||||
}
|
||||
v3 = strrchr(FileName, '\\');
|
||||
if (!v3)
|
||||
v3 = FileName;
|
||||
strcpy(Filename, "c:\\");
|
||||
memset(&Filename[4], 0, 0x100u);
|
||||
strcat(Filename, v3);
|
||||
strcpy(FileName, Filename);
|
||||
last_slash_pos = strrchr(FileName, '\\');
|
||||
if (!last_slash_pos)
|
||||
last_slash_pos = FileName;
|
||||
char filename_tmp[MAX_PATH] = "c:\\";
|
||||
strcat(filename_tmp, last_slash_pos);
|
||||
strcpy(FileName, filename_tmp);
|
||||
}
|
||||
log_not_created = 0;
|
||||
return v1;
|
||||
log_not_created = FALSE;
|
||||
return fh;
|
||||
}
|
||||
// 4947D4: using guessed type int log_not_created;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user