aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes
diff options
context:
space:
mode:
authorStefan Monnier2011-01-20 17:36:12 -0500
committerStefan Monnier2011-01-20 17:36:12 -0500
commit8dabbfd6325ea5b11e67fa8358625669808312dd (patch)
tree079663dec17eea59c35ba92edaed0bbdb64f7751 /lisp/progmodes
parent642f3c5c603d61aa0b47a614981f462669eec086 (diff)
downloademacs-8dabbfd6325ea5b11e67fa8358625669808312dd.tar.gz
emacs-8dabbfd6325ea5b11e67fa8358625669808312dd.zip
Don't mess with *temp*.
* lisp/obsolete/spell.el: Move from textmodes/spell.el. (spell-string): * lisp/term.el (term-read-input-ring): * lisp/startup.el (display-startup-echo-area-message): * lisp/progmodes/antlr-mode.el (antlr-directory-dependencies): * lisp/gnus/message.el (message-mailer-swallows-blank-line): * lisp/comint.el (comint-read-input-ring): Use with-temp-buffer. * lisp/international/mule.el (ctext-pre-write-conversion): Don't hardcode point-min==1. * lisp/gnus/mm-util.el (mm-find-buffer-file-coding-system): Don't forget to kill the temp buffer.
Diffstat (limited to 'lisp/progmodes')
-rw-r--r--lisp/progmodes/antlr-mode.el52
1 files changed, 24 insertions, 28 deletions
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index d9b036b67b4..3402282bd5d 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -2182,36 +2182,32 @@ grammar file in which CLASS is defined and EVOCAB is the name of the
2182export vocabulary specified in that file." 2182export vocabulary specified in that file."
2183 (let ((grammar (directory-files dirname t "\\.g\\'"))) 2183 (let ((grammar (directory-files dirname t "\\.g\\'")))
2184 (when grammar 2184 (when grammar
2185 (let ((temp-buffer (get-buffer-create 2185 (let ((antlr-imenu-name nil) ; dynamic-let: no imenu
2186 (generate-new-buffer-name " *temp*"))) 2186 (expanded-regexp
2187 (antlr-imenu-name nil) ; dynamic-let: no imenu 2187 (concat (format (regexp-quote
2188 (expanded-regexp (concat (format (regexp-quote 2188 (cadr antlr-special-file-formats))
2189 (cadr antlr-special-file-formats)) 2189 ".+")
2190 ".+") 2190 "\\'"))
2191 "\\'"))
2192 classes dependencies) 2191 classes dependencies)
2193 (unwind-protect 2192 (with-temp-buffer
2194 (with-current-buffer temp-buffer 2193 (dolist (file grammar)
2195 (widen) ; just in case... 2194 (when (and (file-regular-p file)
2196 (dolist (file grammar) 2195 (null (string-match expanded-regexp file)))
2197 (when (and (file-regular-p file) 2196 (insert-file-contents file t nil nil t)
2198 (null (string-match expanded-regexp file))) 2197 (normal-mode t) ; necessary for major-mode, syntax
2199 (insert-file-contents file t nil nil t)
2200 (normal-mode t) ; necessary for major-mode, syntax
2201 ; table and `antlr-language' 2198 ; table and `antlr-language'
2202 (when (derived-mode-p 'antlr-mode) 2199 (when (derived-mode-p 'antlr-mode)
2203 (let* ((file-deps (antlr-file-dependencies)) 2200 (let* ((file-deps (antlr-file-dependencies))
2204 (file (car file-deps))) 2201 (file (car file-deps)))
2205 (when file-deps 2202 (when file-deps
2206 (dolist (class-def (caadr file-deps)) 2203 (dolist (class-def (caadr file-deps))
2207 (let ((file-evocab (cons file (cdr class-def))) 2204 (let ((file-evocab (cons file (cdr class-def)))
2208 (class-spec (assoc (car class-def) classes))) 2205 (class-spec (assoc (car class-def) classes)))
2209 (if class-spec 2206 (if class-spec
2210 (nconc (cdr class-spec) (list file-evocab)) 2207 (nconc (cdr class-spec) (list file-evocab))
2211 (push (list (car class-def) file-evocab) 2208 (push (list (car class-def) file-evocab)
2212 classes)))) 2209 classes))))
2213 (push file-deps dependencies))))))) 2210 (push file-deps dependencies)))))))
2214 (kill-buffer temp-buffer))
2215 (cons (nreverse classes) (nreverse dependencies)))))) 2211 (cons (nreverse classes) (nreverse dependencies))))))
2216 2212
2217 2213