diff options
| author | Stefan Monnier | 2006-01-03 19:05:06 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2006-01-03 19:05:06 +0000 |
| commit | 5bcef417b1587707a4849dce71aefd837cbbebb3 (patch) | |
| tree | f5811158b7b069d5b40005b561ae0ab11ae9f3e9 | |
| parent | 43ed65aceabebdbfbe7d2f31fe63fca0cd36858b (diff) | |
| download | emacs-5bcef417b1587707a4849dce71aefd837cbbebb3.tar.gz emacs-5bcef417b1587707a4849dce71aefd837cbbebb3.zip | |
(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.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/progmodes/flymake.el | 88 |
2 files changed, 51 insertions, 44 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4af6886a499..cde815b83b5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,12 @@ | |||
| 1 | 2006-01-03 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2006-01-03 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * progmodes/flymake.el (flymake-temp-source-file-name) | ||
| 4 | (flymake-master-file-name, flymake-temp-master-file-name) | ||
| 5 | (flymake-base-dir): New buffer-local vars. | ||
| 6 | (flymake-buffer-data, flymake-get-buffer-value) | ||
| 7 | (flymake-set-buffer-value): Replace those hash-tables by the new | ||
| 8 | buffer-local vars. Update callers. | ||
| 9 | |||
| 3 | * progmodes/flymake.el (flymake-check-start-time) | 10 | * progmodes/flymake.el (flymake-check-start-time) |
| 4 | (flymake-check-was-interrupted, flymake-err-info, flymake-is-running) | 11 | (flymake-check-was-interrupted, flymake-err-info, flymake-is-running) |
| 5 | (flymake-last-change-time, flymake-new-err-info, flymake-timer): | 12 | (flymake-last-change-time, flymake-new-err-info, flymake-timer): |
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 568964705ff..42f2ad787a7 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el | |||
| @@ -240,17 +240,6 @@ are the string substitutions (see `format')." | |||
| 240 | (defvar flymake-processes nil | 240 | (defvar flymake-processes nil |
| 241 | "List of currently active flymake processes.") | 241 | "List of currently active flymake processes.") |
| 242 | 242 | ||
| 243 | (defvar flymake-buffer-data nil | ||
| 244 | "Data specific to syntax check tool, in name-value pairs.") | ||
| 245 | |||
| 246 | (make-variable-buffer-local 'flymake-buffer-data) | ||
| 247 | |||
| 248 | (defun flymake-get-buffer-value (buffer name) | ||
| 249 | (gethash name (with-current-buffer buffer flymake-buffer-data))) | ||
| 250 | |||
| 251 | (defun flymake-set-buffer-value (buffer name value) | ||
| 252 | (puthash name value (with-current-buffer buffer flymake-buffer-data))) | ||
| 253 | |||
| 254 | (defvar flymake-output-residual nil) | 243 | (defvar flymake-output-residual nil) |
| 255 | 244 | ||
| 256 | (make-variable-buffer-local 'flymake-output-residual) | 245 | (make-variable-buffer-local 'flymake-output-residual) |
| @@ -1178,7 +1167,6 @@ For the format of LINE-ERR-INFO, see `flymake-ler-make-ler'." | |||
| 1178 | (flymake-clear-project-include-dirs-cache) | 1167 | (flymake-clear-project-include-dirs-cache) |
| 1179 | 1168 | ||
| 1180 | (setq flymake-check-was-interrupted nil) | 1169 | (setq flymake-check-was-interrupted nil) |
| 1181 | (setq flymake-buffer-data (flymake-makehash 'equal)) | ||
| 1182 | 1170 | ||
| 1183 | (let* ((source-file-name buffer-file-name) | 1171 | (let* ((source-file-name buffer-file-name) |
| 1184 | (init-f (flymake-get-init-function source-file-name)) | 1172 | (init-f (flymake-get-init-function source-file-name)) |
| @@ -1576,19 +1564,33 @@ With arg, turn Flymake mode on if and only if arg is positive." | |||
| 1576 | (setq suffix (substring suffix 0 slash-pos)) | 1564 | (setq suffix (substring suffix 0 slash-pos)) |
| 1577 | (setq suffix ""))))) | 1565 | (setq suffix ""))))) |
| 1578 | 1566 | ||
| 1567 | (defvar flymake-temp-source-file-name nil) | ||
| 1568 | (make-variable-buffer-local 'flymake-temp-source-file-name) | ||
| 1569 | |||
| 1570 | (defvar flymake-master-file-name nil) | ||
| 1571 | (make-variable-buffer-local 'flymake-master-file-name) | ||
| 1572 | |||
| 1573 | (defvar flymake-temp-master-file-name nil) | ||
| 1574 | (make-variable-buffer-local 'flymake-temp-master-file-name) | ||
| 1575 | |||
| 1576 | (defvar flymake-base-dir nil) | ||
| 1577 | (make-variable-buffer-local 'flymake-base-dir) | ||
| 1578 | |||
| 1579 | (defun flymake-init-create-temp-buffer-copy (buffer create-temp-f) | 1579 | (defun flymake-init-create-temp-buffer-copy (buffer create-temp-f) |
| 1580 | "Make a temporary copy of the current buffer, save its name in buffer data and return the name." | 1580 | "Make a temporary copy of the current buffer, save its name in buffer data and return the name." |
| 1581 | (let* ((source-file-name (buffer-file-name buffer)) | 1581 | (let* ((source-file-name (buffer-file-name buffer)) |
| 1582 | (temp-source-file-name (funcall create-temp-f source-file-name "flymake"))) | 1582 | (temp-source-file-name (funcall create-temp-f source-file-name "flymake"))) |
| 1583 | 1583 | ||
| 1584 | (flymake-save-buffer-in-file buffer temp-source-file-name) | 1584 | (flymake-save-buffer-in-file buffer temp-source-file-name) |
| 1585 | (flymake-set-buffer-value buffer "temp-source-file-name" temp-source-file-name) | 1585 | (with-current-buffer buffer |
| 1586 | (setq flymake-temp-source-file-name temp-source-file-name)) | ||
| 1586 | temp-source-file-name)) | 1587 | temp-source-file-name)) |
| 1587 | 1588 | ||
| 1588 | (defun flymake-simple-cleanup (buffer) | 1589 | (defun flymake-simple-cleanup (buffer) |
| 1589 | "Do cleanup after `flymake-init-create-temp-buffer-copy'. | 1590 | "Do cleanup after `flymake-init-create-temp-buffer-copy'. |
| 1590 | Delete temp file." | 1591 | Delete temp file." |
| 1591 | (let* ((temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name"))) | 1592 | (let* ((temp-source-file-name (with-current-buffer buffer |
| 1593 | flymake-temp-source-file-name))) | ||
| 1592 | (flymake-safe-delete-file temp-source-file-name) | 1594 | (flymake-safe-delete-file temp-source-file-name) |
| 1593 | (with-current-buffer buffer | 1595 | (with-current-buffer buffer |
| 1594 | (setq flymake-last-change-time nil)))) | 1596 | (setq flymake-last-change-time nil)))) |
| @@ -1598,12 +1600,16 @@ Delete temp file." | |||
| 1598 | Return full-name. Names are real, not patched." | 1600 | Return full-name. Names are real, not patched." |
| 1599 | (let* ((real-name nil) | 1601 | (let* ((real-name nil) |
| 1600 | (source-file-name (buffer-file-name buffer)) | 1602 | (source-file-name (buffer-file-name buffer)) |
| 1601 | (master-file-name (flymake-get-buffer-value buffer "master-file-name")) | 1603 | (master-file-name |
| 1602 | (temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name")) | 1604 | (with-current-buffer buffer flymake-master-file-name)) |
| 1603 | (temp-master-file-name (flymake-get-buffer-value buffer "temp-master-file-name")) | 1605 | (temp-source-file-name |
| 1604 | (base-dirs (list (flymake-get-buffer-value buffer "base-dir") | 1606 | (with-current-buffer buffer flymake-temp-source-file-name)) |
| 1605 | (file-name-directory source-file-name) | 1607 | (temp-master-file-name |
| 1606 | (if master-file-name (file-name-directory master-file-name) nil))) | 1608 | (with-current-buffer buffer flymake-temp-master-file-name)) |
| 1609 | (base-dirs | ||
| 1610 | (list (with-current-buffer buffer flymake-base-dir) | ||
| 1611 | (file-name-directory source-file-name) | ||
| 1612 | (if master-file-name (file-name-directory master-file-name)))) | ||
| 1607 | (files (list (list source-file-name source-file-name) | 1613 | (files (list (list source-file-name source-file-name) |
| 1608 | (list temp-source-file-name source-file-name) | 1614 | (list temp-source-file-name source-file-name) |
| 1609 | (list master-file-name master-file-name) | 1615 | (list master-file-name master-file-name) |
| @@ -1657,25 +1663,22 @@ Return full-name. Names are real, not patched." | |||
| 1657 | 1663 | ||
| 1658 | (defun flymake-init-find-buildfile-dir (buffer source-file-name buildfile-name) | 1664 | (defun flymake-init-find-buildfile-dir (buffer source-file-name buildfile-name) |
| 1659 | "Find buildfile, store its dir in buffer data and return its dir, if found." | 1665 | "Find buildfile, store its dir in buffer data and return its dir, if found." |
| 1660 | (let* ((buildfile-dir (flymake-find-buildfile buildfile-name | 1666 | (let* ((buildfile-dir |
| 1661 | (file-name-directory source-file-name) | 1667 | (flymake-find-buildfile buildfile-name |
| 1662 | flymake-buildfile-dirs))) | 1668 | (file-name-directory source-file-name) |
| 1663 | (if (not buildfile-dir) | 1669 | flymake-buildfile-dirs))) |
| 1664 | (progn | 1670 | (if buildfile-dir |
| 1665 | (flymake-log 1 "no buildfile (%s) for %s" buildfile-name source-file-name) | 1671 | (with-current-buffer buffer (setq flymake-base-dir buildfile-dir)) |
| 1666 | (with-current-buffer buffer | 1672 | (flymake-log 1 "no buildfile (%s) for %s" buildfile-name source-file-name) |
| 1667 | (flymake-report-fatal-status "NOMK" (format "No buildfile (%s) found for %s" buildfile-name source-file-name))) | 1673 | (with-current-buffer buffer |
| 1668 | ) | 1674 | (flymake-report-fatal-status |
| 1669 | (progn | 1675 | "NOMK" (format "No buildfile (%s) found for %s" |
| 1670 | (flymake-set-buffer-value buffer "base-dir" buildfile-dir))) | 1676 | buildfile-name source-file-name)))))) |
| 1671 | buildfile-dir)) | ||
| 1672 | 1677 | ||
| 1673 | (defun flymake-init-create-temp-source-and-master-buffer-copy (buffer get-incl-dirs-f create-temp-f master-file-masks include-regexp-list) | 1678 | (defun flymake-init-create-temp-source-and-master-buffer-copy (buffer get-incl-dirs-f create-temp-f master-file-masks include-regexp-list) |
| 1674 | "Find master file (or buffer), create it's copy along with a copy of the source file." | 1679 | "Find master file (or buffer), create it's copy along with a copy of the source file." |
| 1675 | (let* ((source-file-name (buffer-file-name buffer)) | 1680 | (let* ((source-file-name (buffer-file-name buffer)) |
| 1676 | (temp-source-file-name (flymake-init-create-temp-buffer-copy buffer create-temp-f)) | 1681 | (temp-source-file-name (flymake-init-create-temp-buffer-copy buffer create-temp-f)) |
| 1677 | (master-file-name nil) | ||
| 1678 | (temp-master-file-name nil) | ||
| 1679 | (master-and-temp-master (flymake-create-master-file | 1682 | (master-and-temp-master (flymake-create-master-file |
| 1680 | source-file-name temp-source-file-name | 1683 | source-file-name temp-source-file-name |
| 1681 | get-incl-dirs-f create-temp-f | 1684 | get-incl-dirs-f create-temp-f |
| @@ -1687,18 +1690,14 @@ Return full-name. Names are real, not patched." | |||
| 1687 | (when (bufferp buffer) | 1690 | (when (bufferp buffer) |
| 1688 | (with-current-buffer buffer | 1691 | (with-current-buffer buffer |
| 1689 | (flymake-report-status "!" ""))) ; NOMASTER | 1692 | (flymake-report-status "!" ""))) ; NOMASTER |
| 1690 | ) | 1693 | nil) |
| 1691 | (progn | 1694 | (with-current-buffer buffer |
| 1692 | (setq master-file-name (nth 0 master-and-temp-master)) | 1695 | (setq flymake-master-file-name (nth 0 master-and-temp-master)) |
| 1693 | (setq temp-master-file-name (nth 1 master-and-temp-master)) | 1696 | (setq flymake-temp-master-file-name (nth 1 master-and-temp-master)))))) |
| 1694 | (flymake-set-buffer-value buffer "master-file-name" master-file-name) | ||
| 1695 | (flymake-set-buffer-value buffer "temp-master-file-name" temp-master-file-name) | ||
| 1696 | )) | ||
| 1697 | temp-master-file-name)) | ||
| 1698 | 1697 | ||
| 1699 | (defun flymake-master-cleanup (buffer) | 1698 | (defun flymake-master-cleanup (buffer) |
| 1700 | (flymake-simple-cleanup buffer) | 1699 | (flymake-simple-cleanup buffer) |
| 1701 | (flymake-safe-delete-file (flymake-get-buffer-value buffer "temp-master-file-name"))) | 1700 | (flymake-safe-delete-file (with-current-buffer buffer flymake-temp-master-file-name))) |
| 1702 | 1701 | ||
| 1703 | ;;;; make-specific init-cleanup routines | 1702 | ;;;; make-specific init-cleanup routines |
| 1704 | (defun flymake-get-syntax-check-program-args (source-file-name base-dir use-relative-base-dir use-relative-source get-cmd-line-f) | 1703 | (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 @@ Use CREATE-TEMP-F for creating temp copy." | |||
| 1778 | 1777 | ||
| 1779 | (defun flymake-simple-java-cleanup (buffer) | 1778 | (defun flymake-simple-java-cleanup (buffer) |
| 1780 | "Cleanup after `flymake-simple-make-java-init' -- delete temp file and dirs." | 1779 | "Cleanup after `flymake-simple-make-java-init' -- delete temp file and dirs." |
| 1781 | (let* ((temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name"))) | 1780 | (let* ((temp-source-file-name (with-current-buffer buffer |
| 1781 | flymake-temp-source-file-name))) | ||
| 1782 | (flymake-safe-delete-file temp-source-file-name) | 1782 | (flymake-safe-delete-file temp-source-file-name) |
| 1783 | (when temp-source-file-name | 1783 | (when temp-source-file-name |
| 1784 | (flymake-delete-temp-directory (file-name-directory temp-source-file-name))))) | 1784 | (flymake-delete-temp-directory (file-name-directory temp-source-file-name))))) |