GNU bug report logs - #68724
eshell/make doesn't properly handle color term characters

Previous Next

Package: emacs;

Reported by: Patrick Poitras <patrick.f.poitras <at> gmail.com>

Date: Fri, 26 Jan 2024 00:56:02 UTC

Severity: normal

Done: Jim Porter <jporterbugs <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Patrick Poitras <patrick.f.poitras <at> gmail.com>
Subject: bug#68724: closed (Re: bug#68724: eshell/make doesn't properly
 handle color term characters)
Date: Fri, 26 Jan 2024 01:19:02 +0000
[Message part 1 (text/plain, inline)]
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 68724 <at> debbugs.gnu.org.

-- 
68724: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68724
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Jim Porter <jporterbugs <at> gmail.com>
To: Patrick Poitras <patrick.f.poitras <at> gmail.com>, 68724-done <at> debbugs.gnu.org
Subject: Re: bug#68724: eshell/make doesn't properly handle color term
 characters
Date: Thu, 25 Jan 2024 17:18:23 -0800
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'.

[Message part 3 (message/rfc822, inline)]
From: Patrick Poitras <patrick.f.poitras <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: eshell/make doesn't properly handle color term characters
Date: Thu, 25 Jan 2024 16:54:45 -0800
[Message part 4 (text/plain, inline)]
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
[Message part 5 (text/html, inline)]

This bug report was last modified 1 year and 143 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.