Browse Source

Clean up log_create.

pull/133/head
Sergey Semushin 7 years ago committed by Anders Jenbo
parent
commit
3c7afcf29f
  1. 75
      Source/logging.cpp

75
Source/logging.cpp

@ -11,7 +11,7 @@ DWORD nNumberOfBytesToWrite; // idb
/* data */ /* data */
int log_not_created = 1; // weak BOOL log_not_created = 1;
HANDLE log_file = INVALID_HANDLE_VALUE; HANDLE log_file = INVALID_HANDLE_VALUE;
void __cdecl log_flush(BOOL force_close) void __cdecl log_flush(BOOL force_close)
@ -44,53 +44,54 @@ void __cdecl log_flush(BOOL force_close)
HANDLE log_create() HANDLE log_create()
{ {
char *v0; // eax char *last_slash_pos;
HANDLE v1; // ebx HANDLE fh;
HANDLE v2; // eax VS_FIXEDFILEINFO file_info;
char *v3; // edx DWORD i, j;
char Filename[MAX_PATH]; // [esp+Ch] [ebp-15Ch] char buf[32];
VS_FIXEDFILEINFO file_info; // [esp+110h] [ebp-58h]
char Buffer[32]; // [esp+144h] [ebp-24h]
DWORD pcbBuffer; // [esp+164h] [ebp-4h]
if (log_not_created) { if (log_not_created) {
if (GetModuleFileName(0, Filename, sizeof(Filename)) && (v0 = strrchr(Filename, '\\')) != 0) char filename_tmp[MAX_PATH];
v0[1] = 0; if (GetModuleFileName(NULL, filename_tmp, sizeof filename_tmp) == 0)
else filename_tmp[0] = '\0';
Filename[0] = 0; else {
pcbBuffer = 32; last_slash_pos = strrchr(filename_tmp, '\\');
if (!GetUserName(Buffer, &pcbBuffer)) if (last_slash_pos == NULL)
Buffer[0] = 0; filename_tmp[0] = '\0';
else
*(last_slash_pos + 1) = '\0';
}
i = 32;
if (!GetUserName(buf, &i))
buf[0] = '\0';
log_get_version(&file_info); log_get_version(&file_info);
_snprintf( _snprintf(
FileName, FileName,
sizeof(Filename), sizeof(filename_tmp),
"%s%s%02u%02u%02u.ERR", "%s%s%02u%02u%02u.ERR",
Filename, filename_tmp,
Buffer, buf,
_LOWORD(file_info.dwProductVersionMS), file_info.dwProductVersionMS & 0xFFFF,
file_info.dwProductVersionLS >> 16, file_info.dwProductVersionLS >> 16,
_LOWORD(file_info.dwProductVersionLS)); file_info.dwProductVersionLS & 0xFFFF);
} }
v1 = INVALID_HANDLE_VALUE; fh = INVALID_HANDLE_VALUE;
for (pcbBuffer = log_not_created == 0; (signed int)pcbBuffer < 2; ++pcbBuffer) { for (i = log_not_created ? 0 : 1; (int)i < 2; i++) {
v2 = CreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); fh = CreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
v1 = v2; if (fh != INVALID_HANDLE_VALUE) {
if (v2 != INVALID_HANDLE_VALUE) { if (GetFileSize(fh, NULL) > 0x10000)
if (GetFileSize(v2, 0) > 0x10000) SetEndOfFile(fh);
SetEndOfFile(v1);
break; break;
} }
v3 = strrchr(FileName, '\\'); last_slash_pos = strrchr(FileName, '\\');
if (!v3) if (!last_slash_pos)
v3 = FileName; last_slash_pos = FileName;
strcpy(Filename, "c:\\"); char filename_tmp[MAX_PATH] = "c:\\";
memset(&Filename[4], 0, 0x100u); strcat(filename_tmp, last_slash_pos);
strcat(Filename, v3); strcpy(FileName, filename_tmp);
strcpy(FileName, Filename);
} }
log_not_created = 0; log_not_created = FALSE;
return v1; return fh;
} }
// 4947D4: using guessed type int log_not_created; // 4947D4: using guessed type int log_not_created;

Loading…
Cancel
Save