GNU bug report logs - #17824
24.4.50; Cursor interferes with underline and bold of overlapping overlays.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Keith David Bershatsky <esq@HIDDEN>; dated Fri, 20 Jun 2014 19:56:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at submit <at>

Received: (at submit) by; 20 Jun 2014 19:55:38 +0000
From debbugs-submit-bounces <at> Fri Jun 20 15:55:38 2014
Received: from localhost ([]:55132
	by with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at>>)
	id 1Wy4uP-0006xE-01
	for submit <at>; Fri, 20 Jun 2014 15:55:37 -0400
Received: from ([]:37295)
 by with esmtp (Exim 4.80)
 (envelope-from <esq@HIDDEN>) id 1Wy4uL-0006wo-Dm
 for submit <at>; Fri, 20 Jun 2014 15:55:34 -0400
Received: from Debian-exim by with spam-scanned (Exim 4.71)
 (envelope-from <esq@HIDDEN>) id 1Wy4u9-0000te-Fc
 for submit <at>; Fri, 20 Jun 2014 15:55:27 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID
 autolearn=disabled version=3.3.2
Received: from ([2001:4830:134:3::11]:46265)
 by with esmtp (Exim 4.71)
 (envelope-from <esq@HIDDEN>) id 1Wy4u9-0000tX-DW
 for submit <at>; Fri, 20 Jun 2014 15:55:21 -0400
Received: from ([2001:4830:134:3::10]:38933)
 by with esmtp (Exim 4.71)
 (envelope-from <esq@HIDDEN>) id 1Wy4u2-0000YQ-QP
 for bug-gnu-emacs@HIDDEN; Fri, 20 Jun 2014 15:55:21 -0400
Received: from Debian-exim by with spam-scanned (Exim 4.71)
 (envelope-from <esq@HIDDEN>) id 1Wy4tt-0000mp-Pw
 for bug-gnu-emacs@HIDDEN; Fri, 20 Jun 2014 15:55:14 -0400
Received: from ([]:56446)
 by with esmtp (Exim 4.71)
 (envelope-from <esq@HIDDEN>) id 1Wy4tt-0000jT-Gu
 for bug-gnu-emacs@HIDDEN; Fri, 20 Jun 2014 15:55:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;;
Received: from ([]:51066
 helo=MP.local) by with esmtp (Exim 4.82)
 (envelope-from <esq@HIDDEN>) id 1Wy4tp-00014H-7G
 for bug-gnu-emacs@HIDDEN; Fri, 20 Jun 2014 15:55:01 -0400
Date: Fri, 20 Jun 2014 12:55:02 -0700
Message-ID: <m2bntncq5l.wl%esq@HIDDEN>
From: Keith David Bershatsky <esq@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 24.4.50;
 Cursor interferes with underline and bold of overlapping overlays. 
User-Agent: / () / () APEL/10.8 Emacs/24.4.50 (x86_64-apple-darwin10.8.0)
MIME-Version: 1.0 (generated by   - "")
Content-Type: text/plain; charset=US-ASCII
X-AntiAbuse: This header was added to track abuse,
 please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: acl_c_relayhosts_text_entry:
X-detected-operating-system: by GNU/Linux 2.6.x
X-detected-operating-system: by Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at>
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <>
List-Unsubscribe: <>, 
 <mailto:debbugs-submit-request <at>>
List-Archive: <>
List-Post: <mailto:debbugs-submit <at>>
List-Help: <mailto:debbugs-submit-request <at>>
List-Subscribe: <>, 
 <mailto:debbugs-submit-request <at>>
Errors-To: debbugs-submit-bounces <at>
Sender: "Debbugs-submit" <debbugs-submit-bounces <at>>
X-Spam-Score: -5.0 (-----)

When the cursor touches two (2) overlapping overlays, an incorrect display occurs under the following example:

* Both overlays contain the same priority, or no assigned priority.

* First overlay: . . . 'face '(:foreground "red" :weight bold)

* Second overlay . . . 'face '(:underline "yellow" :weight normal)

[The same result also happens if the bolded foreground face is a glpyh in the `buffer-display-table`, and where only one (1) overlay contains a *normal* weight underline.  So, this issue does not appear to be exclusive to only the presence of overlapping overlays.]

The desired result is a bold foreground for the text, and a normal weight underline.  That result can be achieved if the cursor does not touch the overlapping overlays.  Once the cursor has touched the overlapping overlays, however, the underline takes on a *bold* visual attribute.  This improper *bold* attribute may extend for the entire length of the overlay, depending upon which direction the cursor is moving and other overlays that may be present.

I was not able to correct this situation by setting priorities.  In my various tests, setting priorities only served to choose one overlay over the other -- i.e., setting priorities do not permit the overlays to co-exist in harmony.

The thread that I opened on Stackoverflow contains some screen shots and a recipe to reproduce the error.  It is not necessary to use flyspell or hl-line-mode to reproduce the error, that was simply the example I chose because it is the one where I always see the error.  Perhaps the reason why the initial test by @Drew may not have yielded the same result is that his cursor was not touching "mal-normal" -- had his cursor touched that section of the buffer, the same result as I experienced may have occurred.  I also use OSX, but it may not be an OS specific issue.

Here is the recipe -- just adjust the path to the `ispell-program-name`:


;; GNU Emacs (x86_64-apple-darwin10.8.0,
;; NS appkit-1038.36 Version 10.6.8 (Build 10K549)) of 2014-06-01 on MP.local

(set-face-attribute 'default nil
  :background "black" :foreground "white" :font "Courier" :height 180)

(tool-bar-mode -1)

(require 'ispell)

(require 'flyspell)

(setq-default ispell-program-name

  '(flyspell-incorrect ((t (:foreground "yellow" :weight bold ))))
  '(highlight ((t (:underline "red" :weight normal)))))

(defun zoom ()
  (setq buffer-face-mode-face `(:height 575))
  (buffer-face-mode 1))

(defun test-number-one ()
  (switch-to-buffer (get-buffer-create "test-number-ONE"))
  (setq flyspell-mark-duplications-flag nil)
  (setq flyspell-duplicate-distance 0)
  (hl-line-mode 1)
    "This is `test-number-one`."

(defun test-number-two ()
  (switch-to-buffer (get-buffer-create "test-number-TWO"))
  (hl-line-mode 1)
    "This is `test-number-two`."





In GNU Emacs (x86_64-apple-darwin10.8.0, NS appkit-1038.36 Version 10.6.8 (Build 10K549))
 of 2014-06-01 on MP.local
Repository revision: 117215 lekktu@HIDDEN
Windowing system distributor `Apple', version 10.3.1038
Configured using:
 `configure --with-ns'

Configured features:

Important settings:
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  bc-mode: t
  as-mode: t
  ds-mode: t
  ml-mode: t
  sb-mode: t
  sd-mode: t
  tb-mode: t

Recent input:
<escape> x r e p o r t - e m a c s - b u g <return>

Recent messages:
[k]ill or [s]ave draft?
Loading msgdb for +/Users/HOME/
Saving file /Users/HOME/
Wrote /Users/HOME/
user-error: End of history; no default available
funcall-interactively: End of buffer
funcall-interactively: End of buffer

Load-path shadows:
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/
/Users/HOME/ hides /Users/HOME/

(shadow emacsbug modb-legacy disp-table wl-mime mime-edit pgg-parse
pccl pccl-20 signature mime-setup mail-mime-setup semi-setup mime-pgp
pgg-def mime-play filename mime-image modb-standard elmo-imap4
bbdb-autoloads lawlist-wl wl-demo wl-draft eword-encode wl-template
sendmail elmo-net elmo-cache elmo-map elmo-dop wl-news wl-address
wl-thread wl-folder wl wl-e21 wl-spam wl-action wl-summary wl-refile
wl-util pp elmo-flag elmo-localdir wl-message elmo-mime mmelmo-buffer
mmelmo-imap mime-view mime-conf calist semi-def mmimap mime-parse
mmbuffer mmgeneric elmo-filter elmo-multi elmo-spam elsp-header
elsp-generic elmo elmo-signal wl-highlight wl-vars wl-version
elmo-msgdb modb modb-generic modb-entity luna mime elmo-util emu
invisible inv-23 poem poem-e20 poem-e20_3 eword-decode std11 elmo-date
elmo-vars elmo-version w3m-load mime-w3m w3m browse-url doc-view
jka-compr image-mode w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl
w3m-favicon w3m-image w3m-proc w3m-util savehist lawlist-vr-hr
lawlist-whitespace lawlist-github conf-mode log-edit add-log find-lisp
package esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc
esh-groups eshell esh-module esh-mode esh-util dired-x view tramp
tramp-compat tramp-loaddefs trampver server grep epa epg epg-config
diff-mode autorevert filenotify log-view pcvs-util ido time-stamp
vc-git vc vc-dispatcher ediff-merg ediff-wind ediff-diff ediff-mult
ediff-help ediff-init ediff-util ediff rx ert ewoc debug eieio-base
lawlist-calculator ps-print ps-def lpr lawlist-flyspell bbdb timezone
find-func dired-aux lawlist-yasnippet help-mode multiple-cursors
mc-separate-operations rectangular-region-mode mc-mark-more thingatpt
mc-cycle-cursors mc-edit-lines multiple-cursors-core rect saveplace
lawlist-tex-mode pcase compile shell pcomplete comint ansi-color ring
skeleton compare-w lawlist-text-mode lawlist-desktop frameset
lawlist-tabbar lawlist-org lawlist-calendar edmacro kmacro derived
lawlist-toodledo advice url-http url-auth url-gw url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse auth-source eieio byte-opt bytecomp byte-compile
cconv eieio-core password-cache url-vars mailcap json xml noutline
outline easy-mmode gnus-sum gnus-group gnus-undo gnus-start gnus-cloud
nnimap nnmail mail-source tls utf7 mel path-util mime-def alist
mcharset mcs-20 mcs-e20 pcustom pces pces-e20 pces-20 broken poe pym
static apel-ver product netrc nnoo parse-time gnus-spec gnus-int
gnus-range message cl-macs dired format-spec rfc822 mml easymenu
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader gnus-util mail-utils mm-util help-fns mail-prsvr
wid-edit cl gv cl-loaddefs cl-lib time-date tooltip electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment lisp-mode prog-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 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 make-network-process
cocoa ns multi-tty emacs)

Memory information:
((conses 16 790310 62895)
 (symbols 48 55846 0)
 (miscs 40 104 214)
 (strings 32 114174 15282)
 (string-bytes 1 3819186)
 (vectors 16 39852)
 (vector-slots 8 711550 28300)
 (floats 8 962 268)
 (intervals 56 3712 88)
 (buffers 960 13))

Acknowledgement sent to Keith David Bershatsky <esq@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#17824; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 31 Oct 2014 17:00:04 UTC

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