[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish
From: |
Matt Lundin |
Subject: |
Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish |
Date: |
Tue, 29 Jul 2014 10:03:21 -0500 |
User-agent: |
Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.3 (gnu/linux) |
Bastien <address@hidden> writes:
> Hi Matt,
>
> Matt Lundin <address@hidden> writes:
>
>> This patch fixes a bug in which org-publish makes the following call...
>> (let ((org-inhibit-startup t) (org-mode)))
>
> Applied, thanks!
Oops... I see now that org-publish-find-date and org-publish-find-title
call org-export-get-environment. This in turn relies on org-set-local to
set #+BIND: variables, which requires the buffer to be writable. I have
an org-mode-hook that sets some of my web publishing files read-only (so
as to prevent accidental editing). Without org-inhibit-startup, these
buffers remain read-only, causing the following error message:
--8<---------------cut here---------------start------------->8---
org-export--get-global-options: Buffer is read-only: #<killed buffer>
--8<---------------cut here---------------end--------------->8---
This could be solved by wrapping org-export-get-environment withing
those functions with (let ((buffer-read-only nil)) ...).
However, I think the fundamental problem is that
org-export-get-environment should be called on a copy of the buffer.
That, at least, is how it is used in org-export-as (see lines 3084 -
3107 of ox.el). When org-publish-find-title and org-publish-call-date
calls it in a buffer that is already open, it does so on the original
copy of the buffer. This has the effect of setting the #+BIND variables
within the live buffer, which could (theoretically) be dangerous, since,
AFAICT, they should only be set in a temporary copy of the buffer.
So to be safe, we could do the following in org-publish-find-date and
org-publish-find-title...
(org-export-with-buffer-copy (org-export-get-environment))
What do you think?
Best,
Matt
- [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish, Matt Lundin, 2014/07/29
- Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish, Matt Lundin, 2014/07/29
- Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish, Bastien, 2014/07/29
- Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish, Matt Lundin, 2014/07/29
- Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish, Matt Lundin, 2014/07/29
- Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish, Bastien, 2014/07/29
- Re: [O] [PATCH] Remove unecesssary invocations of org-mode in ox-publish, Nicolas Goaziou, 2014/07/30