unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
@ 2011-12-28 12:47 David Edmondson
  2011-12-29 14:02 ` Eli Zaretskii
  2011-12-31 14:09 ` Eli Zaretskii
  0 siblings, 2 replies; 9+ messages in thread
From: David Edmondson @ 2011-12-28 12:47 UTC (permalink / raw)
  To: 10395

[-- Attachment #1: Type: text/plain, Size: 26260 bytes --]

This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org.  Please check that
the From: line contains a valid email address.  After a delay of up
to one day, you should receive an acknowledgement at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from `emacs -Q':

If a line-prefix property is added to a region of a buffer, the
displayed line-prefix region inherits the face properties from the
preceding line rather than from the first character on the line, except
if the region so propertised starts at the beginning of the
buffer.

This can be demonstrated with the following code:

(defvar tp-text-1 "Clicking on the button for the part saves the wrong thing, though, because it's not a real MIME part. That looks a bit awkward to fix, so perhaps you could still prefix the name with \"inline: \" to indicate that it's odd?\n")

(defvar tp-text-2 "Similar to `notmuch-search-line-faces', `notmuch-show-line-faces' allows the header line in `notmuch-show-mode' buffers to be coloured according to the tags of the message.\n")

(defun tp-set-prefix (s e prefix)
  (put-text-property s e 'line-prefix prefix)
  (put-text-property s e 'wrap-prefix prefix))

(defun tp ()
  (interactive)

  (switch-to-buffer (get-buffer-create "*tp test*"))
  (erase-buffer)

  (visual-line-mode t)

  (let* ((i 5)
	 (leader (make-string i ? ))
	  s e)

    (setq s (point))
    (insert tp-text-1)
    (setq e (point))

    (tp-set-prefix s e leader)
    (put-text-property s e 'face '(:background "darkorange"))

    (setq s (point))
    (insert tp-text-2)
    (setq e (point))

    (tp-set-prefix s e (concat leader "> "))
    (put-text-property s e 'face '(:background "darkblue"))

  ))

After evaluating the function `tp', I would expect the line-prefix text
before "Similar to `notmuch-search-line-faces'.." to have a dark blue
background. Instead it is dark orange.

Note that the first line-prefix (at the start of the buffer) has the
correct dark orange background.

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/share/emacs/24.0.92/etc/DEBUG.


In GNU Emacs 24.0.92.1 (x86_64-pc-linux-gnu, X toolkit)
 of 2011-12-13 on zelenka, modified by Debian
 (emacs-snapshot package, version 1:20111219-1)
Windowing system distributor `The X.Org Foundation', version 11.0.11101902
configured using `configure  '--build' 'x86_64-linux-gnu' '--host' 'x86_64-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.0.92/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.0.92/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-crt-dir=/usr/lib/x86_64-linux-gnu/' '--with-x=yes' '--with-x-toolkit=lucid' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: ERC

Minor modes in effect:
  shell-dirtrack-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-spelling-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-netsplit-mode: t
  erc-match-mode: t
  erc-list-mode: t
  erc-pcomplete-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-autojoin-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-keep-place-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  flyspell-mode: t
  display-battery-mode: t
  savehist-mode: t
  display-time-mode: t
  iswitchb-mode: t
  diff-auto-refine-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
n c e SPC a t SPC t h e SPC c o d e , SPC w o u l d 
SPC y o u SPC a g r e e SPC t h a t SPC i t SPC s e 
e m s SPC i n c o r r e C-w C-w i s SPC i n c o r r 
e c t l y SPC c o l o u r e d ? <return> C-c i q C-x 
I C-g C-x I C-g C-c I <return> a SPC a a a r C-n C-n 
C-p C-k C-k C-k C-k C-n C-n C-n C-n C-n C-n C-n C-n 
C-SPC M-> M-k <return> W e l l , SPC t o SPC b e SPC 
h o n e s t , SPC I S-SPC d o n ' t SPC p l a n SPC 
t o SPC u s e SPC i t . SPC M a y b e SPC j 4 n i SPC 
c o u l d SPC p r o b v i <backspace> <backspace> <backspace> 
v u i d e SPC <backspace> <backspace> <backspace> <backspace> 
<backspace> i d e SPC a n SPC e x a m p l e ? M-> <return> 
C-c C-c V q a a a = q C-c p <return> SPC SPC a q I 
' l l SPC f i l e SPC t h e SPC b u g SPC a n d SPC 
s e e SPC w h a t SPC h a p p e n s . <return> M-x 
b u <tab> g <tab> C-w f i l e - <tab> e m <tab> C-w 
C-w r e p o <tab> r <tab> b <tab> <return>

Recent messages:
Quit [2 times]
Mark set
Auto-saving...done
Mark set
Sending...
Sending via mail...
Sending...done
View mode: type C-h for help, h for commands, q to quit.
End of search results. [2 times]
Making completion list... [4 times]

Load-path shadows:
/home/dme/quicklisp/dists/quicklisp/software/slime-20111105-cvs/hyperspec hides /usr/share/emacs-snapshot/site-lisp/slime/hyperspec
/home/dme/quicklisp/dists/quicklisp/software/slime-20111105-cvs/slime hides /usr/share/emacs-snapshot/site-lisp/slime/slime
/home/dme/quicklisp/dists/quicklisp/software/slime-20111105-cvs/slime-autoloads hides /usr/share/emacs-snapshot/site-lisp/slime/slime-autoloads
/home/dme/t/gnus/lisp/sasl-ntlm hides /usr/share/emacs-snapshot/site-lisp/flim/sasl-ntlm
/home/dme/t/gnus/lisp/ntlm hides /usr/share/emacs-snapshot/site-lisp/flim/ntlm
/home/dme/t/gnus/lisp/hmac-def hides /usr/share/emacs-snapshot/site-lisp/flim/hmac-def
/home/dme/t/gnus/lisp/hex-util hides /usr/share/emacs-snapshot/site-lisp/flim/hex-util
/home/dme/t/gnus/lisp/hmac-md5 hides /usr/share/emacs-snapshot/site-lisp/flim/hmac-md5
/home/dme/t/gnus/lisp/md4 hides /usr/share/emacs-snapshot/site-lisp/flim/md4
/home/dme/t/gnus/lisp/sasl-digest hides /usr/share/emacs-snapshot/site-lisp/flim/sasl-digest
/home/dme/t/gnus/lisp/sasl hides /usr/share/emacs-snapshot/site-lisp/flim/sasl
/home/dme/t/gnus/lisp/sha1 hides /usr/share/emacs-snapshot/site-lisp/flim/sha1
/home/dme/t/gnus/lisp/sasl-cram hides /usr/share/emacs-snapshot/site-lisp/flim/sasl-cram
/home/dme/u/lib/emacs/markdown-mode hides /usr/share/emacs-snapshot/site-lisp/emacs-goodies-el/markdown-mode
/home/dme/u/lib/emacs/filladapt hides /usr/share/emacs-snapshot/site-lisp/emacs-goodies-el/filladapt
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-query hides /usr/local/share/emacs/site-lisp/notmuch-query
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-wash hides /usr/local/share/emacs/site-lisp/notmuch-wash
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-maildir-fcc hides /usr/local/share/emacs/site-lisp/notmuch-maildir-fcc
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-hello hides /usr/local/share/emacs/site-lisp/notmuch-hello
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-address hides /usr/local/share/emacs/site-lisp/notmuch-address
/usr/share/emacs-snapshot/site-lisp/notmuch/coolj hides /usr/local/share/emacs/site-lisp/coolj
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch hides /usr/local/share/emacs/site-lisp/notmuch
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-mua hides /usr/local/share/emacs/site-lisp/notmuch-mua
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-show hides /usr/local/share/emacs/site-lisp/notmuch-show
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-message hides /usr/local/share/emacs/site-lisp/notmuch-message
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-crypto hides /usr/local/share/emacs/site-lisp/notmuch-crypto
/usr/share/emacs-snapshot/site-lisp/notmuch/notmuch-lib hides /usr/local/share/emacs/site-lisp/notmuch-lib
/usr/share/emacs/24.0.92/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/home/dme/t/gnus/lisp/format-spec hides /usr/share/emacs/24.0.92/lisp/format-spec
/home/dme/t/gnus/lisp/hex-util hides /usr/share/emacs/24.0.92/lisp/hex-util
/home/dme/t/gnus/lisp/password-cache hides /usr/share/emacs/24.0.92/lisp/password-cache
/home/dme/t/gnus/lisp/color hides /usr/share/emacs/24.0.92/lisp/color
/home/dme/t/gnus/lisp/md4 hides /usr/share/emacs/24.0.92/lisp/md4
/home/dme/t/gnus/lisp/dns-mode hides /usr/share/emacs/24.0.92/lisp/textmodes/dns-mode
/home/dme/t/gnus/lisp/hmac-md5 hides /usr/share/emacs/24.0.92/lisp/net/hmac-md5
/home/dme/t/gnus/lisp/sasl-ntlm hides /usr/share/emacs/24.0.92/lisp/net/sasl-ntlm
/home/dme/t/gnus/lisp/tls hides /usr/share/emacs/24.0.92/lisp/net/tls
/home/dme/t/gnus/lisp/sasl hides /usr/share/emacs/24.0.92/lisp/net/sasl
/home/dme/t/gnus/lisp/imap hides /usr/share/emacs/24.0.92/lisp/net/imap
/home/dme/t/gnus/lisp/hmac-def hides /usr/share/emacs/24.0.92/lisp/net/hmac-def
/home/dme/t/gnus/lisp/netrc hides /usr/share/emacs/24.0.92/lisp/net/netrc
/home/dme/t/gnus/lisp/dns hides /usr/share/emacs/24.0.92/lisp/net/dns
/home/dme/t/gnus/lisp/ntlm hides /usr/share/emacs/24.0.92/lisp/net/ntlm
/home/dme/t/gnus/lisp/sasl-digest hides /usr/share/emacs/24.0.92/lisp/net/sasl-digest
/home/dme/t/gnus/lisp/sasl-cram hides /usr/share/emacs/24.0.92/lisp/net/sasl-cram
/home/dme/t/gnus/lisp/dig hides /usr/share/emacs/24.0.92/lisp/net/dig
/home/dme/t/gnus/lisp/binhex hides /usr/share/emacs/24.0.92/lisp/mail/binhex
/home/dme/t/gnus/lisp/uudecode hides /usr/share/emacs/24.0.92/lisp/mail/uudecode
/home/dme/t/gnus/lisp/hashcash hides /usr/share/emacs/24.0.92/lisp/mail/hashcash
/home/dme/t/gnus/lisp/spam-wash hides /usr/share/emacs/24.0.92/lisp/gnus/spam-wash
/home/dme/t/gnus/lisp/message hides /usr/share/emacs/24.0.92/lisp/gnus/message
/home/dme/t/gnus/lisp/legacy-gnus-agent hides /usr/share/emacs/24.0.92/lisp/gnus/legacy-gnus-agent
/home/dme/t/gnus/lisp/nnregistry hides /usr/share/emacs/24.0.92/lisp/gnus/nnregistry
/home/dme/t/gnus/lisp/pop3 hides /usr/share/emacs/24.0.92/lisp/gnus/pop3
/home/dme/t/gnus/lisp/gnus-dup hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-dup
/home/dme/t/gnus/lisp/deuglify hides /usr/share/emacs/24.0.92/lisp/gnus/deuglify
/home/dme/t/gnus/lisp/smime hides /usr/share/emacs/24.0.92/lisp/gnus/smime
/home/dme/t/gnus/lisp/rfc2231 hides /usr/share/emacs/24.0.92/lisp/gnus/rfc2231
/home/dme/t/gnus/lisp/rtree hides /usr/share/emacs/24.0.92/lisp/gnus/rtree
/home/dme/t/gnus/lisp/canlock hides /usr/share/emacs/24.0.92/lisp/gnus/canlock
/home/dme/t/gnus/lisp/mm-partial hides /usr/share/emacs/24.0.92/lisp/gnus/mm-partial
/home/dme/t/gnus/lisp/gnus-srvr hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-srvr
/home/dme/t/gnus/lisp/gnus-util hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-util
/home/dme/t/gnus/lisp/gnus-agent hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-agent
/home/dme/t/gnus/lisp/auth-source hides /usr/share/emacs/24.0.92/lisp/gnus/auth-source
/home/dme/t/gnus/lisp/mm-decode hides /usr/share/emacs/24.0.92/lisp/gnus/mm-decode
/home/dme/t/gnus/lisp/qp hides /usr/share/emacs/24.0.92/lisp/gnus/qp
/home/dme/t/gnus/lisp/gssapi hides /usr/share/emacs/24.0.92/lisp/gnus/gssapi
/home/dme/t/gnus/lisp/nnnil hides /usr/share/emacs/24.0.92/lisp/gnus/nnnil
/home/dme/t/gnus/lisp/nnheader hides /usr/share/emacs/24.0.92/lisp/gnus/nnheader
/home/dme/t/gnus/lisp/gnus-int hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-int
/home/dme/t/gnus/lisp/gnus-ml hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-ml
/home/dme/t/gnus/lisp/rfc2047 hides /usr/share/emacs/24.0.92/lisp/gnus/rfc2047
/home/dme/t/gnus/lisp/registry hides /usr/share/emacs/24.0.92/lisp/gnus/registry
/home/dme/t/gnus/lisp/gnus-logic hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-logic
/home/dme/t/gnus/lisp/mm-encode hides /usr/share/emacs/24.0.92/lisp/gnus/mm-encode
/home/dme/t/gnus/lisp/gnus-vm hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-vm
/home/dme/t/gnus/lisp/mml hides /usr/share/emacs/24.0.92/lisp/gnus/mml
/home/dme/t/gnus/lisp/nndraft hides /usr/share/emacs/24.0.92/lisp/gnus/nndraft
/home/dme/t/gnus/lisp/rfc2045 hides /usr/share/emacs/24.0.92/lisp/gnus/rfc2045
/home/dme/t/gnus/lisp/gnus-eform hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-eform
/home/dme/t/gnus/lisp/mml-smime hides /usr/share/emacs/24.0.92/lisp/gnus/mml-smime
/home/dme/t/gnus/lisp/nndiary hides /usr/share/emacs/24.0.92/lisp/gnus/nndiary
/home/dme/t/gnus/lisp/mm-extern hides /usr/share/emacs/24.0.92/lisp/gnus/mm-extern
/home/dme/t/gnus/lisp/mm-url hides /usr/share/emacs/24.0.92/lisp/gnus/mm-url
/home/dme/t/gnus/lisp/smiley hides /usr/share/emacs/24.0.92/lisp/gnus/smiley
/home/dme/t/gnus/lisp/nneething hides /usr/share/emacs/24.0.92/lisp/gnus/nneething
/home/dme/t/gnus/lisp/spam-stat hides /usr/share/emacs/24.0.92/lisp/gnus/spam-stat
/home/dme/t/gnus/lisp/nnmbox hides /usr/share/emacs/24.0.92/lisp/gnus/nnmbox
/home/dme/t/gnus/lisp/gnus-registry hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-registry
/home/dme/t/gnus/lisp/nnml hides /usr/share/emacs/24.0.92/lisp/gnus/nnml
/home/dme/t/gnus/lisp/gnus-undo hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-undo
/home/dme/t/gnus/lisp/gnus-start hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-start
/home/dme/t/gnus/lisp/gnus-win hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-win
/home/dme/t/gnus/lisp/nnweb hides /usr/share/emacs/24.0.92/lisp/gnus/nnweb
/home/dme/t/gnus/lisp/score-mode hides /usr/share/emacs/24.0.92/lisp/gnus/score-mode
/home/dme/t/gnus/lisp/gravatar hides /usr/share/emacs/24.0.92/lisp/gnus/gravatar
/home/dme/t/gnus/lisp/gnus-uu hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-uu
/home/dme/t/gnus/lisp/gnus-mh hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-mh
/home/dme/t/gnus/lisp/gnus-sieve hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-sieve
/home/dme/t/gnus/lisp/rfc1843 hides /usr/share/emacs/24.0.92/lisp/gnus/rfc1843
/home/dme/t/gnus/lisp/nnimap hides /usr/share/emacs/24.0.92/lisp/gnus/nnimap
/home/dme/t/gnus/lisp/gnus-sync hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-sync
/home/dme/t/gnus/lisp/gnus-html hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-html
/home/dme/t/gnus/lisp/sieve hides /usr/share/emacs/24.0.92/lisp/gnus/sieve
/home/dme/t/gnus/lisp/gnus-range hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-range
/home/dme/t/gnus/lisp/shr hides /usr/share/emacs/24.0.92/lisp/gnus/shr
/home/dme/t/gnus/lisp/nndoc hides /usr/share/emacs/24.0.92/lisp/gnus/nndoc
/home/dme/t/gnus/lisp/gnus-dired hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-dired
/home/dme/t/gnus/lisp/gnus-ems hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-ems
/home/dme/t/gnus/lisp/sieve-manage hides /usr/share/emacs/24.0.92/lisp/gnus/sieve-manage
/home/dme/t/gnus/lisp/gnus hides /usr/share/emacs/24.0.92/lisp/gnus/gnus
/home/dme/t/gnus/lisp/nntp hides /usr/share/emacs/24.0.92/lisp/gnus/nntp
/home/dme/t/gnus/lisp/gnus-fun hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-fun
/home/dme/t/gnus/lisp/gnus-demon hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-demon
/home/dme/t/gnus/lisp/starttls hides /usr/share/emacs/24.0.92/lisp/gnus/starttls
/home/dme/t/gnus/lisp/gnus-cite hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-cite
/home/dme/t/gnus/lisp/nngateway hides /usr/share/emacs/24.0.92/lisp/gnus/nngateway
/home/dme/t/gnus/lisp/gnus-setup hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-setup
/home/dme/t/gnus/lisp/mm-bodies hides /usr/share/emacs/24.0.92/lisp/gnus/mm-bodies
/home/dme/t/gnus/lisp/nnir hides /usr/share/emacs/24.0.92/lisp/gnus/nnir
/home/dme/t/gnus/lisp/gnus-msg hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-msg
/home/dme/t/gnus/lisp/gnus-sum hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-sum
/home/dme/t/gnus/lisp/nnbabyl hides /usr/share/emacs/24.0.92/lisp/gnus/nnbabyl
/home/dme/t/gnus/lisp/yenc hides /usr/share/emacs/24.0.92/lisp/gnus/yenc
/home/dme/t/gnus/lisp/mail-parse hides /usr/share/emacs/24.0.92/lisp/gnus/mail-parse
/home/dme/t/gnus/lisp/gnus-spec hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-spec
/home/dme/t/gnus/lisp/html2text hides /usr/share/emacs/24.0.92/lisp/gnus/html2text
/home/dme/t/gnus/lisp/gnus-diary hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-diary
/home/dme/t/gnus/lisp/gnus-picon hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-picon
/home/dme/t/gnus/lisp/gnus-cache hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-cache
/home/dme/t/gnus/lisp/gnus-async hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-async
/home/dme/t/gnus/lisp/mml-sec hides /usr/share/emacs/24.0.92/lisp/gnus/mml-sec
/home/dme/t/gnus/lisp/gnus-gravatar hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-gravatar
/home/dme/t/gnus/lisp/gnus-salt hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-salt
/home/dme/t/gnus/lisp/sieve-mode hides /usr/share/emacs/24.0.92/lisp/gnus/sieve-mode
/home/dme/t/gnus/lisp/nnmh hides /usr/share/emacs/24.0.92/lisp/gnus/nnmh
/home/dme/t/gnus/lisp/gnus-bcklg hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-bcklg
/home/dme/t/gnus/lisp/mail-prsvr hides /usr/share/emacs/24.0.92/lisp/gnus/mail-prsvr
/home/dme/t/gnus/lisp/plstore hides /usr/share/emacs/24.0.92/lisp/gnus/plstore
/home/dme/t/gnus/lisp/nnmaildir hides /usr/share/emacs/24.0.92/lisp/gnus/nnmaildir
/home/dme/t/gnus/lisp/mm-uu hides /usr/share/emacs/24.0.92/lisp/gnus/mm-uu
/home/dme/t/gnus/lisp/nnoo hides /usr/share/emacs/24.0.92/lisp/gnus/nnoo
/home/dme/t/gnus/lisp/gnus-kill hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-kill
/home/dme/t/gnus/lisp/rfc2104 hides /usr/share/emacs/24.0.92/lisp/gnus/rfc2104
/home/dme/t/gnus/lisp/nnfolder hides /usr/share/emacs/24.0.92/lisp/gnus/nnfolder
/home/dme/t/gnus/lisp/nndir hides /usr/share/emacs/24.0.92/lisp/gnus/nndir
/home/dme/t/gnus/lisp/spam-report hides /usr/share/emacs/24.0.92/lisp/gnus/spam-report
/home/dme/t/gnus/lisp/mail-source hides /usr/share/emacs/24.0.92/lisp/gnus/mail-source
/home/dme/t/gnus/lisp/gnus-cus hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-cus
/home/dme/t/gnus/lisp/gnus-delay hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-delay
/home/dme/t/gnus/lisp/shr-color hides /usr/share/emacs/24.0.92/lisp/gnus/shr-color
/home/dme/t/gnus/lisp/nnmail hides /usr/share/emacs/24.0.92/lisp/gnus/nnmail
/home/dme/t/gnus/lisp/ecomplete hides /usr/share/emacs/24.0.92/lisp/gnus/ecomplete
/home/dme/t/gnus/lisp/compface hides /usr/share/emacs/24.0.92/lisp/gnus/compface
/home/dme/t/gnus/lisp/nnvirtual hides /usr/share/emacs/24.0.92/lisp/gnus/nnvirtual
/home/dme/t/gnus/lisp/gnus-art hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-art
/home/dme/t/gnus/lisp/spam hides /usr/share/emacs/24.0.92/lisp/gnus/spam
/home/dme/t/gnus/lisp/nnspool hides /usr/share/emacs/24.0.92/lisp/gnus/nnspool
/home/dme/t/gnus/lisp/mailcap hides /usr/share/emacs/24.0.92/lisp/gnus/mailcap
/home/dme/t/gnus/lisp/ietf-drums hides /usr/share/emacs/24.0.92/lisp/gnus/ietf-drums
/home/dme/t/gnus/lisp/gnus-mlspl hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-mlspl
/home/dme/t/gnus/lisp/gnus-topic hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-topic
/home/dme/t/gnus/lisp/nnmairix hides /usr/share/emacs/24.0.92/lisp/gnus/nnmairix
/home/dme/t/gnus/lisp/utf7 hides /usr/share/emacs/24.0.92/lisp/gnus/utf7
/home/dme/t/gnus/lisp/gmm-utils hides /usr/share/emacs/24.0.92/lisp/gnus/gmm-utils
/home/dme/t/gnus/lisp/mm-util hides /usr/share/emacs/24.0.92/lisp/gnus/mm-util
/home/dme/t/gnus/lisp/gnus-bookmark hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-bookmark
/home/dme/t/gnus/lisp/gnus-group hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-group
/home/dme/t/gnus/lisp/messcompat hides /usr/share/emacs/24.0.92/lisp/gnus/messcompat
/home/dme/t/gnus/lisp/gnus-score hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-score
/home/dme/t/gnus/lisp/.dir-locals hides /usr/share/emacs/24.0.92/lisp/gnus/.dir-locals
/home/dme/t/gnus/lisp/nnagent hides /usr/share/emacs/24.0.92/lisp/gnus/nnagent
/home/dme/t/gnus/lisp/mml2015 hides /usr/share/emacs/24.0.92/lisp/gnus/mml2015
/home/dme/t/gnus/lisp/flow-fill hides /usr/share/emacs/24.0.92/lisp/gnus/flow-fill
/home/dme/t/gnus/lisp/gnus-draft hides /usr/share/emacs/24.0.92/lisp/gnus/gnus-draft
/home/dme/t/gnus/lisp/mml1991 hides /usr/share/emacs/24.0.92/lisp/gnus/mml1991
/home/dme/t/gnus/lisp/nnrss hides /usr/share/emacs/24.0.92/lisp/gnus/nnrss
/home/dme/t/gnus/lisp/mm-view hides /usr/share/emacs/24.0.92/lisp/gnus/mm-view
/usr/share/emacs/24.0.92/site-lisp/emms/tq hides /usr/share/emacs/24.0.92/lisp/emacs-lisp/tq
/home/dme/t/gnus/lisp/time-date hides /usr/share/emacs/24.0.92/lisp/calendar/time-date
/home/dme/t/gnus/lisp/parse-time hides /usr/share/emacs/24.0.92/lisp/calendar/parse-time
/home/dme/t/gnus/lisp/pgg-def hides /usr/share/emacs/24.0.92/lisp/obsolete/pgg-def
/home/dme/t/gnus/lisp/pgg-pgp5 hides /usr/share/emacs/24.0.92/lisp/obsolete/pgg-pgp5
/home/dme/t/gnus/lisp/pgg-parse hides /usr/share/emacs/24.0.92/lisp/obsolete/pgg-parse
/home/dme/t/gnus/lisp/pgg hides /usr/share/emacs/24.0.92/lisp/obsolete/pgg
/home/dme/t/gnus/lisp/pgg-gpg hides /usr/share/emacs/24.0.92/lisp/obsolete/pgg-gpg
/home/dme/t/gnus/lisp/pgg-pgp hides /usr/share/emacs/24.0.92/lisp/obsolete/pgg-pgp

Features:
(emacsbug texinfo tabulated-list pascal shadow ps-mule ps-print ps-def
lpr nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc
rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns
nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok
conf-mode ibuf-ext ibuffer make-mode vc-annotate etags vc-bzr vc-sccs
vc-svn vc-cvs vc-rcs markdown-mode derived edmacro kmacro w3m-bookmark
w3m-tabmenu w3m-session sgml-mode smerge-mode novice info cc-mode
cc-fonts cc-guess cc-menus cc-cmds cal-move todoo tree-widget-examples
tree-widget filecache nnfolder bookmark reposition skeleton org-datetree
image-file erc-log org-capture org-mks proced crm mingus-stays-home
mingus libmpdee log-view pgg-gpg org-wl org-w3m org-vm org-rmail org-mhe
org-mew org-irc org-jsinfo org-infojs org-html org-exp ob-exp
org-exp-blocks org-agenda org-info org-gnus org-docview org-bibtex
bibtex org-bbdb cus-edit python-21 python sh-script executable perl-mode
flow-fill bbdb-hooks smiley gnus-cite gnus-async gnus-bcklg gnus-ml
disp-table gnus-topic nndraft nnmh gnus-agent gnus-srvr gnus-score
score-mode nnvirtual gnus-msg gnus-cache utf-7 nnimap utf7 parse-time
netrc gnutls nnnil nntp mailto bbdb-gnus bbdb-snarf bbdb-com bbdb pgg
pgg-parse pgg-def bugtraq nnmairix nnml gnus-load url-queue url-http
url-auth url-gw url-cache url url-proxy url-privacy url-expand
url-methods url-history url-cookie shr-color color gnus-art mm-uu nnir
gnus-sum nnoo gnus-group gnus-undo nnmail mail-source gnus-start
gnus-spec gnus-int gnus-range gnus-win apropos cl-specs edebug vc
ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult
ediff-init ediff vc-dispatcher iso-transl url-util url-handlers
url-parse url-vars ffap w3m-form w3m doc-view jka-compr image-mode
timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl w3m-favicon
w3m-image w3m-proc w3m-util find-func debug shr browse-url help-mode
pcmpl-unix dired-aux tabify man ansi-color ind-util dired multi-isearch
shell grep compile view magit log-edit pcvs-util add-log magit-key-mode
sendmail epg gnus gnus-ems nnheader mml2015 epg-config qp newcomment
sort footnote mail-extr network-stream auth-source eieio assoc gnus-util
starttls tls erc-track erc-spelling erc-ring erc-networks erc-netsplit
erc-match erc-pcomplete erc-button erc-fill erc-stamp erc-join
erc-goodies erc erc-backend erc-compat pp mule-util vc-git flyspell
ispell hl-line notmuch notmuch-message notmuch-maildir-fcc notmuch-hello
battery cus-start cus-load savehist server time cc-styles cc-align
cc-engine cc-vars cc-defs uniquify org-protocol org byte-opt warnings
bytecomp byte-compile cconv macroexp ob-emacs-lisp ob-tangle ob-ref
ob-lob ob-table org-footnote org-src ob-comint ob-keys ob ob-eval
org-pcomplete pcomplete comint org-list org-faces org-compat
org-entities org-macs time-date noutline outline color-theme-tangotango
color-theme wid-edit cl iswitchb filladapt notmuch-show notmuch-crypto
notmuch-mua notmuch-address notmuch-wash advice help-fns advice-preload
diff-mode coolj notmuch-query json notmuch-lib goto-addr thingatpt
icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
message format-spec rfc822 mml easymenu mailabbrev mail-utils gmm-utils
mailheader mm-view mml-smime mml-sec smime password-cache dig mm-decode
mm-bodies mm-encode mailcap mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mm-util mail-prsvr regexp-opt winner ring windmove w3m-load
slime-autoloads emacs-goodies-el emacs-goodies-custom
emacs-goodies-loaddefs easy-mmode bbdb-autoloads tooltip ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
fringe 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 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 x-toolkit x
multi-tty emacs)

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2011-12-28 12:47 bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text David Edmondson
@ 2011-12-29 14:02 ` Eli Zaretskii
  2011-12-31 14:09 ` Eli Zaretskii
  1 sibling, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2011-12-29 14:02 UTC (permalink / raw)
  To: David Edmondson; +Cc: 10395

> From: David Edmondson <dme@dme.org>
> Date: Wed, 28 Dec 2011 12:47:18 +0000
> 
> If a line-prefix property is added to a region of a buffer, the
> displayed line-prefix region inherits the face properties from the
> preceding line rather than from the first character on the line, except
> if the region so propertised starts at the beginning of the
> buffer.

I can confirm this.  However, Emacs 23 behaves the same, so this is
not a regression.  I suspect Emacs behaved like this ever since the
line-prefix feature was added.

Nevertheless, I will look into fixing this in a day or two, unless
someone beats me to it.

Thanks for reporting this.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2011-12-28 12:47 bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text David Edmondson
  2011-12-29 14:02 ` Eli Zaretskii
@ 2011-12-31 14:09 ` Eli Zaretskii
  2012-01-03 10:15   ` David Edmondson
  2012-01-07  7:30   ` Chong Yidong
  1 sibling, 2 replies; 9+ messages in thread
From: Eli Zaretskii @ 2011-12-31 14:09 UTC (permalink / raw)
  To: David Edmondson, Stefan Monnier, Chong Yidong, Miles Bader; +Cc: 10395

> From: David Edmondson <dme@dme.org>
> Date: Wed, 28 Dec 2011 12:47:18 +0000
> 
> If a line-prefix property is added to a region of a buffer, the
> displayed line-prefix region inherits the face properties from the
> preceding line rather than from the first character on the line, except
> if the region so propertised starts at the beginning of the
> buffer.

As I suspected, this happens simply because we don't change the face
used for display until we process the first character that has a
different face, in this case the first character on the line.

It is possible to change that, but we need to decide first whether the
current behavior is wrong or not.

IOW, why would the user expect that the line-prefix be rendered using
the face that begins _after_ the prefix?  This would be unlike
anything else in the Emacs display operation.  Is this case really
different?  What if the different face starts on some character that
is not the line's first character -- would you, David, expect the
line-prefix use that different face? if not, why do so when the
different face begins at the line's beginning?

Conceptually, a line-prefix and wrap-prefix are just display strings,
only specified differently.  They therefore behave just like display
strings, in that they inherit the face of the _preceding_ text.  If
you don't want that, you will have to specify face properties for the
line-prefix.  (This is, btw, the workaround for the problem you had.)

So my vote is to leave this as it works now, and maybe document this
to avoid surprises.

If the decision is nevertheless to change the behavior as David
expected, then we need to consider additional issues/complications:

 . what, if anything, should we do with wrap-prefix? should it also
   "inherit" the face of the first character of the continuation line?

 . would the result look as TRT when bidirectional text is involved?
   If the line with a prefix begins with right-to-left text, the first
   character of the line will not be the first (leftmost) character on
   display, while the leftmost character on display might then have a
   face that is different from that of line-prefix, which will look
   odd to say the least.

 . should this "inheritance" be limited to faces, or should other text
   properties behave like that as well? e.g., what about `mouse-face'
   or `pointer' properties?

Comments are welcome.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2011-12-31 14:09 ` Eli Zaretskii
@ 2012-01-03 10:15   ` David Edmondson
  2012-01-03 11:12     ` Eli Zaretskii
  2012-01-07  7:30   ` Chong Yidong
  1 sibling, 1 reply; 9+ messages in thread
From: David Edmondson @ 2012-01-03 10:15 UTC (permalink / raw)
  To: Eli Zaretskii, Stefan Monnier, Chong Yidong, Miles Bader; +Cc: 10395

[-- Attachment #1: Type: text/plain, Size: 874 bytes --]

On Sat, 31 Dec 2011 16:09:41 +0200, Eli Zaretskii <eliz@gnu.org> wrote:
> IOW, why would the user expect that the line-prefix be rendered using
> the face that begins _after_ the prefix?  This would be unlike
> anything else in the Emacs display operation.  Is this case really
> different?  What if the different face starts on some character that
> is not the line's first character -- would you, David, expect the
> line-prefix use that different face? if not, why do so when the
> different face begins at the line's beginning?

Your explanation makes sense and setting properties on the string used
for the line-prefix/wrap-prefix does indeed produce the desired result
(thanks!).

Perhaps I should update the bug to read 'why is the line-prefix at point
== 1 shown with the properties of the following character', though. Is
there special code for handling that case?

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2012-01-03 10:15   ` David Edmondson
@ 2012-01-03 11:12     ` Eli Zaretskii
  0 siblings, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2012-01-03 11:12 UTC (permalink / raw)
  To: David Edmondson; +Cc: miles, 10395

> From: David Edmondson <dme@dme.org>
> Date: Tue, 03 Jan 2012 10:15:36 +0000
> 
> Perhaps I should update the bug to read 'why is the line-prefix at point
> == 1 shown with the properties of the following character', though. Is
> there special code for handling that case?

It's an implementation detail.  For the prefix at the beginning of the
buffer, the display iterator is loaded in advance with the face of the
first character of the buffer.  For other lines, it is loaded with the
face of the last character processed in the previous line.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2011-12-31 14:09 ` Eli Zaretskii
  2012-01-03 10:15   ` David Edmondson
@ 2012-01-07  7:30   ` Chong Yidong
  2012-01-07  8:12     ` Eli Zaretskii
  2012-03-22  7:32     ` Chong Yidong
  1 sibling, 2 replies; 9+ messages in thread
From: Chong Yidong @ 2012-01-07  7:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 10395, David Edmondson, Miles Bader

Eli Zaretskii <eliz@gnu.org> writes:

> So my vote is to leave this as it works now, and maybe document this
> to avoid surprises.

Agreed about leaving this alone for now, though I'd rather not commit to
documenting it as "the" behavior just yet.

OTOH, the "expected" behavior would be for the line-prefix not to
inherit face properties at all, much like overlay before-strings.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2012-01-07  7:30   ` Chong Yidong
@ 2012-01-07  8:12     ` Eli Zaretskii
  2012-03-22  7:32     ` Chong Yidong
  1 sibling, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2012-01-07  8:12 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 10395, dme, miles

> From: Chong Yidong <cyd@gnu.org>
> Cc: David Edmondson <dme@dme.org>,  Stefan Monnier <monnier@iro.umontreal.ca>,  Miles Bader <miles@gnu.org>,  10395@debbugs.gnu.org
> Date: Sat, 07 Jan 2012 15:30:25 +0800
> 
> OTOH, the "expected" behavior would be for the line-prefix not to
> inherit face properties at all, much like overlay before-strings.

Fair enough.  If we can agree on what is the desired behavior, then
Someone™, some day could implement it.






^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2012-01-07  7:30   ` Chong Yidong
  2012-01-07  8:12     ` Eli Zaretskii
@ 2012-03-22  7:32     ` Chong Yidong
  2012-03-22 17:11       ` Eli Zaretskii
  1 sibling, 1 reply; 9+ messages in thread
From: Chong Yidong @ 2012-03-22  7:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: David Edmondson, 10395, Miles Bader

Chong Yidong <cyd@gnu.org> writes:

>> So my vote is to leave this as it works now, and maybe document this
>> to avoid surprises.
>
> Agreed about leaving this alone for now, though I'd rather not commit to
> documenting it as "the" behavior just yet.
>
> OTOH, the "expected" behavior would be for the line-prefix not to
> inherit face properties at all, much like overlay before-strings.

Whoops.  Looks like there's a realistic situation in which this pops up,
and looks bad: Bug#4281.  I committed a fix for that (revno 107654),
before remembering about the discussion in this thread and the decision
to leave it alone.

I guess I could revert the fix.  But first, is there a work-around for
Bug#4281?  The line prefix applied by org-indent-set-line-properties
does have an explicit `face' property, but that didn't seem to stop the
global-hl-line-mode highlighting from leaking into the prefix.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text
  2012-03-22  7:32     ` Chong Yidong
@ 2012-03-22 17:11       ` Eli Zaretskii
  0 siblings, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2012-03-22 17:11 UTC (permalink / raw)
  To: Chong Yidong; +Cc: dme, 10395, miles

> From: Chong Yidong <cyd@gnu.org>
> Cc: 10395@debbugs.gnu.org,  Miles Bader <miles@gnu.org>,  Stefan Monnier <monnier@iro.umontreal.ca>,  David Edmondson <dme@dme.org>
> Date: Thu, 22 Mar 2012 15:32:53 +0800
> 
> Whoops.  Looks like there's a realistic situation in which this pops up,
> and looks bad: Bug#4281.  I committed a fix for that (revno 107654),
> before remembering about the discussion in this thread and the decision
> to leave it alone.
> 
> I guess I could revert the fix.  But first, is there a work-around for
> Bug#4281?  The line prefix applied by org-indent-set-line-properties
> does have an explicit `face' property, but that didn't seem to stop the
> global-hl-line-mode highlighting from leaking into the prefix.

Since you installed this, I suggest to leave it and see if any
problems pop up.





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-03-22 17:11 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-28 12:47 bug#10395: 24.0.92; line-prefix text inherits face properties from the preceding line rather than following text David Edmondson
2011-12-29 14:02 ` Eli Zaretskii
2011-12-31 14:09 ` Eli Zaretskii
2012-01-03 10:15   ` David Edmondson
2012-01-03 11:12     ` Eli Zaretskii
2012-01-07  7:30   ` Chong Yidong
2012-01-07  8:12     ` Eli Zaretskii
2012-03-22  7:32     ` Chong Yidong
2012-03-22 17:11       ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).