bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#54774: 28.1; ansi-color with no colors in Emacs-28


From: Jim Porter
Subject: bug#54774: 28.1; ansi-color with no colors in Emacs-28
Date: Fri, 8 Apr 2022 11:23:41 -0700

On 4/8/2022 6:23 AM, Lars Ingebrigtsen wrote:
Thierry Volpiatto <thievol@posteo.net> writes:

it seems using ansi-color-apply in Emacs-28 is not working properly,
there is no colors.  In Emacs-29 it is working properly (very nice)
without needing a workaround used previously in emacs-27 (code commented).
See code below to reproduce and Screenshots attached.

I'm not sure I understand this bug report.  Are you asking for the code
in ansi-color in Emacs 29 to be backported to Emacs 28.2?

I think the issue is that there were some changes in Emacs 28.1 (by me, see commit ceb9da3b7125fbdf0da04a3b158ac1e792c87f4f) to add support for ANSI "bright" colors. In 29, Miha added support for 256-color and 24-bit ANSI colors as well (see 0fa2279b90bf5a638d8377032b71135e1374e8fb).

I've verified that Emacs 28.1 properly handles normal and bright ANSI colors in shell output. Bold/italic/etc works correctly as well, even though I added an unnecessary quote to the face definitions - that's been fixed in Emacs 29, and could be backported to 28, though I don't think it causes any serious problems.

That said, it looks like Thierry had written some code for Emacs 27 that scans the output of a command that uses ANSI 256-color sequences and then translates those sequences into ANSI 8-color sequences that ansi-color.el will understand. However, that code no longer works in Emacs 28, possibly due to my changes to support ANSI bright colors. I'm not sure this is actually a bug in Emacs; it may just mean that Thierry's workaround needs to be updated to account for the ansi-color.el changes I made.

I'm a little unclear about what actually broke though, and haven't had a chance to dig deeper. Some basic testing of `ansi-color-apply' shows that it does what I expect. From "emacs -Q":

  (require 'ansi-color)
  (ansi-color-apply "\033[44mfoo\033[0m")
    -> #("foo" 0 3 (font-lock-face (:background "blue2")))
  (ansi-color-apply "\033[44;33mfoo\033[0m")
-> #("foo" 0 3 (font-lock-face ((:foreground "yellow3") (:background "blue2"))))

That's the same behavior as Emacs 27.2 with some trivial differences (Emacs 27.2 uses `foreground-color' instead of `:foreground').





reply via email to

[Prev in Thread] Current Thread [Next in Thread]