org.el: Allow opening multiple shell links.

* org.el (clean-buffer-list-kill-buffer-names): Declare.
(org-open-at-point): Allow opening multiple shell links by
creating a new output buffer for each shell process.  The new
buffer is added to `clean-buffer-list-kill-buffer-names'.

Thanks to Tobias Naehring for this idea.
This commit is contained in:
Bastien Guerry 2012-08-03 15:32:01 +02:00
parent 6c2d37debf
commit 8fca59f71f
1 changed files with 6 additions and 2 deletions

View File

@ -9663,6 +9663,7 @@ Functions in this hook must return t if they identify and follow
a link at point. If they don't find anything interesting at point,
they must return nil.")
(defvar clean-buffer-list-kill-buffer-names) ; Defined in midnight.el
(defun org-open-at-point (&optional arg reference-buffer)
"Open link at or after point.
If there is no link at point, this function will search forward up to
@ -9815,7 +9816,8 @@ application the system uses for this file type."
(org-open-file path arg line search)))
((string= type "shell")
(let ((cmd path))
(let ((buf (generate-new-buffer "*Org Shell Output"))
(cmd path))
(if (or (and (not (string= org-confirm-shell-link-not-regexp ""))
(string-match org-confirm-shell-link-not-regexp cmd))
(not org-confirm-shell-link-function)
@ -9825,7 +9827,9 @@ application the system uses for this file type."
'face 'org-warning))))
(progn
(message "Executing %s" cmd)
(shell-command cmd))
(setq clean-buffer-list-kill-buffer-names
(cons buf clean-buffer-list-kill-buffer-names))
(shell-command cmd buf))
(error "Abort"))))
((string= type "elisp")