Subject: 26.2; Adaptive Wrap does not respect Whitespace Mode faces

From: Andrew T <[email-masked]>
Date: Sat, 18 May 2019 20:18:54 -0700

Appears to be similar to bug #15155: "24.3; wrap-prefix in adaptive-
wrap-prefix-mode with variable-pitch has wrong face"

  <
https://lists.gnu.org/archive/html/bug-gnu-emacs/2013-08/msg00716.html>

I normally use `adaptive-wrap-prefix-mode` via hook to `visual-line-
mode`.

And I use `global-whitespace-mode` to subtly show any tabs and newline
characters in general (displayed in a color close to the background
color). Spaces are normally invisible (exactly same color as
background), except trailing spaces are highlighted.

When putting these settings together and soft-wrapping a long indented
line, the wrap prefix shows a bunch of white dots for all the space
characters being displayed. These are not trailing spaces, so these
dots are not highlighted as such, but they normally shouldn't be
visible at all with my whitespace face configurations.

You can see the effect even without messing around with faces or
visual-line-mode hooks, though:

  emacs -Q
  M-x package-install RET adaptive-wrap RET
  M-x adaptive-wrap-prefix-mode RET
  M-x whitespace-mode RET

...Then write a long indented line so that it will wrap, and see see
how the wrap prefix is a different color from the default whitespace
display characters.

I'll also include some screenshots here:
<https://imgur.com/a/znbU0s3>

The below was generated while doing my `emacs -Q` test. Let me know if
you need any other information to help debug this issue.

In GNU Emacs 26.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
3.24.8)
 of 2019-04-30 built on buildvm-06.phx2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.12004000
System Description:	Fedora release 30 (Thirty)

Recent messages:
You can run the command ‘whitespace-mode’ with M-x whit-m RET
Whitespace mode enabled in current buffer
Adaptive-Wrap-Prefix mode enabled in current buffer
Adaptive-Wrap-Prefix mode disabled in current buffer
Making completion list...
Quit
Adaptive-Wrap-Prefix mode enabled in current buffer
Making completion list... [2 times]
delete-backward-char: Text is read-only [3 times]
Making completion list...

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-
png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules
 build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu
 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Werror=format-security
 -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
 -fstack-protector-strong -grecord-gcc-switches
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS GLIB NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LCMS2

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  whitespace-mode: t
  adaptive-wrap-prefix-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-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
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sendmail disp-table whitespace
adaptive-wrap compile comint ansi-color ring easy-mmode autoload
radix-tree lisp-mnt mm-archive message dired dired-loaddefs format-spec
rfc822 mml mml-sec epa derived epg gnus-util rmail rmail-loaddefs
mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode mail-
utils
network-stream starttls url-http tls gnutls mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm rmc puny url-cache
url-auth url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util mailcap cus-edit cus-start cus-load
wid-edit finder-inf package easymenu epg-config url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv
cl-loaddefs cl-lib elec-pair time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files 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 xwidget-internal move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 144118 30183)
 (symbols 48 24599 2)
 (miscs 40 57 170)
 (strings 32 43177 2424)
 (string-bytes 1 1138616)
 (vectors 16 24993)
 (vector-slots 8 1274945 189176)
 (floats 8 61 278)
 (intervals 56 525 68)
 (buffers 992 13))