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 +0000 > > 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 >> <h1>Bar</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" completion-function org-pub= >> lish-write-cache-file org-publish-sitemap-date-format org-sitemap-date-form= >> at org-publish-sitemap-file-entry-format org-sitemap-file-entry-format file= >> s 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) "@!=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#= >> =89A#@=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-fi= >> lename sitemap-function org-publish-initialize-cache plist-get :exclude :au= >> to-sitemap :sitemap-filename "sitemap.org" :sitemap-function org-publish-or= >> g-sitemap :sitemap-date-format :sitemap-file-entry-format :preparation-func= >> tion :completion-function org-publish-get-base-files nil run-hooks preparat= >> ion-function org-publish-file t :makeindex org-publish-index-generate-thein= >> dex :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-extens= >> ion "org" :publishing-directory "/home/dbr/tmp/omtests/pub" :publishing-fun= >> ction org-publish-org-to-html))) >> org-publish-projects((("foo" :base-directory "/home/dbr/tmp/omtests" :bas= >> e-extension "org" :publishing-directory "/home/dbr/tmp/omtests/pub" :publis= >> hing-function org-publish-org-to-html))) >> byte-code("?=85=00 =C4\n;=83=00\n=0B\"C=82=00\nC!)=87" [force org-publis= >> h-use-timestamps-flag project org-publish-project-alist org-publish-project= >> s assoc] 4) >> org-publish(("foo" :base-directory "/home/dbr/tmp/omtests" :base-extensio= >> n "org" :publishing-directory "/home/dbr/tmp/omtests/pub" :publishing-funct= >> ion org-publish-org-to-html)) >> byte-code("=C4 \"?=85=0B =89=84=00=C7 \"=88\n!*=87" [force org-publish-u= >> se-timestamps-flag project org-publish-get-project-from-filename buffer-fil= >> e-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 confused with the >> filename and tries to call org-publish-cache-ctime-of-src with the file >> name plus a string "\n\nExport" which are the next three lines of the >> org file index.org.=20 >> >> Am I doing something wrong?=20 >> >> >> Kind regards, Daniel >> >> >