Encoding fixes, Win95 kbd fix, boundary checking added
This commit is contained in:
@@ -1211,7 +1211,7 @@ gkey kbxget_raw(int mode) {
|
||||
case VK_CAPITAL:
|
||||
case VK_NUMLOCK:
|
||||
case VK_SCROLL:
|
||||
return (gkey)k; // Return empty key
|
||||
break;
|
||||
|
||||
case VK_NUMPAD0:
|
||||
case VK_NUMPAD1:
|
||||
@@ -1245,12 +1245,12 @@ gkey kbxget_raw(int mode) {
|
||||
// fall through
|
||||
default:
|
||||
if(ascii == '\x2e') {
|
||||
return (gkey)ascii;
|
||||
k = (gkey)ascii;
|
||||
}
|
||||
else {
|
||||
int kc = gkbd_nt2bios(inp);
|
||||
if(kc != -1)
|
||||
return (gkey)kc;
|
||||
k = (gkey)kc;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1264,10 +1264,11 @@ gkey kbxget_raw(int mode) {
|
||||
case 0xe9: case 0xea: case 0xeb: case 0xec: case 0xed:
|
||||
case 0xef: case 0xf0: case 0xf1: case 0xf2: case 0xf3:
|
||||
case 0xf4: case 0xf5:
|
||||
if(ascii)
|
||||
return (gkey)ascii;
|
||||
k = (gkey)ascii;
|
||||
break;
|
||||
}
|
||||
if(k != 0)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
// Discard other events
|
||||
|
@@ -494,9 +494,9 @@ const char* strlword(const char* str) {
|
||||
|
||||
*left = NUL;
|
||||
if(*str) {
|
||||
strcpy(buf, str);
|
||||
strxcpy(buf, str, sizeof(buf));
|
||||
if(strtok(buf, " ") != NULL) {
|
||||
strcpy(left, buf);
|
||||
strxcpy(left, buf, sizeof(left));
|
||||
}
|
||||
}
|
||||
return left;
|
||||
@@ -514,7 +514,7 @@ const char* strrword(const char* str) {
|
||||
|
||||
*right = NUL;
|
||||
if(*str) {
|
||||
strcpy(buf, str);
|
||||
strxcpy(buf, str, sizeof(buf));
|
||||
ptr = strtok(buf, " ");
|
||||
ptr2 = ptr;
|
||||
while(ptr != NULL) {
|
||||
@@ -522,7 +522,7 @@ const char* strrword(const char* str) {
|
||||
ptr = strtok(NULL, " ");
|
||||
}
|
||||
if(ptr2) {
|
||||
strcpy(right, ptr2);
|
||||
strxcpy(right, ptr2, sizeof(right));
|
||||
}
|
||||
}
|
||||
return right;
|
||||
|
@@ -572,7 +572,7 @@ void GVid::detectinfo(GVidInfo* _info) {
|
||||
|
||||
// Get video mode and number of rows and columns
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
||||
GetConsoleScreenBufferInfo(gvid_hout, &csbi);
|
||||
assert(GetConsoleScreenBufferInfo(gvid_hout, &csbi) != 0);
|
||||
|
||||
_info->screen.mode = 0;
|
||||
_info->screen.rows = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
|
||||
|
@@ -219,8 +219,8 @@ void gareafile::ReadCrashmail(char* tag) {
|
||||
strxmerge(tmp, 100, address, "@", domain, NULL);
|
||||
CfgAddress(tmp);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user