diff options
| author | Juri Linkov | 2009-11-30 19:42:16 +0000 |
|---|---|---|
| committer | Juri Linkov | 2009-11-30 19:42:16 +0000 |
| commit | c585bf3275d8204c67eb0a3dd52dd2bd3af8ed5f (patch) | |
| tree | d3ffe2d7c6b4ed125e4eb51822da738aef9bac84 | |
| parent | 0a7457335a6a48162517a80230820135608bacd3 (diff) | |
| download | emacs-c585bf3275d8204c67eb0a3dd52dd2bd3af8ed5f.tar.gz emacs-c585bf3275d8204c67eb0a3dd52dd2bd3af8ed5f.zip | |
(multi-isearch-read-buffers)
(multi-isearch-read-matching-buffers): New functions.
(multi-isearch-buffers, multi-isearch-buffers-regexp):
Use them in the `interactive' spec. Doc fix.
(multi-isearch-read-files, multi-isearch-read-matching-files):
New functions.
(multi-isearch-files, multi-isearch-files-regexp):
Use them in the `interactive' spec. Doc fix. (Bug#4725)
| -rw-r--r-- | etc/NEWS | 8 | ||||
| -rw-r--r-- | lisp/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/misearch.el | 93 |
3 files changed, 108 insertions, 4 deletions
| @@ -304,6 +304,14 @@ Command*'. | |||
| 304 | and `comint-history-isearch-backward-regexp' (bound to M-r) start Isearch | 304 | and `comint-history-isearch-backward-regexp' (bound to M-r) start Isearch |
| 305 | in the input history regardless of the value of `comint-history-isearch'. | 305 | in the input history regardless of the value of `comint-history-isearch'. |
| 306 | 306 | ||
| 307 | *** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp' | ||
| 308 | read buffer names to search, one by one, ended with RET. With a prefix | ||
| 309 | argument, they ask for a regexp, and search in buffers whose names match | ||
| 310 | the specified regexp. Interactively `multi-isearch-files' and | ||
| 311 | `multi-isearch-files-regexp' read file names to search, one by one, | ||
| 312 | ended with RET. With a prefix argument, they ask for a wildcard, and | ||
| 313 | search in file buffers whose file names match the specified wildcard. | ||
| 314 | |||
| 307 | +++ | 315 | +++ |
| 308 | *** Autorevert Tail mode now works also for remote files. | 316 | *** Autorevert Tail mode now works also for remote files. |
| 309 | 317 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e901802b6c0..e8d3afbc36c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,16 @@ | |||
| 1 | 2009-11-30 Juri Linkov <juri@jurta.org> | 1 | 2009-11-30 Juri Linkov <juri@jurta.org> |
| 2 | 2 | ||
| 3 | * misearch.el (multi-isearch-read-buffers) | ||
| 4 | (multi-isearch-read-matching-buffers): New functions. | ||
| 5 | (multi-isearch-buffers, multi-isearch-buffers-regexp): | ||
| 6 | Use them in the `interactive' spec. Doc fix. | ||
| 7 | (multi-isearch-read-files, multi-isearch-read-matching-files): | ||
| 8 | New functions. | ||
| 9 | (multi-isearch-files, multi-isearch-files-regexp): | ||
| 10 | Use them in the `interactive' spec. Doc fix. (Bug#4725) | ||
| 11 | |||
| 12 | 2009-11-30 Juri Linkov <juri@jurta.org> | ||
| 13 | |||
| 3 | * doc-view.el (doc-view-continuous): | 14 | * doc-view.el (doc-view-continuous): |
| 4 | Rename from `doc-view-continuous-mode'. | 15 | Rename from `doc-view-continuous-mode'. |
| 5 | (doc-view-menu): Move "Toggle display" to the top. | 16 | (doc-view-menu): Move "Toggle display" to the top. |
diff --git a/lisp/misearch.el b/lisp/misearch.el index c2a5b344c69..cfdd5efa49e 100644 --- a/lisp/misearch.el +++ b/lisp/misearch.el | |||
| @@ -224,9 +224,46 @@ set in `multi-isearch-buffers' or `multi-isearch-buffers-regexp'." | |||
| 224 | (car buffers) | 224 | (car buffers) |
| 225 | (cadr (member (or buffer (current-buffer)) buffers))))) | 225 | (cadr (member (or buffer (current-buffer)) buffers))))) |
| 226 | 226 | ||
| 227 | (defun multi-isearch-read-buffers () | ||
| 228 | "Return a list of buffers specified interactively, one by one." | ||
| 229 | ;; Most code from `multi-occur'. | ||
| 230 | (let* ((bufs (list (read-buffer "First buffer to search: " | ||
| 231 | (current-buffer) t))) | ||
| 232 | (buf nil) | ||
| 233 | (ido-ignore-item-temp-list bufs)) | ||
| 234 | (while (not (string-equal | ||
| 235 | (setq buf (read-buffer | ||
| 236 | (if (eq read-buffer-function 'ido-read-buffer) | ||
| 237 | "Next buffer to search (C-j to end): " | ||
| 238 | "Next buffer to search (RET to end): ") | ||
| 239 | nil t)) | ||
| 240 | "")) | ||
| 241 | (add-to-list 'bufs buf) | ||
| 242 | (setq ido-ignore-item-temp-list bufs)) | ||
| 243 | (nreverse (mapcar #'get-buffer bufs)))) | ||
| 244 | |||
| 245 | (defun multi-isearch-read-matching-buffers () | ||
| 246 | "Return a list of buffers whose names match specified regexp." | ||
| 247 | ;; Most code from `multi-occur-in-matching-buffers' | ||
| 248 | ;; and `kill-matching-buffers'. | ||
| 249 | (let ((bufregexp | ||
| 250 | (read-regexp "Search in buffers whose names match regexp"))) | ||
| 251 | (when bufregexp | ||
| 252 | (delq nil (mapcar (lambda (buf) | ||
| 253 | (when (string-match bufregexp (buffer-name buf)) | ||
| 254 | buf)) | ||
| 255 | (buffer-list)))))) | ||
| 256 | |||
| 227 | ;;;###autoload | 257 | ;;;###autoload |
| 228 | (defun multi-isearch-buffers (buffers) | 258 | (defun multi-isearch-buffers (buffers) |
| 229 | "Start multi-buffer Isearch on a list of BUFFERS." | 259 | "Start multi-buffer Isearch on a list of BUFFERS. |
| 260 | Interactively read buffer names to search, one by one, ended with RET. | ||
| 261 | With a prefix argument, ask for a regexp, and search in buffers | ||
| 262 | whose names match the specified regexp." | ||
| 263 | (interactive | ||
| 264 | (list (if current-prefix-arg | ||
| 265 | (multi-isearch-read-matching-buffers) | ||
| 266 | (multi-isearch-read-buffers)))) | ||
| 230 | (let ((multi-isearch-next-buffer-function | 267 | (let ((multi-isearch-next-buffer-function |
| 231 | 'multi-isearch-next-buffer-from-list) | 268 | 'multi-isearch-next-buffer-from-list) |
| 232 | (multi-isearch-buffer-list buffers)) | 269 | (multi-isearch-buffer-list buffers)) |
| @@ -236,7 +273,14 @@ set in `multi-isearch-buffers' or `multi-isearch-buffers-regexp'." | |||
| 236 | 273 | ||
| 237 | ;;;###autoload | 274 | ;;;###autoload |
| 238 | (defun multi-isearch-buffers-regexp (buffers) | 275 | (defun multi-isearch-buffers-regexp (buffers) |
| 239 | "Start multi-buffer regexp Isearch on a list of BUFFERS." | 276 | "Start multi-buffer regexp Isearch on a list of BUFFERS. |
| 277 | Interactively read buffer names to search, one by one, ended with RET. | ||
| 278 | With a prefix argument, ask for a regexp, and search in buffers | ||
| 279 | whose names match the specified regexp." | ||
| 280 | (interactive | ||
| 281 | (list (if current-prefix-arg | ||
| 282 | (multi-isearch-read-matching-buffers) | ||
| 283 | (multi-isearch-read-buffers)))) | ||
| 240 | (let ((multi-isearch-next-buffer-function | 284 | (let ((multi-isearch-next-buffer-function |
| 241 | 'multi-isearch-next-buffer-from-list) | 285 | 'multi-isearch-next-buffer-from-list) |
| 242 | (multi-isearch-buffer-list buffers)) | 286 | (multi-isearch-buffer-list buffers)) |
| @@ -264,9 +308,43 @@ Every next/previous file in the defined sequence is visited by | |||
| 264 | (car files) | 308 | (car files) |
| 265 | (cadr (member (buffer-file-name buffer) files)))))) | 309 | (cadr (member (buffer-file-name buffer) files)))))) |
| 266 | 310 | ||
| 311 | (defun multi-isearch-read-files () | ||
| 312 | "Return a list of files specified interactively, one by one." | ||
| 313 | ;; Most code from `multi-occur'. | ||
| 314 | (let* ((files (list (read-file-name "First file to search: " | ||
| 315 | default-directory | ||
| 316 | buffer-file-name))) | ||
| 317 | (file nil)) | ||
| 318 | (while (not (string-equal | ||
| 319 | (setq file (read-file-name | ||
| 320 | "Next file to search (RET to end): " | ||
| 321 | default-directory | ||
| 322 | default-directory)) | ||
| 323 | default-directory)) | ||
| 324 | (add-to-list 'files file)) | ||
| 325 | (nreverse files))) | ||
| 326 | |||
| 327 | (defun multi-isearch-read-matching-files () | ||
| 328 | "Return a list of files whose names match specified wildcard." | ||
| 329 | ;; Most wildcard code from `find-file-noselect'. | ||
| 330 | (let ((filename (read-regexp "Search in files whose names match wildcard"))) | ||
| 331 | (when (and filename | ||
| 332 | (not (string-match "\\`/:" filename)) | ||
| 333 | (string-match "[[*?]" filename)) | ||
| 334 | (condition-case nil | ||
| 335 | (file-expand-wildcards filename t) | ||
| 336 | (error (list filename)))))) | ||
| 337 | |||
| 267 | ;;;###autoload | 338 | ;;;###autoload |
| 268 | (defun multi-isearch-files (files) | 339 | (defun multi-isearch-files (files) |
| 269 | "Start multi-buffer Isearch on a list of FILES." | 340 | "Start multi-buffer Isearch on a list of FILES. |
| 341 | Interactively read file names to search, one by one, ended with RET. | ||
| 342 | With a prefix argument, ask for a wildcard, and search in file buffers | ||
| 343 | whose file names match the specified wildcard." | ||
| 344 | (interactive | ||
| 345 | (list (if current-prefix-arg | ||
| 346 | (multi-isearch-read-matching-files) | ||
| 347 | (multi-isearch-read-files)))) | ||
| 270 | (let ((multi-isearch-next-buffer-function | 348 | (let ((multi-isearch-next-buffer-function |
| 271 | 'multi-isearch-next-file-buffer-from-list) | 349 | 'multi-isearch-next-file-buffer-from-list) |
| 272 | (multi-isearch-file-list files)) | 350 | (multi-isearch-file-list files)) |
| @@ -276,7 +354,14 @@ Every next/previous file in the defined sequence is visited by | |||
| 276 | 354 | ||
| 277 | ;;;###autoload | 355 | ;;;###autoload |
| 278 | (defun multi-isearch-files-regexp (files) | 356 | (defun multi-isearch-files-regexp (files) |
| 279 | "Start multi-buffer regexp Isearch on a list of FILES." | 357 | "Start multi-buffer regexp Isearch on a list of FILES. |
| 358 | Interactively read file names to search, one by one, ended with RET. | ||
| 359 | With a prefix argument, ask for a wildcard, and search in file buffers | ||
| 360 | whose file names match the specified wildcard." | ||
| 361 | (interactive | ||
| 362 | (list (if current-prefix-arg | ||
| 363 | (multi-isearch-read-matching-files) | ||
| 364 | (multi-isearch-read-files)))) | ||
| 280 | (let ((multi-isearch-next-buffer-function | 365 | (let ((multi-isearch-next-buffer-function |
| 281 | 'multi-isearch-next-file-buffer-from-list) | 366 | 'multi-isearch-next-file-buffer-from-list) |
| 282 | (multi-isearch-file-list files)) | 367 | (multi-isearch-file-list files)) |