summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Banel <tbanelwebmin@free.fr>2014-09-04 19:30:54 +0200
committerBastien Guerry <bzg@altern.org>2014-10-12 14:00:51 +0200
commit4753bfa3bf6df5e2fa36818b6774f95632376520 (patch)
tree5c388f034cd55991a6014ba976daeb7ce8edcf36
parent0e07eb5665bc3e4511e414a9be76a382aa2f7458 (diff)
downloadorg-mode-4753bfa3bf6df5e2fa36818b6774f95632376520.tar.gz
Enable multiple files in :includes header
* ob-C.el (org-babel-C-expand-C, org-babel-C-expand-D): Let :includes, :defines, :imports accept several items separated by blanks without enclosing them in parenthesis. Thanks to Will Everett for reporting this.
-rw-r--r--lisp/ob-C.el24
1 files changed, 19 insertions, 5 deletions
diff --git a/lisp/ob-C.el b/lisp/ob-C.el
index 076276e..c42ccea 100644
--- a/lisp/ob-C.el
+++ b/lisp/ob-C.el
@@ -186,13 +186,26 @@ it's header arguments."
(let ((vars (mapcar #'cdr (org-babel-get-header params :var)))
(colnames (cdar (org-babel-get-header params :colname-names)))
(main-p (not (string= (cdr (assoc :main params)) "no")))
- (includes (or (cdr (assoc :includes params))
- (org-babel-read (org-entry-get nil "includes" t))))
+ (includes (org-babel-read
+ (or (cdr (assoc :includes params))
+ (org-entry-get nil "includes" t))
+ nil))
(defines (org-babel-read
(or (cdr (assoc :defines params))
- (org-babel-read (org-entry-get nil "defines" t))))))
- (unless (listp includes) (setq includes (list includes)))
+ (org-entry-get nil "defines" t))
+ nil)))
+ (when (stringp includes)
+ (setq includes (split-string includes)))
(setq includes (append includes '("<string.h>" "<stdio.h>" "<stdlib.h>")))
+ (when (stringp defines)
+ (let ((y nil)
+ (result (list t)))
+ (dolist (x (split-string defines))
+ (if (null y)
+ (setq y x)
+ (nconc result (list (concat y " " x)))
+ (setq y nil)))
+ (setq defines (cdr result))))
(mapconcat 'identity
(list
;; includes
@@ -225,7 +238,8 @@ it's header arguments."
(main-p (not (string= (cdr (assoc :main params)) "no")))
(imports (or (cdr (assoc :imports params))
(org-babel-read (org-entry-get nil "imports" t)))))
- (unless (listp imports) (setq imports (list imports)))
+ (when (stringp imports)
+ (setq imports (split-string imports)))
(setq imports (append imports '("std.stdio" "std.conv")))
(mapconcat 'identity
(list