]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-ref.el
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
[gnu-emacs] / lisp / org / ob-ref.el
index 389c36318e243057970604e6ee1b1b91a868cf3e..3e79592f5a029411465de99b1d1e6c7318387d74 100644 (file)
@@ -1,6 +1,6 @@
 ;;; ob-ref.el --- org-babel functions for referencing external data
 
-;; Copyright (C) 2009-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2015 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;      Dan Davison
@@ -40,7 +40,7 @@
 ;; So an example of a simple src block referencing table data in the
 ;; same file would be
 
-;;  #+TBLNAME: sandbox
+;;  #+NAME: sandbox
 ;;  | 1 |         2 | 3 |
 ;;  | 4 | org-babel | 6 |
 ;;
@@ -49,7 +49,7 @@
 ;;  #+end_src
 
 ;;; Code:
-(require 'ob)
+(require 'ob-core)
 (eval-when-compile
   (require 'cl))
 
@@ -83,7 +83,12 @@ the variable."
     (let ((var (match-string 1 assignment))
          (ref (match-string 2 assignment)))
       (cons (intern var)
-           (let ((out (org-babel-read ref)))
+           (let ((out (save-excursion
+                        (when org-babel-current-src-block-location
+                          (goto-char (if (markerp org-babel-current-src-block-location)
+                                         (marker-position org-babel-current-src-block-location)
+                                       org-babel-current-src-block-location)))
+                        (org-babel-read ref))))
              (if (equal out ref)
                  (if (string-match "^\".*\"$" ref)
                      (read ref)
@@ -171,7 +176,7 @@ the variable."
            ;;       buffer (marker-buffer id-loc)
            ;;       loc (marker-position id-loc))
            ;; (move-marker id-loc nil)
-           (error "Reference '%s' not found in this buffer" ref))
+           (error "Reference `%s' not found in this buffer" ref))
          (cond
           (lob-info (setq type 'lob))
           (id (setq type 'id))