[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/simple.el,v
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/simple.el,v |
Date: |
Sun, 13 Apr 2008 22:12:05 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Stefan Monnier <monnier> 08/04/13 22:12:02
Index: lisp/simple.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/simple.el,v
retrieving revision 1.919
retrieving revision 1.920
diff -u -b -r1.919 -r1.920
--- lisp/simple.el 11 Apr 2008 22:28:02 -0000 1.919
+++ lisp/simple.el 13 Apr 2008 22:12:02 -0000 1.920
@@ -5234,9 +5234,7 @@
;; Define the major mode for lists of completions.
-(defvar completion-list-mode-map nil
- "Local map for completion list buffers.")
-(or completion-list-mode-map
+(defvar completion-list-mode-map
(let ((map (make-sparse-keymap)))
(define-key map [mouse-2] 'mouse-choose-completion)
(define-key map [follow-link] 'mouse-face)
@@ -5245,7 +5243,8 @@
(define-key map "\e\e\e" 'delete-completion-window)
(define-key map [left] 'previous-completion)
(define-key map [right] 'next-completion)
- (setq completion-list-mode-map map)))
+ map)
+ "Local map for completion list buffers.")
;; Completion mode is suitable only for specially formatted data.
(put 'completion-list-mode 'mode-class 'special)
@@ -5425,7 +5424,7 @@
(raise-frame (window-frame mini))))
(exit-minibuffer)))))))
-(defun completion-list-mode ()
+(define-derived-mode completion-list-mode nil "Completion List"
"Major mode for buffers showing lists of possible completions.
Type \\<completion-list-mode-map>\\[choose-completion] in the completion list\
to select the completion near point.
@@ -5433,15 +5432,7 @@
with the mouse.
\\{completion-list-mode-map}"
-
- (interactive)
- (kill-all-local-variables)
- (use-local-map completion-list-mode-map)
- (setq mode-name "Completion List")
- (setq major-mode 'completion-list-mode)
- (make-local-variable 'completion-base-size)
- (setq completion-base-size nil)
- (run-mode-hooks 'completion-list-mode-hook))
+ (set (make-local-variable 'completion-base-size) nil))
(defun completion-list-mode-finish ()
"Finish setup of the completions buffer.
@@ -5502,17 +5493,15 @@
(setq default-directory
(file-name-directory (expand-file-name mbuf-contents)))))
(with-current-buffer standard-output
+ (let ((base-size completion-base-size)) ;Read before killing localvars.
(completion-list-mode)
+ (set (make-local-variable 'completion-base-size) base-size))
(set (make-local-variable 'completion-reference-buffer) mainbuf)
+ (unless completion-base-size
+ ;; This may be needed for old completion packages which don't use
+ ;; completion-all-completions-with-base-size yet.
(setq completion-base-size
(cond
- ((and (symbolp minibuffer-completion-table)
- (get minibuffer-completion-table
'completion-base-size-function))
- ;; To compute base size, a function can use the global value of
- ;; completion-common-substring or minibuffer-completion-contents.
- (with-current-buffer mainbuf
- (funcall (get minibuffer-completion-table
- 'completion-base-size-function))))
(minibuffer-completing-file-name
;; For file name completion, use the number of chars before
;; the start of the file name component at point.
@@ -5522,7 +5511,7 @@
(- (point) (minibuffer-prompt-end)))))
(minibuffer-completing-symbol nil)
;; Otherwise, in minibuffer, the base size is 0.
- ((minibufferp mainbuf) 0)))
+ ((minibufferp mainbuf) 0))))
(setq common-string-length
(cond
(completion-common-substring
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Chong Yidong, 2008/04/02
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Stefan Monnier, 2008/04/02
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Chong Yidong, 2008/04/03
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Stefan Monnier, 2008/04/04
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Glenn Morris, 2008/04/10
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Stefan Monnier, 2008/04/11
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v,
Stefan Monnier <=
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Stefan Monnier, 2008/04/21
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Juri Linkov, 2008/04/22
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Glenn Morris, 2008/04/25
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Glenn Morris, 2008/04/26
- [Emacs-diffs] Changes to emacs/lisp/simple.el,v, Stefan Monnier, 2008/04/29