Hi,
the attached patch fixes the problem. I wasn't sure if the logic simply
reverts the changes in commit 16f12e0 but it passes the test suite.
Cheers,
Viktor
Viktor Rosenfeld wrote:
> Hi,
>
> commit 16f12e0 changed how the EMAIL option is configured in a derived
> exporter that also uses this keyword.
>
> In `contrib/ox-koma-letter.el', the koma-letter exporter configures the
> default
> of the EMAIL option to the variable `org-koma-letter-email'. However, since
> commit 16f12e0, if the option is missing, the default is set to
> `user-mail-address' which is the default for the standard LaTeX exporter.
>
> The current code causes the following bug in koma-letter exporter: If EMAIL is
> missing, and `org-koma-letter-email' is `nil', then the exporter should not
> set
> a email address in the exported LaTeX file. The rationale is that the email
> address is configured in an external LCO file (and can be overwritten for an
> individual letter, if desired). However, the new behavior causes the email to
> be set explicitly, overwriting the value from the LCO file.
>
> Consider the following example:
>
> #+BEGIN_SRC org
> #+LATEX_CLASS: my-letter
> #+LCO: DefaultAddress
> #+END_SRC
>
> The expected LaTeX-code is:
>
> #+BEGIN_SRC latex
> \documentclass{scrlttr2}
> \LoadLetterOption{DefaultAddress} % <--- email is set here
> % ...
> \begin{document}
> % ...
> \end{document}
> #+END_SRC
>
> However, since commit 16f12e0, the generated code is:
>
> #+BEGIN_SRC latex
> \documentclass{scrlttr2}
> \LoadLetterOption{DefaultAddress} % <--- email is set here
> \setkomavar{fromemail}{[email protected]} % <--- email
> is overwritten here
> % ...
> \begin{document}
> % ...
> \end{document}
> #+END_SRC
>
> Is this a bug in the LaTeX exporter or is this the intended behavior? Should I
> maybe use another keyword instead of EMAIL? I think I used SENDER instead of
> AUTHOR because of a similar conflict.
>
> Cheers,
> Viktor
>From 29a3d1ece607c6ddfdb18c5096f04fd08556df50 Mon Sep 17 00:00:00 2001
From: Viktor Rosenfeld <[email protected]>
Date: Tue, 14 May 2013 18:58:11 +0200
Subject: [PATCH] ox.el: Honor properties in derived backends with default
`nil'.
* ox.el (org-export--get-global-options): Only process
properties once even if their value is `nil'.
TINYCHANGE
---
lisp/ox.el | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/lisp/ox.el b/lisp/ox.el
index 3a4a130..64bc799 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -1726,11 +1726,15 @@ process."
;; Priority is given to back-end specific options.
(append (and backend (org-export-backend-options backend))
org-export-options-alist))
- plist)
+ plist
+ seen)
(mapc
(lambda (cell)
(let ((prop (car cell)))
- (unless (plist-member plist prop)
+ (unless (or
+ (plist-member plist prop)
+ (member prop seen))
+ (add-to-list 'seen prop)
(let ((value (eval (nth 3 cell))))
;; Only set property if default value is non-nil.
(when value
--
1.8.2.2