I was just trying to customize some org-mode
export settings in emacs, and so I did M-xcustomize-grouporg-export-html. This brought up by Customize buffer, and, among other things, I went about changing the org-export-html-postamble-format
to something more to my liking.
Possibly relevant: During this process, I'd used a few C-o's to open new lines, so the value would look nice to me on the screen, and I could tell what I was doing. When satisfied, I clicked on the State button, and chose Save for Future Sessions
. Because (I presume) of the C-o newlines, it then said:
CHANGED outside Customize; operating on it here may be unreliable. (mismatch)
So, I then chose Reset to Saved
, which got rid of that, but replaced it with this:
SAVED and set. (mismatch)
OK, so... all is well... except... In both of those lines, what does (mismatch)
mean? That there's a mismatch between what's saved in my emacs init file and what I'm looking at? That there's a mismatch between... Well, looking around further, I even see some customize entries that say:
STANDARD. (mismatch)
Standard and mismatch? (There are others which just say STANDARD.
, by the way.)
I want to understand what "mismatch" means. Any hints?
Thanks!
Addenda:
I just went digging a little in cus-edit.el
, and found this in the comments:
;; 8. mismatch
;; The widget value is not valid member of the :type specified for the
;; option.
This helps, a little... does it just mean that org-mode
's type specifier is wrong? Looking at that (in org-html.el
), it specifies :type 'string
, but in reality it seems to be a plist (even its default value is of the form '(("en" "[data here]"))
.) Is this just bad cleanliness on the part of org-mode
? But then, even another variable in here says "mismatch", but seems logically to have a value that makes sense. The value is t
(and I checked in my emacs init, and it's just the symbol t
, no quotes or anything), and the type specifier for that is:
:type '(choice (const :tag "No postamble" nil)
(const :tag "Auto preamble" 'auto)
(const :tag "Default formatting string" t)
(string :tag "Custom formatting string")
(function :tag "Function (must return a string)")))
... which would seem to match that third line. No? Is '(choice ...
not a valid value for :type
?
It looks like two bugs:
a trivial one in org-html.el which declares :type 'string
for that variable, even though the variable's value is not a string.
a bug in customize which says "changed outside customize" in this mismatched case, even though the mismatch actually came straight from customize and not outside of it.
Please report it with M-x report-emacs-bug
.