Mercurial > emacs
changeset 68003:a45d40da31da
(flymake-base-dir, flymake-master-file-name, flymake-temp-master-file-name)
(flymake-temp-source-file-name): New buffer-local vars.
(flymake-buffer-data, flymake-get-buffer-value, flymake-set-buffer-value):
Replace those hash-tables by the new buffer-local vars. Update callers.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 03 Jan 2006 19:05:06 +0000 |
parents | 84f2196866ae |
children | 1a9ccbce1b6e |
files | lisp/ChangeLog lisp/progmodes/flymake.el |
diffstat | 2 files changed, 51 insertions(+), 44 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Jan 03 18:44:42 2006 +0000 +++ b/lisp/ChangeLog Tue Jan 03 19:05:06 2006 +0000 @@ -1,5 +1,12 @@ 2006-01-03 Stefan Monnier <monnier@iro.umontreal.ca> + * progmodes/flymake.el (flymake-temp-source-file-name) + (flymake-master-file-name, flymake-temp-master-file-name) + (flymake-base-dir): New buffer-local vars. + (flymake-buffer-data, flymake-get-buffer-value) + (flymake-set-buffer-value): Replace those hash-tables by the new + buffer-local vars. Update callers. + * progmodes/flymake.el (flymake-check-start-time) (flymake-check-was-interrupted, flymake-err-info, flymake-is-running) (flymake-last-change-time, flymake-new-err-info, flymake-timer):
--- a/lisp/progmodes/flymake.el Tue Jan 03 18:44:42 2006 +0000 +++ b/lisp/progmodes/flymake.el Tue Jan 03 19:05:06 2006 +0000 @@ -240,17 +240,6 @@ (defvar flymake-processes nil "List of currently active flymake processes.") -(defvar flymake-buffer-data nil - "Data specific to syntax check tool, in name-value pairs.") - -(make-variable-buffer-local 'flymake-buffer-data) - -(defun flymake-get-buffer-value (buffer name) - (gethash name (with-current-buffer buffer flymake-buffer-data))) - -(defun flymake-set-buffer-value (buffer name value) - (puthash name value (with-current-buffer buffer flymake-buffer-data))) - (defvar flymake-output-residual nil) (make-variable-buffer-local 'flymake-output-residual) @@ -1178,7 +1167,6 @@ (flymake-clear-project-include-dirs-cache) (setq flymake-check-was-interrupted nil) - (setq flymake-buffer-data (flymake-makehash 'equal)) (let* ((source-file-name buffer-file-name) (init-f (flymake-get-init-function source-file-name)) @@ -1576,19 +1564,33 @@ (setq suffix (substring suffix 0 slash-pos)) (setq suffix ""))))) +(defvar flymake-temp-source-file-name nil) +(make-variable-buffer-local 'flymake-temp-source-file-name) + +(defvar flymake-master-file-name nil) +(make-variable-buffer-local 'flymake-master-file-name) + +(defvar flymake-temp-master-file-name nil) +(make-variable-buffer-local 'flymake-temp-master-file-name) + +(defvar flymake-base-dir nil) +(make-variable-buffer-local 'flymake-base-dir) + (defun flymake-init-create-temp-buffer-copy (buffer create-temp-f) "Make a temporary copy of the current buffer, save its name in buffer data and return the name." (let* ((source-file-name (buffer-file-name buffer)) (temp-source-file-name (funcall create-temp-f source-file-name "flymake"))) (flymake-save-buffer-in-file buffer temp-source-file-name) - (flymake-set-buffer-value buffer "temp-source-file-name" temp-source-file-name) + (with-current-buffer buffer + (setq flymake-temp-source-file-name temp-source-file-name)) temp-source-file-name)) (defun flymake-simple-cleanup (buffer) "Do cleanup after `flymake-init-create-temp-buffer-copy'. Delete temp file." - (let* ((temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name"))) + (let* ((temp-source-file-name (with-current-buffer buffer + flymake-temp-source-file-name))) (flymake-safe-delete-file temp-source-file-name) (with-current-buffer buffer (setq flymake-last-change-time nil)))) @@ -1598,12 +1600,16 @@ Return full-name. Names are real, not patched." (let* ((real-name nil) (source-file-name (buffer-file-name buffer)) - (master-file-name (flymake-get-buffer-value buffer "master-file-name")) - (temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name")) - (temp-master-file-name (flymake-get-buffer-value buffer "temp-master-file-name")) - (base-dirs (list (flymake-get-buffer-value buffer "base-dir") - (file-name-directory source-file-name) - (if master-file-name (file-name-directory master-file-name) nil))) + (master-file-name + (with-current-buffer buffer flymake-master-file-name)) + (temp-source-file-name + (with-current-buffer buffer flymake-temp-source-file-name)) + (temp-master-file-name + (with-current-buffer buffer flymake-temp-master-file-name)) + (base-dirs + (list (with-current-buffer buffer flymake-base-dir) + (file-name-directory source-file-name) + (if master-file-name (file-name-directory master-file-name)))) (files (list (list source-file-name source-file-name) (list temp-source-file-name source-file-name) (list master-file-name master-file-name) @@ -1657,25 +1663,22 @@ (defun flymake-init-find-buildfile-dir (buffer source-file-name buildfile-name) "Find buildfile, store its dir in buffer data and return its dir, if found." - (let* ((buildfile-dir (flymake-find-buildfile buildfile-name - (file-name-directory source-file-name) - flymake-buildfile-dirs))) - (if (not buildfile-dir) - (progn - (flymake-log 1 "no buildfile (%s) for %s" buildfile-name source-file-name) - (with-current-buffer buffer - (flymake-report-fatal-status "NOMK" (format "No buildfile (%s) found for %s" buildfile-name source-file-name))) - ) - (progn - (flymake-set-buffer-value buffer "base-dir" buildfile-dir))) - buildfile-dir)) + (let* ((buildfile-dir + (flymake-find-buildfile buildfile-name + (file-name-directory source-file-name) + flymake-buildfile-dirs))) + (if buildfile-dir + (with-current-buffer buffer (setq flymake-base-dir buildfile-dir)) + (flymake-log 1 "no buildfile (%s) for %s" buildfile-name source-file-name) + (with-current-buffer buffer + (flymake-report-fatal-status + "NOMK" (format "No buildfile (%s) found for %s" + buildfile-name source-file-name)))))) (defun flymake-init-create-temp-source-and-master-buffer-copy (buffer get-incl-dirs-f create-temp-f master-file-masks include-regexp-list) "Find master file (or buffer), create it's copy along with a copy of the source file." (let* ((source-file-name (buffer-file-name buffer)) (temp-source-file-name (flymake-init-create-temp-buffer-copy buffer create-temp-f)) - (master-file-name nil) - (temp-master-file-name nil) (master-and-temp-master (flymake-create-master-file source-file-name temp-source-file-name get-incl-dirs-f create-temp-f @@ -1687,18 +1690,14 @@ (when (bufferp buffer) (with-current-buffer buffer (flymake-report-status "!" ""))) ; NOMASTER - ) - (progn - (setq master-file-name (nth 0 master-and-temp-master)) - (setq temp-master-file-name (nth 1 master-and-temp-master)) - (flymake-set-buffer-value buffer "master-file-name" master-file-name) - (flymake-set-buffer-value buffer "temp-master-file-name" temp-master-file-name) - )) - temp-master-file-name)) + nil) + (with-current-buffer buffer + (setq flymake-master-file-name (nth 0 master-and-temp-master)) + (setq flymake-temp-master-file-name (nth 1 master-and-temp-master)))))) (defun flymake-master-cleanup (buffer) (flymake-simple-cleanup buffer) - (flymake-safe-delete-file (flymake-get-buffer-value buffer "temp-master-file-name"))) + (flymake-safe-delete-file (with-current-buffer buffer flymake-temp-master-file-name))) ;;;; make-specific init-cleanup routines (defun flymake-get-syntax-check-program-args (source-file-name base-dir use-relative-base-dir use-relative-source get-cmd-line-f) @@ -1778,7 +1777,8 @@ (defun flymake-simple-java-cleanup (buffer) "Cleanup after `flymake-simple-make-java-init' -- delete temp file and dirs." - (let* ((temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name"))) + (let* ((temp-source-file-name (with-current-buffer buffer + flymake-temp-source-file-name))) (flymake-safe-delete-file temp-source-file-name) (when temp-source-file-name (flymake-delete-temp-directory (file-name-directory temp-source-file-name)))))