unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#8376: 23.3; font-lock-face doesn't get yanked
@ 2011-03-29 17:27 Uday S Reddy
  2011-03-29 19:08 ` Glenn Morris
  0 siblings, 1 reply; 4+ messages in thread
From: Uday S Reddy @ 2011-03-29 17:27 UTC (permalink / raw)
  To: 8376

It looks like the 'font-lock-face text property is not preserved under
killing and yanking.

Here is a recipe to reproduce the problem:

- Go to *sratch* and type some text.
- Select it as region and do 
  (put-text-property (mark) (point) 'font-lock-face "bold")
- Kill and yank the region and notice that the bold face is gone.

Also, I wonder if there is a good reason why 'mouse-face is in
yank-excluded-properties.  If there isn't one, then perhaps you can
remove it too.

Cheers,
Uday


In GNU Emacs 23.3.1 (i386-mingw-nt5.1.2600)
 of 2011-03-10 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.5) --no-opt --cflags -Ic:/imagesupport/include'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  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: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  auto-fill-function: do-auto-fill
  savehist-mode: t
  which-function-mode: t
  tooltip-mode: t
  mouse-wheel-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-encryption-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-g <escape> : <up> C-e C-b C-b C-b C-b C-b C-b C-d 
" C-e C-b " <return> C-x C-x <escape> : <up> <return> 
<escape> : <up> C-e C-b C-b C-b C-b C-b C-b C-b C-b 
C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b 
C-b C-b C-f M-d M-d C-d <return> C-x C-x <escape> C-g 
C-SPC C-e <escape> : <up> <return> C-x C-x C-x C-x 
<escape> : <up> C-e C-b C-b C-b C-b C-b C-b C-b C-b 
C-b C-b C-b C-b f o n t - l o c k - C-f C-f C-f C-f 
C-f C-f C-f C-b <return> <escape> C-g C-a <escape> 
: C-g C-x C-x C-x C-x C-SPC C-e <escape> : <up> C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-b 
M-d l a n e <backspace> <backspace> v e n d e r <return> 
<escape> : <up> C-e C-b C-b C-b C-b C-b C-b C-b C-b 
C-b C-b C-b C-SPC C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-w C-g M-x f o n t - <backspace> <backspace> <backspace> 
<backspace> <backspace> l i s t - f o n SPC SPC <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> a c e SPC SPC <return> C-x C-x C-x C-x 
<escape> : <up> C-e C-b C-b C-b C-b C-b C-b C-b C-b 
C-b C-b C-b C-SPC C-e C-w b <backspace> ' b o l d ) 
<return> C-a C-k C-k C-y <f1> M-x r e p o r t - e m 
a c s SPC SPC <return>

Recent messages:
Invalid face reference: blue [9 times]
nilInvalid face reference: lavender
Invalid face reference: lavender
QuitInvalid face reference: lavender
Invalid face reference: lavender [3 times]
Type C-x 1 to delete the help window, C-M-v to scroll help.
Invalid face reference: lavender [12 times]
nil
kill-line: End of buffer
Mark set

Load-path shadows:
y:/emacs/vm/trunk/lisp/vm-vcard hides d:/gnu/emacs-23.3/../site-lisp/vm-vcard
y:/emacs/vm/trunk/lisp/vm-serial hides d:/gnu/emacs-23.3/../site-lisp/vm-serial
y:/emacs/vm/trunk/lisp/vm-ps-print hides d:/gnu/emacs-23.3/../site-lisp/vm-ps-print
y:/emacs/vm/trunk/lisp/vm-grepmail hides d:/gnu/emacs-23.3/../site-lisp/vm-grepmail
y:/emacs/vm/trunk/lisp/vm-biff hides d:/gnu/emacs-23.3/../site-lisp/vm-biff
y:/emacs/vm/trunk/lisp/vcard hides d:/gnu/emacs-23.3/../site-lisp/vcard
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb hides d:/gnu/emacs-23.3/../site-lisp/bbdb
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-xemacs hides d:/gnu/emacs-23.3/../site-lisp/bbdb-xemacs
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-whois hides d:/gnu/emacs-23.3/../site-lisp/bbdb-whois
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-w3 hides d:/gnu/emacs-23.3/../site-lisp/bbdb-w3
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-snarf hides d:/gnu/emacs-23.3/../site-lisp/bbdb-snarf
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-sc hides d:/gnu/emacs-23.3/../site-lisp/bbdb-sc
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-rmail hides d:/gnu/emacs-23.3/../site-lisp/bbdb-rmail
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-print hides d:/gnu/emacs-23.3/../site-lisp/bbdb-print
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-migrate hides d:/gnu/emacs-23.3/../site-lisp/bbdb-migrate
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-merge hides d:/gnu/emacs-23.3/../site-lisp/bbdb-merge
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-hooks hides d:/gnu/emacs-23.3/../site-lisp/bbdb-hooks
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-gui hides d:/gnu/emacs-23.3/../site-lisp/bbdb-gui
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-gnus hides d:/gnu/emacs-23.3/../site-lisp/bbdb-gnus
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-ftp hides d:/gnu/emacs-23.3/../site-lisp/bbdb-ftp
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-com hides d:/gnu/emacs-23.3/../site-lisp/bbdb-com
d:/gnu/emacs-23.3/../packages/bbdb-2.35/lisp/bbdb-autoloads hides d:/gnu/emacs-23.3/../site-lisp/bbdb-autoloads
d:/gnu/emacs-23.3/../site-lisp/longlines hides d:/gnu/emacs-23.3/lisp/longlines
d:/gnu/site-lisp/w3/cus-load hides d:/gnu/emacs-23.3/lisp/cus-load
d:/gnu/site-lisp/w3/url hides d:/gnu/emacs-23.3/lisp/url/url
d:/gnu/site-lisp/w3/url-vars hides d:/gnu/emacs-23.3/lisp/url/url-vars
d:/gnu/site-lisp/w3/url-parse hides d:/gnu/emacs-23.3/lisp/url/url-parse
d:/gnu/site-lisp/w3/url-ns hides d:/gnu/emacs-23.3/lisp/url/url-ns
d:/gnu/site-lisp/w3/url-nfs hides d:/gnu/emacs-23.3/lisp/url/url-nfs
d:/gnu/site-lisp/w3/url-news hides d:/gnu/emacs-23.3/lisp/url/url-news
d:/gnu/site-lisp/w3/url-misc hides d:/gnu/emacs-23.3/lisp/url/url-misc
d:/gnu/site-lisp/w3/url-ldap hides d:/gnu/emacs-23.3/lisp/url/url-ldap
d:/gnu/site-lisp/w3/url-irc hides d:/gnu/emacs-23.3/lisp/url/url-irc
d:/gnu/site-lisp/w3/url-http hides d:/gnu/emacs-23.3/lisp/url/url-http
d:/gnu/site-lisp/w3/url-gw hides d:/gnu/emacs-23.3/lisp/url/url-gw
d:/gnu/site-lisp/w3/url-file hides d:/gnu/emacs-23.3/lisp/url/url-file
d:/gnu/site-lisp/w3/url-cookie hides d:/gnu/emacs-23.3/lisp/url/url-cookie
d:/gnu/site-lisp/w3/url-cid hides d:/gnu/emacs-23.3/lisp/url/url-cid
d:/gnu/site-lisp/w3/url-cache hides d:/gnu/emacs-23.3/lisp/url/url-cache
d:/gnu/site-lisp/w3/url-auth hides d:/gnu/emacs-23.3/lisp/url/url-auth
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org hides d:/gnu/emacs-23.3/lisp/org/org
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-xoxo hides d:/gnu/emacs-23.3/lisp/org/org-xoxo
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-wl hides d:/gnu/emacs-23.3/lisp/org/org-wl
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-w3m hides d:/gnu/emacs-23.3/lisp/org/org-w3m
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-vm hides d:/gnu/emacs-23.3/lisp/org/org-vm
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-timer hides d:/gnu/emacs-23.3/lisp/org/org-timer
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-table hides d:/gnu/emacs-23.3/lisp/org/org-table
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-src hides d:/gnu/emacs-23.3/lisp/org/org-src
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-rmail hides d:/gnu/emacs-23.3/lisp/org/org-rmail
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-remember hides d:/gnu/emacs-23.3/lisp/org/org-remember
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-publish hides d:/gnu/emacs-23.3/lisp/org/org-publish
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-protocol hides d:/gnu/emacs-23.3/lisp/org/org-protocol
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-plot hides d:/gnu/emacs-23.3/lisp/org/org-plot
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-mouse hides d:/gnu/emacs-23.3/lisp/org/org-mouse
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-mobile hides d:/gnu/emacs-23.3/lisp/org/org-mobile
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-mhe hides d:/gnu/emacs-23.3/lisp/org/org-mhe
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-mew hides d:/gnu/emacs-23.3/lisp/org/org-mew
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-macs hides d:/gnu/emacs-23.3/lisp/org/org-macs
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-mac-message hides d:/gnu/emacs-23.3/lisp/org/org-mac-message
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-list hides d:/gnu/emacs-23.3/lisp/org/org-list
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-latex hides d:/gnu/emacs-23.3/lisp/org/org-latex
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-jsinfo hides d:/gnu/emacs-23.3/lisp/org/org-jsinfo
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-irc hides d:/gnu/emacs-23.3/lisp/org/org-irc
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-install hides d:/gnu/emacs-23.3/lisp/org/org-install
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-inlinetask hides d:/gnu/emacs-23.3/lisp/org/org-inlinetask
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-info hides d:/gnu/emacs-23.3/lisp/org/org-info
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-indent hides d:/gnu/emacs-23.3/lisp/org/org-indent
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-id hides d:/gnu/emacs-23.3/lisp/org/org-id
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-icalendar hides d:/gnu/emacs-23.3/lisp/org/org-icalendar
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-html hides d:/gnu/emacs-23.3/lisp/org/org-html
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-habit hides d:/gnu/emacs-23.3/lisp/org/org-habit
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-gnus hides d:/gnu/emacs-23.3/lisp/org/org-gnus
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-freemind hides d:/gnu/emacs-23.3/lisp/org/org-freemind
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-footnote hides d:/gnu/emacs-23.3/lisp/org/org-footnote
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-feed hides d:/gnu/emacs-23.3/lisp/org/org-feed
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-faces hides d:/gnu/emacs-23.3/lisp/org/org-faces
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-exp hides d:/gnu/emacs-23.3/lisp/org/org-exp
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-exp-blocks hides d:/gnu/emacs-23.3/lisp/org/org-exp-blocks
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-docbook hides d:/gnu/emacs-23.3/lisp/org/org-docbook
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-datetree hides d:/gnu/emacs-23.3/lisp/org/org-datetree
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-crypt hides d:/gnu/emacs-23.3/lisp/org/org-crypt
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-compat hides d:/gnu/emacs-23.3/lisp/org/org-compat
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-colview hides d:/gnu/emacs-23.3/lisp/org/org-colview
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-clock hides d:/gnu/emacs-23.3/lisp/org/org-clock
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-bibtex hides d:/gnu/emacs-23.3/lisp/org/org-bibtex
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-bbdb hides d:/gnu/emacs-23.3/lisp/org/org-bbdb
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-attach hides d:/gnu/emacs-23.3/lisp/org/org-attach
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-ascii hides d:/gnu/emacs-23.3/lisp/org/org-ascii
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-archive hides d:/gnu/emacs-23.3/lisp/org/org-archive
d:/gnu/emacs-23.3/../packages/org-mode/lisp/org-agenda hides d:/gnu/emacs-23.3/lisp/org/org-agenda
d:/gnu/site-lisp/w3/socks hides d:/gnu/emacs-23.3/lisp/net/socks
d:/gnu/emacs-23.3/../site-lisp/undigest hides d:/gnu/emacs-23.3/lisp/mail/undigest
d:/Home/udr/share/emacs/rnews hides d:/gnu/emacs-23.3/lisp/obsolete/rnews

Features:
(shadow sort mail-extr message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader mm-util mail-prsvr
gmm-utils wid-edit mailheader canlock sha1 hex-util hashcash mail-utils
emacsbug help-mode view bbdb-autoloads bbdb timezone vm-autoloads
vm-version vm-vars remember org-remember org-datetree org byte-opt
warnings bytecomp byte-compile advice help-fns advice-preload
org-footnote org-src org-list org-faces org-compat org-entities org-macs
noutline outline easy-mmode cal-menu easymenu calendar cal-loaddefs
org-install savehist-20+ cl cl-19 ange-ftp tex-site telnet comint ring
movement natural-space NatSpeak sendmail auth-source gnus-util netrc
time-date epa-file epa epg epg-config regexp-opt echistory chistory
ehelp electric derived which-func imenu edmacro kmacro jka-compr tooltip
ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table ls-lisp
w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process multi-tty emacs)

-- 





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

* bug#8376: 23.3; font-lock-face doesn't get yanked
  2011-03-29 17:27 bug#8376: 23.3; font-lock-face doesn't get yanked Uday S Reddy
@ 2011-03-29 19:08 ` Glenn Morris
  2011-03-29 20:24   ` Uday S Reddy
  0 siblings, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2011-03-29 19:08 UTC (permalink / raw)
  To: Uday S Reddy; +Cc: 8376

Uday S Reddy wrote:

> It looks like the 'font-lock-face text property is not preserved under
> killing and yanking.

Well yes, people used to complain that copying text would copy unwanted
font-locking along with it. Eg

http://lists.gnu.org/archive/html/emacs-devel/2006-09/msg00981.html

Why do you think it should be preserved?





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

* bug#8376: 23.3; font-lock-face doesn't get yanked
  2011-03-29 19:08 ` Glenn Morris
@ 2011-03-29 20:24   ` Uday S Reddy
  2012-08-18  5:36     ` Chong Yidong
  0 siblings, 1 reply; 4+ messages in thread
From: Uday S Reddy @ 2011-03-29 20:24 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Uday S Reddy, 8376

Glenn Morris writes:

> Well yes, people used to complain that copying text would copy unwanted
> font-locking along with it. Eg
> 
> http://lists.gnu.org/archive/html/emacs-devel/2006-09/msg00981.html
> 
> Why do you think it should be preserved?

My context was in writing email messages in mail-mode/message-mode,
both of which use font-lock to fontify the headers and the cited text.

VM has functions that put "attachment buttons" into the mail-mode
buffers, which are have data stored in text properties.  I wanted to
put a face on them to make them look like "buttons".  It works fine
normally but it is not preserved under killing and yanking.

I find the above thread a bit confused, or perhaps I am hopelessly
confused.  It appears that the 'font-lock-face property has been
installed so that font-lock-mode doesn't mess with it.  I don't see
any "unwanted font-locking" in the 'font-lock-face property.  So, why
should it be erased by yanking?  It should work the same way as the
'face property works in a non-font-lock-mode buffer.

Certainly, when you want to move text around within a single buffer,
you don't want to lose faces by killing and yanking.  If it gives
undesirable results when people want to move text from one buffer to
another, then they might need to use a separate function to erase the
fontification or they might use the yank-excluded-properties variable
to exclude font-lock-face.

Perhaps, I should reopen the discussion in the emacs-dev list?

Cheers,
Uday






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

* bug#8376: 23.3; font-lock-face doesn't get yanked
  2011-03-29 20:24   ` Uday S Reddy
@ 2012-08-18  5:36     ` Chong Yidong
  0 siblings, 0 replies; 4+ messages in thread
From: Chong Yidong @ 2012-08-18  5:36 UTC (permalink / raw)
  To: Uday S Reddy; +Cc: 8376

Uday S Reddy <u.s.reddy@cs.bham.ac.uk> writes:

> My context was in writing email messages in mail-mode/message-mode,
> both of which use font-lock to fontify the headers and the cited text.
>
> VM has functions that put "attachment buttons" into the mail-mode
> buffers, which are have data stored in text properties.  I wanted to
> put a face on them to make them look like "buttons".  It works fine
> normally but it is not preserved under killing and yanking.

The reason font-lock-face is removed in buffers in which font-lock is
active is that font-lock-face is typically applied by programs, so it
would be wrong for a user-level operation like yanking to apply it.

This is a rule of thumb; there is no right or wrong answer.  If you
prefer to preserve font-lock-face, I've added to trunk a new option
`yank-handled-properties' which can be customized to get the behavior
you want.





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

end of thread, other threads:[~2012-08-18  5:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-29 17:27 bug#8376: 23.3; font-lock-face doesn't get yanked Uday S Reddy
2011-03-29 19:08 ` Glenn Morris
2011-03-29 20:24   ` Uday S Reddy
2012-08-18  5:36     ` Chong Yidong

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).