Encoding fixes, Win95 kbd fix, boundary checking added

This commit is contained in:
Alexander S. Aganichev
2000-12-20 19:53:25 +00:00
parent 420527ccfe
commit fe6812d9a6
8 changed files with 87 additions and 73 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -219,8 +219,8 @@ void gareafile::ReadCrashmail(char* tag) {
strxmerge(tmp, 100, address, "@", domain, NULL);
CfgAddress(tmp);
}
fclose(fp);
}
fclose(fp);
}