فهرست منبع

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.
Thierry Banel 10 سال پیش
والد
کامیت
4753bfa3bf
1فایلهای تغییر یافته به همراه19 افزوده شده و 5 حذف شده
  1. 19 5
      lisp/ob-C.el

+ 19 - 5
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