Fixed showmsg causing silent access violation exceptions on Windows (WinAPI function used does not accept NULL)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10176 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
ultramage 2007-04-07 09:11:11 +00:00
parent 87c0efdc89
commit 6aa16e2f75

View File

@ -350,6 +350,7 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
// \033[2J - Clears the screen and moves the cursor to the home position (line 1, column 1). // \033[2J - Clears the screen and moves the cursor to the home position (line 1, column 1).
uint8 num = (numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F); uint8 num = (numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F);
int cnt; int cnt;
uint32 tmp;
COORD origin = {0,0}; COORD origin = {0,0};
if(num==1) if(num==1)
{ // chars from start up to and including cursor { // chars from start up to and including cursor
@ -365,8 +366,8 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
origin = info.dwCursorPosition; origin = info.dwCursorPosition;
cnt = info.dwSize.X * (info.dwSize.Y - info.dwCursorPosition.Y) - info.dwCursorPosition.X; cnt = info.dwSize.X * (info.dwSize.Y - info.dwCursorPosition.Y) - info.dwCursorPosition.X;
} }
FillConsoleOutputAttribute(handle,info.wAttributes,cnt,origin,NULL); FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, &tmp);
FillConsoleOutputCharacter(handle,' ', cnt,origin,NULL); FillConsoleOutputCharacter(handle, ' ', cnt, origin, &tmp);
} }
else if( *q=='K' ) else if( *q=='K' )
{ // \033[K : clear line from actual position to end of the line { // \033[K : clear line from actual position to end of the line
@ -377,6 +378,7 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
uint8 num = (numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F); uint8 num = (numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F);
COORD origin = {0,info.dwCursorPosition.Y}; COORD origin = {0,info.dwCursorPosition.Y};
SHORT cnt; SHORT cnt;
uint32 tmp;
if(num==1) if(num==1)
{ {
cnt = info.dwCursorPosition.X + 1; cnt = info.dwCursorPosition.X + 1;
@ -390,8 +392,8 @@ int VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
origin = info.dwCursorPosition; origin = info.dwCursorPosition;
cnt = info.dwSize.X - info.dwCursorPosition.X; // how many spaces until line is full cnt = info.dwSize.X - info.dwCursorPosition.X; // how many spaces until line is full
} }
FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, NULL); FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, &tmp);
FillConsoleOutputCharacter(handle, ' ', cnt, origin, NULL); FillConsoleOutputCharacter(handle, ' ', cnt, origin, &tmp);
} }
else if( *q == 'H' || *q == 'f' ) else if( *q == 'H' || *q == 'f' )
{ // \033[#;#H - Cursor Position (CUP) { // \033[#;#H - Cursor Position (CUP)