]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-ref.el
Update docs for `customize-mode'
[gnu-emacs] / lisp / org / ob-ref.el
index 5a3c8ba2e4894521b6ec3b41e8198d5fcbbee47b..1be81c4b932f13a08bbd3e54f50fba011fcf13e9 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-2016 Free Software Foundation, Inc.
 
 ;; Authors: Eric Schulte
 ;;      Dan Davison
@@ -85,7 +85,9 @@ the variable."
       (cons (intern var)
            (let ((out (save-excursion
                         (when org-babel-current-src-block-location
-                          (goto-char 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)
@@ -136,7 +138,7 @@ the variable."
          (setq ref (substring ref 0 (match-beginning 0))))
        ;; assign any arguments to pass to source block
        (when (string-match
-              "^\\(.+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)\(\\(.*\\)\)$" ref)
+              "^\\(.+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)(\\(.*\\))$" ref)
          (setq new-refere      (match-string 1 ref))
          (setq new-header-args (match-string 3 ref))
          (setq new-referent    (match-string 5 ref))
@@ -174,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))
@@ -222,7 +224,7 @@ returned, or an empty string or \"*\" both of which are
 interpreted to mean the entire range and as such are equivalent
 to \"0:-1\"."
   (if (and (> (length index) 0) (string-match "^\\([^,]*\\),?" index))
-      (let* ((ind-re "\\(\\([-[:digit:]]+\\):\\([-[:digit:]]+\\)\\|\*\\)")
+      (let* ((ind-re "\\(\\([-[:digit:]]+\\):\\([-[:digit:]]+\\)\\|\\*\\)")
             (lgth (length lis))
             (portion (match-string 1 index))
             (remainder (substring index (match-end 0)))