Subject: bug#68724: closed (Re: bug#68724: eshell/make doesn't properly handle color term characters)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 26 Jan 2024 01:19:02 +0000

Your bug report

#68724: eshell/make doesn't properly handle color term characters

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
68724: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68724
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#68724: eshell/make doesn't properly handle color term characters
From: Jim Porter <[email-masked]>
To: Patrick Poitras <[email-masked]>, [email-masked]
Date: Thu, 25 Jan 2024 17:18:23 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

On 1/25/2024 4:54 PM, Patrick Poitras wrote:
> 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: ...

Thanks for the bug report. I'm guessing you're using Emacs 30.0.50. This 
is a bug, in that eshell/make should print its output to the Eshell 
buffer by default (not a new compilation buffer). That's now fixed in 
4834be0949e on master, so closing this issue.

However, for fixing the colors in the compilation buffer, you can also 
add 'ansi-color-compilation-filter' to 'compilation-filter-hook'.

Subject: eshell/make doesn't properly handle color term characters
From: Patrick Poitras <[email-masked]>
To: [email-masked]
Date: Thu, 25 Jan 2024 16:54:45 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

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