Subject: Re: bug#16780: 24.2.91; Emacs crash when C-c C-c on captured item

From: Eli Zaretskii <[email-masked]>
Date: Thu, 20 Feb 2014 18:35:15 +0200

> From: "Sebastien Vauban" <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Tue, 18 Feb 2014 19:51:48 +0100
> 
> >> >> See http://screencast.com/t/m2urFNhsSrN for a comparison, with all
> >> >> parameters identical (same config file, same theme file), but the
> >> >> version of the Emacs binary...
> >> >
> >> > What faces?  Can you provide a simple, small, self-contained test
> >> > case?
> >> 
> >> New screenshot: http://screencast.com/t/LDKtOSOB.
> >> 
> >> Test file:
> >> 
> >> --8<---------------cut here---------------start------------->8---
> >> * Code block
> >> 
> >> #+begin_src emacs-lisp
> >> ;; the above line must be displayed as `org-block-begin-line'
> >> (message "echo")                        ; a line of code, such as this one, is
> >>                                         ; displayed as `org-block-background'
> >> ;; the line below this one must be displayed as `org-block-end-line'
> >> #+end_src
> >> 
> >> * Mail contents
> >> 
> >> #+begin_verse
> >> The "borders" of this block must be displayed as `org-block-begin/end-line'.
> >> 
> >> The "inside" must be displayed as `org-verse'...
> >> 
> >> Foo
> >> Bar
> >> Baz
> >> #+end_verse
> >> --8<---------------cut here---------------end--------------->8---
> >
> > OK, but what should one do with this file, starting with "emacs -Q",
> > to reproduce the problem?  The screenshot only shows the results, not
> > what you did to achieve them.
> 
> As stated in the beginning of the thread, simply launch a minimal Emacs
> file (see http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16440#10), and
> open the above test file, for you to reproduce the problem.

If you reload the theme after visiting the Org file, those faces
change their looks to what you expect.

This seems to be the consequence of the change described in NEWS like
this:

  *** Face specs set via Custom themes now replace the `defface' spec
  rather than inheriting from it (as do face specs set via Customize).

Org uses org-copy-face to define the faces that you show in your
screencast, and org-copy-face assumes the face it inherits from
already exists.  But loading a theme now doesn't create the faces, it
only prepares the data for when the face will be created.  So :inherit
in org-copy-face doesn't do what you expect.

I guess either some change is needed in how themes are handled, or
org-copy-face needs to change to follow suit.  (CC to Bastien for
that.)