(svn r6420) -Feature [Win32]: Use an existing console if openttd was started from one.
Unfortunately this only works for WindowsXP or higher, all older MS-OS's are stuck with the old behaviour.
This commit is contained in:
		
							
								
								
									
										11
									
								
								win32.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								win32.c
									
									
									
									
									
								
							@@ -786,15 +786,26 @@ static int ParseCommandLine(char *line, char **argv, int max_argc)
 | 
				
			|||||||
	return n;
 | 
						return n;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef ATTACH_PARENT_PROCESS
 | 
				
			||||||
 | 
					#define ATTACH_PARENT_PROCESS ((DWORD)-1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CreateConsole(void)
 | 
					void CreateConsole(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	HANDLE hand;
 | 
						HANDLE hand;
 | 
				
			||||||
	CONSOLE_SCREEN_BUFFER_INFO coninfo;
 | 
						CONSOLE_SCREEN_BUFFER_INFO coninfo;
 | 
				
			||||||
 | 
						BOOL (WINAPI *AttachConsole)(DWORD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (_has_console) return;
 | 
						if (_has_console) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_has_console = true;
 | 
						_has_console = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Attach to an existing console if one exists. Unfortunately this function
 | 
				
			||||||
 | 
						 * only exists on WindowsXP or higher, so for all other users out there:
 | 
				
			||||||
 | 
						 * you're stuck with an additional console even if you started openttd from
 | 
				
			||||||
 | 
						 * the command line */
 | 
				
			||||||
 | 
						if (!LoadLibraryList((Function*)&AttachConsole, "kernel32.dll\0AttachConsole\0") ||
 | 
				
			||||||
 | 
							  !AttachConsole(ATTACH_PARENT_PROCESS))
 | 
				
			||||||
		AllocConsole();
 | 
							AllocConsole();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	hand = GetStdHandle(STD_OUTPUT_HANDLE);
 | 
						hand = GetStdHandle(STD_OUTPUT_HANDLE);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user