From mboxrd@z Thu Jan 1 00:00:00 1970 From: Viktor Rosenfeld Subject: [PATCH] Honor properties in derived backends with default nil Date: Tue, 14 May 2013 19:04:01 +0200 Message-ID: <20130514170401.GB1608@kenny.fritz.box> References: <20130513183520.GA9028@client204-235.wlan.hu-berlin.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="zYM0uCDKw75PZbzx" Return-path: Received: from eggs.gnu.org ([208.118.235.92]:52047) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UcIe0-0003So-1H for emacs-orgmode@gnu.org; Tue, 14 May 2013 13:04:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UcIdy-0002WR-1L for emacs-orgmode@gnu.org; Tue, 14 May 2013 13:04:07 -0400 Received: from mail-bk0-x230.google.com ([2a00:1450:4008:c01::230]:45714) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UcIdx-0002WD-QL for emacs-orgmode@gnu.org; Tue, 14 May 2013 13:04:05 -0400 Received: by mail-bk0-f48.google.com with SMTP id jf3so483509bkc.21 for ; Tue, 14 May 2013 10:04:05 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20130513183520.GA9028@client204-235.wlan.hu-berlin.de> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Cc: Nicolas Goaziou --zYM0uCDKw75PZbzx Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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-sk@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 --zYM0uCDKw75PZbzx Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-ox.el-Honor-properties-in-derived-backends-with-defa.patch" >From 29a3d1ece607c6ddfdb18c5096f04fd08556df50 Mon Sep 17 00:00:00 2001 From: Viktor Rosenfeld 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 --zYM0uCDKw75PZbzx--