Fix up blackslashes in zips on load, so FSZIP_FLocate won't fail because of it.

This commit is contained in:
Shpoike 2021-04-27 17:58:22 +01:00
parent 7ca893c3e1
commit 7612446a59
1 changed files with 4 additions and 3 deletions

View File

@ -1830,7 +1830,7 @@ unsigned short ibmtounicode[256] =
0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, //0x20(ascii)
0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, //0x30(ascii)
0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, //0x40(ascii)
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, //0x50(ascii)
0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B, '/',0x005D,0x005E,0x005F, //0x50(ascii)
0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, //0x60(ascii)
0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x2302, //0x70(mostly ascii, one display-only)
0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7,0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5, //0x80(non-ascii, printable)
@ -1871,9 +1871,11 @@ static qboolean FSZIP_EnumerateCentralDirectory(zipfile_t *zip, struct zipinfo *
//copy out the filename and lowercase it
if (entry.gflags & (1u<<11))
{ //already utf-8 encoding
unsigned short i;
if (entry.fnane_len > sizeof(f->name)-1)
entry.fnane_len = sizeof(f->name)-1;
memcpy(f->name, entry.fname, entry.fnane_len);
for (i = 0; i < entry.fnane_len; i++)
f->name[i] = (entry.fname[i]=='\\')?'/':entry.fname[i];
f->name[entry.fnane_len] = 0;
}
else
@ -1889,7 +1891,6 @@ static qboolean FSZIP_EnumerateCentralDirectory(zipfile_t *zip, struct zipinfo *
nlen += cl;
}
f->name[nlen] = 0;
}
if (prefix && *prefix)