Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-19 Thread Nicolas Goaziou
Hello,

"L.C. Karssen"  writes:

> I saw you changed a couple of things in the ODT exporter code recently.
> I installed version (9.1.14-9-g131531-elpa today to see if those
> commits

This is not git HEAD, only the latest stable release. Could you try
development version instead?

Regards,

-- 
Nicolas Goaziou



Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-19 Thread L.C. Karssen
Dear Nicolas,

I saw you changed a couple of things in the ODT exporter code recently.
I installed version (9.1.14-9-g131531-elpa today to see if those commits
fixed the issue(s) discussed in this thread. However, exporting to ODT
with a quoted template file name (#+ODT_STYLES_FILE) still doesn't work.
The window is split and a new (empty) buffer is created. The following
error message appears in *Messages* (note the escaped double quotes):

OpenDocument export failed: Invalid specification of styles.xml file:
"\"my_template.ott\""

The name of the newly created buffer is identical to this message.


The export works when the style file is not enclosed in double quotes.


Best regards,

Lennart.

On 10-11-18 09:16, Nicolas Goaziou wrote:
> Hello,
> 
> "L.C. Karssen"  writes:
> 
>> Taking the risk that the manual is lagging behind the actual code, I see
>> the following:
>>
>> #+ODT_STYLES_FILE:uses quotes
>>
>> #+INCLUDE:uses quotes
>> #+TEXINFO_FILENAME:   doesn't use quotes [1]
>>
>> #+SETUPFILE:  no example in the manual
>> #+HTML_INCLUDE_STYLE: no example in the manual, not sure if this
>>
>> requires a file or CSS code
>>
>> Another point to consider: would requiring quoted filenames make life
>> easier for people using spaces etc. in their filenames? In that case I'd
>> vote for quotes.
> 
> Org allows both quoted and unquoted filenames. It is a bug if you spot
> a location where it is not the case. I fixed TEXINFO_FILENAME.
> 
> HTML_INCLUDE_STYLE keyword doesn't exist anymore.
> 
> It doesn't matter which type the manual uses, IMO.
> 
> Regards,
> 

-- 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
L.C. Karssen
's-Hertogenbosch
The Netherlands

lenn...@karssen.org
http://blog.karssen.org
GPG key ID: A88F554A
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



signature.asc
Description: OpenPGP digital signature


Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-10 Thread Nicolas Goaziou
Hello,

"L.C. Karssen"  writes:

> Taking the risk that the manual is lagging behind the actual code, I see
> the following:
>
> #+ODT_STYLES_FILE:uses quotes
>
> #+INCLUDE:uses quotes
> #+TEXINFO_FILENAME:   doesn't use quotes [1]
>
> #+SETUPFILE:  no example in the manual
> #+HTML_INCLUDE_STYLE: no example in the manual, not sure if this
>
> requires a file or CSS code
>
> Another point to consider: would requiring quoted filenames make life
> easier for people using spaces etc. in their filenames? In that case I'd
> vote for quotes.

Org allows both quoted and unquoted filenames. It is a bug if you spot
a location where it is not the case. I fixed TEXINFO_FILENAME.

HTML_INCLUDE_STYLE keyword doesn't exist anymore.

It doesn't matter which type the manual uses, IMO.

Regards,

-- 
Nicolas Goaziou



Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-07 Thread L.C. Karssen
Thanks for digging into this Christian.

My lisp skills are quite undeveloped, so I can't really comment on the
code. I had a look at the manual and I think we should go for a solution
that is consistent for #+ keywords that have a filename argument like
#+INCLUDE:, #+SETUPFILE and #+TEXINFO_FILENAME.

Taking the risk that the manual is lagging behind the actual code, I see
the following:

#+ODT_STYLES_FILE:uses quotes
#+INCLUDE:uses quotes
#+TEXINFO_FILENAME:   doesn't use quotes [1]
#+SETUPFILE:  no example in the manual
#+HTML_INCLUDE_STYLE: no example in the manual, not sure if this
requires a file or CSS code

Another point to consider: would requiring quoted filenames make life
easier for people using spaces etc. in their filenames? In that case I'd
vote for quotes.


Best,

Lennart.

[1] https://orgmode.org/org.html#A-Texinfo-example

On 07-11-18 09:28, Christian Moe wrote:
> 
> 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  

Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-07 Thread 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.
>

Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-06 Thread L.C. Karssen

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,
>>>
>>>

-- 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
L.C. Karssen
's-Hertogenbosch
The Netherlands

lenn...@karssen.org
http://blog.karssen.org
GPG key ID: A88F554A
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



signature.asc
Description: OpenPGP digital signature


Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-06 Thread Christian Moe


I believe the need to use quotation marks around the style file name was
removed at some point, 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,
>>
>>



Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-06 Thread L.C. Karssen
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,
> 
> 

-- 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
L.C. Karssen
's-Hertogenbosch
The Netherlands

lenn...@karssen.org
http://blog.karssen.org
GPG key ID: A88F554A
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



signature.asc
Description: OpenPGP digital signature


Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-05 Thread Christian Moe


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,




Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-11-04 Thread Nicolas Goaziou
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,

-- 
Nicolas Goaziou



Re: [O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-10-30 Thread Christian Moe

Sorry, forgot to attach the test files.

#+title: ODT styles test
#+ODT_STYLES_FILE: ("odt-test-styles.odt" ("styles.xml" "Pictures/120100A200B0A7D655E3F0A97ECF.png"))



Place this Org file in the same directory as the
accompanying file odt-test-styles.odt and export it to ODT.

Expected result: the exported document has a picture of the Org
unicorn in the header.

The ODT_STYLES_FILE option is set correctly according to
[[info:org#Applying%20custom%20styles][info:org#Applying custom styles]]. It references another ODT document
providing the custom styles to apply to this document, including an
image to be used in the header.


odt-test-styles.odt
Description: application/vnd.oasis.opendocument.text


[O] [BUG][ODT] ODT_STYLES_FILE not read as a list

2018-10-30 Thread Christian Moe
Hi,

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.

*** /home/cm/.emacs.d/elpa/org-20180924/ox-odt.el   2018-09-27 
13:38:07.644922989 +0200
--- /home/cm/Downloads/ox-odt.el2018-10-30 21:18:44.827975243 +0100
***
*** 1360,1365 
--- 1360,1368 
(let* ((styles-file (plist-get info :odt-styles-file))
 (styles-file (and (org-string-nw-p styles-file)
   (org-trim styles-file)))
+;; Try reading it as a list
+(styles-expr (car (read-from-string styles-file)))
+(styles-file (if (listp styles-expr) styles-expr styles-file)
 ;; Non-availability of styles.xml is not a critical
 ;; error. For now, throw an error.
 (styles-file (or styles-file