Subject: bug#51262: [PATCH] Don't use color escape sequences in `vc-git-expanded-log-entry'

From: Jan Synáček <[email-masked]>
Date: Tue, 19 Oct 2021 10:53:41 +0200

On Tue, Oct 19, 2021 at 10:33 AM Stefan Kangas <[email-masked]> wrote:
>
> ...
> > This is what I see on my system (I hope that gmail doesn't remove the escapes):
> >
> > *  (HEAD -> master)520684e..: Jan Synacek 2021-10-19 first commit
> >  ^[[33mcommit 520684e773918234874a35738b094ca39b63a822^[ [m
> > Author: Jan Synacek <[email-masked]>
> > Date:   Tue Oct 19 10:04:02 2021 +0200
> >
> >   first commit
>
> Here, I actually see the colours, and no escape sequences.

Colors as in interpreted escape sequences?

> The question is what is different in our setups.  Could you post the
> output of M-x report-emacs-bug?  Is there anything in your ~/.gitconfig
> that could be causing this?
>
> > It might be dependent on git configuration, but I think it's safe to assume that
> > there might be escape sequences and simply use --no-color. And that's what
> > my patch does.
>
> I agree that you shouldn't need to see those escape sequences, but it
> would be better if we could narrow it down so we don't have to remove
> colours for everyone.  The first step is to try to figure out what it is
> that makes you see control sequences where I get colours.

It looks like the following part of my ~/.gitconfig triggers the issue:
...
[color]
    ui = always
...

Here's the outupt of report-emacs-bug:

In GNU Emacs 28.0.60 (build 5, x86_64-pc-linux-gnu, GTK+ Version
3.24.30, cairo version 1.17.4)
 of 2021-10-19 built on jsynacek-home
Repository revision: 66fbd5527335cb3136b65ed3644e5a8b151add32
Repository branch: emacs-28
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Arch Linux

Configured using:
 'configure --with-native-compilation'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa
derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs
auth-source eieio eieio-core eieio-loaddefs password-cache json map
text-property-search time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail comp comp-cstr warnings
subr-x rx cl-seq cl-macs rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils add-log log-view pcvs-util cl-extra help-mode seq byte-opt gv
bytecomp byte-compile cconv vc-mtn vc-hg vc-git diff-mode easy-mmode
vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher dired-aux
cl-loaddefs cl-lib dired dired-loaddefs iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 109429 5832)
 (symbols 48 9402 1)
 (strings 32 28203 1960)
 (string-bytes 1 908834)
 (vectors 16 19670)
 (vector-slots 8 345815 11442)
 (floats 8 30 53)
 (intervals 56 354 0)
 (buffers 992 14))