summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Schulte <schulte.eric@gmail.com>2010-10-15 12:10:56 -0600
committerDan Davison <davison@stats.ox.ac.uk>2010-10-21 13:05:59 +0100
commit529e7c98fd3b5a7541e212ca440c6c9394670711 (patch)
tree255f94888da1477c564fa4ff859a34c6f975b8ab
parent9c0aae1814b90ac0e101965e1c12e3e73c3105a2 (diff)
downloadorg-mode-529e7c98fd3b5a7541e212ca440c6c9394670711.tar.gz
nominally working
-rw-r--r--lisp/ob.el31
1 files changed, 14 insertions, 17 deletions
diff --git a/lisp/ob.el b/lisp/ob.el
index c0666f5..dab6721 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -170,8 +170,7 @@ Returns a list
(org-babel-merge-params
(mapcar (lambda (ref) (cons :var ref))
(org-babel-ref-split-args (match-string 4)))
- (nth 2 info)))))
- (append info (list name indent)))
+ (nth 2 info))))))
;; inline source block
(when (save-excursion (re-search-backward "[ \f\t\n\r\v]" nil t)
(looking-at org-babel-inline-src-block-regexp))
@@ -180,10 +179,10 @@ Returns a list
(when (and info (not light))
(setf (nth 2 info)
(let ((params (nth 2 info)))
- (append (mapcar (lambda (el) (org-babel-ref-parse (cdr el)))
+ (append (mapcar (lambda (el) (cons :var (org-babel-ref-parse (cdr el))))
(org-babel-get-header params :var))
(org-babel-get-header params :var 'other)))))
- info))
+ (append info (list name indent))))
(defun org-babel-confirm-evaluate (info)
"Confirm evaluation of the code block INFO.
@@ -892,7 +891,7 @@ may be specified at the top of the current buffer."
Return a list (session vars result-params result-type colnames rownames)."
(let* ((session (cdr (assoc :session params)))
(vars-and-names (org-babel-disassemble-tables
- (org-babel-get-header params :var)
+ (mapcar #'cdr (org-babel-get-header params :var))
(cdr (assoc :hlines params))
(cdr (assoc :colnames params))
(cdr (assoc :rownames params))))
@@ -1508,7 +1507,7 @@ parameters when merging lists."
("output" "value")))
(exports-exclusive-groups
'(("code" "results" "both" "none")))
- params results exports tangle noweb cache vars var ref shebang comments)
+ params results exports tangle noweb cache vars shebang comments)
(flet ((e-merge (exclusive-groups &rest result-params)
;; maintain exclusivity of mutually exclusive parameters
(let (output)
@@ -1532,15 +1531,14 @@ parameters when merging lists."
(mapc (lambda (pair)
(case (car pair)
(:var
- ;; we want only one specification per variable
- (when (string-match
- (concat "^\\([^= \f\t\n\r\v]+\\)[ \t]*="
- "[ \t]*\\([^\f\n\r\v]+\\)$") (cdr pair))
- ;; TODO: When is this not true?
- (setq var (intern (match-string 1 (cdr pair)))
- ref (match-string 2 (cdr pair))
- vars (cons (cons var ref)
- (assq-delete-all var vars)))))
+ (let ((name (if (listp (cdr pair))
+ (cadr pair)
+ (string-match
+ ".+=[ \t]*\\([^\f\n\r\v]+\\)$"
+ (cdr pair))
+ (intern (match-string 1)))))
+ (unless (member name (mapcar #'car vars))
+ (setq vars (cons (cons name (cdr pair)) vars)))))
(:results
(setq results
(e-merge results-exclusive-groups
@@ -1583,8 +1581,7 @@ parameters when merging lists."
(assq-delete-all (car pair) params))))))
plist))
plists))
- (setq vars (mapcar (lambda (pair) (format "%s=%s" (car pair) (cdr pair))) vars))
- (while vars (setq params (cons (cons :var (pop vars)) params)))
+ (while vars (setq params (cons (cons :var (cdr (pop vars))) params)))
(cons (cons :comments (mapconcat 'identity comments " "))
(cons (cons :shebang (mapconcat 'identity shebang " "))
(cons (cons :cache (mapconcat 'identity cache " "))