diff --git a/lisp/ob-eval.el b/lisp/ob-eval.el index ddad067a5..5489c0806 100644 --- a/lisp/ob-eval.el +++ b/lisp/ob-eval.el @@ -134,14 +134,13 @@ specifies the value of ERROR-BUFFER." current-prefix-arg shell-command-default-error-buffer t))) - (let ((error-file - (if error-buffer - (make-temp-file - (expand-file-name "scor" - (if (featurep 'xemacs) - (temp-directory) - temporary-file-directory))) - nil)) + (let ((input-file (org-babel-temp-file "input-")) + (error-file (if error-buffer (org-babel-temp-file "scor-") nil)) + (shell-file-name + (if (file-executable-p + (concat (file-remote-p default-directory) shell-file-name)) + shell-file-name + "/bin/sh")) exit-status) (if (or replace (and output-buffer @@ -151,12 +150,14 @@ specifies the value of ERROR-BUFFER." ;; Don't muck with mark unless REPLACE says we should. (goto-char start) (and replace (push-mark (point) 'nomsg)) + (write-region start end input-file) + (delete-region start end) (setq exit-status - (call-process-region start end shell-file-name t - (if error-file - (list output-buffer error-file) - t) - nil shell-command-switch command)) + (process-file shell-file-name input-file + (if error-file + (list output-buffer error-file) + t) + nil shell-command-switch command)) ;; It is rude to delete a buffer which the command is not using. ;; (let ((shell-buffer (get-buffer "*Shell Command Output*"))) ;; (and shell-buffer (not (eq shell-buffer (current-buffer))) @@ -175,14 +176,14 @@ specifies the value of ERROR-BUFFER." (progn (setq buffer-read-only nil) (delete-region (max start end) (point-max)) (delete-region (point-min) (min start end)) + (write-region (point-min) (point-max) input-file) + (delete-region (point-min) (point-max)) (setq exit-status - (call-process-region (point-min) (point-max) - shell-file-name t - (if error-file - (list t error-file) - t) - nil shell-command-switch - command))) + (process-file shell-file-name input-file + (if error-file + (list t error-file) + t) + nil shell-command-switch command))) ;; Clear the output buffer, then run the command with ;; output there. (let ((directory default-directory)) @@ -192,11 +193,11 @@ specifies the value of ERROR-BUFFER." (setq default-directory directory)) (erase-buffer))) (setq exit-status - (call-process-region start end shell-file-name nil - (if error-file - (list buffer error-file) - buffer) - nil shell-command-switch command))) + (process-file shell-file-name nil + (if error-file + (list buffer error-file) + buffer) + nil shell-command-switch command))) ;; Report the output. (with-current-buffer buffer (setq mode-line-process @@ -230,6 +231,9 @@ specifies the value of ERROR-BUFFER." ;; (kill-buffer buffer) )))) + (when (and input-file (file-exists-p input-file)) + (delete-file input-file)) + (when (and error-file (file-exists-p error-file)) (if (< 0 (nth 7 (file-attributes error-file))) (with-current-buffer (get-buffer-create error-buffer) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 1f3ad3e5c..fce98f69e 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3531,12 +3531,14 @@ generating a new one." (save-excursion (let ((inhibit-read-only t)) (goto-char (point-min)) - (while (org-activate-bracket-links (point-max)) - (add-text-properties (match-beginning 0) (match-end 0) - '(face org-link))) - (while (org-activate-plain-links (point-max)) - (add-text-properties (match-beginning 0) (match-end 0) - '(face org-link))) + (save-excursion + (while (org-activate-bracket-links (point-max)) + (add-text-properties (match-beginning 0) (match-end 0) + '(face org-link)))) + (save-excursion + (while (org-activate-plain-links (point-max)) + (add-text-properties (match-beginning 0) (match-end 0) + '(face org-link)))) (org-agenda-align-tags) (unless org-agenda-with-colors (remove-text-properties (point-min) (point-max) '(face nil)))) diff --git a/lisp/org.el b/lisp/org.el index 159b73bfb..816fb7bc1 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5884,13 +5884,14 @@ needs to be inserted at a specific position in the font-lock sequence.") '(1 'org-special-keyword t) '(3 'org-property-value t)) ;; Links - (if (memq 'footnote lk) '(org-activate-footnote-links)) - (if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend))) - (if (memq 'angle lk) '(org-activate-angle-links (0 'org-link t))) - (if (memq 'plain lk) '(org-activate-plain-links)) - (if (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link t))) - (if (memq 'radio lk) '(org-activate-target-links (0 'org-link t))) - (if (memq 'date lk) '(org-activate-dates (0 'org-date t))) + (unless (or (org-in-src-block-p t) (org-in-fixed-width-region-p)) + (if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend))) + (if (memq 'angle lk) '(org-activate-angle-links (0 'org-link t))) + (if (memq 'plain lk) '(org-activate-plain-links)) + (if (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link t))) + (if (memq 'radio lk) '(org-activate-target-links (0 'org-link t))) + (if (memq 'date lk) '(org-activate-dates (0 'org-date t))) + (if (memq 'footnote lk) '(org-activate-footnote-links))) '("^&?%%(.*\\|<%%([^>\n]*?>" (0 'org-sexp-date t)) '(org-hide-wide-columns (0 nil append)) ;; TODO keyword