In eshell, if I am in a directory and call `make`, the call that is executed is (eshell/make) from em-unix.el. The *compilation* window then pops up, which reads: ------- make g++ main.cpp -o main -lsfml-graphics -lsfml-window -lsfml-system [01m [Kmain.cpp: [m [K In function ‘ [01m [Kint [01;32m [K main [m [K() [m [K’: [01m [Kmain.cpp:41:21: [m [K [01;31m [Kerror: [m [Ktoo few arguments to function ‘ [01m [Kvoid [01;32m [K handleCamera [m [K(sf::View&, const sf::Time&) [m [K’ 41 | [01;31m [KhandleCamera(view) [m [K; | [01;31m [K~~~~~~~~~~~~^~~~~~ [m [K [01m [Kmain.cpp:7:6: [m [K [01;36m [Knote: [m [Kdeclared here 7 | void [01;36m [KhandleCamera [m [K(sf::View &view, const sf::Time &time) { | [01;36m [K^~~~~~~~~~~~ [m [K make: *** [Makefile:2: game] Error 1 Compilation exited abnormally with code 2 at Thu Jan 25 16:47:18, duration 0.28 s ------ Note that the garbled text above is not a problem with me copy-pasting it . The screen I see really writes out these `[01;31m` characters all over, making the message comprehensible. I thought this might be a locale issue, so I called make like this: ------ ~/Projects/SFML $ LC_LANG=en_US.utf8 make ------- Which doesn't pop-up the *compilations* buffer, but does print the correct output: -------- g++ main.cpp -o main -lsfml-graphics -lsfml-window -lsfml-system main.cpp: In function ‘int main()’: main.cpp:41:21: error: too few arguments to function ‘void handleCamera(sf::View&, const sf::Time&)’ 41 | handleCamera(view); | ~~~~~~~~~~~~^~~~~~ main.cpp:7:6: note: declared here 7 | void handleCamera(sf::View &view, const sf::Time &time) { | ^~~~~~~~~~~~ make: *** [Makefile:2: game] Error 1 ------ Which is properly colored and everything. I also figured out that the LC_LANG isn't special it's just bypassing the call to the native function, in fact, you get the same result if you call ------- ASDASDFASD=ASDFASDF make ------- Is this a known behavior with a workaround, or how do I troubleshoot this further. Thanks, Patrick