ob: not including export-variable headers in cache sha1

* lisp/ob.el (org-babel-sha1-hash): Improving code layout and removing
  export-variable headers in cache sha1.
This commit is contained in:
Eric Schulte 2011-07-01 12:56:22 -07:00
parent dacf18e80a
commit 6ddad0a91a
1 changed files with 32 additions and 25 deletions

View File

@ -749,31 +749,38 @@ the current subtree."
(setf (nth 2 info)
(sort (copy-sequence (nth 2 info))
(lambda (a b) (string< (car a) (car b)))))
((lambda (hash)
(when (org-called-interactively-p 'interactive) (message hash))
hash)
(sha1 (format "%s-%s"
(mapconcat
#'identity
(delq nil
(mapcar
(lambda (arg)
(let ((v (cdr arg)))
(when (and v (not (and (sequencep v)
(not (consp v))
(= (length v) 0))))
((lambda (el) (format "%S" el))
(cond
((and (listp v) ; lists are sorted
(member (car arg) '(:result-params)))
(sort (copy-sequence v) #'string<))
((and (stringp v) ; strings are sorted
(member (car arg) '(:results :exports)))
(mapconcat #'identity (sort (split-string v)
#'string<) " "))
(t v)))))) ; atomic are left untouched
(nth 2 info))) ":")
(nth 1 info))))))
(labels ((rm (lst)
(dolist (p '("replace" "silent" "append" "prepend"))
(setq lst (remove p lst)))
lst)
(norm (arg)
(let ((v (if (listp (cdr arg))
(copy-seq (cdr arg))
(cdr arg))))
(when (and v (not (and (sequencep v)
(not (consp v))
(= (length v) 0))))
(cond
((and (listp v) ; lists are sorted
(member (car arg) '(:result-params)))
(sort (rm v) #'string<))
((and (stringp v) ; strings are sorted
(member (car arg) '(:results :exports)))
(mapconcat #'identity (sort (rm (split-string v))
#'string<) " "))
(t v))))))
((lambda (hash)
(when (org-called-interactively-p 'interactive) (message hash)) hash)
(let ((it (format "%s-%s"
(mapconcat
#'identity
(delq nil (mapcar (lambda (arg)
(let ((normalized (norm arg)))
(when normalized
(format "%S" normalized))))
(nth 2 info))) ":")
(nth 1 info))))
(sha1 it))))))
(defun org-babel-result-hash (&optional info)
"Return the in-buffer hash associated with INFO."