Subject: bug#15155: 24.3; wrap-prefix in adaptive-wrap-prefix-mode with variable-pitch has wrong face

From: Frank Fischer <[email-masked]>
Date: Wed, 21 Aug 2013 21:54:40 +0200

Using 'adaptive-wrap.el' from ELPA 
(http://elpa.gnu.org/packages/adaptive-wrap-0.5.el)

emacs -Q -l adaptive-wrap-0.5.el
M-x visual-line-mode RET
M-x adaptive-wrap-prefix-mode RET
M-x variable-pitch-mode RET

Then make the X window small enough so that the lines in the *scratch*
buffer wrap. The color of the wrap-prefix (i.e. the semicolons ;;) is
black and seems fixed width instead of red and using variable-pitch
font. It seems as if the wrap-prefix does not inherit the face of the
original (comment) prefix. This becomes more apparent when adding
whitespaces at the beginning of the first line. Then the indentation of
the next (wrapped) lines will also increase, however by a different
amount because of the different font. I suppose the wrap-prefix somehow
uses the global default font and not the font defined by variable-pitch.

Note that this used to work in Emacs 23 (tested with 23.4.1) where the
wrap-prefix in the successive lines has the same face as the original
prefix.

Also see my question in emacs-help:
http://article.gmane.org/gmane.emacs.help/93023

In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.6.4)
 of 2013-04-14 on marid, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11303000
System Description:	Ubuntu 13.04

Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'
 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'
 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LANG: de_DE.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  adaptive-wrap-prefix-mode: t
  highlight-parentheses-mode: t
  company-mode: t
  global-semantic-mru-bookmark-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-idle-scheduler-mode: t
  global-semantic-decoration-mode: t
  show-paren-mode: t
  Info-breadcrumbs-in-mode-line-mode: t
  global-hl-line-mode: t
  global-auto-revert-mode: t
  winpoint-mode: t
  ido-everywhere: t
  global-surround-mode: t
  surround-mode: t
  evil-mode: t
  evil-local-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  auto-compile-on-load-mode: t
  auto-compile-on-save-mode: t
  semantic-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t

Recent input:
M-x r e p o <tab> r <tab> <return> a d a p t i v e 
- w <S-up> M-x a <escape> M-x a d a p <tab> C-g k k 
M-x v i s u <tab> <return> M-x a d a p <tab> <return> 
M-x <up> <return> M-x r e p o <tab> r <tab> <retur
n>

Recent messages:
Loading /home/fifr/.emacs.d/site-lisp/rudel/rudel-loaddefs.el (source)...done
Starting Emacs daemon.
When done with this frame, type C-x 5 0
Making completion list...
byte-code: Command attempted to use minibuffer while in minibuffer
Quit
Visual-Line mode enabled
Adaptive-Wrap-Prefix mode disabled
Adaptive-Wrap-Prefix mode enabled
Making completion list...

Load-path shadows:
/home/fifr/.emacs.d/el-get/wanderlust/utils/ssl hides /home/fifr/.emacs.d/el-get/wanderlust/site-lisp/wl/ssl
/home/fifr/.emacs.d/el-get/wanderlust/utils/wl-complete hides /home/fifr/.emacs.d/el-get/wanderlust/site-lisp/wl/wl-complete
/home/fifr/.emacs.d/el-get/wanderlust/utils/im-wl hides /home/fifr/.emacs.d/el-get/wanderlust/site-lisp/wl/im-wl
/home/fifr/.emacs.d/el-get/wanderlust/utils/wl-mailto hides /home/fifr/.emacs.d/el-get/wanderlust/site-lisp/wl/wl-mailto
/home/fifr/.emacs.d/el-get/wanderlust/utils/rfc2368 hides /home/fifr/.emacs.d/el-get/wanderlust/site-lisp/wl/rfc2368
/home/fifr/.emacs.d/el-get/wanderlust/utils/wl-addrbook hides /home/fifr/.emacs.d/el-get/wanderlust/site-lisp/wl/wl-addrbook
/home/fifr/.emacs.d/el-get/cedet/lisp/speedbar/loaddefs hides /home/fifr/.emacs.d/el-get/cedet/lisp/eieio/loaddefs
/home/fifr/.emacs.d/el-get/cedet/lisp/speedbar/loaddefs hides /home/fifr/.emacs.d/el-get/cedet/lisp/cedet/loaddefs
/home/fifr/.emacs.d/el-get/reftex/lisp/lpath hides /home/fifr/.emacs.d/el-get/auctex/lpath
/home/fifr/.emacs.d/elpa/company-20130810.112/.dir-locals hides /home/fifr/.emacs.d/elpa/highlight-parentheses-20130523.1752/.dir-locals
/home/fifr/.emacs.d/elpa/company-20130810.112/.dir-locals hides /home/fifr/.emacs.d/elpa/magit-20130810.1119/.dir-locals
/home/fifr/.emacs.d/elpa/company-20130810.112/.dir-locals hides ~/.emacs.d/el-get/el-get/.dir-locals
/home/fifr/.emacs.d/elpa/cmake-mode-20110824/cmake-mode hides /usr/share/emacs/24.3/site-lisp/cmake-data/cmake-mode
/usr/share/emacs/24.3/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/home/fifr/.emacs.d/elpa/cmake-mode-20110824/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
~/.emacs.d/custom hides /usr/share/emacs/24.3/lisp/custom
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/md4 hides /usr/share/emacs/24.3/lisp/md4
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/hex-util hides /usr/share/emacs/24.3/lisp/hex-util
/home/fifr/.emacs.d/el-get/cedet/lisp/speedbar/loaddefs hides /usr/share/emacs/24.3/lisp/loaddefs
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-auc hides /usr/share/emacs/24.3/lisp/textmodes/reftex-auc
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-dcr hides /usr/share/emacs/24.3/lisp/textmodes/reftex-dcr
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-parse hides /usr/share/emacs/24.3/lisp/textmodes/reftex-parse
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-ref hides /usr/share/emacs/24.3/lisp/textmodes/reftex-ref
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-cite hides /usr/share/emacs/24.3/lisp/textmodes/reftex-cite
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.3/lisp/textmodes/ispell
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.3/lisp/textmodes/flyspell
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-vars hides /usr/share/emacs/24.3/lisp/textmodes/reftex-vars
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-toc hides /usr/share/emacs/24.3/lisp/textmodes/reftex-toc
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex hides /usr/share/emacs/24.3/lisp/textmodes/reftex
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-sel hides /usr/share/emacs/24.3/lisp/textmodes/reftex-sel
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-index hides /usr/share/emacs/24.3/lisp/textmodes/reftex-index
/home/fifr/.emacs.d/el-get/reftex/lisp/reftex-global hides /usr/share/emacs/24.3/lisp/textmodes/reftex-global
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.3/lisp/net/hmac-md5
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.3/lisp/net/sasl-cram
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/hmac-def hides /usr/share/emacs/24.3/lisp/net/hmac-def
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.3/lisp/net/sasl-digest
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.3/lisp/net/sasl-ntlm
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/sasl hides /usr/share/emacs/24.3/lisp/net/sasl
/home/fifr/.emacs.d/el-get/flim/site-lisp/flim/ntlm hides /usr/share/emacs/24.3/lisp/net/ntlm
/home/fifr/.emacs.d/el-get/wanderlust/utils/rfc2368 hides /usr/share/emacs/24.3/lisp/mail/rfc2368
/home/fifr/.emacs.d/el-get/semi/site-lisp/semi/smime hides /usr/share/emacs/24.3/lisp/gnus/smime
/home/fifr/.emacs.d/elpa/company-20130810.112/.dir-locals hides /usr/share/emacs/24.3/lisp/gnus/.dir-locals
/usr/share/emacs24/site-lisp/erc/erc-networks hides /usr/share/emacs/24.3/lisp/erc/erc-networks
/usr/share/emacs24/site-lisp/erc/erc-truncate hides /usr/share/emacs/24.3/lisp/erc/erc-truncate
/usr/share/emacs24/site-lisp/erc/erc-menu hides /usr/share/emacs/24.3/lisp/erc/erc-menu
/usr/share/emacs24/site-lisp/erc/erc-identd hides /usr/share/emacs/24.3/lisp/erc/erc-identd
/usr/share/emacs24/site-lisp/erc/erc-lang hides /usr/share/emacs/24.3/lisp/erc/erc-lang
/usr/share/emacs24/site-lisp/erc/erc-track hides /usr/share/emacs/24.3/lisp/erc/erc-track
/usr/share/emacs24/site-lisp/erc/erc-compat hides /usr/share/emacs/24.3/lisp/erc/erc-compat
/usr/share/emacs24/site-lisp/erc/erc-stamp hides /usr/share/emacs/24.3/lisp/erc/erc-stamp
/usr/share/emacs24/site-lisp/erc/erc hides /usr/share/emacs/24.3/lisp/erc/erc
/usr/share/emacs24/site-lisp/erc/erc-fill hides /usr/share/emacs/24.3/lisp/erc/erc-fill
/usr/share/emacs24/site-lisp/erc/erc-ezbounce hides /usr/share/emacs/24.3/lisp/erc/erc-ezbounce
/usr/share/emacs24/site-lisp/erc/erc-ring hides /usr/share/emacs/24.3/lisp/erc/erc-ring
/usr/share/emacs24/site-lisp/erc/erc-pcomplete hides /usr/share/emacs/24.3/lisp/erc/erc-pcomplete
/usr/share/emacs24/site-lisp/erc/erc-capab hides /usr/share/emacs/24.3/lisp/erc/erc-capab
/usr/share/emacs24/site-lisp/erc/erc-netsplit hides /usr/share/emacs/24.3/lisp/erc/erc-netsplit
/usr/share/emacs24/site-lisp/erc/erc-button hides /usr/share/emacs/24.3/lisp/erc/erc-button
/usr/share/emacs24/site-lisp/erc/erc-goodies hides /usr/share/emacs/24.3/lisp/erc/erc-goodies
/usr/share/emacs24/site-lisp/erc/erc-speedbar hides /usr/share/emacs/24.3/lisp/erc/erc-speedbar
/usr/share/emacs24/site-lisp/erc/erc-backend hides /usr/share/emacs/24.3/lisp/erc/erc-backend
/usr/share/emacs24/site-lisp/erc/erc-notify hides /usr/share/emacs/24.3/lisp/erc/erc-notify
/usr/share/emacs24/site-lisp/erc/erc-match hides /usr/share/emacs/24.3/lisp/erc/erc-match
/usr/share/emacs24/site-lisp/erc/erc-replace hides /usr/share/emacs/24.3/lisp/erc/erc-replace
/usr/share/emacs24/site-lisp/erc/erc-services hides /usr/share/emacs/24.3/lisp/erc/erc-services
/usr/share/emacs24/site-lisp/erc/erc-page hides /usr/share/emacs/24.3/lisp/erc/erc-page
/usr/share/emacs24/site-lisp/erc/erc-log hides /usr/share/emacs/24.3/lisp/erc/erc-log
/usr/share/emacs24/site-lisp/erc/erc-imenu hides /usr/share/emacs/24.3/lisp/erc/erc-imenu
/usr/share/emacs24/site-lisp/erc/erc-xdcc hides /usr/share/emacs/24.3/lisp/erc/erc-xdcc
/usr/share/emacs24/site-lisp/erc/erc-ibuffer hides /usr/share/emacs/24.3/lisp/erc/erc-ibuffer
/usr/share/emacs24/site-lisp/erc/erc-dcc hides /usr/share/emacs/24.3/lisp/erc/erc-dcc
/usr/share/emacs24/site-lisp/erc/erc-autoaway hides /usr/share/emacs/24.3/lisp/erc/erc-autoaway
/usr/share/emacs24/site-lisp/erc/erc-list hides /usr/share/emacs/24.3/lisp/erc/erc-list
/usr/share/emacs24/site-lisp/erc/erc-spelling hides /usr/share/emacs/24.3/lisp/erc/erc-spelling
/usr/share/emacs24/site-lisp/erc/erc-sound hides /usr/share/emacs/24.3/lisp/erc/erc-sound
/usr/share/emacs24/site-lisp/erc/erc-join hides /usr/share/emacs/24.3/lisp/erc/erc-join
/home/fifr/.emacs.d/el-get/cedet/lisp/eieio/eieio hides /usr/share/emacs/24.3/lisp/emacs-lisp/eieio
/home/fifr/.emacs.d/el-get/cedet/lisp/eieio/eieio-base hides /usr/share/emacs/24.3/lisp/emacs-lisp/eieio-base
/home/fifr/.emacs.d/el-get/cedet/lisp/eieio/eieio-opt hides /usr/share/emacs/24.3/lisp/emacs-lisp/eieio-opt
/home/fifr/.emacs.d/el-get/cedet/lisp/eieio/eieio-speedbar hides /usr/share/emacs/24.3/lisp/emacs-lisp/eieio-speedbar
/home/fifr/.emacs.d/el-get/cedet/lisp/eieio/eieio-custom hides /usr/share/emacs/24.3/lisp/emacs-lisp/eieio-custom
/home/fifr/.emacs.d/el-get/cedet/lisp/eieio/chart hides /usr/share/emacs/24.3/lisp/emacs-lisp/chart
/home/fifr/.emacs.d/el-get/cedet/lisp/eieio/eieio-datadebug hides /usr/share/emacs/24.3/lisp/emacs-lisp/eieio-datadebug
~/.emacs.d/package hides /usr/share/emacs/24.3/lisp/emacs-lisp/package
/home/fifr/.emacs.d/el-get/semi/site-lisp/semi/pgg hides /usr/share/emacs/24.3/lisp/obsolete/pgg
/home/fifr/.emacs.d/el-get/semi/site-lisp/semi/pgg-pgp hides /usr/share/emacs/24.3/lisp/obsolete/pgg-pgp
/usr/share/emacs24/site-lisp/erc/erc-hecomplete hides /usr/share/emacs/24.3/lisp/obsolete/erc-hecomplete
/home/fifr/.emacs.d/el-get/semi/site-lisp/semi/pgg-parse hides /usr/share/emacs/24.3/lisp/obsolete/pgg-parse
/home/fifr/.emacs.d/el-get/semi/site-lisp/semi/pgg-pgp5 hides /usr/share/emacs/24.3/lisp/obsolete/pgg-pgp5
/home/fifr/.emacs.d/el-get/semi/site-lisp/semi/pgg-gpg hides /usr/share/emacs/24.3/lisp/obsolete/pgg-gpg
/home/fifr/.emacs.d/el-get/semi/site-lisp/semi/pgg-def hides /usr/share/emacs/24.3/lisp/obsolete/pgg-def

Features:
(shadow sort footnote org-rmail org-mhe org-irc org-info org-gnus
org-docview org-bibtex bibtex org-bbdb org-w3m init-text org org-macro
org-footnote org-pcomplete pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref
ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat
org-macs org-loaddefs cal-menu calendar cal-loaddefs speck init-spell
gnus-util mail-extr adaptive-wrap init-visual-line emacsbug message
format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils server init-untabify
highlight-parentheses company-files company-oddmuse company-keywords
company-dabbrev-code company-dabbrev company-etags etags company-gtags
company-cmake company-ropemacs company-xcode company-eclim company-clang
company-template company-semantic company-css company-nxml company-elisp
company init-auto-complete rudel-loaddefs init-prog init-prog-ruby
init-prog-lisp init-cmake init-semantic semantic/mru-bookmark
semantic/db-mode semantic/idle working fame semantic/decorate/mode
semantic/decorate pulse paren init-mail idle-require init-colors
menu-bar+ easy-mmode info+ thingatpt hl-line uniquify time-date
autorevert winpoint ido init-evil ace-jump-mode diminish surround evil
evil-integration evil-maps evil-commands evil-types evil-search evil-ex
evil-macros evil-repeat evil-states evil-core evil-common undo-tree diff
windmove rect jka-compr evil-digraphs evil-vars time auto-compile packed
init-server init-packages .loaddefs rudel-backend theme-roller
theme-roller-macro color-theme reftex cedet-devel-load eieio-opt
find-func srecode/map srecode semantic/canned-configs semantic/ia-sb
semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn
semantic/db semantic/ctxt semantic/format semantic/tag-ls semantic/find
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local cedet-compat inversion sb-info ede/speedbar
ede/files ede ede/base ede/auto ede/source eieio-base eieio-speedbar
speedbar sb-image ezimage dframe eieio-custom wid-edit cedet eieio
eieio-core cedet-remove-builtin bbdb timezone bbdb-autoloads tex-site
auto-loads el-get cl-macs gv el-get-autoloads el-get-list-packages
el-get-notify help-mode el-get-dependencies el-get-build el-get-status
pp el-get-recipes el-get-byte-compile el-get-methods el-get-fossil
el-get-svn el-get-pacman el-get-github-zip el-get-github-tar
el-get-http-zip el-get-http-tar el-get-hg el-get-git-svn el-get-fink
el-get-emacswiki el-get-http el-get-emacsmirror el-get-github el-get-git
el-get-elpa el-get-darcs el-get-cvs el-get-bzr el-get-brew
el-get-builtin el-get-apt-get el-get-custom el-get-core autoload cl
dired melpa ace-jump-mode-autoloads adaptive-wrap-autoloads
auto-compile-autoloads auto-complete-autoloads cdlatex-autoloads
cmake-mode-autoloads color-theme-autoloads company-autoloads
deft-autoloads dictionary-autoloads diminish-autoloads ebib-autoloads
evil-autoloads ghc-autoloads go-mode-autoloads haskell-mode-autoloads
edmacro kmacro highlight-parentheses-autoloads idle-require-autoloads
inf-ruby-autoloads inf-ruby ruby-mode compile comint ansi-color ring
info+-autoloads lua-mode-autoloads melpa-autoloads byte-opt warnings
bytecomp byte-compile cconv multi-eshell-autoloads org-autoloads
packed-autoloads magit-autoloads info easymenu finder-inf
popup-autoloads smart-tabs-mode-autoloads speck-autoloads
sunrise-x-buttons-autoloads sunrise-x-loop-autoloads
sunrise-x-modeline-autoloads sunrise-x-popviewer-autoloads
sunrise-commander-autoloads surround-autoloads
tex-smart-umlauts-autoloads undo-tree-autoloads winpoint-autoloads
package advice help-fns cl-lib advice-preload erc-auto tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)

-- 
Frank Fischer
Chemnitz University of Technology, Department of Mathematics
eMail: [email-masked]
Tel.: +49 (371) 531-36913