Ver Fonte

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
ultramage há 18 anos atrás
pai
commit
6aa16e2f75
1 ficheiros alterados com 6 adições e 4 exclusões
  1. 6 4
      src/common/showmsg.c

+ 6 - 4
src/common/showmsg.c

@@ -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).
 					uint8 num = (numbers[numpoint]>>4)*10+(numbers[numpoint]&0x0F);
 					int cnt;
+					uint32 tmp;
 					COORD origin = {0,0};
 					if(num==1)
 					{	// 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;
 						cnt = info.dwSize.X * (info.dwSize.Y - info.dwCursorPosition.Y) - info.dwCursorPosition.X; 
 					}				
-					FillConsoleOutputAttribute(handle,info.wAttributes,cnt,origin,NULL);
-					FillConsoleOutputCharacter(handle,' ',             cnt,origin,NULL);
+					FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, &tmp);
+					FillConsoleOutputCharacter(handle, ' ',              cnt, origin, &tmp);
 				}
 				else if( *q=='K' )
 				{	// \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);
 					COORD origin = {0,info.dwCursorPosition.Y};
 					SHORT cnt;
+					uint32 tmp;
 					if(num==1)
 					{	
 						cnt = info.dwCursorPosition.X + 1;
@@ -390,8 +392,8 @@ int	VFPRINTF(HANDLE handle, const char *fmt, va_list argptr)
 						origin = info.dwCursorPosition;
 						cnt = info.dwSize.X - info.dwCursorPosition.X; // how many spaces until line is full
 					}
-					FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, NULL);
-					FillConsoleOutputCharacter(handle, ' ',              cnt, origin, NULL);
+					FillConsoleOutputAttribute(handle, info.wAttributes, cnt, origin, &tmp);
+					FillConsoleOutputCharacter(handle, ' ',              cnt, origin, &tmp);
 				}
 				else if( *q == 'H' || *q == 'f' )
 				{	// \033[#;#H - Cursor Position (CUP)