Fixed multiple bugs.

This commit is contained in:
OBattler
2017-07-26 15:02:03 +02:00
parent edf2a5b24c
commit 658909e416
7 changed files with 41 additions and 6 deletions

View File

@@ -793,7 +793,7 @@ void create_floppy_tip(int part)
}
else
{
_swprintf(tempTip, win_language_get_string_from_id(2179), drive + 1, wtext, discfns[drive]);
_swprintf(tempTip, win_language_get_string_from_id(IDS_2158), drive + 1, wtext, discfns[drive]);
}
if (sbTips[part] != NULL)

View File

@@ -2500,7 +2500,6 @@ static BOOL CALLBACK win_settings_hard_disks_add_proc(HWND hdlg, UINT message, W
char *big_buf;
int b = 0;
uint64_t r = 0;
int j = 0;
switch (message)
{
@@ -2828,7 +2827,7 @@ hdd_add_file_open_error:
}
else
{
for (j = 0; j < 16; j++)
for (i = 5; i < 16; i++)
{
if (((size % (i << 9)) == 0) && (size <= ((i * 17) << 19)))
{
@@ -3777,21 +3776,21 @@ static void cdrom_add_locations(HWND hdlg)
h = GetDlgItem(hdlg, IDC_COMBO_CD_ID);
for (i = 0; i < 16; i++)
{
wsprintf(lptsTemp, win_language_get_string_from_id(2088), i);
wsprintf(lptsTemp, win_language_get_string_from_id(IDS_4098), i);
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) lptsTemp);
}
h = GetDlgItem(hdlg, IDC_COMBO_CD_LUN);
for (i = 0; i < 8; i++)
{
wsprintf(lptsTemp, win_language_get_string_from_id(2088), i);
wsprintf(lptsTemp, win_language_get_string_from_id(IDS_4098), i);
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) lptsTemp);
}
h = GetDlgItem(hdlg, IDC_COMBO_CD_CHANNEL_IDE);
for (i = 0; i < 8; i++)
{
wsprintf(lptsTemp, win_language_get_string_from_id(2169), i >> 1, i & 1);
wsprintf(lptsTemp, win_language_get_string_from_id(IDS_4097), i >> 1, i & 1);
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) lptsTemp);
}

View File

@@ -3390,6 +3390,7 @@ void d86f_load(int drive, wchar_t *fn)
{
/* File is WAY too small, abort. */
fclose(d86f[drive].f);
d86f[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -3399,6 +3400,7 @@ void d86f_load(int drive, wchar_t *fn)
/* File is not of the valid format, abort. */
d86f_log("86F: Unrecognized magic bytes: %08X\n", magic);
fclose(d86f[drive].f);
d86f[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -3421,6 +3423,7 @@ void d86f_load(int drive, wchar_t *fn)
d86f_log("86F: Unrecognized file version: %i.%02i\n", d86f[drive].version >> 8, d86f[drive].version & 0xFF);
}
fclose(d86f[drive].f);
d86f[drive].f = NULL;
update_status_bar_icon_state(drive, 1);
return;
}
@@ -3437,6 +3440,7 @@ void d86f_load(int drive, wchar_t *fn)
{
/* File too small, abort. */
fclose(d86f[drive].f);
d86f[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -3459,6 +3463,7 @@ void d86f_load(int drive, wchar_t *fn)
{
d86f_log("86F: CRC64 error\n");
fclose(d86f[drive].f);
d86f[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -3470,6 +3475,7 @@ void d86f_load(int drive, wchar_t *fn)
memcpy(d86f[drive].original_file_name, fn, (wcslen(fn) << 1) + 2);
fclose(d86f[drive].f);
d86f[drive].f = NULL;
d86f[drive].f = _wfopen(temp_file_name, L"wb");
if (!d86f[drive].f)
@@ -3500,6 +3506,7 @@ void d86f_load(int drive, wchar_t *fn)
fclose(tf);
fclose(d86f[drive].f);
d86f[drive].f = NULL;
if (!temp)
{
@@ -3517,6 +3524,7 @@ void d86f_load(int drive, wchar_t *fn)
/* Zoned disk. */
d86f_log("86F: Disk is zoned (Apple or Sony)\n");
fclose(d86f[drive].f);
d86f[drive].f = NULL;
if (d86f[drive].is_compressed)
{
_wremove(temp_file_name);
@@ -3530,6 +3538,7 @@ void d86f_load(int drive, wchar_t *fn)
/* Zone type is not 0 but the disk is fixed-RPM. */
d86f_log("86F: Disk is fixed-RPM but zone type is not 0\n");
fclose(d86f[drive].f);
d86f[drive].f = NULL;
if (d86f[drive].is_compressed)
{
_wremove(temp_file_name);
@@ -3547,6 +3556,7 @@ void d86f_load(int drive, wchar_t *fn)
if (writeprot[drive])
{
fclose(d86f[drive].f);
d86f[drive].f = NULL;
if (d86f[drive].is_compressed)
{
@@ -3567,6 +3577,7 @@ void d86f_load(int drive, wchar_t *fn)
/* File has no track 0 side 0, abort. */
d86f_log("86F: No Track 0 side 0\n");
fclose(d86f[drive].f);
d86f[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -3576,6 +3587,7 @@ void d86f_load(int drive, wchar_t *fn)
/* File is 2-sided but has no track 0 side 1, abort. */
d86f_log("86F: No Track 0 side 1\n");
fclose(d86f[drive].f);
d86f[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -3657,7 +3669,10 @@ void d86f_close(int drive)
memcpy(temp_file_name, drive ? nvr_concat(L"TEMP$$$1.$$$") : nvr_concat(L"TEMP$$$0.$$$"), 26);
if (d86f[drive].f)
{
fclose(d86f[drive].f);
d86f[drive].f = NULL;
}
if (d86f[drive].is_compressed)
_wremove(temp_file_name);
}

View File

@@ -280,6 +280,7 @@ void fdi_load(int drive, wchar_t *fn)
/* This is a Japanese FDI file. */
pclog("fdi_load(): Japanese FDI file detected, redirecting to IMG loader\n");
fclose(fdi[drive].f);
fdi[drive].f = NULL;
img_load(drive, fn);
return;
}
@@ -303,7 +304,10 @@ void fdi_close(int drive)
if (fdi[drive].h)
fdi2raw_header_free(fdi[drive].h);
if (fdi[drive].f)
{
fclose(fdi[drive].f);
fdi[drive].f = NULL;
}
}
void fdi_seek(int drive, int track)

View File

@@ -110,6 +110,7 @@ void imd_load(int drive, wchar_t *fn)
{
pclog("IMD: Not a valid ImageDisk image\n");
fclose(imd[drive].f);
imd[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -131,6 +132,7 @@ void imd_load(int drive, wchar_t *fn)
{
pclog("IMD: No ASCII EOF character\n");
fclose(imd[drive].f);
imd[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -144,6 +146,7 @@ void imd_load(int drive, wchar_t *fn)
{
pclog("IMD: File ends after ASCII EOF character\n");
fclose(imd[drive].f);
imd[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -263,6 +266,7 @@ void imd_load(int drive, wchar_t *fn)
/* If we can't fit the sectors with a reasonable minimum gap even at 2% slower RPM, abort. */
pclog("IMD: Unable to fit the %i sectors in a track\n", track_spt);
fclose(imd[drive].f);
imd[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -301,6 +305,7 @@ void imd_close(int drive)
memset(&(imd[drive].tracks[i][1]), 0, sizeof(imd_track_t));
}
fclose(imd[drive].f);
imd[drive].f = NULL;
}
}

View File

@@ -358,6 +358,7 @@ void img_load(int drive, wchar_t *fn)
}
writeprot[drive] = 1;
}
pclog("Floppy %i file pointer: %08X\n", drive, img[drive].f);
if (ui_writeprot[drive])
{
writeprot[drive] = 1;
@@ -752,6 +753,7 @@ jump_if_fdf:
{
pclog("Image is bigger than can fit on an ED floppy, ejecting...\n");
fclose(img[drive].f);
img[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -814,6 +816,7 @@ jump_if_fdf:
{
pclog("Image is bigger than can fit on an ED floppy, ejecting...\n");
fclose(img[drive].f);
img[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -831,6 +834,7 @@ jump_if_fdf:
{
pclog("ERROR: Floppy image of unknown format was inserted into drive %c:!\n", drive + 0x41);
fclose(img[drive].f);
img[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -863,7 +867,10 @@ void img_close(int drive)
{
d86f_unregister(drive);
if (img[drive].f)
{
fclose(img[drive].f);
img[drive].f = NULL;
}
if (img[drive].disk_data)
free(img[drive].disk_data);
}

View File

@@ -545,6 +545,7 @@ void td0_load(int drive, wchar_t *fn)
{
pclog("TD0: Not a valid Teledisk image\n");
fclose(td0[drive].f);
td0[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -560,6 +561,7 @@ void td0_load(int drive, wchar_t *fn)
{
pclog("TD0: Failed to initialize\n");
fclose(td0[drive].f);
td0[drive].f = NULL;
memset(discfns[drive], 0, sizeof(discfns[drive]));
return;
}
@@ -607,7 +609,10 @@ void td0_close(int drive)
}
if (td0[drive].f)
{
fclose(td0[drive].f);
td0[drive].f = NULL;
}
}
uint32_t td0_get_raw_tsize(int side_flags, int slower_rpm)