tools/pdf: only prompt to build epdfinfo once
Fixes regression mentioned in #1788
This commit is contained in:
parent
d17616e835
commit
f11979ed76
1 changed files with 27 additions and 26 deletions
|
@ -33,32 +33,33 @@
|
||||||
;; Prevent "epdfinfo not an executable" error short-circuiting this advice
|
;; Prevent "epdfinfo not an executable" error short-circuiting this advice
|
||||||
(prog1 (with-demoted-errors "%s" (apply orig-fn args))
|
(prog1 (with-demoted-errors "%s" (apply orig-fn args))
|
||||||
;; ...so we can go ahead and install it afterwards.
|
;; ...so we can go ahead and install it afterwards.
|
||||||
(if (not (y-or-n-p "To read PDFs in Emacs the epdfinfo program must be built. Build it now?"))
|
(cond ((file-executable-p pdf-info-epdfinfo-program))
|
||||||
(message "Aborted")
|
((y-or-n-p "To read PDFs in Emacs the epdfinfo program must be built. Build it now?")
|
||||||
(message nil) ; flush lingering prompt in echo-area
|
(message nil) ; flush lingering prompt in echo-area
|
||||||
;; Make sure this doesn't run more than once
|
;; Make sure this doesn't run more than once
|
||||||
(advice-remove #'pdf-view-mode #'+pdf--install-epdfinfo-a)
|
(advice-remove #'pdf-view-mode #'+pdf--install-epdfinfo-a)
|
||||||
(if (or (pdf-info-running-p)
|
(if (or (pdf-info-running-p)
|
||||||
(ignore-errors (pdf-info-check-epdfinfo) t))
|
(ignore-errors (pdf-info-check-epdfinfo) t))
|
||||||
(pdf-tools-install-noverify)
|
(pdf-tools-install-noverify)
|
||||||
;; HACK On the first pdf you open (before pdf-tools loaded)
|
;; HACK On the first pdf you open (before pdf-tools loaded)
|
||||||
;; `pdf-tools-install' throws errors because it has hardcoded
|
;; `pdf-tools-install' throws errors because it has hardcoded
|
||||||
;; opinions about what buffer should be focused when it is run.
|
;; opinions about what buffer should be focused when it is run.
|
||||||
;; These errors cause `compile' to position the compilation
|
;; These errors cause `compile' to position the compilation
|
||||||
;; window incorrectly or can interfere with the opening of the
|
;; window incorrectly or can interfere with the opening of the
|
||||||
;; original pdf--sometimes aborting/burying it altogether. A
|
;; original pdf--sometimes aborting/burying it altogether. A
|
||||||
;; timer works around this.
|
;; timer works around this.
|
||||||
(run-at-time
|
(run-at-time
|
||||||
0.1 nil
|
0.1 nil
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(with-current-buffer (pdf-tools-install t)
|
(with-current-buffer (pdf-tools-install t)
|
||||||
(add-hook! 'compilation-finish-functions :local
|
(add-hook! 'compilation-finish-functions :local
|
||||||
(dolist (buf (buffer-list))
|
(dolist (buf (buffer-list))
|
||||||
(with-current-buffer buf
|
(with-current-buffer buf
|
||||||
(and (buffer-file-name)
|
(and (buffer-file-name)
|
||||||
(or (pdf-tools-pdf-buffer-p)
|
(or (pdf-tools-pdf-buffer-p)
|
||||||
(derived-mode-p 'pdf-view-mode))
|
(derived-mode-p 'pdf-view-mode))
|
||||||
(revert-buffer t t))))))))))))
|
(revert-buffer t t))))))))))
|
||||||
|
((message "Aborted")))))
|
||||||
|
|
||||||
;; For consistency with other special modes
|
;; For consistency with other special modes
|
||||||
(map! :map pdf-view-mode-map :gn "q" #'kill-current-buffer)
|
(map! :map pdf-view-mode-map :gn "q" #'kill-current-buffer)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue