mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	Enable ANSI colors on Windows 10+ (#311)
* Enable ANSI colors on Windows 10+ On older versions function will silently fail without any ill effects * Do not call SetConsoleMode if the mode is already set * Update main.cpp --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
This commit is contained in:
		
							
								
								
									
										15
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								main.cpp
									
									
									
									
									
								
							| @@ -20,6 +20,13 @@ | |||||||
| #include <signal.h> | #include <signal.h> | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #if defined (_WIN32) | ||||||
|  | #pragma comment(lib,"kernel32.lib") | ||||||
|  | extern "C" __declspec(dllimport) void* __stdcall GetStdHandle(unsigned long nStdHandle); | ||||||
|  | extern "C" __declspec(dllimport) int __stdcall GetConsoleMode(void* hConsoleHandle, unsigned long* lpMode); | ||||||
|  | extern "C" __declspec(dllimport) int __stdcall SetConsoleMode(void* hConsoleHandle, unsigned long dwMode); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #define ANSI_COLOR_RED     "\x1b[31m" | #define ANSI_COLOR_RED     "\x1b[31m" | ||||||
| #define ANSI_COLOR_GREEN   "\x1b[32m" | #define ANSI_COLOR_GREEN   "\x1b[32m" | ||||||
| #define ANSI_COLOR_YELLOW  "\x1b[33m" | #define ANSI_COLOR_YELLOW  "\x1b[33m" | ||||||
| @@ -946,6 +953,14 @@ int main(int argc, char ** argv) { | |||||||
|  |  | ||||||
|     // set the color for the prompt which will be output initially |     // set the color for the prompt which will be output initially | ||||||
|     if (params.use_color) { |     if (params.use_color) { | ||||||
|  | #if defined (_WIN32) | ||||||
|  |         // Enable ANSI colors on Windows 10+ | ||||||
|  |         unsigned long dwMode = 0; | ||||||
|  |         void* hConOut = GetStdHandle((unsigned long)-11); // STD_OUTPUT_HANDLE (-11) | ||||||
|  |         if (hConOut && hConOut != (void*)-1 && GetConsoleMode(hConOut, &dwMode) && !(dwMode & 0x4)) { | ||||||
|  |             SetConsoleMode(hConOut, dwMode | 0x4); // ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x4) | ||||||
|  |         } | ||||||
|  | #endif | ||||||
|         printf(ANSI_COLOR_YELLOW); |         printf(ANSI_COLOR_YELLOW); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 anzz1
					anzz1