Changeset 890
- Timestamp:
- 07/22/19 17:10:35 (5 years ago)
- Location:
- cpp/common
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/common/console.cpp
r400 r890 1 1 #include "console.h" 2 2 #ifdef _WIN32 3 4 3 #include <windows.h> 5 4 #include "Convert.h" 5 #endif 6 6 7 #else 8 7 #if defined(LINUX) || defined(MACOS) 9 8 #include <stdio.h> 10 9 #include <termios.h> … … 12 11 bool guiStdoutIsConsole() 13 12 { 14 static int in =-1;15 if (in <0)13 static int in = -1; 14 if (in < 0) 16 15 { 17 16 struct termios t; 18 in =(tcgetattr(1,&t)==0);17 in = (tcgetattr(1, &t) == 0); 19 18 } 20 19 return in; 21 20 } 22 21 #endif 23 24 22 25 23 void guiSetConsoleTitle(const char* utf8title) //platform-dependent implementations … … 28 26 SetConsoleTitleW(Convert::utf8ToUtf16(utf8title).c_str()); 29 27 #else 28 #if defined(LINUX) || defined(MACOS) 30 29 if (guiStdoutIsConsole()) 31 30 { 32 printf("\033]0;%s\007", utf8title);31 printf("\033]0;%s\007", utf8title); 33 32 fflush(stdout); 34 33 } 34 #endif 35 35 #endif 36 36 } 37 37 38 38 ConsoleColorMode console_color_mode = ConsoleColorNone; 39 40 void guiSetConsoleUTF8() 41 { 42 #ifdef _WIN32 43 SetConsoleOutputCP(CP_UTF8); 44 // SetConsoleCP(CP_UTF8); //set input code page. 45 // ^^ Z ta linia po wpisaniu gdziekolwiek polskiego znaczka, fgets() zwraca NULL co powoduje ze konsola sie zamyka. 46 // Uzycie fgetws() nie wiadomo czemu od razu wychodzi (nie wczytujac nic z konsoli) zwracajac jakies losowe znaczki - zmiana w stdiofile.h ktora testowalem: char *Vgets(char *s, int size) { wchar_t tab[1000]; wchar_t *x = fgetws(tab, 1000, file); if (x == NULL) return NULL; strcpy(s, Convert::wstrTOstr(tab).c_str()); return s; } 47 // ^^ Bez tej linijki polskie znaki sa kodowane 1-bajtowo jako jakas strona kodowa (pojawiaja sie w konsoli ale frams takie znaki ignoruje jesli sa poczatkiem polecenia?) 48 // ogolnie wszyscy narzekaja na konsole win... https://alfps.wordpress.com/2011/11/22/unicode-part-1-windows-console-io-approaches/ 49 #endif 50 } -
cpp/common/console.h
r399 r890 1 1 #ifndef _CONSOLE_H_ 2 2 #define _CONSOLE_H_ 3 3 4 #ifndef _WIN32 4 5 bool guiStdoutIsConsole(); … … 7 8 enum ConsoleColorMode { ConsoleColorNone, ConsoleColorANSIDefault }; 8 9 extern ConsoleColorMode console_color_mode; 10 void guiSetConsoleUTF8(); 11 9 12 #endif
Note: See TracChangeset
for help on using the changeset viewer.