emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eric Schulte <eric.schulte@gmx.com>
To: Daimrod <daimrod@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: URGENT Org Babel C/C++
Date: Sat, 31 Mar 2012 11:47:52 -0400	[thread overview]
Message-ID: <87vclkojpz.fsf_-_@gmx.com> (raw)
In-Reply-To: <87zkb0qqj0.fsf@gmail.com> (daimrod@gmail.com's message of "Thu, 29 Mar 2012 01:01:07 +0200")

[-- Attachment #1: Type: text/plain, Size: 2250 bytes --]

Daimrod <daimrod@gmail.com> writes:

> Eric Schulte <eric.schulte@gmx.com> writes:
>
>> Applied, Thanks!
>>
>> Daimrod <daimrod@gmail.com> writes:
>>
>>> Hi,
>>>
>>> I've made a small patch to ob-C.el so it now includes the current
>>> directory to the list of directories to be searched for header files.
>>> Without this, I cannot include a local header file because the
>>> compilation happens in /tmp and thus gcc or g++ doesn't search for
>>> header files in the directory I currently work.
>>>
>>> diff --git a/lisp/ob-C.el b/lisp/ob-C.el
>>> index f1525aa..4f33fc4 100644
>>> --- a/lisp/ob-C.el
>>> +++ b/lisp/ob-C.el
>>> @@ -96,15 +96,14 @@ or `org-babel-execute:C++'."
>>>  	  (progn
>>>  	    (with-temp-file tmp-src-file (insert full-body))
>>>  	    (org-babel-eval
>>> -	     (format "%s -o %s %s %s -I \"%s\""
>>> +	     (format "%s -o %s %s %s"
>>>  		     (cond
>>>  		      ((equal org-babel-c-variant 'c) org-babel-C-compiler)
>>>  		      ((equal org-babel-c-variant 'cpp) org-babel-C++-compiler))
>>>  		     (org-babel-process-file-name tmp-bin-file)
>>>  		     (mapconcat 'identity
>>>  				(if (listp flags) flags (list flags)) " ")
>>> -		     (org-babel-process-file-name tmp-src-file)
>>> -		     (file-name-directory (expand-file-name (buffer-file-name)))) ""))))
>>> +		     (org-babel-process-file-name tmp-src-file)) ""))))
>>>      ((lambda (results)
>>>         (org-babel-reassemble-table
>>>  	(if (member "vector" (cdr (assoc :result-params params)))
>
> Hum, I'm quite embarrassed, this doesn't work when the block is executed
> during an export. I didn't track it down yet, but (buffer-file-name)
> returns nil during the export probably because the buffer changes.
>

I've reverted this commit, I should have been more cautious in its
application.  I've reverted this commit in both the hotfix-7.8.06 branch
and the master branch.

>
> A workaround would be to use the :flags header argument though it's a
> bit tedious because it doesn't seem possible to eval elisp during the
> export.
>
> i.e.
>
> #+BEGIN_SRC cpp :flags -I (file-name-directory (buffer-file-name))
> ...
> #+END_SRC

I don't believe the above statement is true, for example the following
code block evaluates its header argument on export.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: example.org --]
[-- Type: text/x-org, Size: 156 bytes --]

Example of code eval during export.

#+headers: :exports results
#+begin_src emacs-lisp :var this=(file-name-directory (buffer-file-name))
  this
#+end_src

[-- Attachment #3: Type: text/plain, Size: 54 bytes --]


Best,

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/

      parent reply	other threads:[~2012-03-31 17:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-23 18:12 Org Babel C/C++ Daimrod
2012-03-26 11:39 ` Eric Schulte
2012-03-28 23:01   ` Daimrod
2012-03-29  1:34     ` Michael Hannon
2012-03-30 11:17       ` Daimrod
2012-03-31 15:47     ` Eric Schulte [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87vclkojpz.fsf_-_@gmx.com \
    --to=eric.schulte@gmx.com \
    --cc=daimrod@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).