aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1997-06-12 03:51:53 +0000
committerRichard M. Stallman1997-06-12 03:51:53 +0000
commit5acc847d859ea609f87013fa71477a1b281a27d5 (patch)
tree818e9d1ca50e357831726fbd91f30ce0ec438e90
parent04bed6f76ce3b74badafde6996c7abced1f13c38 (diff)
downloademacs-5acc847d859ea609f87013fa71477a1b281a27d5.tar.gz
emacs-5acc847d859ea609f87013fa71477a1b281a27d5.zip
(finder-mode): Don't switch buffers or change text here.
(finder-by-keyword): Don't call finder-mode here. (finder-list-matches): Call finder-mode here. Switch to a buffer called *Finder Category*. (finder-list-keywords): Call finder-mode here. Switch to the buffer *Finder*. If the buffer already exists, don't reinitialize it or move point.
-rw-r--r--lisp/finder.el40
1 files changed, 21 insertions, 19 deletions
diff --git a/lisp/finder.el b/lisp/finder.el
index d86a18ea779..799a681418c 100644
--- a/lisp/finder.el
+++ b/lisp/finder.el
@@ -172,23 +172,29 @@ arguments compiles from `load-path'."
172(defun finder-list-keywords () 172(defun finder-list-keywords ()
173 "Display descriptions of the keywords in the Finder buffer." 173 "Display descriptions of the keywords in the Finder buffer."
174 (interactive) 174 (interactive)
175 (setq buffer-read-only nil) 175 (if (get-buffer "*Finder*")
176 (erase-buffer) 176 (pop-to-buffer "*Finder*")
177 (mapcar 177 (pop-to-buffer (set-buffer "*Finder*"))
178 (lambda (assoc) 178 (finder-mode)
179 (let ((keyword (car assoc))) 179 (setq buffer-read-only nil)
180 (insert (symbol-name keyword)) 180 (erase-buffer)
181 (finder-insert-at-column 14 (concat (cdr assoc) "\n")) 181 (mapcar
182 (cons (symbol-name keyword) keyword))) 182 (lambda (assoc)
183 finder-known-keywords) 183 (let ((keyword (car assoc)))
184 (goto-char (point-min)) 184 (insert (symbol-name keyword))
185 (setq finder-headmark (point)) 185 (finder-insert-at-column 14 (concat (cdr assoc) "\n"))
186 (setq buffer-read-only t) 186 (cons (symbol-name keyword) keyword)))
187 (set-buffer-modified-p nil) 187 finder-known-keywords)
188 (balance-windows) 188 (goto-char (point-min))
189 (finder-summary)) 189 (setq finder-headmark (point))
190 (setq buffer-read-only t)
191 (set-buffer-modified-p nil)
192 (balance-windows)
193 (finder-summary)))
190 194
191(defun finder-list-matches (key) 195(defun finder-list-matches (key)
196 (pop-to-buffer (set-buffer "*Finder Category*"))
197 (finder-mode)
192 (setq buffer-read-only nil) 198 (setq buffer-read-only nil)
193 (erase-buffer) 199 (erase-buffer)
194 (let ((id (intern key))) 200 (let ((id (intern key)))
@@ -262,7 +268,6 @@ arguments compiles from `load-path'."
262(defun finder-by-keyword () 268(defun finder-by-keyword ()
263 "Find packages matching a given keyword." 269 "Find packages matching a given keyword."
264 (interactive) 270 (interactive)
265 (finder-mode)
266 (finder-list-keywords)) 271 (finder-list-keywords))
267 272
268(defun finder-mode () 273(defun finder-mode ()
@@ -272,9 +277,6 @@ arguments compiles from `load-path'."
272\\[finder-exit] exit Finder mode and kill the Finder buffer. 277\\[finder-exit] exit Finder mode and kill the Finder buffer.
273" 278"
274 (interactive) 279 (interactive)
275 (pop-to-buffer "*Finder*")
276 (setq buffer-read-only nil)
277 (erase-buffer)
278 (use-local-map finder-mode-map) 280 (use-local-map finder-mode-map)
279 (set-syntax-table emacs-lisp-mode-syntax-table) 281 (set-syntax-table emacs-lisp-mode-syntax-table)
280 (setq mode-name "Finder") 282 (setq mode-name "Finder")