From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Dokos Subject: Re: Problems with org-publish w/ #+INCLUDE: Date: Sun, 16 Oct 2011 12:28:43 -0400 Message-ID: <31286.1318782523@alphaville.dokosmarshall.org> References: <87d3dx9oyh.fsf@systemhaus-brunner.de> Reply-To: nicholas.dokos@hp.com Return-path: Received: from eggs.gnu.org ([140.186.70.92]:44722) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFTZx-0004Pl-9a for emacs-orgmode@gnu.org; Sun, 16 Oct 2011 12:28:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFTZv-0000mV-J6 for emacs-orgmode@gnu.org; Sun, 16 Oct 2011 12:28:49 -0400 Received: from g5t0009.atlanta.hp.com ([15.192.0.46]:48559) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFTZv-0000mO-CX for emacs-orgmode@gnu.org; Sun, 16 Oct 2011 12:28:47 -0400 In-Reply-To: Message from daniel@dbrunner.de of "Sun, 16 Oct 2011 13:05:10 +0200." <87d3dx9oyh.fsf@systemhaus-brunner.de> 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: daniel@dbrunner.de Cc: nicholas.dokos@hp.com, emacs-orgmode@gnu.org daniel@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 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 >

Bar

> #+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 > >