branch: externals/auctex commit 896346a4f29823df58c67829c820597e2ebcb50e Author: Ikumi Keita <ik...@ikumi.que.jp> Commit: Ikumi Keita <ik...@ikumi.que.jp>
Fix preview-latex and regression tests * preview.el.in (preview-query-replace-reveal): Add treatment for nadvice functions. (): Promote defvar's without value to proper defvar's to prevent unexpected error when external program calls preview-latex functions. * tests/latex/font-latex-test.el (): Add defvar for `font-lock-beg' and `font-lock-end' to make dynamic binding at let-binding them. * tests/tex/path-expansion.el: Add temporal defvar for dummy variable. * tests/japanese/preview-latex.el (japanese-preview-preserve-kanji-option2) (japanese-preview-preserve-kanji-option3): Make cleanup forms more robust. --- preview.el.in | 40 +++++++++++++++++++++++++++++----------- tests/japanese/preview-latex.el | 24 ++++++++++++------------ tests/latex/font-latex-test.el | 2 ++ tests/tex/path-expansion.el | 7 ++++--- 4 files changed, 47 insertions(+), 26 deletions(-) diff --git a/preview.el.in b/preview.el.in index c6bc8b7..efe6603 100644 --- a/preview.el.in +++ b/preview.el.in @@ -116,7 +116,9 @@ spec to avoid unnecessary evaluation time." :type preview-specs-type :set #'preview-specs-setter) -(defvar preview-nonready-icon) +(defvar preview-nonready-icon nil + "The icon used for previews to be generated. +Suitable spec is chosen from `preview-nonready-icon-specs'.") (defcustom preview-error-icon-specs '((:type xpm :min 22 :file "prverr24.xpm" :ascent 90) @@ -135,7 +137,9 @@ spec to avoid unnecessary evaluation time." :set #'preview-specs-setter ) -(defvar preview-error-icon) +(defvar preview-error-icon nil + "The icon used for PostScript errors. +Suitable spec is chosen from `preview-error-icon-specs'.") (defcustom preview-icon-specs '((:type xpm :min 24 :file "prvtex24.xpm" :ascent 75) @@ -156,7 +160,9 @@ spec to avoid unnecessary evaluation time." :type preview-specs-type :set #'preview-specs-setter) -(defvar preview-icon) +(defvar preview-icon nil + "The icon used for an open preview. +Suitable spec is chosen from `preview-icon-specs'.") (defgroup preview-latex nil "LaTeX options for preview." :group 'preview @@ -1538,7 +1544,11 @@ so that they match the reference face in height." 10.0))) (lambda () (/ d (preview-document-pt))))) -(defvar preview-min-spec) +(defvar preview-min-spec nil + "Value to filter out too large icons. +Icon specs with :size larger than this value is not used. +Appropriate value is determined at run time according to the +display in use.") (defun preview-make-image (symbol) "Make an image from a preview spec list. @@ -2058,7 +2068,7 @@ overlays not in the active window." (push ovr preview-temporary-opened)))) (if (fboundp 'advice-add) ;Emacsā„24.4 (or ELPA package nadvice) - (advice-add 'replace-highlight :before #'preview--open-for-replace) + nil ; See the defcustom below. (defadvice replace-highlight (before preview) (preview--open-for-replace (ad-get-arg 0) (ad-get-arg 1)))) @@ -2073,10 +2083,16 @@ overlays not in the active window." :require 'preview :set (lambda (symbol value) (set-default symbol value) - (if value - (ad-enable-advice 'replace-highlight 'before 'preview) - (ad-disable-advice 'replace-highlight 'before 'preview)) - (ad-activate 'replace-highlight)) + (if (fboundp 'advice-add) ; COMPATIBILITY for Emacs<24.4 + (if value + (advice-add 'replace-highlight :before + #'preview--open-for-replace) + (advice-remove 'replace-highlight + #'preview--open-for-replace)) + (if value + (ad-enable-advice 'replace-highlight 'before 'preview) + (ad-disable-advice 'replace-highlight 'before 'preview)) + (ad-activate 'replace-highlight))) :initialize #'custom-initialize-reset) (defun preview-relaxed-string= (&rest args) @@ -2293,7 +2309,8 @@ kept." (add-hook 'kill-buffer-hook #'preview-kill-buffer-cleanup) (add-hook 'before-revert-hook #'preview-kill-buffer-cleanup) -(defvar preview-last-counter) +(defvar preview-last-counter nil + "Last counter information.") (defun preview-extract-counters (ctr) (setq preview-last-counter @@ -3909,7 +3926,8 @@ This is passed through `preview-do-replacements'." (choice (symbol :tag "Variable with literal string") (string :tag "non-literal regexp replacement"))))))) -(defvar preview-format-name) +(defvar preview-format-name nil + "Format name when enabling preamble cache.") (defcustom preview-dump-replacements '(preview-LaTeX-command-replacements diff --git a/tests/japanese/preview-latex.el b/tests/japanese/preview-latex.el index 9b5f395..52e98c2 100644 --- a/tests/japanese/preview-latex.el +++ b/tests/japanese/preview-latex.el @@ -219,7 +219,7 @@ String encoded in `shift_jis' can have regexp meta characters in it." (let ((TeX-clean-confirm nil) ;; Make `preview-call-hook' inactive. (preview-image-creators nil) - dummyfile process) + dummyfile process buffer) (unwind-protect (save-window-excursion (find-file preserve-kanji-option) @@ -235,11 +235,11 @@ String encoded in `shift_jis' can have regexp meta characters in it." (let ((cmd (process-command process))) (should (string-match "-kanji" (nth (1- (length cmd)) cmd))))) ;; Cleanup. - (accept-process-output process) - (set-buffer (get-file-buffer preserve-kanji-option)) - (let* ((buffer (TeX-process-buffer-name (TeX-master-file nil t))) - (process (get-buffer-process buffer))) - (if process (delete-process process)) + (when (processp process) + (setq buffer (process-buffer process)) + (accept-process-output process) + (delete-process process)) + (when (buffer-live-p buffer) (kill-buffer buffer)) (TeX-clean t) (dolist (dir preview-temp-dirs) @@ -253,7 +253,7 @@ String encoded in `shift_jis' can have regexp meta characters in it." ;; Make `preview-call-hook' inactive. (preview-image-creators nil) (preview-format-name "dummy") - dummyfile process) + dummyfile process buffer) (unwind-protect (save-window-excursion (find-file preserve-kanji-option) @@ -269,11 +269,11 @@ String encoded in `shift_jis' can have regexp meta characters in it." (let ((cmd (process-command process))) (should (string-match "-kanji" (nth (1- (length cmd)) cmd))))) ;; Cleanup. - (accept-process-output process) - (set-buffer (get-file-buffer preserve-kanji-option)) - (let* ((buffer (TeX-process-buffer-name (TeX-master-file nil t))) - (process (get-buffer-process buffer))) - (if process (delete-process process)) + (when (processp process) + (setq buffer (process-buffer process)) + (accept-process-output process) + (delete-process process)) + (when (buffer-live-p buffer) (kill-buffer buffer)) (TeX-clean t) (dolist (dir preview-temp-dirs) diff --git a/tests/latex/font-latex-test.el b/tests/latex/font-latex-test.el index 7484d03..5e5fccf 100644 --- a/tests/latex/font-latex-test.el +++ b/tests/latex/font-latex-test.el @@ -24,6 +24,8 @@ (require 'ert) (require 'latex) (require 'font-latex) +(defvar font-lock-beg) +(defvar font-lock-end) (ert-deftest font-latex-three-dollars () "Test three consecutive dollar is ignored." diff --git a/tests/tex/path-expansion.el b/tests/tex/path-expansion.el index 2246e92..8bce810 100644 --- a/tests/tex/path-expansion.el +++ b/tests/tex/path-expansion.el @@ -25,11 +25,12 @@ (ert-deftest TeX-variable-truncation () "Check whether list variable is not truncated as side effect." - (let ((var '("str1" "str2")) + (defvar TeX--var) + (let ((TeX--var '("str1" "str2")) (TeX-kpathsea-path-delimiter nil) (TeX-search-files-type-alist - '((abc "${dummy}" ("str2" var) TeX-file-extensions)))) + '((abc "${dummy}" ("str2" TeX--var) TeX-file-extensions)))) (TeX-search-files-by-type 'abc 'global) - (should (equal var '("str1" "str2"))))) + (should (equal TeX--var '("str1" "str2"))))) ;;; path-expansion.el ends here