Function: org-babel-update-block-body

org-babel-update-block-body is a byte-compiled function defined in ob-core.el.gz.

Signature

(org-babel-update-block-body NEW-BODY)

Documentation

Update the body of the current code block to NEW-BODY.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-core.el.gz
(defun org-babel-update-block-body (new-body)
  "Update the body of the current code block to NEW-BODY."
  (let ((element (org-element-at-point)))
    (unless (org-element-type-p element 'src-block)
      (error "Not in a source block"))
    (goto-char (org-babel-where-is-src-block-head element))
    (let* ((ind (org-current-text-indentation))
	   (body-start (line-beginning-position 2))
	   (body (org-element-normalize-string
		  (if (org-src-preserve-indentation-p element) new-body
		    (with-temp-buffer
		      (insert (org-remove-indentation new-body))
		      (indent-rigidly
		       (point-min)
		       (point-max)
		       (+ ind org-edit-src-content-indentation))
		      (buffer-string))))))
      (delete-region body-start
		     (org-with-wide-buffer
		      (goto-char (org-element-end element))
		      (skip-chars-backward " \t\n")
		      (line-beginning-position)))
      (goto-char body-start)
      (insert body))))