From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: [babel] Error with source block and variable on export - bug? Date: Fri, 03 Sep 2010 09:05:24 -0600 Message-ID: <878w3iuatn.fsf@gmail.com> References: <4C80B94B.702@gmail.com> <8739truerx.fsf@gmail.com> <4C8106FF.3060707@gmail.com> <4C810AC4.2000304@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=40240 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OrXpx-0006Vl-KF for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 11:05:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OrXpb-0001cP-Ad for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 11:05:53 -0400 Received: from mail-qy0-f169.google.com ([209.85.216.169]:58846) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrXpb-0001cK-7Y for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 11:05:31 -0400 Received: by qyk12 with SMTP id 12so74622qyk.0 for ; Fri, 03 Sep 2010 08:05:30 -0700 (PDT) In-Reply-To: <4C810AC4.2000304@gmail.com> (Rainer M. Krug's message of "Fri, 03 Sep 2010 16:48:36 +0200") 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: R.M.Krug@gmail.com Cc: emacs-orgmode Rainer M Krug writes: > On 03/09/10 16:32, Rainer M Krug wrote: >> On 03/09/10 15:40, Eric Schulte wrote: >>> Hi Rainer, >> >>> As part of the export process Org-mode copies the contents of the >>> Org-mode file to a temporary buffer in which the business of exportation >>> is performed. This temporary buffer is not associated with any file so >>> (buffer-file-name) returns nil, which is causing the problem you are >>> experiencing. I think the best solution would be to replace the call to >>> (buffer-file-name) with the actual name of the file, e.g. >> >>> #+begin_src sh :var file=(vc-working-revision "~/src/babel-dev/scraps.org") :exports results >>> echo $file Revision >>> #+end_src >> >> Hi Eric >> >> thanks a lot for the clarification - that makes perfect sense. I will do >> as suggested. > > Thanks - it is working now. > But it is a little bit awkward to have the file name (incl. path) > somewhere in the document - can create some problems when renaming the > file or saving it somewhere else). > Is it possible to define it as a kind of variable (property?) in the > headers of the file and reference it in the org file later? > Oh, I've just remembered that during export Org-mode saves this file-name information in the temporary variable `org-current-export-file'. So the following will work, even though it relies upon undocumented internals of Org-mode which could change at some point. #+begin_src sh :var file=(vc-working-revision (or (buffer-file-name) org-current-export-file)) :exports results echo $file Revision #+end_src Cheers -- Eric > > Rainer > >> >> Cheers, >> >> Rainer >> >> >>> Cheers -- Eric >> >>> Rainer M Krug writes: >> >>>> Hi >>>> >>>> when I insert the following source block >>>> >>>> #+begin_src sh :exports results :var >>>> ver=(vc-working-revision(buffer-file-name)) >>>> echo Revision $ver >>>> #+end_src >>>> >>>> into a svn (probably other VCs as well) registered file and execute it >>>> via C-c C-c, it gives me the revision: >>>> >>>> #+begin_src sh :exports results :var >>>> ver=(vc-working-revision(buffer-file-name)) >>>> echo Revision $ver >>>> #+end_src >>>> >>>> #+results: >>>> : Revision 191 >>>> >>>> So when exporting, I would expect that it also prints "Revision 191", >>>> but I get an error: >>>> >>>> vc-file-getprop: Wrong type argument: stringp, nil >>>> >>>> Tangling the file with :var ver=(vc-working-revision(buffer-file-name)) >>>> as a header argument also works fine. >>>> >>>> As the evaluation works, I assume that is a bug somewhere? >>>> >>>> Cheers, >>>> >>>> Rainer >> >>