Mercurial > hg > xemacs-beta
comparison lisp/minibuf.el @ 4734:74a5eaa67982
Make switch-to-buffer completion avoid current buffer.
author | Didier Verna <didier@xemacs.org> |
---|---|
date | Mon, 09 Nov 2009 17:05:19 +0100 |
parents | 3c92890f3750 |
children | fd36a980d701 |
comparison
equal
deleted
inserted
replaced
4733:a5210e70ffbe | 4734:74a5eaa67982 |
---|---|
37 | 37 |
38 ;; 06/11/1997 - Use char-(after|before) instead of | 38 ;; 06/11/1997 - Use char-(after|before) instead of |
39 ;; (following|preceding)-char. -slb | 39 ;; (following|preceding)-char. -slb |
40 | 40 |
41 ;;; Code: | 41 ;;; Code: |
42 | |
43 (require 'cl) | |
42 | 44 |
43 (defgroup minibuffer nil | 45 (defgroup minibuffer nil |
44 "Controling the behavior of the minibuffer." | 46 "Controling the behavior of the minibuffer." |
45 :group 'environment) | 47 :group 'environment) |
46 | 48 |
1465 'variable-history | 1467 'variable-history |
1466 (if (symbolp default-value) | 1468 (if (symbolp default-value) |
1467 (symbol-name default-value) | 1469 (symbol-name default-value) |
1468 default-value)))) | 1470 default-value)))) |
1469 | 1471 |
1470 (defun read-buffer (prompt &optional default require-match) | 1472 (defun read-buffer (prompt &optional default require-match exclude) |
1471 "Read the name of a buffer and return as a string. | 1473 "Read the name of a buffer and return as a string. |
1472 Prompts with PROMPT. Optional second arg DEFAULT is value to return if user | 1474 Prompts with PROMPT. Optional second arg DEFAULT is value to return if user |
1473 enters an empty line. If optional third arg REQUIRE-MATCH is non-nil, | 1475 enters an empty line. If optional third arg REQUIRE-MATCH is non-nil, |
1474 only existing buffer names are allowed." | 1476 only existing buffer names are allowed. Optional fourth argument EXCLUDE is |
1477 a buffer or a list of buffers to exclude from the completion list." | |
1478 (when (bufferp exclude) | |
1479 (setq exclude (list exclude))) | |
1475 (let ((prompt (if default | 1480 (let ((prompt (if default |
1476 (format "%s(default %s) " | 1481 (format "%s(default %s) " |
1477 (gettext prompt) (if (bufferp default) | 1482 (gettext prompt) (if (bufferp default) |
1478 (buffer-name default) | 1483 (buffer-name default) |
1479 default)) | 1484 default)) |
1480 prompt)) | 1485 prompt)) |
1481 (alist (mapcar #'(lambda (b) (cons (buffer-name b) b)) | 1486 (alist (mapcar #'(lambda (b) (cons (buffer-name b) b)) |
1482 (buffer-list))) | 1487 (remove-if (lambda (elt) (member elt exclude)) |
1483 result) | 1488 (buffer-list)))) |
1489 result) | |
1484 (while (progn | 1490 (while (progn |
1485 (setq result (completing-read prompt alist nil require-match | 1491 (setq result (completing-read prompt alist nil require-match |
1486 nil 'buffer-history | 1492 nil 'buffer-history |
1487 (if (bufferp default) | 1493 (if (bufferp default) |
1488 (buffer-name default) | 1494 (buffer-name default) |