From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Moe Subject: Re: [BUG][ODT] ODT_STYLES_FILE not read as a list Date: Wed, 07 Nov 2018 09:28:53 +0100 Message-ID: <87pnvhxpdm.fsf@christianmoe.com> References: <8736snjh60.fsf@christianmoe.com> <87r2g08pn8.fsf@nicolasgoaziou.fr> <87a7mnewov.fsf@christianmoe.com> <1fb5458b-43b7-e414-ce73-08d011339ccb@karssen.org> <87r2fyxlpl.fsf@christianmoe.com> <2fbfc24e-c356-831b-0e41-cca5a79de9c3@karssen.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33511) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gKJf5-0003wi-2C for emacs-orgmode@gnu.org; Wed, 07 Nov 2018 03:58:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gKJev-00063q-Om for emacs-orgmode@gnu.org; Wed, 07 Nov 2018 03:58:03 -0500 Received: from mailer-211-152.hitrost.net ([91.185.211.152]:39676) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gKJet-0005vV-41 for emacs-orgmode@gnu.org; Wed, 07 Nov 2018 03:57:55 -0500 In-reply-to: <2fbfc24e-c356-831b-0e41-cca5a79de9c3@karssen.org> 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" To: "L.C. Karssen" , Nicolas Goaziou , Charles Celerier Cc: emacs-orgmode@gnu.org, Christian Moe Nicolas, Lennart, cc: Charles Celerier, Below, Lennart points out another issue with ODT_STYLES_FILE, a silent change in syntax not reflected in the manual: quotation marks are no longer needed around simple file paths. I think this change was introduced by the below commit, which stopped reading the string as a Lisp expression, and therefore at the same time broke the option of providing a list for #+ODT_STYLES_FILE. My patch last week fixed the list problem, but left the other change intact. (Sorry for not doing the research.) We could either update the manual and announce the syntax change, or revert ox-odt-template to before the below patch to bring the code back in conformity with the manual. I don't have a strong opinion one way or the other. I like the change (never liked those quotation marks), but it's backwards-incompatible, and the old code looks cleaner than my fix. Yours, Christian commit 30498ef932bc35c26e3e58278f4987a67480b446 Author: Charles Celerier Date: Sat Jul 28 17:09:16 2018 -0400 ox-odt: Fix `org-odt-template' styles file retrieval * lisp/ox-odt.el (org-odt-template): Fix `org-odt-template' styles file retrieval. TINYCHANGE Signed-off-by: Charles Celerier diff --git a/lisp/ox-odt.el b/lisp/ox-odt.el index a1145a9..74d811d 100644 --- a/lisp/ox-odt.el +++ b/lisp/ox-odt.el @@ -1359,11 +1359,10 @@ original parsed data. INFO is a plist holding export options." ;; Write styles file. (let* ((styles-file (plist-get info :odt-styles-file)) (styles-file (and (org-string-nw-p styles-file) - (read (org-trim styles-file)))) + (org-trim styles-file))) ;; Non-availability of styles.xml is not a critical ;; error. For now, throw an error. (styles-file (or styles-file - (plist-get info :odt-styles-file) (expand-file-name "OrgOdtStyles.xml" org-odt-styles-dir) (error "org-odt: Missing styles file?")))) L.C. Karssen writes: > On 06-11-18 16:35, Christian Moe wrote: >> >> I believe the need to use quotation marks around the style file name was >> removed at some point > > I didn't know that. I had a quick look at the changes to ox-odt.el for > the last few months, but it doesn't seem to be mentioned in any of the > commit messages. Or was this a more global change? > > Does this also count for the regular #+INCLUDE: statement? I just tested > it and for #+INCLUDE: it seems to work both with and without quotes > (although the manual uses quotes). > > > Best, > > Lennart. > >> , and the manual is out of date. Instead of >> >> #+ODT_STYLES_FILE: "template.ott" >> >> the manual ought now to read: >> >> #+ODT_STYLES_FILE: template.ott >> >> Yours, >> Christian >> >> L.C. Karssen writes: >> >>> Hi list, >>> >>> Not sure if this is related (or fixed with the aforementioned patch) >>> because I'm not using a list for the ODT style file. >>> >>> Today, after upgrading from Org 9.1.13 (actually installed from melpa on >>> 20180625) to melpa version 20181105 exporting to ODT stopped working. In >>> my org file the style file name was enclosed in double quotes (as >>> specified in the manual [1]): >>> >>> #+ODT_STYLES_FILE: "template.ott" >>> >>> The error message is: >>> >>> OpenDocument export failed: Invalid specification of styles.xml file: >>> "\"template.ott\"" >>> >>> Removing the quotes fixes the export to ODT. >>> >>> >>> Best regards, >>> >>> Lennart. >>> >>> [1] https://orgmode.org/org.html#Applying-custom-styles >>> >>> >>> On 05-11-18 09:49, Christian Moe wrote: >>>> >>>> Thanks, Nicolas! >>>> >>>> I'll test on my end when it shows up in ELPA. >>>> >>>> Yours, >>>> Christian >>>> >>>> Nicolas Goaziou writes: >>>> >>>>> Hello, >>>>> >>>>> Christian Moe writes: >>>>> >>>>>> It seems the ODT exporter currently fails to read the ODT_STYLES_FILE >>>>>> option as a list, as in this example from the manual >>>>>> ([[info:org#Applying custom styles]]): >>>>>> >>>>>> #+ODT_STYLES_FILE: ("/path/to/file.ott" ("styles.xml" "image/hdr.png")) >>>>>> >>>>>> This is needed if you want a complex style with e.g. an image in the >>>>>> header. >>>>>> >>>>>> Exporting this causes an "Invalid specification of styles.xml file" >>>>>> error on my recent ELPA version. The problem seems to be that the option >>>>>> is treated as a string and never tested to see if it contains a list. >>>>>> >>>>>> To reproduce the problem, place the attached documents >>>>>> odt-styles-test.org and odt-test-styles.odt in the same directory, then >>>>>> export odt-styles-test.org to ODT. The result should have a unicorn in >>>>>> the letterhead. >>>>>> >>>>>> The below quick-and-dirty patch seems to fix it, but I'm sure there's a >>>>>> better approach. >>>>> >>>>> Thank you. I applied your patch with an additional check: the value should >>>>> be enclosed within round brackets. >>>>> >>>>> Regards, >>>> >>>>