|
|
@@ -110,7 +110,7 @@ Optionally supply a value for INFO in the form returned by
|
|
|
|
|
|
Optionally supply a value for PARAMS which will be merged with
|
|
|
the header arguments specified at the source code block."
|
|
|
- (interactive "P")
|
|
|
+ (interactive)
|
|
|
(let* ((info (or info (litorgy-get-src-block-info)))
|
|
|
(lang (first info))
|
|
|
(body (second info))
|
|
|
@@ -120,9 +120,7 @@ the header arguments specified at the source code block."
|
|
|
(unless (member lang litorgy-interpreters)
|
|
|
(error "Language is not in `litorgy-interpreters': %s" lang))
|
|
|
(setq result (funcall cmd body params))
|
|
|
- (if arg
|
|
|
- (message (if (stringp result) result (format "%S" result)))
|
|
|
- (litorgy-insert-result result (cdr (assoc :results params))))
|
|
|
+ (litorgy-insert-result result (cdr (assoc :results params)))
|
|
|
result))
|
|
|
|
|
|
(defun litorgy-eval-buffer (&optional arg)
|
|
|
@@ -228,7 +226,7 @@ line. If no result exists for this block then create a
|
|
|
(re-search-forward "[^ \f\t\n\r\v]" nil t)
|
|
|
(move-beginning-of-line 1) (looking-at "#\\+resname:"))
|
|
|
(progn ;; or we need to back up and make one ourselves
|
|
|
- (goto-char end) (open-line 3) (forward-char 1)
|
|
|
+ (goto-char end) (open-line 2) (forward-char 1)
|
|
|
(insert "#+resname:") (move-beginning-of-line 1) t)))
|
|
|
(point))))))
|
|
|
|
|
|
@@ -245,23 +243,20 @@ replace - insert results after the source block replacing any
|
|
|
previously inserted results
|
|
|
|
|
|
silent -- no results are inserted"
|
|
|
- (if (stringp result)
|
|
|
+ (if (stringp result) ;; unless results are a list, ensure they're a string
|
|
|
(setq result (litorgy-clean-text-properties result))
|
|
|
(unless (listp result) (setq result (format "%S" result))))
|
|
|
- (if (and insert (string-equal insert "replace"))
|
|
|
- (litorgy-remove-result (listp result)))
|
|
|
+ (if (and insert (string-equal insert "replace")) (litorgy-remove-result))
|
|
|
(if (= (length result) 0)
|
|
|
(message "no result returned by source block")
|
|
|
(if (and insert (string-equal insert "silent"))
|
|
|
(progn (message (format "%S" result)) result)
|
|
|
- (when (and (stringp result)
|
|
|
+ (when (and (stringp result) ;; ensure results end in a newline
|
|
|
(not (or (string-equal (substring result -1) "\n")
|
|
|
(string-equal (substring result -1) "\r"))))
|
|
|
(setq result (concat result "\n")))
|
|
|
(save-excursion
|
|
|
- (if (re-search-forward "^#\\+end_src" nil t)
|
|
|
- (progn (open-line 1) (forward-char 2))
|
|
|
- (progn (open-line 1) (forward-char 1)))
|
|
|
+ (goto-char (litorgy-where-is-src-block-result)) (forward-line 1)
|
|
|
(if (stringp result) ;; assume the result is a table if it's not a string
|
|
|
(litorgy-examplize-region (point) (progn (insert result) (point)))
|
|
|
(progn
|
|
|
@@ -278,23 +273,20 @@ silent -- no results are inserted"
|
|
|
relies on `litorgy-insert-result'."
|
|
|
(with-temp-buffer (litorgy-insert-result result) (buffer-string)))
|
|
|
|
|
|
-(defun litorgy-remove-result (&optional table)
|
|
|
- "Remove the result following the current source block. If
|
|
|
-optional argument TABLE is supplied then remove the table
|
|
|
-following the block rather than the fixed width example."
|
|
|
+(defun litorgy-remove-result ()
|
|
|
+ "Remove the result of the current source block."
|
|
|
(save-excursion
|
|
|
- (re-search-forward "^#\\+end_src" nil t)
|
|
|
- (forward-char 1)
|
|
|
+ (goto-char (litorgy-where-is-src-block-result)) (forward-line 1)
|
|
|
(delete-region (point)
|
|
|
- (save-excursion (forward-line 1)
|
|
|
- (if table
|
|
|
- (org-table-end)
|
|
|
- (while (if (looking-at ": ")
|
|
|
- (progn (while (looking-at ": ")
|
|
|
- (forward-line 1)) t))
|
|
|
- (forward-line 1))
|
|
|
- (forward-line -1)
|
|
|
- (point))))))
|
|
|
+ (save-excursion
|
|
|
+ (if (org-at-table-p)
|
|
|
+ (org-table-end)
|
|
|
+ (while (if (looking-at ": ")
|
|
|
+ (progn (while (looking-at ": ")
|
|
|
+ (forward-line 1)) t))
|
|
|
+ (forward-line 1))
|
|
|
+ (forward-line -1)
|
|
|
+ (point))))))
|
|
|
|
|
|
(defun litorgy-examplize-region (beg end)
|
|
|
"Comment out region using the ': ' org example quote."
|