X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/6df53d0820f9a3cd627add56d297c51d67f911dd..0d373f73bcaf14863b186b74d6e80a5209e2720c:/lisp/hippie-exp.el diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el index ba1c4a0746..69da8fc611 100644 --- a/lisp/hippie-exp.el +++ b/lisp/hippie-exp.el @@ -1,7 +1,6 @@ ;;; hippie-exp.el --- expand text trying various ways to find its expansion -;; Copyright (C) 1992, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2011 Free Software Foundation, Inc. ;; Author: Anders Holst ;; Last change: 3 March 1998 @@ -80,8 +79,8 @@ ;; in all buffers (except the current). (This may be a little ;; slow, don't use it unless you are really fond of `hippie-expand'.) ;; `try-expand-list' : Tries to expand the text back to the nearest -;; open delimiter, to a whole list from the buffer. Convenient for -;; example when writing lisp or TeX. +;; open delimiter, to a whole list from the buffer. Convenient for +;; example when writing Lisp or TeX. ;; `try-expand-list-all-buffers' : Like `try-expand-list' but searches ;; in all buffers (except the current). ;; `try-expand-dabbrev' : works exactly as dabbrev-expand (but of @@ -116,7 +115,7 @@ ;; variable with all kinds of try-functions above, it might be an ;; idea to use `make-hippie-expand-function' to construct different ;; `hippie-expand'-like functions, with different try-lists and bound -;; to different keys. It is also possible to make +;; to different keys. It is also possible to make ;; `hippie-expand-try-functions-list' a buffer local variable, and ;; let it depend on the mode (by setting it in the mode-hooks). ;; @@ -251,7 +250,7 @@ If nil, all buffers are searched." :group 'hippie-expand) ;;;###autoload -(defcustom hippie-expand-ignore-buffers '("^ \\*.*\\*$" dired-mode) +(defcustom hippie-expand-ignore-buffers (list (purecopy "^ \\*.*\\*$") 'dired-mode) "A list specifying which buffers not to search (if not current). Can contain both regexps matching buffer names (as strings) and major modes \(as atoms)" @@ -392,7 +391,7 @@ undoes the expansion." lst))) ;; Check if current buffer matches any atom or regexp in LST. -;; Atoms are interpreted as major modes, strings as regexps mathing the name. +;; Atoms are interpreted as major modes, strings as regexps matching the name. (defun he-buffer-member (lst) (or (memq major-mode lst) (progn @@ -519,7 +518,7 @@ otherwise." (defun he-concat-directory-file-name (dir-part name-part) "Try to slam together two parts of a file specification, system dependently." (cond ((null dir-part) name-part) - ((memq system-type '(ms-dos w32)) + ((eq system-type 'ms-dos) (if (and (string-match "\\\\" dir-part) (not (string-match "/" dir-part)) (= (aref name-part (1- (length name-part))) ?/)) @@ -716,8 +715,7 @@ string). It returns t if a new completion is found, nil otherwise." (defun he-line-beg (strip-prompt) (save-excursion (if (re-search-backward (he-line-search-regexp "" strip-prompt) - (save-excursion (beginning-of-line) - (point)) t) + (line-beginning-position) t) (match-beginning 2) (point)))) @@ -928,7 +926,7 @@ string). It returns t if a new expansion is found, nil otherwise." t)))) (defun try-expand-dabbrev-all-buffers (old) - "Tries to expand word \"dynamically\", searching all other buffers. + "Try to expand word \"dynamically\", searching all other buffers. The argument OLD has to be nil the first call of this function, and t for subsequent calls (for further possible expansions of the same string). It returns t if a new expansion is found, nil otherwise." @@ -986,40 +984,37 @@ The argument OLD has to be nil the first call of this function, and t for subsequent calls (for further possible expansions of the same string). It returns t if a new expansion is found, nil otherwise." (let ((expansion ()) - (buf (current-buffer)) (flag (if (frame-visible-p (window-frame (selected-window))) 'visible t))) - (if (not old) - (progn - (he-init-string (he-dabbrev-beg) (point)) - (setq he-search-window (selected-window)) - (set-marker he-search-loc - (window-start he-search-window) - (window-buffer he-search-window)))) + (unless old + (he-init-string (he-dabbrev-beg) (point)) + (setq he-search-window (selected-window)) + (set-marker he-search-loc + (window-start he-search-window) + (window-buffer he-search-window))) (while (and (not (equal he-search-string "")) - (marker-position he-search-loc) - (not expansion)) - (save-excursion - (set-buffer (marker-buffer he-search-loc)) - (goto-char he-search-loc) - (setq expansion (he-dabbrev-search he-search-string () - (window-end he-search-window))) - (if (and expansion - (eq (marker-buffer he-string-beg) (current-buffer)) - (eq (marker-position he-string-beg) (match-beginning 0))) - (setq expansion (he-dabbrev-search he-search-string () - (window-end he-search-window)))) - (set-marker he-search-loc (point) (current-buffer))) - (if (not expansion) - (progn - (setq he-search-window (next-window he-search-window nil flag)) - (if (eq he-search-window (selected-window)) - (set-marker he-search-loc nil) - (set-marker he-search-loc (window-start he-search-window) - (window-buffer he-search-window)))))) + (marker-position he-search-loc) + (not expansion)) + (with-current-buffer (marker-buffer he-search-loc) + (save-excursion + (goto-char he-search-loc) + (setq expansion (he-dabbrev-search he-search-string () + (window-end he-search-window))) + (if (and expansion + (eq (marker-buffer he-string-beg) (current-buffer)) + (eq (marker-position he-string-beg) (match-beginning 0))) + (setq expansion + (he-dabbrev-search he-search-string () + (window-end he-search-window)))) + (set-marker he-search-loc (point) (current-buffer)))) + (unless expansion + (setq he-search-window (next-window he-search-window nil flag)) + (if (eq he-search-window (selected-window)) + (set-marker he-search-loc nil) + (set-marker he-search-loc (window-start he-search-window) + (window-buffer he-search-window))))) - (set-buffer buf) (if (not expansion) (progn (if old (he-reset-string)) @@ -1187,5 +1182,4 @@ string). It returns t if a new completion is found, nil otherwise." (provide 'hippie-exp) -;; arch-tag: 5e6e00bf-b061-4a7a-9b46-de0ae105ab99 ;;; hippie-exp.el ends here