Mercurial > emacs
changeset 67161:759b69f39057
(PC-completion-as-file-name-predicate): Use minibuffer-completing-file-name.
(partial-completion-mode): Use find-file-not-found-functions.
(PC-lisp-complete-symbol): Use with-syntax-table.
(PC-look-for-include-file): Remove dead setq.
(PC-look-for-include-file, PC-expand-many-files, PC-do-completion)
(PC-complete): Use with-current-buffer.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sun, 27 Nov 2005 20:53:55 +0000 |
parents | 23ef368e1c3d |
children | d40b3c4502e9 |
files | lisp/complete.el |
diffstat | 1 files changed, 22 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/complete.el Sun Nov 27 20:44:44 2005 +0000 +++ b/lisp/complete.el Sun Nov 27 20:53:55 2005 +0000 @@ -216,9 +216,9 @@ (PC-bindings partial-completion-mode) ;; Deal with include file feature... (cond ((not partial-completion-mode) - (remove-hook 'find-file-not-found-hooks 'PC-look-for-include-file)) + (remove-hook 'find-file-not-found-functions 'PC-look-for-include-file)) ((not PC-disable-includes) - (add-hook 'find-file-not-found-hooks 'PC-look-for-include-file))) + (add-hook 'find-file-not-found-functions 'PC-look-for-include-file))) ;; ... with some underhand redefining. (cond ((and (not partial-completion-mode) (functionp PC-old-read-file-name-internal)) @@ -261,8 +261,7 @@ ;; and this command is repeated, scroll that window. (if (and window (window-buffer window) (buffer-name (window-buffer window))) - (save-excursion - (set-buffer (window-buffer window)) + (with-current-buffer (window-buffer window) (if (pos-visible-in-window-p (point-max) window) (set-window-start window (point-min) nil) (scroll-other-window))) @@ -346,11 +345,8 @@ (defvar PC-delims-list nil) (defvar PC-completion-as-file-name-predicate - (function - (lambda () - (memq minibuffer-completion-table - '(read-file-name-internal read-directory-name-internal)))) - "A function testing whether a minibuffer completion now will work filename-style. + (lambda () minibuffer-completing-file-name) + "A function testing whether a minibuffer completion now will work filename-style. The function takes no arguments, and typically looks at the value of `minibuffer-completion-table' and the minibuffer contents.") @@ -665,8 +661,7 @@ (eq mode 'help)) (with-output-to-temp-buffer "*Completions*" (display-completion-list (sort helpposs 'string-lessp)) - (save-excursion - (set-buffer standard-output) + (with-current-buffer standard-output ;; Record which part of the buffer we are completing ;; so that choosing a completion from the list ;; knows how much old text to replace. @@ -732,16 +727,12 @@ or properties are considered." (interactive) (let* ((end (point)) - (buffer-syntax (syntax-table)) - (beg (unwind-protect - (save-excursion - (if lisp-mode-syntax-table - (set-syntax-table lisp-mode-syntax-table)) - (backward-sexp 1) - (while (= (char-syntax (following-char)) ?\') - (forward-char 1)) - (point)) - (set-syntax-table buffer-syntax))) + (beg (save-excursion + (with-syntax-table lisp-mode-syntax-table + (backward-sexp 1) + (while (= (char-syntax (following-char)) ?\') + (forward-char 1)) + (point)))) (minibuffer-completion-table obarray) (minibuffer-completion-predicate (if (eq (char-after (1- beg)) ?\() @@ -767,12 +758,11 @@ (goto-char end) (PC-do-completion nil beg end))) -;;; Use the shell to do globbing. -;;; This could now use file-expand-wildcards instead. +;; Use the shell to do globbing. +;; This could now use file-expand-wildcards instead. (defun PC-expand-many-files (name) - (save-excursion - (set-buffer (generate-new-buffer " *Glob Output*")) + (with-current-buffer (generate-new-buffer " *Glob Output*") (erase-buffer) (shell-command (concat "echo " name) t) (goto-char (point-min)) @@ -804,9 +794,9 @@ (setq files (cdr files))) p)))) -;;; Facilities for loading C header files. This is independent from the -;;; main completion code. See also the variable `PC-include-file-path' -;;; at top of this file. +;; Facilities for loading C header files. This is independent from the +;; main completion code. See also the variable `PC-include-file-path' +;; at top of this file. (defun PC-look-for-include-file () (if (string-match "[\"<]\\([^\"<>]*\\)[\">]?$" (buffer-file-name)) @@ -817,8 +807,7 @@ new-buf) (kill-buffer (current-buffer)) (if (equal name "") - (save-excursion - (set-buffer (car (buffer-list))) + (with-current-buffer (car (buffer-list)) (save-excursion (beginning-of-line) (if (looking-at @@ -855,8 +844,7 @@ (if path (setq name (concat (file-name-as-directory (car path)) name)) (error "No such include file: <%s>" name))) - (let ((dir (save-excursion - (set-buffer (car (buffer-list))) + (let ((dir (with-current-buffer (car (buffer-list)) default-directory))) (if (file-exists-p (concat dir name)) (setq name (concat dir name)) @@ -865,8 +853,7 @@ (if new-buf ;; no need to verify last-modified time for this! (set-buffer new-buf) - (setq new-buf (create-file-buffer name)) - (set-buffer new-buf) + (set-buffer (create-file-buffer name)) (erase-buffer) (insert-file-contents name t)) ;; Returning non-nil with the new buffer current @@ -885,7 +872,7 @@ env (substring env 0 pos))) path))) -;;; This is adapted from lib-complete.el, by Mike Williams. +;; This is adapted from lib-complete.el, by Mike Williams. (defun PC-include-file-all-completions (file search-path &optional full) "Return all completions for FILE in any directory on SEARCH-PATH. If optional third argument FULL is non-nil, returned pathnames should be