From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Problems with org-publish w/ #+INCLUDE: Date: Sun, 16 Oct 2011 20:00:49 +0200 Message-ID: <55C20239-CFB5-4B5A-B945-8ABC8EBBD4D2@gmail.com> References: <87d3dx9oyh.fsf@systemhaus-brunner.de> <31286.1318782523@alphaville.dokosmarshall.org> Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:59344) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFV17-0006Uw-Gn for emacs-orgmode@gnu.org; Sun, 16 Oct 2011 14:00:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFV15-0000An-Ni for emacs-orgmode@gnu.org; Sun, 16 Oct 2011 14:00:57 -0400 Received: from mail-ey0-f169.google.com ([209.85.215.169]:39119) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFV15-0000Ad-EW for emacs-orgmode@gnu.org; Sun, 16 Oct 2011 14:00:55 -0400 Received: by eye4 with SMTP id 4so2629747eye.0 for ; Sun, 16 Oct 2011 11:00:54 -0700 (PDT) In-Reply-To: <31286.1318782523@alphaville.dokosmarshall.org> 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: nicholas.dokos@hp.com Cc: emacs-orgmode@gnu.org, daniel@dbrunner.de On 16.10.2011, at 18:28, Nick Dokos wrote: > daniel@dbrunner.de wrote: >=20 >> Hi! >>=20 >> 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: >>=20 >=20 > An *exemplary* bug report: an ECM to reproduce the problem and a > backtrace - what more can one ask for? Thank you! >=20 > 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. >=20 > I haven't checked yet but it would seem that the following commit > introduced the problem: This should be fixed now, please verify. - Carsten >=20 > --8<---------------cut here---------------start------------->8--- > commit 920cf53e686daea4f406aa237b48fe2ef4730426 > Author: Jon Anders Skorpen > Date: Sat Jul 16 17:22:07 2011 +0000 >=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 >>

Bar

>> #+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 = \"=3D1D=08\n\"#=3D1E$=3D15=3D83X=3DD4!=3D88=3D0B=3D83a=3D0D=08\f\"=3D88#=3D= >> =3D89A#@=3D89$=3D83x=3DD6$=08#=3D88=3D82a=3DC7 \"=3D83=3D92=3DD9 = \"!=3D88=3DDB=3DC7 \"\"=08#=3D88=3D1D=3D83=3D9B=3D >> =3DD4!=3D88 .=3D0B=3D87" [project project-plist exclude-regexp = sitemap-p sitemap-fi=3D >> lename sitemap-function org-publish-initialize-cache plist-get = :exclude :au=3D >> to-sitemap :sitemap-filename "sitemap.org" :sitemap-function = org-publish-or=3D >> g-sitemap :sitemap-date-format :sitemap-file-entry-format = :preparation-func=3D >> tion :completion-function org-publish-get-base-files nil run-hooks = preparat=3D >> ion-function org-publish-file t :makeindex = org-publish-index-generate-thein=3D >> dex :base-directory expand-file-name "theindex.org" = completion-function org=3D >> -publish-write-cache-file org-publish-sitemap-date-format = org-sitemap-date-=3D >> format org-publish-sitemap-file-entry-format = org-sitemap-file-entry-format =3D >> files file] 6] (("foo" :base-directory "/home/dbr/tmp/omtests" = :base-extens=3D >> ion "org" :publishing-directory "/home/dbr/tmp/omtests/pub" = :publishing-fun=3D >> ction org-publish-org-to-html))) >> org-publish-projects((("foo" :base-directory "/home/dbr/tmp/omtests" = :bas=3D >> e-extension "org" :publishing-directory "/home/dbr/tmp/omtests/pub" = :publis=3D >> hing-function org-publish-org-to-html))) >> byte-code("=08?=3D85=3D00 =3DC4\n;=3D83=3D00\n=3D0B\"C=3D82=3D00\nC!= )=3D87" [force org-publis=3D >> h-use-timestamps-flag project org-publish-project-alist = org-publish-project=3D >> s assoc] 4) >> org-publish(("foo" :base-directory "/home/dbr/tmp/omtests" = :base-extensio=3D >> n "org" :publishing-directory "/home/dbr/tmp/omtests/pub" = :publishing-funct=3D >> ion org-publish-org-to-html)) >> byte-code("=3DC4 \"=08?=3D85=3D0B =3D89=3D84=3D00=3DC7 = \"=3D88\n!*=3D87" [force org-publish-u=3D >> se-timestamps-flag project org-publish-get-project-from-filename = buffer-fil=3D >> 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<-- >>=20 >> 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.=3D20 >>=20 >> Am I doing something wrong?=3D20 >>=20 >>=20 >> Kind regards, Daniel >>=20 >>=20 >=20