From mboxrd@z Thu Jan 1 00:00:00 1970 From: David O'Toole Subject: [Orgmode] Re: Problem with org-publish-get-plists Date: Wed, 06 Sep 2006 16:31:55 -0400 Message-ID: References: <44d0d9630608251058s4e61f9c7mfec5b01389367630@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GL441-0000qS-CB for emacs-orgmode@gnu.org; Wed, 06 Sep 2006 16:32:01 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GL43z-0000n4-5M for emacs-orgmode@gnu.org; Wed, 06 Sep 2006 16:32:00 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GL43y-0000mT-RT for emacs-orgmode@gnu.org; Wed, 06 Sep 2006 16:31:58 -0400 Received: from [66.249.82.229] (helo=wx-out-0506.google.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1GL44C-0005rM-Ed for emacs-orgmode@gnu.org; Wed, 06 Sep 2006 16:32:12 -0400 Received: by wx-out-0506.google.com with SMTP id i26so3403729wxd for ; Wed, 06 Sep 2006 13:31:57 -0700 (PDT) In-Reply-To: <44d0d9630608251058s4e61f9c7mfec5b01389367630@mail.gmail.com> (Ed Hirgelt's message of "Fri, 25 Aug 2006 10:58:11 -0700") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Ed Hirgelt Cc: emacs-orgmode@gnu.org Sorry for the late reply. I have incorporated your bugfix into the latest version of org-publish.el and will publish the updated code on my website shortly. Thanks so much for your debugging! "Ed Hirgelt" writes: > I was having problems publishing with 2 projects in the project list. > I tracked it down to the org-publish-files hash table. All the files > from both projects were mapped to the same project, the last one. > This was caused by org-publish-get-plists. Below is the modified > version that seems to work nicely for me. > > The trick as that plists was getting appended to each time through the > loop which is great for the return value, but the loop over the > content of plists assumed that project applied to all. This change > uses single to be the current element in plists. The return value > remains the same. > > Hope this helps. > > Thanks, > Ed > ----------------------------------------------------------------- > > (defun org-publish-get-plists (&optional project-name) > "Return a list of property lists for project PROJECT-NAME. > When argument is not given, return all property lists for all projects." > (let ((alist (if project-name > (list (assoc project-name org-publish-project-alist)) > org-publish-project-alist)) > (project nil) > (plists nil) > (single nil) > (components nil)) > > ;; > ;; > (while (setq project (pop alist)) > ;; what kind of project is it? > (if (setq components (plist-get (cdr project) :components)) > ;; meta project. annotate each plist with name of enclosing project > (setq single > (apply 'append > (mapcar 'org-publish-get-plists components))) > ;; normal project > (setq single (list (cdr project)))) > ;; > (setq plists (append plists single)) > (dolist (p single) > (let* ((exclude (plist-get p :exclude)) > (files (org-publish-get-base-files p exclude))) > (dolist (f files) > (puthash (file-truename f) (car project) org-publish-files))))) > plists)) > > > -- > Ed Hirgelt > > Discovery consists of seeing what everybody has seen > and thinking what nobody has thought. > > > _______________________________________________ > Emacs-orgmode mailing list > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > -- David O'Toole dto@gnu.org http://dto.freeshell.org/notebook/