aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhendriktews2020-12-07 22:31:25 +0100
committerGitHub2020-12-07 22:31:25 +0100
commitad5105b58374f9ed5f83d5272688f5475bc0293b (patch)
tree376693a89bc9dad20f31712ef0d1b1f3293efaf0
parentccb37e8026e208825c10f4d5ce64378430e5f7a3 (diff)
parentabfcd41041f5ba00d9d8f007808d67a312fbe8c4 (diff)
Merge pull request #526 from hendriktews/version-break-525
fix coq-callcoq for emacs 27
-rw-r--r--coq/coq-system.el29
1 files changed, 13 insertions, 16 deletions
diff --git a/coq/coq-system.el b/coq/coq-system.el
index 637e0a27..5b530e45 100644
--- a/coq/coq-system.el
+++ b/coq/coq-system.el
@@ -110,23 +110,20 @@ If it doesn't look right, try `coq-autodetect-version'."
"Call coqtop with the given OPTION and return the output.
The given option should make coqtop return immediately.
Optionally check the return code and return nil if the check
-fails.
+fails. Return also nil on other kinds of errors (e.g., `coq-prog-name'
+not found).
This function supports calling coqtop via tramp."
- (let* ((default-directory
- (if (file-accessible-directory-p default-directory)
- default-directory
- "/"))
- (coq-command (shell-quote-argument (or coq-prog-name "coqtop"))))
- (with-temp-buffer
- ;; Use `shell-command' via `find-file-name-handler' instead of
- ;; `process-line': when the buffer is running TRAMP, PG uses
- ;; `start-file-process', loading the binary from the remote server.
- (let* ((shell-command-str (format "%s %s" coq-command (or option "")))
- (fh (find-file-name-handler default-directory 'shell-command))
- (retv (if fh (funcall fh 'shell-command shell-command-str (current-buffer))
- (shell-command shell-command-str (current-buffer)))))
- (if (or (not expectedretv) (equal retv expectedretv))
- (buffer-string))))))
+ (let ((coq-command (or coq-prog-name "coqtop"))
+ retv)
+ (condition-case nil
+ (with-temp-buffer
+ (setq retv (if option
+ (process-file coq-command nil t nil option)
+ (process-file coq-command nil t nil)))
+ (if (or (not expectedretv) (equal retv expectedretv))
+ (buffer-string)))
+ (error nil))))
+
(defun coq-autodetect-version (&optional interactive-p)
"Detect and record the version of Coq currently in use.