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}{he...@client204-235.wlan.hu-berlin.de}  % <--- 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 <listuse...@gmail.com>
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

Reply via email to