[O] Problems with org-publish w/ #+INCLUDE:

2011-10-16 Thread daniel
Hi!

And another problem after an upgrade vom V6.something to a 7.7
release: Org-mode version 7.7 (release_7.7.380.g54d7df). When I use the
org-publish to produce a set of HTML pages I run into a error. Here is
an example:

I have a file index.org:

--8--
#+TITLE: Foo!
#+AUTHOR:Daniel
#+EMAIL: daniel@monkey
#+DATE:  2011-10-14 Fr
#+INCLUDE: include.org

Export it!
--8--

Then I have a file include.org with all the options etc. (option
template included via C-c C-e t):

--8--
#+DESCRIPTION:
#+KEYWORDS:
#+LANGUAGE:  en
#+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t :t
#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 
path:http://orgmode.org/org-info.js
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+LINK_UP:   
#+LINK_HOME: 
#+XSLT:

#+BEGIN_HTML
  h1Bar/h1
#+END_HTML
--8--

Then I set the org-publish-project-alist:

--8--
(require 'org-publish)
(setq org-publish-project-alist
  (list (list foo
  :base-directory /home/dbr/tmp/omtests
  :base-extension org
  :publishing-directory /home/dbr/tmp/omtests/pub
  :publishing-function 'org-publish-org-to-html)))
--8--

Org-publish is from the 7.7 distribution directory. Then I visit
index.org and do a C-c C-e P and run in the following error:

--8--
Debugger entered--Lisp error: (wrong-type-argument integerp nil)
  lsh(nil 16)
  org-publish-cache-ctime-of-src(/home/dbr/tmp/omtests/include.org\n\nExport)
  org-publish-cache-file-needs-publishing(/home/dbr/tmp/omtests/index.org 
/home/dbr/tmp/omtests/pub/ org-publish-org-to-html)
  org-publish-needed-p(/home/dbr/tmp/omtests/index.org 
/home/dbr/tmp/omtests/pub/ org-publish-org-to-html 
/home/dbr/tmp/omtests/pub/)
  org-publish-file(/home/dbr/tmp/omtests/index.org (foo :base-directory 
/home/dbr/tmp/omtests :base-extension org :publishing-directory 
/home/dbr/tmp/omtests/pub :publishing-function org-publish-org-to-html) t)
  #[(project) @!ˆAÇ  \Ç \Ç \†   \†#ÍÇ  \†-  \†8!\
\ \\n\#$ƒXÔ!ˆƒa
\f\ˆ#‰A#@‰$ƒxÖ$#ˆ‚aÇ \ƒ’Ù   \!ˆÛÇ  \\#ˆƒ›Ô!ˆ .‡ [project 
project-plist exclude-regexp sitemap-p sitemap-filename sitemap-function 
org-publish-initialize-cache plist-get :exclude :auto-sitemap :sitemap-filename 
sitemap.org :sitemap-function org-publish-org-sitemap :sitemap-date-format 
:sitemap-file-entry-format :preparation-function :completion-function 
org-publish-get-base-files nil run-hooks preparation-function org-publish-file 
t :makeindex org-publish-index-generate-theindex :base-directory 
expand-file-name theindex.org completion-function 
org-publish-write-cache-file org-publish-sitemap-date-format 
org-sitemap-date-format org-publish-sitemap-file-entry-format 
org-sitemap-file-entry-format files file] 6]((foo :base-directory 
/home/dbr/tmp/omtests :base-extension org :publishing-directory 
/home/dbr/tmp/omtests/pub :publishing-function org-publish-org-to-html))
  mapc(#[(project) @!ˆAÇ \Ç \Ç \†   \†#ÍÇ  \†-  
\†8!\\ \\n\#$ƒXÔ!ˆƒa
\f\ˆ#‰A#@‰$ƒxÖ$#ˆ‚aÇ \ƒ’Ù   \!ˆÛÇ  \\#ˆƒ›Ô!ˆ .‡ [project 
project-plist exclude-regexp sitemap-p sitemap-filename sitemap-function 
org-publish-initialize-cache plist-get :exclude :auto-sitemap :sitemap-filename 
sitemap.org :sitemap-function org-publish-org-sitemap :sitemap-date-format 
:sitemap-file-entry-format :preparation-function :completion-function 
org-publish-get-base-files nil run-hooks preparation-function org-publish-file 
t :makeindex org-publish-index-generate-theindex :base-directory 
expand-file-name theindex.org completion-function 
org-publish-write-cache-file org-publish-sitemap-date-format 
org-sitemap-date-format org-publish-sitemap-file-entry-format 
org-sitemap-file-entry-format files file] 6] ((foo :base-directory 
/home/dbr/tmp/omtests :base-extension org :publishing-directory 
/home/dbr/tmp/omtests/pub :publishing-function org-publish-org-to-html)))
  org-publish-projects(((foo :base-directory /home/dbr/tmp/omtests 
:base-extension org :publishing-directory /home/dbr/tmp/omtests/pub 
:publishing-function org-publish-org-to-html)))
  byte-code(?…   Ä\n;ƒ\n\C‚\nC!)‡ [force 
org-publish-use-timestamps-flag project org-publish-project-alist 
org-publish-projects assoc] 4)
  org-publish((foo :base-directory /home/dbr/tmp/omtests :base-extension 
org :publishing-directory /home/dbr/tmp/omtests/pub :publishing-function 
org-publish-org-to-html))
  byte-code(Ä \?…   ‰„Ç \ˆ\n!*‡ [force org-publish-use-timestamps-flag 
project org-publish-get-project-from-filename buffer-file-name up error File 
%s is not part of any known project org-publish] 4)
  org-publish-current-project(nil)
  call-interactively(org-publish-current-project)
  org-export(nil)
  call-interactively(org-export nil nil)
--8--

It seemed that due to the #+INCLUDE tag the
org-publish-cache-file-need-publishing gets a bit 

Re: [O] Problems with org-publish w/ #+INCLUDE:

2011-10-16 Thread Nick Dokos
dan...@dbrunner.de wrote:

 Hi!
 
 And another problem after an upgrade vom V6.something to a 7.7
 release: Org-mode version 7.7 (release_7.7.380.g54d7df). When I use the
 org-publish to produce a set of HTML pages I run into a error. Here is
 an example:
 

An *exemplary* bug report: an ECM to reproduce the problem and a
backtrace - what more can one ask for? Thank you!

I could not reproduce the problem at first, but it turned out that I had
gone back to org 7.6 to test something and forgot to move forward again.
On Org-mode version 7.7 (release_7.7.349.g3d835.dirty), I can reproduce
it: the first time I publish the project I get the error. If I force
republication, the error does not arise again - I haven't looked at why
that is, but the initial failure seems to be caused by a change in the
regexp on line 1109 of org-publish.el: if you look at the argument of
org-publish-cache-ctime-of-src in the backtrace, you can see that it's
not just the #+INCLUDE: filename, but some additional lines in the
including file as well.

I haven't checked yet but it would seem that the following commit
introduced the problem:

--8---cut here---start-8---
commit 920cf53e686daea4f406aa237b48fe2ef4730426
Author: Jon Anders Skorpen jo...@ifi.uio.no
Date:   Sat Jul 16 17:22:07 2011 +

org-publish: Fix regexp for include files

* org-publish.el (org-publish-cache-file-needs-publishing): Regexp did
  not find includes with double quoted file names.

TINYCHANGE

diff --git a/lisp/org-publish.el b/lisp/org-publish.el
index b8e932d..9654a6d 100644
--- a/lisp/org-publish.el
+++ b/lisp/org-publish.el
@@ -1108,7 +1108,7 @@ (defun org-publish-cache-file-needs-publishing (filename 
optional pub-dir pub-f
   (when (equal (file-name-extension filename) org)
(find-file (expand-file-name filename))
(goto-char (point-min))
-   (while (re-search-forward ^#\\+INCLUDE: \\(.+\\)[ ^\t]*$ nil t)
+   (while (re-search-forward ^#\\+INCLUDE:[ \t]+\?\\([^ \t\]*\\)\?[ 
\t]*.*$ nil t)
  (let* ((included-file (expand-file-name (match-string 1
(add-to-list 'included-files-ctime
 (org-publish-cache-ctime-of-src included-file) t)
--8---cut here---end---8---

Nick


 I have a file index.org:
 
 --8--
 #+TITLE: Foo!
 #+AUTHOR:Daniel
 #+EMAIL: daniel@monkey
 #+DATE:  2011-10-14 Fr
 #+INCLUDE: include.org
 
 Export it!
 --8--
 
 Then I have a file include.org with all the options etc. (option
 template included via C-c C-e t):
 
 --8--
 #+DESCRIPTION:
 #+KEYWORDS:
 #+LANGUAGE:  en
 #+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t :t
 #+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
 #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http:/=
 /orgmode.org/org-info.js
 #+EXPORT_SELECT_TAGS: export
 #+EXPORT_EXCLUDE_TAGS: noexport
 #+LINK_UP:=20=20=20
 #+LINK_HOME:=20
 #+XSLT:
 
 #+BEGIN_HTML
   h1Bar/h1
 #+END_HTML
 --8--
 
 Then I set the org-publish-project-alist:
 
 --8--
 (require 'org-publish)
 (setq org-publish-project-alist
   (list (list foo
 :base-directory /home/dbr/tmp/omtests
 :base-extension org
 :publishing-directory /home/dbr/tmp/omtests/pub
 :publishing-function 'org-publish-org-to-html)))
 --8--
 
 Org-publish is from the 7.7 distribution directory. Then I visit
 index.org and do a C-c C-e P and run in the following error:
 
 --8--
 Debugger entered--Lisp error: (wrong-type-argument integerp nil)
   lsh(nil 16)
   org-publish-cache-ctime-of-src(/home/dbr/tmp/omtests/include.org\n\nExpo=
 rt)
   org-publish-cache-file-needs-publishing(/home/dbr/tmp/omtests/index.org=
  /home/dbr/tmp/omtests/pub/ org-publish-org-to-html)
   org-publish-needed-p(/home/dbr/tmp/omtests/index.org /home/dbr/tmp/omt=
 ests/pub/ org-publish-org-to-html /home/dbr/tmp/omtests/pub/)
   org-publish-file(/home/dbr/tmp/omtests/index.org (foo :base-directory=
  /home/dbr/tmp/omtests :base-extension org :publishing-directory /home=
 /dbr/tmp/omtests/pub :publishing-function org-publish-org-to-html) t)
   #[(project) @!=88A=C7\=C7   \=C7   \=86=00=1C \=86#=CD=C7
 \=86-=0E=
 =1F   \=868=0E!\\=15   
 \=1D\n\#=1E$=15=83X=D4!=88=0B=83a=0D\f\=88#=89=
 A#@=89$=83x=D6$#=88=82a=C7   \=83=92=D9 \!=88=DB=C7
 \\#=88=1D=83=9B=D4!=
 =88 .=0B=87 [project project-plist exclude-regexp sitemap-p sitemap-filena=
 me sitemap-function org-publish-initialize-cache plist-get :exclude :auto-s=
 itemap :sitemap-filename sitemap.org :sitemap-function org-publish-org-si=
 temap :sitemap-date-format :sitemap-file-entry-format :preparation-function=
  :completion-function org-publish-get-base-files nil run-hooks preparation-=
 function org-publish-file t :makeindex org-publish-index-generate-theindex =
 :base-directory expand-file-name theindex.org 

Re: [O] Problems with org-publish w/ #+INCLUDE:

2011-10-16 Thread Carsten Dominik

On 16.10.2011, at 18:28, Nick Dokos wrote:

 dan...@dbrunner.de wrote:
 
 Hi!
 
 And another problem after an upgrade vom V6.something to a 7.7
 release: Org-mode version 7.7 (release_7.7.380.g54d7df). When I use the
 org-publish to produce a set of HTML pages I run into a error. Here is
 an example:
 
 
 An *exemplary* bug report: an ECM to reproduce the problem and a
 backtrace - what more can one ask for? Thank you!
 
 I could not reproduce the problem at first, but it turned out that I had
 gone back to org 7.6 to test something and forgot to move forward again.
 On Org-mode version 7.7 (release_7.7.349.g3d835.dirty), I can reproduce
 it: the first time I publish the project I get the error. If I force
 republication, the error does not arise again - I haven't looked at why
 that is, but the initial failure seems to be caused by a change in the
 regexp on line 1109 of org-publish.el: if you look at the argument of
 org-publish-cache-ctime-of-src in the backtrace, you can see that it's
 not just the #+INCLUDE: filename, but some additional lines in the
 including file as well.
 
 I haven't checked yet but it would seem that the following commit
 introduced the problem:

This should be fixed now, please verify.

- Carsten

 
 --8---cut here---start-8---
 commit 920cf53e686daea4f406aa237b48fe2ef4730426
 Author: Jon Anders Skorpen jo...@ifi.uio.no
 Date:   Sat Jul 16 17:22:07 2011 +
 
org-publish: Fix regexp for include files
 
* org-publish.el (org-publish-cache-file-needs-publishing): Regexp did
  not find includes with double quoted file names.
 
TINYCHANGE
 
 diff --git a/lisp/org-publish.el b/lisp/org-publish.el
 index b8e932d..9654a6d 100644
 --- a/lisp/org-publish.el
 +++ b/lisp/org-publish.el
 @@ -1108,7 +1108,7 @@ (defun org-publish-cache-file-needs-publishing 
 (filename optional pub-dir pub-f
   (when (equal (file-name-extension filename) org)
   (find-file (expand-file-name filename))
   (goto-char (point-min))
 - (while (re-search-forward ^#\\+INCLUDE: \\(.+\\)[ ^\t]*$ nil t)
 + (while (re-search-forward ^#\\+INCLUDE:[ \t]+\?\\([^ \t\]*\\)\?[ 
 \t]*.*$ nil t)
 (let* ((included-file (expand-file-name (match-string 1
   (add-to-list 'included-files-ctime
(org-publish-cache-ctime-of-src included-file) t)
 --8---cut here---end---8---
 
 Nick
 
 
 I have a file index.org:
 
 --8--
 #+TITLE: Foo!
 #+AUTHOR:Daniel
 #+EMAIL: daniel@monkey
 #+DATE:  2011-10-14 Fr
 #+INCLUDE: include.org
 
 Export it!
 --8--
 
 Then I have a file include.org with all the options etc. (option
 template included via C-c C-e t):
 
 --8--
 #+DESCRIPTION:
 #+KEYWORDS:
 #+LANGUAGE:  en
 #+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t :t
 #+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
 #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http:/=
 /orgmode.org/org-info.js
 #+EXPORT_SELECT_TAGS: export
 #+EXPORT_EXCLUDE_TAGS: noexport
 #+LINK_UP:=20=20=20
 #+LINK_HOME:=20
 #+XSLT:
 
 #+BEGIN_HTML
  h1Bar/h1
 #+END_HTML
 --8--
 
 Then I set the org-publish-project-alist:
 
 --8--
 (require 'org-publish)
 (setq org-publish-project-alist
  (list (list foo
:base-directory /home/dbr/tmp/omtests
:base-extension org
:publishing-directory /home/dbr/tmp/omtests/pub
:publishing-function 'org-publish-org-to-html)))
 --8--
 
 Org-publish is from the 7.7 distribution directory. Then I visit
 index.org and do a C-c C-e P and run in the following error:
 
 --8--
 Debugger entered--Lisp error: (wrong-type-argument integerp nil)
  lsh(nil 16)
  org-publish-cache-ctime-of-src(/home/dbr/tmp/omtests/include.org\n\nExpo=
 rt)
  org-publish-cache-file-needs-publishing(/home/dbr/tmp/omtests/index.org=
 /home/dbr/tmp/omtests/pub/ org-publish-org-to-html)
  org-publish-needed-p(/home/dbr/tmp/omtests/index.org /home/dbr/tmp/omt=
 ests/pub/ org-publish-org-to-html /home/dbr/tmp/omtests/pub/)
  org-publish-file(/home/dbr/tmp/omtests/index.org (foo :base-directory=
 /home/dbr/tmp/omtests :base-extension org :publishing-directory /home=
 /dbr/tmp/omtests/pub :publishing-function org-publish-org-to-html) t)
  #[(project) @!=88A=C7\=C7   \=C7   \=86=00=1C \=86#=CD=C7
 \=86-=0E=
 =1F  \=868=0E!\\=15   
 \=1D\n\#=1E$=15=83X=D4!=88=0B=83a=0D\f\=88#=89=
 A#@=89$=83x=D6$#=88=82a=C7  \=83=92=D9 \!=88=DB=C7
 \\#=88=1D=83=9B=D4!=
 =88 .=0B=87 [project project-plist exclude-regexp sitemap-p sitemap-filena=
 me sitemap-function org-publish-initialize-cache plist-get :exclude :auto-s=
 itemap :sitemap-filename sitemap.org :sitemap-function org-publish-org-si=
 temap :sitemap-date-format :sitemap-file-entry-format :preparation-function=
 :completion-function org-publish-get-base-files nil run-hooks preparation-=
 function org-publish-file t 

Re: [O] Problems with org-publish w/ #+INCLUDE:

2011-10-16 Thread Daniel Brunner
Carsten Dominik carsten.domi...@gmail.com writes:

(...)

 This should be fixed now, please verify.

 - Carsten


Hi, 

thanks for the fast fix. I tested it with the test case and with my
working environment and the fix seems to work! Thanks a lot!

Best wishes, Daniel.




Re: [O] Problems with org-publish w/ #+INCLUDE:

2011-10-16 Thread Nick Dokos
Carsten Dominik carsten.domi...@gmail.com wrote:

  I haven't checked yet but it would seem that the following commit
  introduced the problem:
 
 This should be fixed now, please verify.
 

Works fine for me.

Thanks,
Nick

 - Carsten
 
 =20
  --8---cut here---start-8---
  commit 920cf53e686daea4f406aa237b48fe2ef4730426
  Author: Jon Anders Skorpen jo...@ifi.uio.no
  Date:   Sat Jul 16 17:22:07 2011 +
 =20
 org-publish: Fix regexp for include files
 =20
 * org-publish.el (org-publish-cache-file-needs-publishing): Regexp =
 did
   not find includes with double quoted file names.
 =20
 TINYCHANGE
 =20
  diff --git a/lisp/org-publish.el b/lisp/org-publish.el
  index b8e932d..9654a6d 100644
  --- a/lisp/org-publish.el
  +++ b/lisp/org-publish.el
  @@ -1108,7 +1108,7 @@ (defun org-publish-cache-file-needs-publishing =
 (filename optional pub-dir pub-f
(when (equal (file-name-extension filename) org)
  (find-file (expand-file-name filename))
  (goto-char (point-min))
  -   (while (re-search-forward ^#\\+INCLUDE: \\(.+\\)[ ^\t]*$ nil =
 t)
  +   (while (re-search-forward ^#\\+INCLUDE:[ \t]+\?\\([^ =
 \t\]*\\)\?[ \t]*.*$ nil t)
(let* ((included-file (expand-file-name (match-string 1
  (add-to-list 'included-files-ctime
   (org-publish-cache-ctime-of-src included-file) =
 t)
  --8---cut here---end---8---
 =20
  Nick
 =20
 =20
  I have a file index.org:
 =20
  --8--
  #+TITLE: Foo!
  #+AUTHOR:Daniel
  #+EMAIL: daniel@monkey
  #+DATE:  2011-10-14 Fr
  #+INCLUDE: include.org
 =20
  Export it!
  --8--
 =20
  Then I have a file include.org with all the options etc. (option
  template included via C-c C-e t):
 =20
  --8--
  #+DESCRIPTION:
  #+KEYWORDS:
  #+LANGUAGE:  en
  #+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t :t
  #+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil =
 tags:not-in-toc
  #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 =
 path:http:/=3D
  /orgmode.org/org-info.js
  #+EXPORT_SELECT_TAGS: export
  #+EXPORT_EXCLUDE_TAGS: noexport
  #+LINK_UP:=3D20=3D20=3D20
  #+LINK_HOME:=3D20
  #+XSLT:
 =20
  #+BEGIN_HTML
   h1Bar/h1
  #+END_HTML
  --8--
 =20
  Then I set the org-publish-project-alist:
 =20
  --8--
  (require 'org-publish)
  (setq org-publish-project-alist
   (list (list foo
   :base-directory /home/dbr/tmp/omtests
   :base-extension org
   :publishing-directory /home/dbr/tmp/omtests/pub
   :publishing-function 'org-publish-org-to-html)))
  --8--
 =20
  Org-publish is from the 7.7 distribution directory. Then I visit
  index.org and do a C-c C-e P and run in the following error:
 =20
  --8--
  Debugger entered--Lisp error: (wrong-type-argument integerp nil)
   lsh(nil 16)
   =
 org-publish-cache-ctime-of-src(/home/dbr/tmp/omtests/include.org\n\nExpo=3D=
 
  rt)
   =
 org-publish-cache-file-needs-publishing(/home/dbr/tmp/omtests/index.org=3D=
 
  /home/dbr/tmp/omtests/pub/ org-publish-org-to-html)
   org-publish-needed-p(/home/dbr/tmp/omtests/index.org =
 /home/dbr/tmp/omt=3D
  ests/pub/ org-publish-org-to-html /home/dbr/tmp/omtests/pub/)
   org-publish-file(/home/dbr/tmp/omtests/index.org (foo =
 :base-directory=3D
  /home/dbr/tmp/omtests :base-extension org :publishing-directory =
 /home=3D
  /dbr/tmp/omtests/pub :publishing-function org-publish-org-to-html) =
 t)
   #[(project) =08@!=3D88=08A=3DC7  \=3DC7 \=3DC7 \=3D86=3D00=3D1C   
  =
 \=3D86#=3DCD=3DC7\=3D86-=3D0E=3D
  =3D1F  \=3D868=3D0E!\\=3D15 =
 \=3D1D=08\n\#=3D1E$=3D15=3D83X=3DD4!=3D88=3D0B=3D83a=3D0D=08\f\=3D88#=3D=
 89=3D
  A#@=3D89$=3D83x=3DD6$=08#=3D88=3D82a=3DC7  \=3D83=3D92=3DD9   =
 \!=3D88=3DDB=3DC7\\=08#=3D88=3D1D=3D83=3D9B=3DD4!=3D
  =3D88 .=3D0B=3D87 [project project-plist exclude-regexp sitemap-p =
 sitemap-filena=3D
  me sitemap-function org-publish-initialize-cache plist-get :exclude =
 :auto-s=3D
  itemap :sitemap-filename sitemap.org :sitemap-function =
 org-publish-org-si=3D
  temap :sitemap-date-format :sitemap-file-entry-format =
 :preparation-function=3D
  :completion-function org-publish-get-base-files nil run-hooks =
 preparation-=3D
  function org-publish-file t :makeindex =
 org-publish-index-generate-theindex =3D
  :base-directory expand-file-name theindex.org completion-function =
 org-pub=3D
  lish-write-cache-file org-publish-sitemap-date-format =
 org-sitemap-date-form=3D
  at org-publish-sitemap-file-entry-format =
 org-sitemap-file-entry-format file=3D
  s file] 6]((foo :base-directory /home/dbr/tmp/omtests =
 :base-extension =3D
  org :publishing-directory /home/dbr/tmp/omtests/pub =
 :publishing-function=3D
  org-publish-org-to-html))
   mapc(#[(project) =08@!=3D88=08A=3DC7 \=3DC7 \=3DC7 =
 \=3D86=3D00=3D1C \=3D86#=3DCD=3DC7  \=3D86-=3D
  =3D0E=3D1F \=3D868=3D0E!\\=3D15 =